如何使用谷歌地图中的邮政编码查找位置

时间:2012-01-13 11:48:15

标签: javascript google-maps

我正在使用谷歌地图完成搜索部分并在按城市名称搜索时获得结果。现在我必须做扩展功能,如果我给postnumber然后必须搜索2km或10km区域。我怎么办它?? 看这里的一个例子 http://www.hm.com/no/store-locator

2 个答案:

答案 0 :(得分:2)

试试此代码 ...

纬度&经度来自邮政编码 ...

public void locationFromPostCode(String postCode){

    geocoder1 = new Geocoder(this);
    try {
          List<Address> addresses1 = geocoder1.getFromLocationName(postCode, 1);
          if (addresses1 != null && !addresses1.isEmpty()) {
            Address address1 = addresses1.get(0);
            // Use the address as needed
            latitude_start = address1.getLatitude();
            longitude_start = address1.getLongitude();
            String message = "Latitude: "+address1.getLatitude()+", Longitude: "+address1.getLongitude();
            Toast.makeText(this, message, Toast.LENGTH_LONG).show();
          } else {
            // Display appropriate message when Geocoder services are not available
            Toast.makeText(this, "Unable to geocode zipcode", Toast.LENGTH_LONG).show(); 
          }
        } catch (IOException e) {
          // handle exception
        }
    }

对于该代码,您需要 ...

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>

您从此代码获取纬度&amp;经度 邮政编码地点纬度&amp;经度您可以获得位置 ...

答案 1 :(得分:0)

function geocode_yahoo($code){  
    $app_id = ''; 
    $code = str_replace(" ","+",$code); 

    $url ="http://local.yahooapis.com/MapsService/V1/geocode?appid=$app_id&zip=$code"; 
    $xml=@file_get_contents($url); 
    preg_match('/<Latitude>(.*?)<\/Latitude>/',$xml,$matches); 
    $ll['lat']=$matches[1]; 
    preg_match('/<Longitude>(.*?)<\/Longitude>/',$xml,$matches); 
    $ll['lng']=$matches[1]; 
    return $ll; 
} 

这里是返回lat和long的函数,我想你会继续努力。 在雅虎注册api密钥。并使用此功能。已经使用了几个月。

在奇怪的情况下,地理编码错误,但它只是偶然的,也是最容易找到的方法,它们通常是100英里外(所以纬线长度完全不同)

我们还使用AFD邮政编码数据库(放入邮政编码 - 获取所有地址详细信息),这已经有很长的位置,但只有4位小数(非常准确)