GMap.NET开发技巧(五)-扩展增强Marker库

2012年10月18日 分类: GPS系统

 

由于GMap.NET相对比较灵活,可以做更复杂一点的封装,使之适合商业程序软件的实际应用。

因此我就开发一些通用的Marker和Tooltip,打包成一个公用的DLL,供开发者使用,而不用关系具体的细节,提高开发效率。

GMap.NET扩展增强库GMap.NET扩展增强库 已下载 2881 次

1.省份类GMapExt.MapArea,自动生成各个省份的轮廓。

using GMapExt;

//生成单个省份的轮廓
GMapPolygon henanProvince = CreateMapPolygon("河南");
provinceOverlay.Polygons.Add(henanProvince );
//生成所有省份的轮廓
List<GMapPolygon> gpList = MapArea.AllMarkers();
foreach (GMapPolygon gp in gpList)
{                
    provinceOverlay.Polygons.Add(gp);
}
           

2.文字标签类GMapExt.GMapSimpleToolTip

 编写此类,主要是因为GMap.NET的文字标注占用空间太大,不简洁,当地图图元比较多的时候,容易重叠不好看。因此写了一个类似于原生地图的文字标注,直接在图元正下方居中显示文字标注。非常清爽。

加油站标注

GMapSimpleToolTip gst = new GMapSimpleToolTip(gMapMarker);
gst.Font = new Font("宋体", 9, FontStyle.Underline);
gst.Offset = new Point(5, -10);
GMapSimpleToolTip gst = new GMapSimpleToolTip(gMapMarker);
gst.Font = new Font("宋体", 9, FontStyle.Underline);
gst.Offset = new Point(5, -10);
gMapMarker.ToolTip = gst;

 

3.地图纠偏类

参看前面的地图纠偏的文章。

GMap.NET开发技巧(四)-GPS地图坐标偏移及地图纠偏解决方法和代码

4.普通的图片Marker

Image img = GetImageByLayer(layerName);
new GMapImageMarker gMapMarker = new GMapImageMarker(pl, Name, img);

5.可以旋转角度的图片Marker GMapExt.AngleMarker

AngleMarker am = new AngleMarker(lastPlace.GMarkerPointLatLng, angle, Resources.arrow_up, strTimeTag);

GMap.NET开发技巧(二)-开发有角度方向的图片标注Marker

6.动画GifMarker

参考下面的文章

GMap.NET开发技巧(一)-显示动画图标的Image Marker

(16756)

标签: ,

8 条评论 于 “GMap.NET开发技巧(五)-扩展增强Marker库”

  1. 情何以堪
    2012年11月1日14:54
    1

    下载这个加强版dll测试了一下,甘肃和福建两个省的坐标和贵州的是一样的,湖南的中间有一条竖线

    • admin
      2012年11月1日15:19
      2

      我测试一下

  2. 情何以堪
    2012年11月1日15:56
    3

    我看了一下,你资源文件中这三个地方的坐标是一样的,澳门的坐标为空

    • admin
      2012年11月1日15:58
      4

      是的,我修正一下。

  3. 情何以堪
    2012年11月1日16:02
    5

    好,我这边刚好有这个需求,借你坐标用一下

    • admin
      2012年11月1日16:02
      6

      好的

  4. 情何以堪
    2012年11月1日16:10
    7

    公司在大连啊,才从哪儿回来没多久- -!话说网站慢了点,评论不会自动刷新?这个编辑框输入法好难切换中文哦

    • admin
      2012年11月1日18:07
      8

      我们是6M 联通光纤,应该不慢。评论需要审核后才能显示,不然会被监管的。

Leave a Comment