gpt4 book ai didi

google-maps - Google Maps V3 InfoWindow 忽略纬度位置

转载 作者:行者123 更新时间:2023-12-04 18:20:55 25 4
gpt4 key购买 nike

我的 map 没有标记。在点击 map 时,它会弹出一个信息窗口,其中纬度/经度以十进制显示为 5 dp,以度分秒为单位。打开的窗口总是在响应新的点击之前关闭。位置由 position: latLng 指定,但信息窗口始终位于左上角。我已经花了几天的时间,我觉得我错过了一些东西。下面的代码片段。有任何想法吗?

google.maps.event.addListener(map, 'click', function (event) {
var lat = event.latLng.lat(),
lng = event.latLng.lng(),
latLng = event.latLng,
strHtml;
//
// strHtml build code omitted but succesfully uses lat and lng to produce
// e.g. Latitude : 51.72229 N (51° 43' 20'' N)
// Longitude : 1.45827 E (1° 27' 30'' E)
//
// If an infowindow is open, then close it
if (openedInfoWindow != null) openedInfoWindow.close();
// latLng monitored to check it is there before use in infowindow
alert(latLng); // returns correct values which position then ignores!
var infoWindow = new google.maps.InfoWindow({
position: latLng,
content: strHtml,
maxWidth: 420
});
// Open infoWindow
infoWindow.open(map,this);
// Remember the opened window
openedInfoWindow = infoWindow;
// Close it if X box clicked
google.maps.event.addListener(infoWindow, 'closeclick', function() {
openedInfoWindow = null;
});
});

最佳答案

这段代码有几个问题。信息窗口的第二个参数 open方法必须是 MVCObject在核心 API 中只有 Marker类可以用作 anchor 。您不需要每次都将 infowindow 变量设置为 null 并创建一个新的 infowindow 对象。您只需要一个信息窗口,然后更改其内容和位置。这样,一次只显示一个信息窗口。

这是一个工作示例的 fiddle :http://jsfiddle.net/bryan_weaver/z3Cdg/

相关代码:

google.maps.event.addListener(map, 'click', function (evt) {
var content = "<div class='infowindow'>";
content += "Latitude: " + evt.latLng.lat() + "<br/>";
content += "Longitude: " + evt.latLng.lng() + "</div>";
HandleInfoWindow(evt.latLng, content);
});

function HandleInfoWindow(latLng, content) {
infoWindow.setContent(content);
infoWindow.setPosition(latLng);
infoWindow.open(map);
}

关于google-maps - Google Maps V3 InfoWindow 忽略纬度位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19661025/

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