C# 操作Gmap简单使用方法

xiaoxiao2021-02-28  59

其中数据坐标的查询,未添加进去! //控件声明,因为要自定义所以在代码里面写 private GoogleChinaMapProvider goole; public static GMap.NET.WindowsForms.GMapControl gmap = new GMapControl(); //构造函数初始化加载,因为这条功能加载速度非常慢(推测是因为在加载地图文件吧,屏幕越大加载速度越慢) public Form1() { new Thread(() => { test(); }).Start(); } private void test() { goole = GMap.NET.MapProviders.GoogleChinaMapProvider.Instance; } /// <summary> /// 显示地图 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gmap_Load(object sender, EventArgs e) { //图标文件位置 string newstrAppDir = strAppDir + "//Resources//888.png"; gmap.MapProvider = goole; /* 加载离线地图(待测试) String mapPath = Application.StartupPath + "\\Data.gmdb"; gmap.CacheLocation = mapPath; gmap.Manager.Mode = AccessMode.CacheOnly; */ gmap.DragButton = MouseButtons.Left; //设置地图拖放使用鼠标按键 GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly; gmap.MinZoom = 1; //最小缩放 gmap.MaxZoom = 20; //最大缩放 gmap.Zoom = 12; //当前缩放 gmap.ShowCenter = false; //不显示中心十字点 gmap.Position = new PointLatLng(34.261, 108.902); //地图中心位置 List<string> listNodeNodes = new List<string>(); //根据数据库加载所对应的位置 List<string> listX = new List<string>(); List<string> listY = new List<string>(); List<MyData> listNode = new List<MyData>(); listNode = transfer.TransferQuery("作业区", "作业区名称", "作业区编号"); for (int i = 0; i < listNode.Count; i++) { listNodeNodes = transfer.TransferWhereQuery("装置信息", "作业区编号", listNode[i].ID, 2); listX = transfer.TransferWhereQuery("装置信息", "作业区编号", listNode[i].ID, 6); listY = transfer.TransferWhereQuery("装置信息", "作业区编号", listNode[i].ID, 7); } double X, Y; GMapOverlay objects = new GMapOverlay("markers"); //放置marker的图层 if (listNodeNodes.Count != 0) { for (int i = 0; i < listNodeNodes.Count; i++) { X = Convert.ToDouble(listX[i]); Y = Convert.ToDouble(listY[i]); GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(Y, X), new Bitmap(newstrAppDir)); //更改newstrAppDir 就可以自定义图标 marker.ToolTipText = listNodeNodes[i]; //自带的ToolTip控件(貌似可以设置控件的样式) string imgPath = ini.ReadValue("图片设置", "图片路径:", strAppDir + "\\RetrunImg"); DirectoryInfo dir = new DirectoryInfo(imgPath); dir.CreateSubdirectory(listNodeNodes[i]); objects.Markers.Add(marker); Form1.gmap.Overlays.Add(objects); } } /* 区域显示 GMapOverlay polyOverlay = new GMapOverlay("polygons"); List<PointLatLng> points = new List<PointLatLng>(); points.Add(new PointLatLng(34.261, 108.892)); points.Add(new PointLatLng(34.261, 108.922)); points.Add(new PointLatLng(34.271, 108.922)); points.Add(new PointLatLng(34.271, 108.892)); GMapPolygon polygon = new GMapPolygon(points, "mypolygon"); polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red)); polygon.Stroke = new Pen(Color.Red, 1); polyOverlay.Polygons.Add(polygon); gmap.Overlays.Add(polyOverlay); */ }
转载请注明原文地址: https://www.6miu.com/read-73548.html

最新回复(0)