簡體   English   中英

Google Maps V3中的subgurim組件clearOverlays()。 如何刪除標記?

[英]Subgurim component clearOverlays() in Google Maps V3. How to delete markers?

我在C#網絡表單項目中使用的是GoogleMaps.Subgurim.NET dll的最新版本。 我想知道如何使用該組件在v3中獲得Google Maps v2的clearOverlays()方法的效果。 讓我給你舉個例子; 在地圖點擊事件中,我曾經刪除了所有現有標記,然后使用InfoWindow放置了一個新標記:

protected string GMap1_Click(object s, GAjaxServerEventArgs e)
        {

            GMarker marker = new GMarker(e.point);
            string strInfoWindow = string.Format(
                                             @"<b>Mytext<br> "lat = {0}<br/>lng = {1}",
                                             e.point.lat,
                                             e.point.lng);
            GInfoWindow window = new GInfoWindow(marker,
                                                 strInfoWindow,
                                                 true);

            return 
                e.map+".clearOverlays();"+
                window.ToString(e.map);
}

代碼中唯一需要注意的部分是最后三行。 您能否告訴我在這種情況下如何更改我的JavaScript代碼以刪除所有標記?

預先感謝您的任何幫助。 Newcomsas

我解決了問題。 我只是將通過Subgurim組件創建的標記推送到數組中,然后調用附加到地圖控件的自定義js函數來刪除它們。 這是附加功能的代碼:

       StringBuilder sb = new StringBuilder();

       sb.Append("var markersArray=[];");
       sb.Append("function clearOverlays() {");
       sb.Append("   for (var i = 0; i < markersArray.length; i++ ) {");
       sb.Append("     markersArray[i].setMap(null);");
       sb.Append("   }");
       sb.Append("   markersArray = [];");
       sb.Append("}");

       GMap1.Add(sb.ToString());

這就是我的Gmap1_Click事件的樣子:

protected string GMap1_Click(object s, GAjaxServerEventArgs e)
    {
        GMarker marker = new GMarker(e.point);
        string strInfoWindow = string.Format(
                                         @"point<br />lat = {0}<br/>lng = {1}",
                                         e.point.lat,
                                         e.point.lng);
        GInfoWindow window = new GInfoWindow(marker,
                                             strInfoWindow,
                                             true);
        return
               "clearOverlays();" +
               window.ToString(e.map)+
               "markersArray.push(" + GMap1.getGMapElementById(marker.ID) + ");";
    }

一切都以此方式正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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