模块测试(一)----c#控制html中的数据(GMap)

article/2025/11/11 7:24:13

项目地址: https://github.com/SCFMVP/final_01


一. 配置GMap

我们先去官网下载GMap的工程文件: https://archive.codeplex.com/?p=greatmaps

 然后我们我们编译GMap.NET.WindowsForms工程, 生成GMap.NET.Core.dll和GMap.NET.WindowsForms.dll

然后添加到我们的工程中.(PS: 这里需要注意我们的工程框架要在3.5以上, 还有特别重要的一点, 我们应用的这两个dll文件都是在GMap.NET.WindowsForms工程下的)

然后在我们的c#工程里新建一个用户控件类, 命名为MapControl

 文件继承于GMapControl类

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using GMap.NET.WindowsForms;namespace cs_var_toHtml
{public partial class MapControl : GMapControl{public MapControl(){InitializeComponent();}private void MapControl_Load(object sender, EventArgs e){}}
}

这样我们编译一下这个工程, 然后我们就可以在我们的工具箱 里找到MapControl控件进行使用了.

二.使用GMap.NET进行操作

图标闪动, 自定义图标, 移动图标等: http://www.cnblogs.com/luxiaoxun/p/3475355.html

(1) 初始化(中心位置, 分辨率, 去十字图标)

try{System.Net.IPHostEntry e = System.Net.Dns.GetHostEntry("ditu.google.cn");}catch{mapControl1.Manager.Mode = AccessMode.CacheOnly;MessageBox.Show("No internet connection avaible, going to CacheOnly mode.", "GMap.NET Demo", MessageBoxButtons.OK, MessageBoxIcon.Warning);}mapControl1.CacheLocation = Environment.CurrentDirectory + "\\GMapCache\\"; //缓存位置mapControl1.MapProvider = GMapProviders.GoogleChinaMap; //google china 地图mapControl1.MinZoom = 2;  //最小比例mapControl1.MaxZoom = 24; //最大比例mapControl1.Zoom = 15;     //当前比例mapControl1.ShowCenter = false; //不显示中心十字点mapControl1.DragButton = System.Windows.Forms.MouseButtons.Left; //左键拖拽地图mapControl1.Position = new PointLatLng(31.7508319669, 119.9192261696); //地图中心位置:江理工图书馆mapControl1.Overlays.Add(markersOverlay);mapControl1.MouseClick += new MouseEventHandler(mapControl_MouseClick);

(2) 鼠标操作

右击标绿点

void mapControl_MouseClick(object sender, MouseEventArgs e){if (e.Button == System.Windows.Forms.MouseButtons.Right){PointLatLng point = mapControl1.FromLocalToLatLng(e.X, e.Y);GMapMarker marker = new GMarkerGoogle(point, GMarkerGoogleType.green);markersOverlay.Markers.Add(marker);}}

(3) 打点方法

//将字符串组LatLngInfo的点打标记,经纬度中用','隔开, 把点的颜色也写成形参public void SetLableOnMap(string[] LatLngInfo){//创建图层  GMapOverlay gMapOverlay = new GMapOverlay();//给每个坐标打点for (int i = 0; i < LatLngInfo.Length; i++){string[] LatLng = LatLngInfo[i].Split(',');//在坐标点上绘制一绿色点并向图层中添加标签 gMapOverlay.Markers.Add(new GMarkerGoogle(new PointLatLng(double.Parse(LatLng[1]), double.Parse(LatLng[0])), GMarkerGoogleType.red));//方便之后寻找到是第几个GMapMarker   gMapOverlay.Markers[i].Tag = i;gMapOverlay.Id = "markroad";}//向控件中添加图层  mapControl1.Overlays.Add(gMapOverlay);}

 调用:

//------------调用打点函数---------------//string[] LatLngInfo=new string[2];LatLngInfo[0] ="12,12";   //第一个经纬度LatLngInfo[1] = "12,13";  //第二个经纬度SetLableOnMap(LatLngInfo);

(4) 区域

添加多边形(不准确, 在找原因)

//在地图上画矩阵,知道矩阵上下左右(Lat_top、Lat_bottom、Lng_left、Lng_right)的4个点
GMapOverlay polyOverlay = new GMapOverlay("polygons");List<PointLatLng> points = new List<PointLatLng>();//注意添加点的顺序points.Add(new PointLatLng(Lat_top, Lng_left));          points.Add(new PointLatLng(Lat_bottom, Lng_left));points.Add(new PointLatLng(Lat_bottom, Lng_right));points.Add(new PointLatLng(Lat_top, Lng_right));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);

(5) 路线

(6) 提示

(7)文字标签(看打点方法里也有)

//--------------加一个闪烁点&  文字标签---------------//public void PointShark(double Lat, double Lng, string label){GMapOverlay gMapOverlay = new GMapOverlay();PointLatLng point = new PointLatLng(Lat,Lng);gMapOverlay.Markers.Add(new GMarkerGoogle(point, GMarkerGoogleType.red));GMapMarker marker = new GMarkerGoogle(point, GMarkerGoogleType.green);marker.ToolTipText = label;       //这是标签marker.Tag = 1;marker.ToolTipMode = MarkerTooltipMode.Always;gMapOverlay.Markers.Add(marker);   //这一句话也很关键!!!!, 不然不显示标签mapControl1.Overlays.Add(gMapOverlay);//添加图层, 只有添加才会显示我们需要的点}

三. 结果及参考文章

PS上面为写的方法在下面这个博文里又有, 博主有一些列的GMap的博文, 很有帮助

http://www.cnblogs.com/luxiaoxun/p/3475355.html

 


http://chatgpt.dhexx.cn/article/ChDmSQym.shtml

相关文章

C# WinForm开发 GMap离线地图

一、概述 GMap.NET是一个强大、免费、跨平台、开源的.NET控件&#xff0c;它在Windows Forms和WPF环境中能够通过Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等实现路径规划、地理编码以及地图展示功能&#xff0c;并支持缓存和运行在Mobile环境中。 二、步…

GoFrame的gmap相比Go原生的map,天然支持排序和有序遍历!?

大家好&#xff0c;我是阳哥。内容比较硬核&#xff0c;建议先收藏再观看。 我也在B站发布了这期内容的视频版&#xff0c;视频相比文章看起来确实更通俗易懂。 如果你是初学者建议先看视频&#xff1a;欢迎大家点击这个链接观看。 觉得不错&#xff0c;欢迎关注、三连一波。谢…

Gmap安装使用

最近使用c#做了一个地面站&#xff0c;需要用到地面站&#xff0c;在论文里看到好多人都是用的Gmap&#xff0c;所以今天写个博客&#xff0c;记录一下自己遇到的问题。 1.下载 下载地址&#xff1a;https://archive.codeplex.com/?pgreatmaps 2.编译 大家都看到&#xff…

WPF GMap使用高德地图

文章目录 前言一、Nuget下载Gmap二、代码1.添加类2.加载高德地图 总结 前言 近日在项目中用到了GMap&#xff0c;并且Gmap中使用了高德地图&#xff0c;特此记录一下。 一、Nuget下载Gmap 在Nuget中搜索GMap&#xff0c;选择GMap.NET.Presentatiom进行下载安装。&#xff08;…

GMap.NET使用教程

原文地址&#xff1a;GMap.NET使用教程 GMap.NET是一个强大、免费、跨平台、开源的.NET控件&#xff0c;它在Windows Forms和WPF环境中能够通过Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等实现路径规划、地理编码以及地图展示功能&#xff0c;并支持缓存和运…

基于GMap.NET库实现的Windows桌面地图工具软件分享

0 前言 由于工作中经常和地图、GPS坐标转换、GPS轨迹查看等内容相关&#xff0c;经常要借助一些在线网站和工具来查看地图和位置等&#xff0c;在一次偶然的机会中了解到一个GMap.NET开源的桌面地图库和基于GMap.NET实现的MapDownloader地图下载工具&#xff0c;于是也想实现一…

GMap.NET入门详细教程【4】--------为控件添加事件,在鼠标单击时打点

GMap.NET入门 下载 GMap.NET&#xff0c;并在VS中添加GMap.NET控件初始化并加载一张地图添加标记点、线、多边形为控件添加事件&#xff0c;在鼠标单击时打点 快捷添加 选中窗体中的GMap控件&#xff0c;并查看内置事件 在这里&#xff0c;通过使用MouseDown和DoubleClick事…

GMap.net控件学习记录

主要参考网址 http://www.cnblogs.com/luxiaoxun/p/3802559.html http://www.cnblogs.com/luxiaoxun/p/3463250.html http://blog.csdn.net/onepiecehuiyu/article/details/19159565 GMap官方网址 http://greatmaps.codeplex.com/ WGS84&#xff0c;GCJ02&#xff0c;BD09坐标转…

Gmap使用说明,通过输入经纬度查询位置

由于本人对于Gmap的使用时间不长&#xff0c;有很多东西不是太熟悉&#xff0c;所以本人的代码有借鉴的部分&#xff0c;如有发现侵权&#xff0c;还请及时联系本人。 我目前已经基本实现了&#xff0c;地图的放大、缩小、平移的功能。完成了鼠标单击标点&#xff0c;输入经纬度…

GMap.net 自定义Marker

说明 自定义Marker部分内容来源于互联网&#xff0c;具体来源不记得了&#xff0c;若有人发现此处没注明出处&#xff0c;请海涵&#xff01; nuget包 GMapMarkerArrow using GMap.NET.WindowsForms; using System; using System.Collections.Generic; using System.Linq; usin…

C#基于开源地图GMap的开发示例

一.介绍 本示例程序是我在做项目前的探索示例。示例中测试了一些简单的功能&#xff0c;满足了我项目中的基本功能。更进一步的开发&#xff0c;有待继续研究。 二.项目源代码地址 源代码下载地址 三.项目讲解 1.引用GMap的dll文件 利用GMap开发&#xff0c;需要用到两个…

GMAP一款比对工具用于ALLHiC构建等位基因表

在ALLHiC使用过程中需要构建Allele.ctg.table&#xff0c;用于过滤多倍体基因组中因等位序列相似引起的HiC噪音的必要输入。官网提供了两种办法&#xff0c;一种是blastn&#xff0c;需要对草图基因组进行注释&#xff0c;这个过程挺麻烦的&#xff0c;在最下边看到了也可以使用…

Gmap使用心得分享C#-winform-Gmap

目录 一、Gmap库引用 1.下载Gmap引用库 2.Visual Studio添加项目引用 &#xff08;1&#xff09;打开项目后点击项目后添加引用 ​ &#xff08;2&#xff09;浏览本地库 &#xff08;3&#xff09;添加引用即可 二、Gmap使用流程 1.添加GmapControl 2.图…

基于GMap.Net的地图解决方案

一 地图的加载与显示 关于GMap的介绍与使用可以看我以前的文章: GMap.Net开发之在WinForm和WPF中使用GMap.Net地图插件 GMap.Net是.Net下一个地图控件,可以基于Http协议加载各个公司的地图,如Google,Bing,ArcGIS的,主要原理是通过解析各个公司的地图服务的URL,传入相应的…

Jersey框架常用注解3:媒体类型注解@Consumes和@Produces

Consumes 指定http请求的MIME类型&#xff0c;默认是*/*&#xff0c;表示任意的MIME类型。该注解的值是数组类型&#xff0c;支持多个MIME类型&#xff0c;可以使用MediaType来指定MIME类型。 Produces 指定http响应的MIME类型&#xff0c;默认是*/*&#xff0c;表示任意的M…

12.@RequestMapping中的consumes属性和produces属性

请求头header中很重要的两个参数:Accept:text/html只在响应中存在,表示当前请求希望服务器将来返回的数据类型是text/htmlContent-Type:application/json既可以出现在请求中,也可以出现在响应中,例如响应中代表服务器响应的是什么数据类型响应中response.setContentType("…

springmvc @RequestMapping注解中produces以及consumes属性的含义

http协议基础知识 首先需要了解什么叫MediaType&#xff08;媒体类型&#xff09;&#xff1f; 通俗来说&#xff0c;在http协议中&#xff0c;用来表示传输内容的格式就是MediaType&#xff0c;比如text/html&#xff0c;application/json等&#xff0c;其中text代表介质&am…

AJAX、异步和同步区别

1. 概念&#xff1a; ASynchronous JavaScript And XML (异步的JavaScript 和 XML) 异步和同步区别 2.Ajax作用&#xff1a; Ajax 是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。通过在后台与服务器进行少量数据交换&#xff0c;Ajax 可以使网页…

js异步与同步的区别

你应该知道&#xff0c;javascript语言是一门“单线程”的语言&#xff0c;不像java语言&#xff0c;类继承Thread再来个thread.start就可以开辟一个线程&#xff0c;所以&#xff0c;javascript就像一条流水线&#xff0c;仅仅是一条流水线而已&#xff0c;要么加工&#xff0…

同步调制和异步调制区别

在PWM控制电路中&#xff0c;载波频率 fc 和调制信号频率 fr 之比成为载波比&#xff0c;根据载波信号和信号波信号是否同步分为同步调制和异步调制。 1 什么是异步调制&#xff1f; 载波信号和调制信号不保持同步的方式称为异步调制&#xff0c;如下图所示&#xff0c;异步调…