Skip To Content

对表格中的位置进行地理编码

对表格中的位置进行地理编码对表格中的位置进行地理编码工具提供了一种将大型表格中的位置地理编码为点的便捷方式。输出是 ArcGIS Enterprise 门户内容中的要素图层,可用于在 ArcGIS EnterpriseArcGIS Desktop 或其他产品中进行分析。对表格中的位置进行地理编码将在内容中创建项目,其中包含经过地理编码的数据。

工作流示意图

对表格中的位置进行地理编码工作流示意图

使用 GeoAnalytics Tools 进行的分析

通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics ToolsArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别

示例

一家国内连锁店具有多个 CSV 文件,每个文件包含 100,000 个事务的地址。市场总监想要了解这些事务的主要集中区域,从而确定新店铺的位置。GIS 分析师可以使用 对表格中的位置进行地理编码,对 100,000 个地址进行地理编码。对要素图层进行地理编码后,分析师即可使用该工具查找支持另一家店铺的区域。

用法说明

准备使用“对表格中的位置进行地理编码”工具时,请查看使用 ArcGIS GeoAnalytics Server 进行地理编码的最佳做法

对表格中的位置进行地理编码工具需要用表格输入。可以使用大数据文件共享中的表格数据集,也可以使用要素服务中的表格图层,其中具有至少一个表格或文件。如果内容中没有任何表格、CSV 文件或 XLS 文件,则此工具将处于禁用状态。可以使用添加项目按钮添加文件内容

注:

您无法上传将要通过 ArcGIS GeoAnalytics Server 进行地理编码的 CSV 文件或 XLS 文件。如果想要上传将要进行地理编码的数据集,请使用“对表格中的位置进行地理编码”标准工具。要了解有关该工具的详细信息,请参阅对表格中的位置进行地理编码

仅当选择 ArcGIS World Geocoder 后,才会显示国家/地区选项。配合使用 ArcGIS World Geocoder对表格中的位置进行地理编码工具时会消耗配额。

如果输入数据全部在一个字段中,请单击单个字段。如果表格具有多个均包含不同地址信息的数据字段,请单击多个字段

任何在地理编码过程中不匹配的要素都将包含在没有几何图形的输出中。

您可以选择返回由定位器提供的其他地理编码字段。如果不返回这些字段,您的结果中将包含以下内容:

  • 您的原始输入数据
  • 地理编码位置的点几何
  • 一个新的对象 ID 字段,如果将结果存储在时空数据存储中,还会有 globalid 字段。

如果决定返回其他地理编码信息,则将返回其他字段。要查看可能由定位器返回的字段样本,请参阅服务输出

限制

对表格中的位置进行地理编码的工作原理

必须针对批量地理编码配置定位器

要使定位器显示在可用定位器列表中,则必须针对批量地理编码配置该定位器。应按照以下方式对定位器进行配置:

  • 定位器必须为门户实用程序服务。
  • 该定位器应针对定位器服务配置 numThreads 属性。该 numThreads 属性不是必需的,但该属性有助于更快完成分析作业。

ArcGIS API for Python 示例

可通过 ArcGIS API for Python 获取“对表格中的位置进行地理编码”工具。

本示例可对美国西北地区邮件地址的大数据文件共享进行地理编码。


# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
from arcgis.geoanalytics import find_locations

# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False)
if not portal.geoanalytics.is_supported():
    print("Quitting, GeoAnalytics is not supported")
    exit(1)   

# Find the big data file share dataset you'll use for analysis
search_result = portal.content.search("", "Big Data File Share")

# Look through the search results for a big data file share with the matching name
bdfs_search = next(x for x in search_result if x.title == "bigDataFileShares_MailingAddresses")

# Look through the big data file share for the dataset containing Northwest addresses
NW_addresses = next(x for x in bdfs_search.layers if x.properties.name == "NorthWest")
geocode_server = "https://mymachine.domain.com/server/rest/services/USALocator/GeocodeServer"

geo_parameters =  {"field_info": "[[\"OBJECTID\", \"TEXT\", 255], [\"Street\", \"TEXT\", 255], [\"City\", \"TEXT\", 255], [\"State\", \"TEXT\", 255], [\"ZIP\", \"TEXT\", 255]]",
                   "column_names": "",
                   "file_type": "table",
                   "column_delimiter": "",
                   "text_qualifier": "",
                   "field_mapping": "[[\"Street\", \"Street\"], [\"City\", \"City\"], [\"State\", \"State\"], [\"ZIP\", \"ZIP\"]]",
                   "singleline_field": "Single Line Input",
                   "header_row_exists": "true"}

# Geocode the dataset containing written addresses to create corresponding latitude and longitude features
geocode_result = find_locations.geocode_locations(input_layer = NW_addresses, 
                                                  output_name = "geocoded_NW_USA",
                                                  geocode_service = geocode_server,
                                                  geocode_parameters = geo_parameters)


# Visualize the tool results if you are running Python in a Jupyter Notebook
processed_map = portal.map('Western USA', 5)
processed_map.add_layer(geocode_result)
processed_map

类似工具

使用对表格中的位置进行地理编码工具,对存储在大数据文件共享和服务中的表格位置进行地理编码。其他工具或许在解决略有差异的类似问题时十分有用。

Map Viewer 分析工具

如果想要对 CSV 文件或 XLS 文件进行地理编码,或者想要使用 ArcGIS World Geocoder,请使用对表格中的位置进行地理编码标准工具。

ArcGIS Desktop 分析工具

对表格中的位置进行地理编码标准工具可在 ArcGIS Pro 中找到。