代码之家  ›  专栏  ›  技术社区  ›  joshcomley

使用谷歌地图API对英国邮政编码进行地理编码的最佳方法?

  •  7
  • joshcomley  · 技术社区  · 14 年前

    对英国邮政编码进行地理编码最有效和准确的方法是什么?使用内置的geocode对象会导致结果非常模糊(许多邮政编码只返回一个普通区域)。

    有没有免费的英国邮政编码地理编码服务,我可以插入到通过javascript?

    2 回复  |  直到 10 年前
        1
  •  6
  •   johnwards    14 年前

    编辑: 更清楚地说,这使用谷歌搜索API中的本地搜索,而不是谷歌地图API来进行地理编码,这更准确。

    最好的方法是使用谷歌搜索API。

    如果您获得一个API密钥并获得所有设置: http://code.google.com/apis/ajaxsearch/

    var localSearch;
    var map;
    var icon;
    var addressMarkerOptions;
    google.load("search", "1");
    google.load("maps", "2");
    google.setOnLoadCallback(initialize);
    
    function initialize()
    {
      localSearch = new GlocalSearch();
      icon = new GIcon(G_DEFAULT_ICON);
      addressMarkerOptions = { icon:icon , draggable: false};
      map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      plotAddress("OX4 1FJ");
    }
    
    /**
    * This takes either a postcode or an address string
    *
    */
    function plotAddress(address)
    {
      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);
            var marker = new GMarker(point, addressMarkerOptions);
            map.addOverlay(marker);
            map.setCenter(point, 5, G_NORMAL_MAP);
          }
          else
          {
            alert('address not found');
          }
        });
    
      localSearch.execute(address + ", UK");
    }
    
        2
  •  0
  •   Paul Suart Wes    14 年前

    我相信Live/Bing/Windows地图的API比Google地图的API更能准确地放置英国邮政编码。

    另外,还有英国邮政编码数据的数据库,尽管它们非常昂贵。这篇文章中有一些有趣的评论: http://jamiethompson.co.uk/web/2008/07/24/full-uk-postcode-database-for-free/