Ter*_*ula 39 javascript google-maps-api-3
使用Google Maps API v3,有没有办法在初始化时设置地图的中心?我有一个使用此代码的解决方法:
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
codeAddress('germany');
}
function codeAddress(address) {
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,当它初始化时,它将它中心化为"latlng"一瞬间.我无法弄清楚如何在"myOptions"中设置中心.我虽然可以从codeAddress函数返回"results [0] .geometry.location"并将其传递给myOptions,但这不起作用.
谢谢你的帮助.
更新 由于我无法完全删除"中心",我想知道是否有办法将地址传递给选项.
来自Google API:
要初始化Map,我们首先创建一个Map选项对象以包含地图初始化变量.该对象未构造; 相反,它被创建为对象文字.每个地图都有两个必需的选项:中心和缩放.
Kas*_*sth 77
一个简单的解决方案是在codeAddress函数中初始化地图:
var geocoder, map;
function codeAddress(address) {
geocoder = new google.maps.Geocoder();
geocoder.geocode({
'address': address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var myOptions = {
zoom: 8,
center: results[0].geometry.location,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题.
| 归档时间: |
|
| 查看次数: |
49397 次 |
| 最近记录: |