您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > UCMap for iOS 开发教程
UCMap for iOS 开发教程 第1页 目 录 一、配置开发环境..................................21.1配置UCMap开发环境..........................................................2二、UCMap装载地图..............................32.1矢量地图..............................................................................32.2Google Maps或Bing Maps...................................................42.3WMTS或WMS地图..............................................................62.4矢量叠加瓦片....................................................................14三、UCMap基础功能.............................163.1地图浏览............................................................................163.2Info工具.............................................................................173.3属性查询............................................................................183.4定位...................................................................................193.5要素编辑............................................................................20四、UCMap 附加功能...........................23 UCMap for iOS 开发教程 UCMap for Android 开发教程 一、配置开发环境 1.1 配置UCMap开发环境 从 下载UCMap SDK for iOS开发包。双击打开UCMap for iOS.dmg,将UCMap文件夹拖进应用程序里。 新建一个iOS工程demo1,查看项目的info,点击Build选项卡,找到Header Search Paths,添加/Applications/UCMap/include,请参考下图。 第2页 UCMap for iOS 开发教程 将开发包中lib文件夹中的libUCMap.a文件添加进Frameworks。(位于/Applications/UCMap/lib文件夹) 添加libsqlite3.0.dylib进Frameworks。 这样,就可以利用UCMap开发地图程序了。 二、UCMap装载地图 2.1 矢量地图 UCMap支持shapefile矢量地图,支持海量矢量要素的采集和编辑。装载矢量地图的步骤:1)准备一份shapefile格式的矢量地图,利用“UCMap地图配置程序.command”实现对地图的配置处理,具体处理过程详见 UCMap地图配置过程详解。2)将配置生成好的矢量地图拷贝到xcode工程里。载入代码,如:其中,nj2为配置生成好的矢量地图的文件夹名。需要将地图文件夹复制到应用程序的沙盒里,这样才能保存您的编辑结果。具体可以参见开发包里面的demo4。3)演示效果第3页 UCMap for iOS 开发教程 2.2 Google Maps或Bing Maps UCMap支持在线或离线的GoogleMaps或BingMaps,离线瓦片,即事先将瓦片地图下载下来并存储到设备存储卡中,UCMap支持GoogleMaps或BingMaps的自动坐标纠正。具体步骤:1)将开发包中的OpenSourceMap.xml文件复制到手机或模拟器的sdcard根目录下。2)载入代码:第4页 UCMap for iOS 开发教程 第5页 具体可以参见开发包里面的demo2。OpenSourceMap.xml文件说明:maxExtent、numberOfLayers、center设置一般不需要修改,含义见2.3。另外,type=OpenSourceMap,这说明这个图层是一个开源地图图层。google的显示比例等级数为19层,bing为18层,从0开始,InitZoomIndex表示地图加载之后直接从第8层开始显示。InitMapType:设置为“0”,表示地图加载之后,以google地图为数据源;设置为“1”,表示以bing地图为数据源,切换数据源的操作可以通过OpenSourceMap类的setMapMode来实现。下面紧跟的两个MapType,说明了google和bing不同的地图版本号。3)演示效果 UCMap for iOS 开发教程 2.3 WMTS或WMS地图 UCMap支持OGC的WMTS、WMS、WFS、WCS等标准,即UCMap能访问符合WMTS、WMS发布的地图服务。 1、访问WMTS地图: WMTS是OGC瓦片标准,UCMap支持WMTS服务,目前支持WMTS的服务端主要有Geowebcache、Geostar GeoGlobe支持WMTS瓦片标准,下面分别以UCMap访问天地图为例,具体步骤: 1)将开发包中的TianDiVector.xml文件复制到xcode的工程目录下。第6页 UCMap for iOS 开发教程 2)载入代码:3)演示效果:TianDiVector.xml文件说明:第7页 UCMap for iOS 开发教程 第8页 2、访问WMS地图 以访问geoserver为例,来说明这个访问过程。Geoserver服务器的搭建和添加配置地图请参考网上及相关资料。 1)准备地图服务。 启动geoserver服务器,将shapefile地图数据添加到geoserver,配置地图服务。 笔者在geoserver上配置的地图服务的相关信息如下: shapefile地图数据bjshp文件夹放在\webapps\geoserver\data\data\下面。 注意:Shp文件名昀好不要出现中文,否则可能出现乱码而导致不能添加图层。 添加workspace: 添加Vector Data Source: UCMap for iOS 开发教程 添加发布图层:需要注意SRS选择EPSG:4326 第9页 UCMap for iOS 开发教程 添加layer group: 这里为bjshp添加3个图层: 第10页 UCMap for iOS 开发教程 第11页 这样地图服务就配置好了。可以通过=EPSG:4326&format=image/png来测试已配好的地图服务。 2)准备配置文件。 参照开发包里的nanjing.xml,根据以上配置的地图服务信息来编写配置文件。首先解释一下nanjing.xml里各项属性的含义。 a)maxExtent:表示geowebcache 生成瓦片时采用的地图昀大范围,坐标系统为EPSG:4326 时,该值为‐180,180,‐90,90。 UCMap for iOS 开发教程 第12页 b)numberOfLayers:表示图层个数。 注意:这里一个layer……/layer为一个图层。 例如,笔者配置的地图服务bjshp虽然包含3个图层(creable:city_region、creable:road_polyline、creable:building_point),但是作为一个整体,这里的numberOfLayers应设置为1。 c)center:表示地图中心点位置,地图加载之后会自动以这个点为中心显示。中心点的设置,可以通过=EPSG:4326&format=image/png访问地图时,鼠标放在地图中心,获得右下方显示的坐标值即可。 d)type:图层类型,WMSWithCache 表示带有瓦片缓冲机制的WMS 标准图层。 e)name:为图层名称,与geoserver 中WMS 中的Layer Group 名字一致。 f)url:为服务器WMS 的url,应该使用真机ip 地址替换上面的例子。(如果真机连上电脑,使用电脑的网络,那么该ip 地址可以是内网地址,便于调试(模拟器一定是使用电脑网络,当然可以使用内网地址。如果该ip 是局域网内部的另外一台电脑,那么必须保证该电脑的tomcat 或IIS 使用的端口要在网络防火墙中处于开放状态)(如果真机使用3G、GPRS 网络,那么该ip 必须是公网地址,服务器处于内网的话,还需要做端口映射,将tomcat 或IIS 使用的端口号映射到那个服务器上)。 若在模拟器上测试,这里的ip地址都设置为10.0.0.2。 g)WFSServerUrl:为服务器WFS 的url,应该使用真机ip 地址替换上面的例子。 若在模拟器上测试,这里的ip地址都设置为10.0.0.2。 h)namespace:为该地图所属的名字空间,与geoserver 中设置一致。 i)namespaceURL:为名字空间对应的url,与geoserver 中设置一致。 j)maxExtent:为地图昀大范围,与上面那个maxExtent 相同即可。 k)resolutions:为显示比例尺列表,用逗号分割。 比例尺的获取: 打开=W
本文标题:UCMap for iOS 开发教程
链接地址:https://www.777doc.com/doc-4077740 .html