我用这个: geocoder.geocode(geoRequest,function(results,status){ ... ... }
问题是从地理编码器返回的数据似乎不一致。值得一提的是,当我在调用地理编码器之前加载地图API的js文件时,我指定了语言,(并且我还在geocoder.geocode中的变量geoRequest中指定了国家/地区(例如:AU for australia))呼叫)。
为了让其他人更容易看到我尝试理解的内容,我们可以使用以下网址: http://maps.googleapis.com/maps/api/geocode/json?components=country:AU&language=en&address=darwin
结果中有趣的部分是这个请求返回这些address_components long_name:
澳大利亚
北领地(short_name = NT)
达尔文
如果我包括" briggs street"在搜索中,所以我得到这个网址: http://maps.googleapis.com/maps/api/geocode/json?components=country:AU&language=en&address=briggs+street,darwin
然后我得到这些address_components long_name:
澳大利亚
北领地(short_name = NT)
达尔文市
达尔文市
布里格斯街我的问题:
为什么"达尔文"在我搜索" briggs street,darwin"?的第二个例子中没有返回在这种情况下,文字是:
达尔文市
达尔文市
是否可以通知地理编码器API我希望返回一致的分层结果,无论是否指定例如:一条路?
我问的原因是我想根据用户指定的位置,通过输入城市名称或街道来收集统计信息。我希望能够使用返回的component_addresses在数据库中构建来自客户端(用户)的其他信息。
但是,如果例如,统计报告将不会非常一致一个人希望看到达尔文的一些统计数据(用户只注册进入"达尔文"),因为用户输入的数据输入" briggs street,darwin"将不会将数据存储在位置" Darwin" (至于第一个用户) - 因为"达尔文"不同于达尔文市"达尔文市"和#34;达尔文市政府"。
在搜索" fulton street,brooklyn"时,可以观察到类似的不一致。和"布鲁克林"
搜索布鲁克林: ?成分=国家:US&安培;地址=布鲁克林
返回:
USA
纽约(short_name = NY)
国王郡
纽约
布鲁克林
但是......这次搜索" fulton + street,brooklyn": ?成分=国家:US&安培;地址=富尔顿+街道,布鲁克林
返回:
USA
纽约(short_name = NY)
国王郡
布鲁克林
富尔顿街为什么没有"纽约"介于" Kings County"和布鲁克林"布鲁克林"在上面的最后一个结果?再次......似乎有些不一致。
答案 0 :(得分:2)
以下是丹麦的另一个例子:
搜索欧登塞: http://maps.googleapis.com/maps/api/geocode/json?components=country:DK&language=en&address=odense
给了我这个结果:
丹麦
地区Syddanmark(administrative_area_level_1)
[...]
如果我在欧登塞寻找街道ryttergade,就像这样: http://maps.googleapis.com/maps/api/geocode/json?components=country:DK&language=en&address=ryttergade,odense
然后区域“Region Syddanmark”(administrative_area_level_1)不在结果集中。为什么会这样?
是否有办法通知地理编码器我确实希望在结果集中返回administrative_area_level_1,例如包含街道名称?
答案 1 :(得分:1)
您可以通过反向地理编码latlng来获取它们,但并不总是通过对街道级地址进行地理编码。
<强>达尔文强>
address=Darwin返回一个口语城市,与您获得的“达尔文城市”不同address=briggs+street,darwin。口语城市标有playertransform = GameObject.FindWithTag("Player").transform;
而非"types": ["colloquial_area", "locality", "political"]
“达尔文市”的(非口语)由“达尔文市”包含,而口语城市“达尔文”则不包含。后者只包含在下一个(更大)政治部门“北领地”中,其中也包含“达尔文市”。这解释了您看到的组件。
<强>布鲁克林强>
布鲁克林和纽约市的其他几个地方有点特别。在那里,城市的名称(纽约)与邮政地址无关。这就是为什么街道级地址不应该具有本地性的原因,"types" : ["locality", "political"]
<强>欧登塞强>
与布鲁克林相同,但在整个国家/地区似乎都是如此:address_components
组件未显示,因为它与街道级地址无关。