[英]JavaFX: Google Maps in a WebPane - Moving a Marker leaves old one behind
我有一个在JavaFX WebView中运行Google Maps API实例的应用程序,并试图允许用户在周围移动地图标记。
我尝试了以下方法:
google.maps.event.addListener(map, 'click', function(event) {
marker.setPosition(event.latLng);
}
以及:
google.maps.event.addListener(map, 'click', function(event) {
marker.setMap(null);
marker = null;
marker = new google.maps.Marker({
position:event.latLng,
map: map
});
}
这两种实现方式都会产生相同的问题:单击地图会在新位置创建一个标记,但是旧的位置标记也会保留在屏幕上。 移动地图并强制使用旧标记的部分重新加载会删除该标记,使我相信这不是实现的问题,而是Web浏览器处理它的错误。 有什么办法可以解决此问题,从而不会留下重复的标记?
我认为这是代码实现的问题。 尝试这个。 在jsfiddle上进行了测试 ,它运行良好。
function initMap() {
var myLatLng = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: -25.363882, lng: 131.044922 }
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
draggable: true,
});
google.maps.event.addListener(map, 'click', function(e) {
updateMarkerPosition(marker,e);
});
}
function updateMarkerPosition(marker, e){
marker.setPosition(e.latLng);
}
如果这种无缝执行未反映在您的JavaFX应用程序中,则不是Google Maps API出现了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.