supermap for android移动端离线地图显示及添加自定义坐标点和自定义点符号

首先显示离线地图就不多说了,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修改为你自定义符号对应的编号就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值