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