首先显示离线地图就不多说了,supermap官方实例里面有,本文主要讲解怎么显示坐标点以及自定义点符号。
先上一张效果图,其中红色点是supermap自带的点符号,蓝色点是我添加的自己的图片。
一、显示坐标点
我们首先需要新建一个点GeoPoint的实例,然后再把GeoPoint添加到一个地图的跟踪图层TrackingLayer上.
跟踪图层类TrackingLayer。
在 SuperMap 中,每个地图窗口都有一个跟踪图层,确切地说,每个地图显示时都有一个跟踪图层。 跟踪图层是一个空白的透明图层,总是在地图各图层的最上层,主要用于在一个处理或分析过程中,临时存放一些图形对象,以及一些文本等。 只要地图显示,跟踪图层就会存在,不可以删除跟踪图层,也不可以改变其位置。
在 SuperMap iMobile中跟踪图层的作用主要有以下方面:
当不想往记录集中添加几何对象,而又需要这个几何对象的时候,就可以把这个几何对象临时添加到跟踪图层上,用完该几何对象之后清除跟踪图层即可。例如,当需要测量距离时,需要在地图上拉一条线,但是这一条线在地图上并不存在,此时就可以使用跟踪图层来实现。
//实例化一个跟踪图层
TrackingLayer trackingLayer= m_mapcontrol.getMap().getTrackingLayer();
// 实例化一个风格对象,并进行相应设置
GeoStyle geoStyle_P = new GeoStyle();
geoStyle_P.setMarkerAngle(14.0);
/*设置点状符号的大小,单位为毫米,精确到0.1毫米*/
geoStyle_P.setMarkerSize(new Size2D(3, 3));
//设置点的符号,每个点符号对应一个值
geoStyle_P.setMarkerSymbolID(2);
//设置点颜色,只有自带的几个点符号可以改颜色,自定义的图像应该不能改
geoStyle_P.setPointColor(new com.supermap.data.Color(255,0,0));
//x,y是你当前地图的坐标系对应的坐标x,y值
x=114.1234;
y=23.43;
//实例化一个点几何对象
GeoPoint geoPoint = new GeoPoint(x, y);
geoPoint.setStyle(geoStyle_P);
//把点添加到跟踪图层
layer.add(geoPoint, "point");
这样就可以显示坐标点了,但是注意你的坐标点最好跟你地图的坐标系对应,否则可能会不显示点符号。
二、自定义点符号
自定义点符号首先你要准备一个图片,最好是png格式的。下图是我准备的图片
每个离线地图都是放在工作空间中的,而每个地图符号都放在工作空间中的工作空间管理器——资源下面,用supermap桌面端打开你的离线地图所在的工作空间,也就是.smuw文件。找到工作空间管理器——资源,找到点符号库并双击打开,你会看到很多符号,把你的鼠标悬停在符号的上面会显示符号编号,符号编号对应着MarkerSymbolId,修改符号的形状只要修改符号对应的编号就可以了。
如果想添加自己的符号,就在点符号库的右上角文件——导入——栅格符号,就可以看到你添加的符号了,然后将MarkerSymbolId修改为你自定义符号对应的编号就可以了。