मैं मानचित्र और मार्करों के लिए जीएमएपी.नेट कोड का उपयोग कर रहा हूं। मार्कर जोड़ने और मानचित्र के साथ कुछ भी करने में समस्या नहीं है, जिसने मुझे मानचित्र से एक मार्कर को हटा दिया है जिसमें मुझे समस्याएं हैं। मैंने मानचित्र पर मार्कर को हटाने के लिए Google पर हर जगह शोध किया लेकिन मार्कर को हटाने का एक गर्म विषय प्रतीत नहीं होता है।Gmap.net मार्कर हटाने
यहां कोड का स्निपेट है जिसे मैं जोड़ने के लिए उपयोग करता हूं।
private void AddMarker_ButtonClick(object sender, AddMarkerEventArgs e)
{
DBDictAdd("Marker", " ",e.Latitude, e.Longitude, true, "192.168.1.1");
m_dbMarkers.Insert(_table, dbmarkertable);
dbmarkertable.Clear();
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(e.Latitude, e.Longitude),
GMarkerGoogleType.green);
marker.ToolTip = new GMapRoundedToolTip(marker);
marker.ToolTipMode = MarkerTooltipMode.OnMouseOver;
marker.Tag = MarkerIndex;
marker.ToolTipText = (marker.Position.ToString());
markersOverlay.Markers.Add(marker);
MarkerIndex++;
}
आप मैं SQLite
उपयोग कर रहा हूँ मार्करों के लिए डेटाबेस में ID
और अन्य जानकारी स्टोर करने के लिए देख सकते हैं। मैं डेटाबेस दृष्टिकोण का उपयोग कर रहा हूं क्योंकि मुझे मार्कर स्थान के साथ अधिक जानकारी स्टोर करने की आवश्यकता होगी। कोड का यह हिस्सा काम करता है।
मेरी समस्या यह है कि मैं मार्कर जानकारी को कॉल कर रहा हूं ताकि मैं इसे हटा सकूं। मुझे पता है कि ये 2 कॉल मौजूद हैं।
markersOverlay.Markers.Remove();
markersOverlay.Markers.RemoveAt();
मैं removeAt
आदेश का इस्तेमाल किया है, लेकिन मैं इसे मैन्युअल रूप से करना था और पाया है removeAt(0)
आदेश का उपयोग कि सरणी हर बार की पहली प्रविष्टि से लेता है।
यह वही है मैं अब तक की कोशिश की है है:
private void uxRemoveMarkerButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Select the marker to remove.");
uxGmap.OnMarkerClick += new MarkerClick(uxGmap_OnMarkerClick);
}
private void uxGmap_OnMarkerClick(object sender, EventArgs e)
{
//int? mID = null;
//DataTable da = m_dbMarkers.GetDataTable("SELECT * from markers");
//GMapMarker marker = null;
//PointLatLng p = new PointLatLng(lat, lng);
//foreach (GMapMarker m in markersOverlay.Markers)
//{
// if (m.Position == p)
// marker = m;
//}
//markersOverlay.Markers.Remove(marker);
//MessageBox.Show("done");
//foreach (DataRow dr in da.Rows)
//{
// if (Convert.ToDouble(dr[3]) == lat)
// {
// MessageBox.Show(dr[3].ToString());
// //mID = Convert.ToInt32(dr[0]);
// }
//}
//markersOverlay.Markers.IndexOf(marker);
//mID= Convert.ToInt32(m_dbMarkers.ExecuteScalar("SELECT ID FROM markers"));
//m_dbMarkers.Delete(_table, String.Format("markers.ID = {0} ", mID));
//markersOverlay.Markers.RemoveAt(mID);
//MessageBox.Show(mID.ToString());
uxGmap.OnMarkerClick -= new MarkerClick(uxGmap_OnMarkerClick);
}
कैसे मैं मार्कर आईडी प्राप्त करने या खुद के समय मार्कर मैं उस पर क्लिक करें वास्तव में नक्शे से निकालने के लिए कर सकते हैं पर कोई सुझाव या मार्गदर्शन?
संपादित करें: मैं अद्यतन AddMarker_ButtonClick