Google maps 使用谷歌地图API的最近城市

Google maps 使用谷歌地图API的最近城市,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我不是一个编码员或程序员,但我已经聘请了一个人为我这样做。说到计算机能力,我也不是完全幼稚的 开发人员告诉我,不可能在谷歌地图api中反转地理代码,并让它准确返回正确的城市。我不相信这一点,因为我看到api返回一个带有城市的格式化地址。开发人员说,他们只能从API中提取一个字段,因为城市名称位于Location字段或Neighbor字段中,他们无法确定不同坐标使用哪个字段。这些说法是真的吗 我还被告知,当坐标存在于水面上(大部分在海洋中)时,对最近的城市进行反向地理编码是不可能的。例如,圣迭戈以

我不是一个编码员或程序员,但我已经聘请了一个人为我这样做。说到计算机能力,我也不是完全幼稚的

开发人员告诉我,不可能在谷歌地图api中反转地理代码,并让它准确返回正确的城市。我不相信这一点,因为我看到api返回一个带有城市的格式化地址。开发人员说,他们只能从API中提取一个字段,因为城市名称位于Location字段或Neighbor字段中,他们无法确定不同坐标使用哪个字段。这些说法是真的吗

我还被告知,当坐标存在于水面上(大部分在海洋中)时,对最近的城市进行反向地理编码是不可能的。例如,圣迭戈以西5英里处的坐标不可能使其返回圣迭戈作为最近的城市,这是真的吗

我在这里搜索了解决方案,并找到了一些与此相关的解决方案,我已将其转发给开发人员。。。但我希望把这条线索也拿给他们看。谷歌地图API真的不可能做到这些吗

谢谢你的帮助

在本文档中查看Google Maps JavaScript API中的详细说明,了解如何在可读地址中转换坐标

你的第一句话是对的:

如有必要,您可以从地理编码器结果中的数组中读取所有字段。如果
address\u components
数组在
types
中有一个元素
locality
,则城市名称是该元素的一部分。但是,不能保证总是包含此元素或所需元素。查看上面链接中类型的层次结构,这可能是响应的一部分。当你说你必须搜索元素
邻域
位置
时,听起来你想强制一个特定的名称。这几乎是不可能确定的

第二种说法是关于最近的城市。以下是文档中的声明:

反向地理编码不是一门精确的科学。地理编码器将尝试 在一定公差范围内找到最近的可寻址位置

关于这个公差的尺寸没有任何说明。以圣地亚哥以西5英里为例,可以返回有关圣地亚哥、北太平洋或位于圣地亚哥县的科罗纳多的数据

相信你的开发者

编辑:这取决于你想做什么。如果你总是想在你的请求中包含城市名称,那就忘了它吧,你不能保证这一点


本文介绍了一些zipcodeapi。但同样,您必须以某种方式获得Zipcode,而
邮政编码并不总是响应的一部分。没有其他API像地理编码API那样可以将坐标转换为可读地址。但是有一些是列出的。

实现你想要的是可能的。我认为大多数人都试图让谷歌为他们做这项工作,这就是为什么要找到解决方案很难的原因

你想要最近的城市。你需要做的就是查询坐标。如果地址类型“Location”存在,那就是您所在的城市。如果没有,则对附近的点发出新的请求并重复,直到找到一个具有“局部性”的结果


根据您在初始点搜索时使用的算法,您可以调整精度和找到答案所需的请求量。

我为您雇用的人感到难过。:)@Molle博士,它在水上没有返回结果。所以没有办法在谷歌地图API中找到一个城市?对我来说,这似乎是不可能的,但当不止一个人告诉我一些让我难以相信的事情时,我倾向于更加开放。那么还有其他选择吗?Zipcoode查找?不同的API?