gpt4 book ai didi

javascript - 将 Google map 坐标设置为中心屏幕

转载 作者:行者123 更新时间:2023-11-28 20:01:22 24 4
gpt4 key购买 nike

我编写了一个脚本,允许管理员单击 map (谷歌地图 API v3),设置任意数量的位置,并命名它们。也就是说,单击 map 会显示一个信息窗口,其中包含用于命名该位置的表单。这些位置保存在数据库中(LatLng 坐标)并在 map 上显示为标记。

然后,用户(管理员或非管理员)可以从选择框中(按名称)选择这些位置中的任何一个。选择此选项后,将有一个选项用于显示在所选位置上带有标记的 map 。标记显示正确,但我希望 map 以该位置为中心。也就是说,标记位于屏幕中央,但它显示在最左上角。实际上,最初,标记甚至不可见。您必须将 map 向上拖动并留出一点才能显示。

这很奇怪,因为我对标记和中心屏幕使用相同的坐标。这是我的代码(或至少是相关部分):

                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 置于这些坐标的中心?

致以诚挚的问候

编辑:

                $(map).focus();
modal.on('shown', function() {
$(window).resize(function() {
google.maps.event.trigger(map, 'resize');
});
google.maps.event.trigger(map, 'resize');
});

最佳答案

我不确定这是否有效...如果窗口大小调整是原因,那么它可能会有所帮助。我不知道它将如何与其他代码交互。

resize事件添加事件监听器:

    ...
marker.setMap(map);

google.maps.event.addListener(map, 'resize', function() {
map.setCenter(latlng);
});

关于javascript - 将 Google map 坐标设置为中心屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21611031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com