注:
目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。
对表格中的位置进行地理编码工具将大型表格中的位置地理编码为点。 输出是 ArcGIS Enterprise 门户内容中的要素图层,可用于在 ArcGIS Enterprise、ArcGIS Desktop 或其他产品中进行分析。 对表格中的位置进行地理编码将在内容中创建项目,其中包含经过地理编码的数据。
工作流示意图
使用 GeoAnalytics Tools 进行的分析
通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics Tools 和 ArcGIS 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 字段。
如果决定返回其他地理编码信息,则将返回其他字段。 要查看可能由定位器返回的字段样本,请参阅服务输出。
局限性
工具具有以下限制:
- 只有管理员将定位器配置为实用程序服务后,才能使用该定位器。 有关详细信息,请参阅将门户配置为地理编码地址。
- 您无法将 ArcGIS World Geocoder 与 GeoAnalytics Tools 一起使用。 要使用 ArcGIS World Geocoder,请使用对表格中的位置进行地理编码标准分析工具。
对表格中的位置进行地理编码的工作原理
必须针对批量地理编码配置定位器
要使定位器显示在可用定位器列表中,则必须针对批量地理编码配置该定位器。 应按照以下方式对定位器进行配置:
- 定位器必须为门户实用程序服务。
- 该定位器应针对定位器服务配置 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 Pro 分析工具
对表格中的位置进行地理编码标准工具可在 ArcGIS Pro 中找到。