美文网首页移动Arcgis
Arcgis 生成离线地址定位器(.loc)

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

作者: sayyid | 来源:发表于2016-08-16 17:55 被阅读524次

    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才可以。

    相关文章

      网友评论

        本文标题:Arcgis 生成离线地址定位器(.loc)

        本文链接:https://www.haomeiwen.com/subject/vmodsttx.html