gpt4 book ai didi

javascript - 谷歌地图 API JS V3 : infowindow. getPosition() == 未定义?

转载 作者:行者123 更新时间:2023-11-30 17:21:52 25 4
gpt4 key购买 nike

如果信息窗口可见,我想制作一些东西。我的表达是:

    if(infowindow.getPosition() != marker.getPosition())

问题是,如果 infowindow.getPosition() 有位置,它也会返回 undefined。
JSFiddle-Demo

我做错了什么?

完整代码:

<html>
<head>
<style type="text/css">
html,body,#map-canvas {
height: 100%;
width:100%;
margin: 0;
padding: 0;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?language=de&v=3"></script>
<script type="text/javascript">

$( document ).ready(function() {
var map = new google.maps.Map(document.getElementById("map-canvas"), {
center: new google.maps.LatLng(50.2881829, 11.4835767),
zoom: 6
});

var marker = new google.maps.Marker({
position: new google.maps.LatLng(50.2881829, 11.4835767),
map: map,
});

var infowindow = new google.maps.InfoWindow({
content: '<div id="content">test123</div>'
});

google.maps.event.addListener(marker, 'click', function() {
console.log(infowindow.getPosition());
console.log(marker.getPosition());
if(infowindow.getPosition() != marker.getPosition()) {
infowindow.open(map,marker);
} else {
infowindow.close();
}
});
});
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>

最佳答案

似乎 open-方法不会更新 infowindowposition,您需要在您的拥有(例如,通过将信息窗口的位置绑定(bind)到标记的位置):

    infowindow.unbind('position');
if(infowindow.getPosition() != this.getPosition()) {
infowindow.bindTo('position',this,'position');
infowindow.open(map,this);
} else {
infowindow.close();
infowindow.setPosition(null);
}

演示:http://jsfiddle.net/aBg3N/

另一个解决方案(但这个解决方案依赖于一个未记录的属性 anchor):

    if(infowindow.get('anchor') != this) {
infowindow.open(map,this);
} else {
infowindow.close();
}

演示:http://jsfiddle.net/AZC3z/

这两种解决方案都适用于可拖动标记,并且当您对多个标记使用相同的信息窗口时也是如此

关于javascript - 谷歌地图 API JS V3 : infowindow. getPosition() == 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012029/

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