是否可以使用英国邮政编码的谷歌地图 API 进行谷歌地图查找?我知道您可以在他们的网站上按英国邮政编码进行搜索,但这会转换为纬度/经度。我无权访问 PAF 数据库,无法转换为 long/lat。
一个例子:
用户有要出售的物品。该项目的详细信息之一是用户/项目所在的邮政编码。当商品在网站前端展示时,需要有使用邮政编码生成的商品位置的谷歌地图。
如果这是可能的,我该怎么做?
是否可以使用英国邮政编码的谷歌地图 API 进行谷歌地图查找?我知道您可以在他们的网站上按英国邮政编码进行搜索,但这会转换为纬度/经度。我无权访问 PAF 数据库,无法转换为 long/lat。
一个例子:
用户有要出售的物品。该项目的详细信息之一是用户/项目所在的邮政编码。当商品在网站前端展示时,需要有使用邮政编码生成的商品位置的谷歌地图。
如果这是可能的,我该怎么做?
如何使用:
<img src="http://maps.google.com/maps/api/staticmap?center=POSTCODEHERE&zoom=14&size=200x200&maptype=roadmap&markers=color:ORANGE|label:A|POSTCODEHERE&sensor=false" style="float: right">
然后将上面两节中的 POSTCODEHERE 替换为他们的邮政编码。
如果您愿意,您也可以从 200x200 或标记颜色、标签等更改尺寸。
由于皇家邮政发布邮政编码数据的许可模式,谷歌在英国没有提供地理编码 API。
然而,人们编写的一些工具可以使用谷歌进行地理编码,但这在技术上是非法的 afaik。
然后一种选择是使用几个英国地理编码提供商之一。我不想听起来很懒,但他们很容易被谷歌搜索到。他们通常对每个地理编码收取几便士的费用。
(现在)使用 google 的 LocalSearch API 很容易做到这一点:
function usePointFromPostcode(postcode, callbackFunction) {
localSearch.setSearchCompleteCallback(null, function() {
if (localSearch.results[0]) {
var resultLat = localSearch.results[0].lat;
var resultLng = localSearch.results[0].lng;
var point = new GLatLng(resultLat,resultLng);
callbackFunction(point);
} else {
alert("Postcode not found!");
}
});
localSearch.execute(postcode + ", UK");
}
callbackFunction()
根据我的经验,将收到一个带有非常准确坐标的 GLatLng 对象。事实上,将 GLatLng 提供给 GClientGeoCoder 的 getLocations() 方法并获取完整的 Placemark 详细信息(包括地址范围级别的详细信息(例如 1-18 Foo Street))是微不足道的。
真正的问题是:这有多合法?
您需要 PAF 数据库,每个邮政编码都保存为一个多边形,因此除非您拥有初始数据,否则您不能将搜索限制在多边形或中心点周围的半径范围内。
邮局会向您出售您需要的所有数据,价格从 85 英镑起。
PS。谷歌这样做是因为他们有 PAF 数据库,当你输入邮政编码时,他们会查找中心并将其显示在他们的地图上。
openstreetmap.org 背后的人一直在开发一个免费的等价物——我不知道它对黄金时段的准备情况如何,但 FWIW:
似乎没有人非常努力地搜索......那里有一个免费可用的英国邮政编码和职位列表。更重要的是,这一切都是多余的,因为谷歌地图提供了通过邮政编码搜索的能力。即使使用 API 也是多余的,因为该服务是通过 Internet 提供的……只要您保留任何必要的版权消息等,就没有什么可以阻止您自己发送 http 请求并显示部分返回的数据。 .
http://www.websemantics.co.uk/resources/postcode_to_coordinates_conversion_tool/
网站将为您提供经度和纬度,您可以将其放入您的谷歌代码中。
英国小型企业或慈善机构可以申请免费使用 PAF 许可证。 https://www.poweredbypaf.com/register-for-free-use-of-paf/