版权声明:本文为博主原创文章,未经博主允许不得转载。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";
}
}
总的来说: 一定要按这个三个顺序来添加, 添加之后是对应的, 具有关联性.