GMap控件使用问题及解决

版权声明:本文为博主原创文章,未经博主允许不得转载。https://github.com/SCFMVP https://blog.csdn.net/qq_37832932/article/details/81489413

 如图. 在使用时, 第一步是new一个MapControl控件, 第二步在该MapControl上覆盖一个图层, 第三步在图层上添加markers

可能出现问题: 添加的图层不显示, 显示之后鼠标缩放后消失

原因: 未按顺序添加上述三个东西...

//-----------------------------------华丽分割线-----------------------------------------------//

用例子叙述:

1. 拖动MapControl控件时就新建了最下面一层(三层见上图)

2. 定义图层(Overlay)

private GMapOverlay markersOverlay = new GMapOverlay("markers"); //放置marker的图层
private GMapOverlay markersOverlay_before = new GMapOverlay("markers"); //放置marker的图层
private GMapOverlay markersOverlay_after = new GMapOverlay("markers"); //放置marker的图层

 mapControl2.Overlays.Add(markersOverlay_before) 语句在mapControl2控件上添加了图层markersOverlay_before

mapControl2.Position = new PointLatLng(31.7508319669, 119.9192261696); //地图中心位置:江理工图书馆
mapControl2.Overlays.Add(markersOverlay_before);   //MapControl添加图markersOverlay_before,null);//图层再添加marker
SetLableOnMap_fore(LirPoints, markersOverlay_before);

3. 添加Markers

SetLableOnMap_fore(LirPoints, markersOverlay_before);

 具体方法如下: 形参markers_Overlay就是Markers将要显示的图层

public void SetLableOnMap_fore(string[] LatLngInfo, GMapOverlay markers_Overlay)
        {
            //给每个坐标打点
            for (int i = 0; i < LatLngInfo.Length; i++)
            {
                string[] LatLng = LatLngInfo[i].Split(',');
                //在坐标点上绘制一绿色点并向图层中添加标签 
                markers_Overlay.Markers.Add(new GMarkerGoogle(new PointLatLng(double.Parse(LatLng[1]), double.Parse(LatLng[0])), GMarkerGoogleType.gray_small));
                //方便之后寻找到是第几个GMapMarker   
                markers_Overlay.Markers[i].Tag = i;
                markers_Overlay.Markers[i].Tag = "xxxx";
                markers_Overlay.Id = "markroad";
            }
           
        }

总的来说: 一定要按这个三个顺序来添加, 添加之后是对应的, 具有关联性.

猜你喜欢

转载自blog.csdn.net/qq_37832932/article/details/81489413