Arcgis 生成离线地址定位器(.loc)

1.摘要

       如果我们的应用想实现点击地图的某一个位置,自动识别点击位置附近POI点的功能(反向地理编码)。在Arcgis中,就只有通过地址定位器来实现。其实官方文档已经给出很详细的制作步骤,而且还有中文版的。那在这里只简单总结一下生成过程,然后说一下我在实际项目中遇到的问题。

2.生成

       打开Arcmap,加载进图层,这边我用的版本是10.2.2。用Arcmap自带的搜索功能(Ctrl+F)搜索Locator,点击 Create Address Locator 【图1】进入【图2】界面。

图1

      在Address Locator Style里面选择要生成的样式,里面内置的都是美国的一些内置样式,最常用的我们有点(建筑物),线(道路),面(村落)三种,分别可以对应 General - Single Field, US Address - Street Name,US Address - State。(面这块我没做过,我猜的,谁验证了告诉我一下,哈哈)

图2

      我们在Reference Data里面选要添加的图层,不要贪心,只能添加一个图层。Role选Primary Table,接着FieldMap下面带星号的必填项选择你想被反向编码的POI信息,这里我以点为例,反向编码坐标 '名称'【图3】

图3

      有个小建议,把进度条往下拖动,记得选保存地点,默认的地方藏得比较深,用到的时候不好找。【图4】

图4

      点OK,开始生成。单个图层的Locator生成完毕。下面我们来说说多图层,生成复合Locator,这在项目中应用的很普遍,因为通常来说我们项目需要编码的地理信息肯定不止一种图层。接下来还是搜索Locator,这次我们选Create Composite Address Locator【图5】,Address Locators里添加进去所有我们想复合起来的单个Locator,也就是刚才生成的那些单个Locator【图6】(刚才没有自己选储存路径的后悔去吧)。在下面我们同样的选择路径,点击OK生成完毕!

图5
图6

3.我的项目经验


1.复合地址定位器只加自己需要用到的,多余的不要加!因为可能会造成编码干扰,如果两个POI点离得很近的话。你的手指头不可能点的非常精确,这就需要多余的代码处理了,增加工作量。

2.地址定位器可以生成多个,一个项目中不一定只用一个,按需加载需要的。理由同上,比如道路和建筑物,有时候我们可以生成道路一个符合Locator,建筑物一个Locator,点击地图只识别建筑物的POI信息(可以参考高德地图的效果)。

3.为什么生成出来的.loc不能用。这个我也没查出来原因,直接生成的为什么不能用,不过我找出了解决办法。解决办法是添加到.geodatabase生成一遍地理数据库就好了,可以把生成的locator单独拿出来用,生成地理数据库请参考我上一篇文章

4.MultiPoint类型用SingleKey类型无效!即点击了位置反编码不出来。需要把点转换成Point才可以。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第二章 使用ArcPy编写脚本 ||| 第四章 查找和修复数据源 我们将在本章介绍以下案例: 引用当前地图文档 引...
    muyan阅读 15,168评论 19 23
  • 各位小伙伴们大家好,今天我向大家介绍一下苹果百度地图的使用方法,因为做过一些想关的APP,感觉百度地图还是挺方便的...
    Lee0528阅读 14,952评论 18 46
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,359评论 19 139
  • 1.摘要 在上一篇文章我们说了Arcgis生成离线地图的方法,但是一个地图类应用,只有底图是不够的。我们的应...
    sayyid阅读 14,504评论 4 1
  • 二分法,快排序,归并28327268088215对撞指针12534434511双索引技术,滑动窗口209343876
    哲哲哥阅读 1,417评论 0 0