首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gmap.net标记去除

Gmap.net标记去除
EN

Stack Overflow用户
提问于 2015-05-27 16:05:07
回答 1查看 10.1K关注 0票数 6

我正在使用GMap.NET代码作为地图和标记。添加标记和对地图做任何事情都不是问题,它从我有问题的地图中删除了一个标记。我在Google上到处搜索,从地图上删除一个标记,但删除标记似乎不是一个热门话题。

下面是我用来添加的代码片段。

代码语言:javascript
复制
        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++;
    }

如您所见,我正在使用SQLiteID和其他信息存储到数据库中以获取标记。我使用的数据库方法,因为我将需要存储更多的信息与标记位置。代码的这一部分起作用。

我遇到的问题是调用标记信息,这样我就可以删除它。我知道这两个电话的存在。

代码语言:javascript
复制
markersOverlay.Markers.Remove();
markersOverlay.Markers.RemoveAt();

我已经使用了removeAt命令,但是我不得不手动执行,并且注意到使用removeAt(0)命令每次都会从该数组的第一个条目中获取它。

这就是我迄今尝试过的:

代码语言:javascript
复制
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);

        }

当我点击标记ID或标记本身以实际从地图中删除它时,对于如何获得标记ID或标记本身,有什么建议或指导?

编辑:i更新了AddMarker_ButtonClick

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-29 15:50:19

我找到了从地图中删除标记的解决方案:

GMap.Net有一个可以订阅的MarkerClick事件。在我的表单中,这是我使用的代码,以及我把它放在表单代码中的位置。

代码语言:javascript
复制
Public Form1()
    {
            uxGmap.OnMarkerClick += new MarkerClick(uxGmap_OnMarkerClick);
    }

uxGmap_OnMarkerClick内部的代码

代码语言:javascript
复制
private void uxGmap_OnMarkerClick(GMapMarker item, MouseEventArgs e)
    {
        currentMarker = item;
        uxRemoveMarkerButton.Enabled = true;
    }

我有一个名为GMapMarker的全局currentMarker,它存储您单击的item标记。我还启用按钮删除我的表单上的标记。

然后,使用以下按钮单击按钮,从地图中删除标记:

代码语言:javascript
复制
private void uxRemoveMarkerButton_Click(object sender, EventArgs e)
    {
            int? mID = null;
            if(currentMarker != null)
            {
                mID = Convert.ToInt32(currentMarker.Tag);
                markersOverlay.Markers.Remove(currentMarker);
                currentMarker = null;
            }
            m_dbMarkers.Delete(_table, String.Format("markers.ID = {0} ", mID));
            uxRemoveMarkerButton.Enabled = false;
     }

GMapMarker有一个Tag属性,我可以在那里将标记ID存储到标记。然后从全局currentMarker.Tag中提取ID,并将其存储到本地int mID中。我使用这个mID删除我存储在sqlite数据库中的标记ID的行。我也禁用按钮,以不允许任何用户错误,直到一个标记被点击。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30487699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档