【问题标题】:UK postcodes for geocodes用于地理编码的英国邮政编码
【发布时间】:2014-06-08 08:30:33
【问题描述】:

我早上大部分时间都在四处寻找,但没有找到一种合适的方法来使用谷歌地图从他们的地理位置(经度/纬度)中找到英国的邮政编码,有没有人有这方面的经验?

我知道 Royal Mail 有一个用于从地理位置搜索邮政编码的 API,但是对于此类数据来说它的成本非常高,肯定还有其他方法吗?

请注意,我要实现的功能是:http://www.rightmove.co.uk/draw-a-search.html。创建形状时,必须提供英国邮政编码列表(该地区邮政编码的前 3/4 位数字)。

提前致谢。

【问题讨论】:

  • 我确实遇到过,但似乎没有区域,只有长/纬度?从理论上讲,我需要传入一些地理位置以及该区域中给出的所有邮政编码。
  • 这不是“从地理位置(经度/纬度)查找英国邮政编码的合适方式”吗?
  • 问题中有第 3 段,从发布它的开头开始 :)

标签: google-maps geolocation postal-code


【解决方案1】:

您至少有 3 个要求

  1. 带有坐标的英国邮政编码列表。
  2. 在地图上绘制多边形。
  3. 在多边形内定位邮政编码。

Google for #1(英国邮政编码坐标免费)。在数据库中存储所需的数据

#2 使用 Google Shape

为了#3你

使用以下查询消除多边形外的大部分邮政编码。(服务器端)

SELECT  name, lat, lng FROM table WHERE (lat BETWEEN minLat 
                      AND minLat )AND (lng BETWEEN minLng AND minLng)

然后使用多边形中的点来消除多边形外的点(客户端)

function pointInPolygon(polySides,polyX,polyY,x,y) {
 var j = polySides-1 ;
  oddNodes = 0;
  for (i=0; i<polySides; i++) {
    if (polyY[i]<y && polyY[j]>=y  ||  polyY[j]<y && polyY[i]>=y) {
        if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x)  {
            oddNodes=!oddNodes; 
        }
    }
   j=i; }

  return oddNodes;
}

这个Link 显示#2 & #3

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多