簡體   English   中英

Sencha Touch 2刪除Google地圖標記

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM