Python Bing地图地理编码数据流的结果不准确
我使用PythonPost请求对公司分支机构的地址进行地理编码,但结果非常不准确 我看了一下答案,但问题是有些结果并没有得到处理。我的问题不同,因为我所有的结果都不准确,即使是那些具有Python Bing地图地理编码数据流的结果不准确,python,xml,post,geocoding,bing-maps,Python,Xml,Post,Geocoding,Bing Maps,我使用PythonPost请求对公司分支机构的地址进行地理编码,但结果非常不准确 我看了一下答案,但问题是有些结果并没有得到处理。我的问题不同,因为我所有的结果都不准确,即使是那些具有Confidence=“High”的结果。我有一个企业账户 以下是说明如何创建地理编码作业和上载数据的文档: 下面是我要上传的代码的基本版本: import requests SDS_Geocode_URL = "https://spatial.virtualearth.net/REST/v1
Confidence=“High”
的结果。我有一个企业账户
以下是说明如何创建地理编码作业和上载数据的文档:下面是我要上传的代码的基本版本:
import requests
SDS_Geocode_URL = "https://spatial.virtualearth.net/REST/v1/dataflows/geocode?"
geocode_post_vars = {
"input": "xml",
"output": "json",
"content-type": "application/xml",
"key": Bing_key,
}
geocode_Post_URL = (
SDS_Geocode_URL
+ urllib.parse.urlencode(geocode_post_vars)
+ "&dataLocation="
+ "https://account-name.blob.core.windows.net/myDataFile.xml"
)
r = requests.post(geocode_Post_URL)
一旦数据被地理编码,我就使用GET请求来获取地理编码的XML
geocode_Results = requests.get(
"https://spatial.virtualearth.net/REST/v1/dataflows/Geocode/"
+ jobID
+ "/output/succeeded?key=" + Bing_key
)
print(geocode_Results.text)
我得到的结果如下:
<GeocodeEntity Id="12040000">
<GeocodeRequest Culture="en-US" IncludeNeighborhood="true" Query="Rush Truck Center - Los Angeles" IncludeQueryParse="true">
<Address AddressLine="8830 Slauson Ave, Pico Rivera, CA 90660" AdminDistrict="California" CountryRegion="US" Locality="Pico Rivera" PostalCode="90660" />
</GeocodeRequest>
<GeocodeResponse Name="Los Angeles, CA" EntityType="PopulatedPlace" Confidence="High" MatchCodes="UpHierarchy">
<Address AdminDistrict="CA" CountryRegion="United States" AdminDistrict2="Los Angeles County" FormattedAddress="Los Angeles, CA" Locality="Los Angeles" />
<GeocodePoint CalculationMethod="Rooftop" Latitude="34.0522384643555" Longitude="-118.243347167969" Type="Point" UsageTypes="Display" />
<QueryParseValue Property="Locality" Value="Los Angeles" />
<BoundingBox SouthLatitude="33.6968193054199" WestLongitude="-118.683807373047" NorthLatitude="34.3506469726563" EastLongitude="-118.138854980469" />
<Point Latitude="34.0522384643555" Longitude="-118.243347167969" />
</GeocodeResponse>
<StatusCode>Success</StatusCode>
<TraceId>#######</TraceId>
</GeocodeEntity>
成功
#######
在我的地理编码请求中,我有一个特定的地址和公司分支机构名称(为这个问题编辑)。此外,我添加了城市、州、国家和zipcode属性,这些属性与文档中所述的完全相同。
即使有了所有这些信息,地理编码的响应数据返回的粒度也不比洛杉矶市更细,城市的纬度/经度坐标,而不是我提供的地址(记录在案,它离应该在的地方有十英里远)。
另外,当我通过Bing地图门户手动上传XML文件时,它非常准确。我是否格式化了请求,或者这是Bing问题?我在您的请求数据中发现了几个问题:
- 您要传递的“查询”值是兴趣点名称和位置的组合。地理编码器只处理地址。因此,在本例中,兴趣点名称被删除,地理编码器只使用“Los Angeles”,从而得到结果
- 您正在将两种不同的地理代码查询类型混合到一个查询中。要么只使用“查询”,要么只使用单个地址部分(地址行、地址、AdminDistrict、CountryRegion、PostalCode)。在这种情况下,“query”值被用作忽略其他所有内容,使用单独的地址部分将比您的查询准确得多
- 您正在将完整地址传入AddressLine字段。该地址应仅为街道地址(即“Slauson大道8830号”)
<GeocodeRequest Culture="en-US" IncludeNeighborhood="true" IncludeQueryParse="true">
<Address AddressLine="8830 Slauson Ave" AdminDistrict="California" CountryRegion="US" Locality="Pico Rivera" PostalCode="90660" />
</GeocodeRequest>
我发现您的请求数据中存在几个问题:
- 您要传递的“查询”值是兴趣点名称和位置的组合。地理编码器只处理地址。因此,在本例中,兴趣点名称被删除,地理编码器只使用“Los Angeles”,从而得到结果
- 您正在将两种不同的地理代码查询类型混合到一个查询中。要么只使用“查询”,要么只使用单个地址部分(地址行、地址、AdminDistrict、CountryRegion、PostalCode)。在这种情况下,“query”值被用作忽略其他所有内容,使用单独的地址部分将比您的查询准确得多
- 您正在将完整地址传入AddressLine字段。该地址应仅为街道地址(即“Slauson大道8830号”)
<GeocodeRequest Culture="en-US" IncludeNeighborhood="true" IncludeQueryParse="true">
<Address AddressLine="8830 Slauson Ave" AdminDistrict="California" CountryRegion="US" Locality="Pico Rivera" PostalCode="90660" />
</GeocodeRequest>