我正在尝试使用基于邮政编码的标记显示Google地图。我已经在 lat 和 lng 坐标上转换了邮政编码,但问题是地图根本没有显示。
以下是我试图这样做的方法:
function initialize() {
var lat = '';
var lng = '';
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': 94301}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.lat();
lng = results[0].geometry.location.lng();
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(lat, lng)
};
var map = new google.maps.Map(document.getElementById("gmap"), myOptions);
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
alert('111');
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
google.maps.event.addDomListener(window, 'load', initialize);
}
甚至没有出现警告('111')。
我做错了什么?
由于
答案 0 :(得分:0)
你的问题在这里,你在初始化函数中调用初始化函数 !
function initialize() {
...
google.maps.event.addDomListener(window, 'load', initialize);
}
将最后一行移出该功能,你会开始看到我认为的一些结果。
function initialize() {
...
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 1 :(得分:0)
2个问题:
当我修复时出现javascript错误
Uncaught InvalidValueError: in property address: not a string
然后:
Uncaught ReferenceError: myOptions is not defined
所以:
function initialize() {
var lat = '';
var lng = '';
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': "94301"}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.lat();
lng = results[0].geometry.location.lng();
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(lat, lng)
};
var map = new google.maps.Map(document.getElementById("gmap"), mapOptions);
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
alert('111');
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);