marker.openInfoWindowHtml(html);
});
return marker;
}
// Add 10 random markers in the map viewport
var bounds = map.getBoundsLatLng();
var width = bounds.maxX - bounds.minX;
var height = bounds.maxY - bounds.minY;
for (var i = 0; i < 10; i ) {
var point = new GPoint(bounds.minX width * Math.random(),
bounds.minY height * Math.random());
var marker = createMarker(point, i);
map.addOverlay(marker);
}
在地图上使用XML和异步远程方法调用Using XML and
Asynchronous RPC('AJAX')
在这个例子中,我们下载了一个静态文件"data.xml",这个文件包含有一系列以XML存储的经纬度坐标。当下载完成后,我们解析这个XML文件并在每个经­-纬度交汇处,创建一个图标。
// Center the map on Palo Alto
var map = new GMap(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.centerAndZoom(new GPoint(-122.141944, 37.441944), 4);
// Download the data in data.xml and load it on the map. The format we
// expect is:
// <markers>
// <marker lat="37.441" lng="-122.141"/>
// <marker lat="37.322" lng="-121.213"/>
// </markers>
var request = GXmlHttp.create();
request.open("GET", "data.xml", true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = request.responseXML;
var markers =
xmlDoc.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i ) {
var point = new
GPoint(parseFloat(markers[i].getAttribute("lng")),
parseFloat(markers[i].getAttribute("lat")));
var marker = new GMarker(point);
map.addOverlay(marker);
}
}
}
request.send(null);
API 总览
GMap 类
GMap类的一个实例代表网页上的一个简单的地图。你可以为这个实例创建很多实例(这个网页上有多少地图,你就可以创建多少个)。一个地图被包含再一个容器中,­-一般来说是一个DIV元素。如果你没有明确地指出地图的尺寸,地图将会使用容器的大小来决定其大小。
GMap类提供一些方法来控制地图的空间位置(指定中心和缩放程度)和在地图上添加和移除叠加图层(overlays).它还提供了打开一个"消息窗口"的方法­-,这个"消息窗口"就是你再Google
Maps和Google
Local中所看到的。一个地图只有一个简单的消息窗口,所以在一个指定时间你只能看到一个窗口。
Event
你可以使用Event监听器往你的应用中动态地添加元素。一个对象提供了很多被命名的事件(Event),你的应用可以使用静态方法GEvent.addLis­-tener或者GEvent.bind监听这些事件。例如,下面的代码片断就在用户点击地图窗口时显示一个警告信息。
var map = new GMap(document.getElementById("map"));
GEvent.addListener(map, "click", function() {
alert("You clicked the map");
});
GEvent.addListener方法作为一个第三参数的函数存在,这个方法的使用需要引用一个事件处理函数在里面。如果你像要对一个方法类绑定一个事件,­-你可以使用GEvent.bind。例如:
function MyApplication() {
this.counter = 0;
this.map = new GMap(document.getElementById("map"));
GEvent.bind(this.map, "click", this, this.onMapClick);
}
MyApplication.prototype.onMapClick() {
this.counter ;
alert("You have clicked the map " this.counter
this.counter == 1 ?" time.":" times.");
}
var application = new MyApplication();
消息窗口(the info window).
Map
类有一个简单的"消息窗口",可以在地图上方的浮动窗口内显示HTML内容。
最基本的"消息窗口"方法时openInfoWindow,这个方法使用一个点和一个HTML中的Dom元素作为参数。HTML
DOM元素被添加在消息窗口容器之后,消息窗口会显示在这个点上方。
openInfoWindowHtml也很相似,但是它以一个HTML字符串作为一个参数而不是一个DOM元素。
openInfoWindowsXslt以一个XML
DOM元素以及XSLT文档的URL来产生窗口内容,如果用户的浏览器没有下载下来的话,将异步地下载XSLT。
要在一个叠置图层(例如一个标记)上显示消息窗口,你可以通过一个可选的第三参数指定消息窗口
位置和你所指定的点之间的偏移量。例如,如果你的标记有10个象素高,你可以设置该象素便宜为GSize(0,-10).
GMarker类提供openInfoWindow方法来为你处理图标的大小和形状产生的象素偏移,所以你一般不需要为计算你应用中的图标偏移而担心。
叠置图层(Overlays)
叠置图层(似乎应该翻译为叠加物更为妥当)时在地图上的和经纬度坐标绑定的对象,所以它们会随
着你拖动/缩放或者变换地图投影的时候(例如变换地图模式到卫星模式的时候)。
Maps
API提供了两种类型的叠加物,一种是标记,他们是地图上的图标,另外一种是折线,他们是通
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




