使用googlemap v3反向地理编码samplesource将此源
var map;
var geocoder;
var marker;
function initialize() {
geocoder = new google.maps.Geocoder();
var mapOptions = {
zoom : 14,
center : new google.maps.LatLng(30, 30)
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}
function codeLatLng() {
var latlng = new google.maps.LatLng(30, 30);
alert("call codeLatLng() 1");
geocoder.geocode({'latLng': latlng}, function(results, status) {
alert("call codeLatLng() 2");
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
map.setZoom(11);
marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[1].formatted_address);
infowindow.open(map, marker);
} else {
alert('No results found');
}
} else {
alert('Geocoder failed due to: ' + status);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
codeLatLng();
我叫函数codeLatLng();代码的最后一行
因此调用函数codeLatLng()和警报消息“调用codeLatLng()1
但不调用“ call codeLatLng()2”,并且代码不起作用
我的代码有什么问题?
最佳答案
我的代码有什么问题?
您正在执行codeLatLng,然后初始化地图和geocoder变量(在DOM完成加载后初始化运行,codeLatLng立即运行)。
这样会更好:
var map;
var geocoder;
var marker;
function initialize() {
geocoder = new google.maps.Geocoder();
var mapOptions = {
zoom : 14,
center : new google.maps.LatLng(30, 30)
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
// map and geocoder initialized
codeLatLng();
}
function codeLatLng() {
var latlng = new google.maps.LatLng(30, 30);
alert("call codeLatLng() 1");
geocoder.geocode({'latLng': latlng}, function(results, status) {
alert("call codeLatLng() 2");
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
map.setZoom(11);
marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[1].formatted_address);
infowindow.open(map, marker);
} else {
alert('No results found');
}
} else {
alert('Geocoder failed due to: ' + status);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
关于javascript - Googlemap v3反向地理编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20112690/