Buz*_*uzz 7 google-maps geocoding
我正在使用谷歌地理编码服务来验证我们系统中输入的城市名称(加上地区和国家/地区)是否存在,以及获取纬度/经度.
但是,我发现它似乎在猜测你是否输错了,即使你犯了错误也会返回一个回复.
例如,对"Beverton,Ontario,Canada"的请求返回Beaverton的纬度/经度,没有迹象表明您提供了错误的城市名称.
我正在使用CSV响应类型,并获得200响应代码.
我可以阻止服务这样做,或者更好的是,找出它是否有?
编辑:澄清...谷歌正在纠正输入(当我希望它只是失败),我需要知道它是否已经这样做了.
地理编码器没有任何方式让您知道它是否认为您有拼写错误。我同意索尔的回答,你最好的选择是根据回复检查你的查询。
我只是想指出,您必须根据多个响应值检查输入的多个元素,以便找到应该匹配的元素。在本例中,在“DependentLocalityName”内找到“Beaverton”。
<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://earth.google.com/kml/2.0"><Response>
<name>Beverton, Ontario, Canada</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>Beaverton, Brock, ON, Canada</address>
<AddressDetails Accuracy="4" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>CA</CountryNameCode><CountryName>Canada</CountryName><AdministrativeArea><AdministrativeAreaName>ON</AdministrativeAreaName><SubAdministrativeArea><SubAdministrativeAreaName>Durham Regional Municipality</SubAdministrativeAreaName><Locality><LocalityName>Brock</LocalityName><DependentLocality><DependentLocalityName>Beaverton</DependentLocalityName></DependentLocality></Locality></SubAdministrativeArea></AdministrativeArea></Country></AddressDetails>
<ExtendedData>
<LatLonBox north="44.4502166" south="44.4183470" east="-79.1199562" west="-79.1839858" />
</ExtendedData>
<Point><coordinates>-79.1519710,44.4342840,0</coordinates></Point>
</Placemark>
</Response></kml>
Run Code Online (Sandbox Code Playgroud)
更新:
这可能无法实际实施。如果您的输入是“加拿大安大略省贝弗顿”,您如何知道要检查这三个单词中的哪一个?他们两个会很匹配。如果它们以不同的顺序输入怎么办?
| 归档时间: |
|
| 查看次数: |
1597 次 |
| 最近记录: |