跳到目录

的目标电弧编码器是为地理编码地址和通过ArcGIS REST API地理编码服务.

包含示例和小品的完整站点https://dieghernan.github.io/arcgeocoder/

为什么?电弧编码器?

电弧编码器是一个提供轻量级接口的包,用于使用ArcGIS REST API服务进行地理编码和反向地理编码。的目标电弧编码器是以较少的依赖项访问ArcGIS REST API,例如卷曲。在某些情况下,卷曲可能不可用或无法访问,因此电弧编码器使用基本函数来克服此限制。

的界面蜂巢编码器旨在简化对API提供的所有功能的访问。使用的API端点电弧编码器查找候选地址反转地理代码,可以访问没有需要API密钥.

还有其他包比电弧编码器,具有类似的功能:

安装

安装电弧编码器CRAN(起重机)具有:

安装.包(“arcgeocoder”)

您可以安装的开发版本电弧编码器具有:

遥控器::安装github(“dieghernan/arcgeocoder”)

或者,您可以安装电弧编码器使用r-宇宙:

#在R中安装电弧编码器:
安装.包(“电弧编码器”,
回购= c(c)(
    "https://dieghernan.r-universe.dev网址",
    "https://cloud.r-project.org"
  )
)

用法

地理编码和反向地理编码

注:示例改编自潮汐编码器包裹

在第一个示例中,我们将使用arc_geo()功能。请注意电弧编码器可以立即工作,并且您不需要提供任何API密钥即可开始地理编码!

图书馆(电弧编码器)
图书馆(dplyr公司)

#用地址创建数据帧
一些地址(_A) <- 三叉戟(
  ~名称,~地址,
  “白宫”,“华盛顿特区宾夕法尼亚大道西北1600号”,
  “泛美金字塔”,加利福尼亚州旧金山蒙哥马利街600号,邮编94111,
  “威利斯大厦”,“233 S Wacker Dr,芝加哥,IL 60606”
)

#地理编码地址
纬度长度(_L) <- 圆弧几何(_G)(某些地址$地址,纬度= “纬度”,长= “经度”)
#>   |                                                          |                                                  |   0%  |                                                          |=================                                 |  33%  |                                                          |=================================                 |  67%  |                                                          |==================================================| 100%

在本例中,只从geocoder服务返回了几个字段,但是full_results=真可用于从geocoder服务返回所有数据。

查询 纬度 经度 地址 分数 x个 克敏 伊敏 x最大值 ymax公司 工作狂 最新Wkid
华盛顿特区宾夕法尼亚大道西北1600号 38.89768 -77.03655 哥伦比亚特区华盛顿宾夕法尼亚大道西北1600号,20500 100 -77.03655 38.89768 -77.03755 38.89668 -77.03555 38.89868 4326 4326
加利福尼亚州旧金山蒙哥马利街600号,邮编94111 37.79517 -122.40278 加利福尼亚州旧金山蒙哥马利街600号,94111 100 -122.40278 37.79517 -122.40378 37.79417 -122.40178 37.79617 4326 4326
伊利诺伊州芝加哥S Wacker Dr 233号,邮编60606 41.87877 -87.63580 伊利诺伊州芝加哥S Wacker Dr 233号,邮编60606 100 -87.63580 41.87877 -87.63680 41.87777 -87.63480 41.87977 4326 4326

要执行反向地理编码(从地理坐标中获取地址),可以使用arc_reverse_geo()功能。参数类似于arc_geo()函数,但现在我们用x个论据。这里使用的数据集来自上面的geocoder查询。在由地址.

颠倒 <- 弧反向几何(
x个= 锁定(_L)$经度,
= 纬度长度(_L)$纬度,
地址= “找到地址”
)
#>   |                                                          |                                                  |   0%  |                                                          |=================                                 |  33%  |                                                          |=================================                 |  67%  |                                                          |==================================================| 100%
x个 找到地址(_F)
-77.03655 38.89768 白宫,1600 Pennsylvania Ave NW,Washington,DC,20500,USA
-122.40278 37.79517 Mbia保险公司,美国加利福尼亚州旧金山蒙哥马利街600号,邮编94111
-87.63580 41.87877 Mary Kim博士,233 S Wacker博士,Lowr Level,芝加哥,伊利诺伊州,60606,美国

也可以使用以下命令搜索参考区域内或附近的特定位置类别筛选。请参阅数据库文档中的更多信息弧类别(_C).

在下面的示例中,我们将查找法国埃菲尔铁塔附近与食品相关的POI(即餐厅、咖啡店、面包店)。

图书馆(ggplot2) #用于绘图

#步骤1:使用多字段查询定位埃菲尔铁塔

埃菲尔铁塔 <- 弧_地理_多重(
地址= “埃菲尔铁塔之旅”,
城市= “巴黎”,
国家代码= “法国”,
语言代码= “法国”,
自定义查询= 列表(outFields(外场)= “长标签”)
)

#显示结果
埃菲尔铁塔 %>%
  选择(离子,纬度,长标签)
#>#A台:1×3
#>lon-lat长标签
#><dbl><dbl><chr>
#>1 2.29 48.9 Tour Eiffel,Avenue Gustave Eiffel,75007,7e区,Par…


#使用lon、lat启动搜索并使用category=Food
食物埃菲尔 <- 弧地理类别(“食物”,
x个= 埃菲尔铁塔$离子,
= 埃菲尔铁塔$纬度,
限制= 50,完整结果(_R)= 真的
)

#按食物类型绘制
ggplot图(埃菲尔铁塔,原子发射光谱(x个,)) +
  地理点(形状= 17,颜色= “红色”,大小= 4) +
  地理点(数据= 食物埃菲尔,原子发射光谱(x个,,颜色= 类型)) +
  实验室(
标题= “埃菲尔铁塔附近的食物”,
字幕= “使用电弧编码器”,
颜色= “地点类型”,
x个= "",
= "",
标题= “来自ArcGIS REST API服务的数据”
  )

电弧编码器r-空间

转换电弧编码器平方英尺对象(地理空间格式):

图书馆(平方英尺)

食品安全 <- st_as_sf(食物埃菲尔,
坐标= c(c)(“lon”(长),“纬度”),
  #结果坐标的CRS在这里
阴极射线管= 埃菲尔铁塔$工作狂
)

食品安全
#>包含50个功能和75个字段的简单功能集合
#>几何图形类型:POINT
#>尺寸:XY
#>边界框:xmin:2.289018 ymin:48.85511 xmax:2.299797 ymax:48.86257
#>大地测量CRS:WGS 84
#>#A台:50×76
#>q_类别q_x q_y q_bbox_xmin q_bbos_ymin q_bboxmax q_bb箱_ymax
#>*<chr><dbl><dbl><lgl><lgl>
#>1食品2.29 48.9 NA NA NA NA
#>2食品2.29 48.9 NA NA NA NA
#>3食物2.29 48.9 NA NA NA NA
#>4食物2.29 48.9 NA NA NA NA
#>5食物2.29 48.9 NA NA NA NA
#>6食物2.29 48.9 NA NA NA NA
#>7食品2.29 48.9 NA NA NA NA
#>8食品2.29 48.9 NA NA NA NA
#>9食品2.29 48.9 NA NA NA NA
#>10食品2.29 48.9 NA NA NA NA
#> # 40多行
#> # 还有69个变量:地址<chr>、分数<int>、x<dbl>、y<dbl]、,
#>#Loc_name<chr>,状态<chr],分数<int>,匹配地址<chr>,
#>#长标签<chr>,短标签<chr>,地址_类型<chr,
#>#PlaceName<chr>、Place_addr<chr>>、Phone<chr]、URL<chr>、Rank<int>、,
#>#AddBldg<chr>、AddNum<chr>AddNumFrom<chr、AddNum To<chr,
#>#添加范围<chr>、侧面<chr>>、StPreDir<chr]、StPreType<chr>…

ggplot图(食品安全) +
  地理msf(原子发射光谱(颜色= 类型)) +
  坐标_sf(阴极射线管= 3035)

请参阅其他文章,说明如何电弧编码器可以与结合使用传单创建动态地图平方英尺特拉创建静态地图.

引用

Hernangómez D(2024)。arcgeocoder:使用ArcGIS REST API服务进行地理编码.doi:10.32614/CRAN.package.arcgeocoder,https://dieghernan.github.io/arcgeocoder/.

LaTeX用户的BibTeX条目是

@手动{R-电弧编码器,
标题={{反正码器}:使用{ArcGIS}{REST}{API}服务}进行地理编码,
国防部={10.32614/CRAN.package.arcgeocoder},
作者={Diego Hernangómez},
={2024},
版本={0.2},
网址={https(https)://dieghernan.github.io公司/电弧编码器/},
摘要={Lite接口对于使用ArcGIS REST API服务查找世界各地的地址或企业位置<https(https)://developers.arcgis.com开发人员/休息/地理编码/应用程序编程接口-参考/概述-世界-地理编码-服务.htm>。可以将地址文本转换为候选位置,也可以将位置转换为地址。不需要API密钥。},
}

工具书类

坎本、杰西、迭戈·埃尔南戈麦斯、克里斯托弗·贝朗格和丹尼尔·波森里德。2021. “潮汐编码器:地理编码的R包。”开源软件杂志6 (65): 3544.https://doi.org/10.21105/joss.03544.
迭戈·埃尔南戈麦斯。2024钠长石:与提名API服务的接口(版本0.2.1)。https://doi.org/10.5281/zenodo.5113195.