【教程连载】ArcGIS for iOS 开发系列(4) – 基础篇-地图组件

    在“Hello World Map”里我们已经成功加载了地图,以前没接触过GIS的同学先得补一补功课,起码要了解空间对象和数据模型的基本概念。常见的地图服务,其背后都有一个地图文档(*.mxd或*.msd),文档中有很多页(图层Layer),每页上又有许多空间要素(点、线、面)可能对应了现实世界中的水井、道路、绿地等等,同时地图文档中还保存了可见性、符号化、比例尺等很多配置信息,用于控制地图的最终呈现效果。    

    地图组件MapView是地图最基本的容器,负责地图展示和用户交互,因此AGSMapView也是最重要的类,它提供了一系列接口帮助开发者轻松叠加不同的空间数据、漫游地图、显示信息等等。

1. 加载图层

    “Hello World Map”示例中叠加了两个图层,分别是基础底图图层(切片地图服务)和人口分布地图图层(动态地图服务),添加的方法很简单,其中Name参数是Layer的唯一标示,不能重名:

//按+1顺序添加图层
[self.mapView addMapLayer:tiledLyrwithName:@"TiledLayer"];
//按指定顺序插入图层
[self.mapView insertMapLayer:tiledLyrwithName:@"TiledLayer0" atIndex: 0];
//按名称删除指定图层
[self.mapViewremoveMapLayerwithName:@"TiledLayer"];

    看得出来,MapView中图层绘制的顺序是自下而上,第一个加载的图层意义比较特殊,常称为BaseMapLayer,它将初始化整个地图容器的空间参考(Spatial reference)、初始范围(Initial extent)和全图范围(Full extent),这很关键,因为如果接下来添加的图层空间参考不同,该图层就显示不出来(动态图层除外,可以重投影),那怎么知道是否加载成功?需要引用一个重要的协议:AGSMapLayerDelegate,图层消息委托,会在下一节中详细介绍。

    目前支持的图层类型包括了:

·         切片地图服务图层(AGSTiledMapServiceLayer)

·         动态地图服务图层(AGSDynamicMapServiceLayer)

·         影像服务图层(AGSImageServiceLayer)

·         要素服务图层(AGSFeatureLayer)

·         微软Bing服务图层(AGSBingMapLayer)

·         OSM服务图层(AGSOpenStreetMapLayer)

·         WMS服务图层(AGSWMSLayer)

·         离线切片服务图层(AGSLocalTiledLayer)

·         自定义切片服务图层(OfflineTiledLayer)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值