[英]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.