可能重复:
Google Maps v3 - How to center using an address on initialize?
我有一张地图,我想加载90210作为邮政编码...警报在那里作为调试工具..警报给了我coords但我得到'myOptions未定义'错误。
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var lat = '';
var lng = '';
var address = '90210';
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.lat();
lng = results[0].geometry.location.lng();
//alert(lat + ', ' + lng);
} else {
alert("Geocode was not successful for the following reason: " + status);
};
var latlng = '(' + lat + ', ' + lng + ')';
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
alert(latlng);
});
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
答案 0 :(得分:1)
您可以在geocoder.geocode中的匿名函数中创建myOptions。因此,该函数的代码不可用。如果在初始化函数的顶部声明var myOptions,那么它应该可以工作:
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var lat = '';
var lng = '';
var address = '90210';
var myOptions;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.lat();
lng = results[0].geometry.location.lng();
//alert(lat + ', ' + lng);
} else {
alert("Geocode was not successful for the following reason: " + status);
};
var latlng = '(' + lat + ', ' + lng + ')';
myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
alert(latlng);
});
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}