我写了一个脚本,允许管理员点击地图(谷歌地图API v3)设置尽可能多的位置,他想要的,命名它们。也就是说,点击地图会显示一个信息窗口,其中包含一个用于命名该位置的表单。这些位置保存在数据库(LatLng坐标)中,并在地图上显示为标记。设置谷歌地图坐标为中心屏幕
然后,用户(管理员或不管理员)可以从选择框(按名称)选择这些位置中的任何一个。选择此项后,可以选择在选定位置显示带有标记的地图。标记正确显示,但我希望地图在该位置居中。也就是说,屏幕中间的标记,而是显示在最左上角。事实上,最初,标记甚至不可见。您必须拖动地图并留下一点点才能显示。
这很奇怪,因为我对标记和中心屏幕使用相同的坐标。这里是我的代码(或相关部分,至少):
var latlng = new google.maps.LatLng(parseFloat(location.lat), parseFloat(location.ltn));
var latlng2 = new google.maps.LatLng(parseFloat(location.lat) + 0.025, parseFloat(location.ltn) - 0.05);
var map = new google.maps.Map($('.modal-body', modal)[0], {
'center': latlng,
'zoom': 13,
'mapTypeId': google.maps.MapTypeId.ROADMAP,
});
var marker = new google.maps.Marker({
'position': latlng,
'map': map,
'title': location.name,
});
marker.setMap(map);
注意如何样品中我不使用latlng2值。这是我的尝试,但它似乎只适用于给定的分辨率。我怎样才能将地图置于这些坐标中?
问候
编辑:
$(map).focus();
modal.on('shown', function() {
$(window).resize(function() {
google.maps.event.trigger(map, 'resize');
});
google.maps.event.trigger(map, 'resize');
});
这部分代码似乎确定。你有没有其他可以重新定位中心的东西? –
我刚刚编辑了这个问题。这有帮助吗? –
是的,我忘了说。这显示在引导模式,虽然我不明白为什么相关=) –