[英]Sencha Touch 2 remove Google map Markers
我正在嘗試使用ExtJS從Google地圖中刪除所有標記。 我正在執行setCenter()操作(我需要從地圖上刪除舊的中心),而且我想在新的中心添加新的標記。
據我所知,要獲取谷歌地圖實例,我需要在地圖容器上執行getMap(),即map.getMap()
我嘗試過clearMarkers();、 deleteMarkers(); 和標記= []; 但都行不通。 谷歌地圖對象在Chrome開發者工具實用程序上看起來很奇怪,至少對我而言。
另外,同樣的問題。 我正在這樣做:
new google.maps.Marker({
map : map.getMap(),
position : new google.maps.LatLng(location.lat, location.lng),
title : 'Drag Marker To New Position',
animation : google.maps.Animation.DROP,
draggable : true
});
任何幫助表示贊賞! 謝謝。
非常簡單 要從地圖中刪除標記,請調用setMap()
方法,並將null
用作參數。
marker.setMap(null);
請注意 ,上述方法不會刪除標記。 它只是從地圖上刪除標記。 相反,如果您希望刪除標記,則應將其從地圖上刪除,然后將標記本身設置為null
。
如果要管理一組標記,則應創建一個數組來保存標記。 使用此數組, 然后可以在需要刪除標記時依次對數組中的每個標記調用
setMap()
。 您可以刪除標記,方法是將它們從地圖中刪除,然后將數組的長度設置為0,這將刪除所有對標記的引用。
在此處查找示例查看示例(marker-remove.html)
閱讀有關Google Maps Tutorial的更多信息-刪除標記
最終,我得到了一個解決方案(也許這不是更好的方法,但是有效)
我決定有一個全局變量,該變量引用必須放置在地圖上的標記。
要在sencha中定義全局變量,請使用以下方法:
Ext.application({
name: 'SIGCC',
marker: null,
....
....
});
我正在使用一個自定義類來獲取AutocompleteTextField,並且當用戶點擊建議的位置時,必須刪除之前的標記並將新的標記放置在Google地圖上。 我也必須在新位置更新地圖
recenterMap: function(location){
//addressMap is the id of the xtype map component
var map = Ext.getCmp('addressMap');
map.setMapCenter({ latitude: location.lat, longitude: location.lng });
if (SIGCC.app.marker){
SIGCC.app.marker.setMap(null);
}
SIGCC.app.marker = new google.maps.Marker({
map : map.getMap(),
position : new google.maps.LatLng(location.lat, location.lng),
title : 'Drag Marker To New Position',
animation : google.maps.Animation.DROP,
draggable : true
});
//My map is hidden before de users tap action, so i have to unhide them
map.setHidden(false);
},
如您所見,這部分代碼引用了先前定義的全局變量。 希望這對某人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.