如何将邮政编码转换为经度和纬度?

时间:2009-09-18 22:37:13

标签: actionscript-3

我想通过邮政编码的帮助找到地方的经度和纬度。 谁能告诉我怎么做?

动作中的一个例子对我非常有帮助。因为我正在Flex中创建一个项目。

此致 Zee的

6 个答案:

答案 0 :(得分:2)

您是否可以访问长/ lat数据库?如果没有,我相信你可以使用谷歌地图API进行查找。

哦,我刚刚注意到克里斯的回答。我不熟悉地名。您可能还想熟悉“http://freegeographytools.com/”,其中包含大量地理编码,gps等资源,适用于各种项目。

啊......我刚刚访问了Eric的博文。这是极好的!我肯定会在未来的项目中与谷歌联系以获取更多细节。

答案 1 :(得分:2)

如果您正在寻找按需地理编码,请使用Google。它们提供了一个简单的pox Web服务版本。

我曾经写过一篇关于此事的博客。查看this link了解使用此简单地理编码的分步说明。

干杯, 埃里克

答案 2 :(得分:2)

我得到了解决你也可以

function getLatLong($code) {
  $mapsApiKey = 'ABQIAAAAsV7S85DtCo0H9T4zv19FoRTdT40ApbWAnDYRE0-JyP5I6Ha9-xT9G5hCQO5UtOKSH5M3qhp5OXiWaA';
  $query = "http://maps.google.co.uk/maps/geo?q=".urlencode($code)."&output=json&key=".$mapsApiKey;
  $data = file_get_contents($query);
  // if data returned
  if($data) {
    // convert into readable format
    $data = json_decode($data);
    $long = $data->Placemark[0]->Point->coordinates[0];
    $lat = $data->Placemark[0]->Point->coordinates[1];
    return array('Latitude'=>$lat, 'Longitude'=>$long);
  } else {
    return false;
  }
}

答案 3 :(得分:1)

有几种格式的several places to get zip code databases。将它加载到您最喜欢的RDBMS中,然后查询。

或者,您可以使用其他人的网络服务为您查找价值。其他答案已发布可能的Web服务;此外,geocoder.us似乎现在也支持ZIP code lookup

答案 4 :(得分:0)

现在有一个更好的解决方案,使用最新的Google Maps API(v3)。以下是multiple sources稍加修改的示例。我必须给予他们大部分功劳。这是PHP,使用cURL从Google检索数据,但您也可以使用Ajax。

function address_lookup($string){

   $string = str_replace (" ", "+", urlencode($string));
   $details_url = "http://maps.googleapis.com/maps/api/geocode/json?address=".$string."&sensor=false";

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $details_url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $response = json_decode(curl_exec($ch), true);

   // If Status Code is ZERO_RESULTS, OVER_QUERY_LIMIT, REQUEST_DENIED or INVALID_REQUEST
   if ($response['status'] != 'OK') {
    return null;
   }

   $geometry = $response['results'][0]['geometry']['location'];

    $array = array(
        'lat'     => $geometry['lat'],
        'lng'     => $geometry['lng'],
        'state'   => $response['results'][0]['address_components'][3]['short_name'],
        'address' => $response['results'][0]['formatted_address']
    );

    return $array;

}

$zip= '01742';

$array = address_lookup($zip);
print_r($array);

答案 5 :(得分:0)

最简单的方法是使用Google Map Api。假设您在变量$ zipcode中有一个zipcode。

$latlongUrl = 'http://maps.googleapis.com/maps/api/geocode/json?components=postal_code:'.$zipcode;

    $data = file_get_contents($latlongUrl); // you will get string data
    $data = (json_decode($data)); // convert it into object with json_decode
    $location = ($data->results[0]->geometry->location); // get location object

$ location是具有纬度和经度值的对象。