其中数据坐标的查询,未添加进去!
//控件声明,因为要自定义所以在代码里面写
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); */
}
C# 操作Gmap简单使用方法
最新推荐文章于 2024-10-19 01:18:27 发布