今天我的任务是第一次使用Google API创建地图。我在我的网站上设置地图没有问题,这很容易。但由于某些原因,我用json编码的点数没有显示出来。这是说我的gmap对象是未定义的。我真的可以在这里使用一些帮助,我一直在为这件事做主演!!
function load () {
var map = document.getElementById("map");
if (GBrowserIsCompatible()) {
var gmap = new GMap2(map);
gmap.addControl( new GSmallMapControl() );
gmap.addControl( new GMapTypeControl()) ;
gmap.addControl( new GOverviewMapControl(new GSize(100,100)) );
gmap.setCenter( new GLatLng(42.3313889, -83.0458333), 7 );
} else {
alert("Sorry, your browser cannot handle the true power of Google Maps");
}
}
window.onload = load;
window.onunload = GUnload;
function createMarker(input) {
var marker = new GMarker(input.point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml( input.walkName + input.date + input.address );
});
return marker;
}
function parseJson (doc) {
var jsonData = eval("(" + doc + ")");
for (var i = 0; i < jsonData.markers.length; i++) {
var marker = createMarker(jsonData.markers[i]);
gmap.addOverlay(marker);
}
}
GDownloadUrl("points.json", function(data, responseCode) {
parseJson(data);
});
答案 0 :(得分:1)
您正在使用parseJson函数中的gmap变量。但它在load()函数内声明。他们不分享范围。只需将gmap声明移到两个函数之外,这样它们就可以在两个函数的共同范围内。
答案 1 :(得分:0)
看起来gmap
在load
函数的范围内定义。因此,在您引用它的parseJSON
函数中不可用。