2016-08-02 46 views
0

我有一个应用程序在JavaFX WebView中运行Google Maps API的实例,并试图允许用户移动地图标记周围。JavaFX:Web地图中的Google地图 - 移动标记留下的旧地图

我已经试过如下:

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浏览器处理它的错误。任何方式来解决这个问题,以便没有留下重复的标记?

回答

2

我认为这是代码实现的问题。尝试这个。测试这个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有问题。

+1

谢谢!这似乎工作 - 设置标记为可拖动的固定它。 – Eli