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

How to find location using postal code in google map

本文关键字:邮政编码 查找 位置 谷歌地图      更新时间:2023-09-26

Hei

iam与谷歌地图合作完成了搜索部分,并在按城市名称搜索时获得结果。现在我必须做一些扩展功能,比如如果我给出邮政编码,然后必须在2公里或10公里的区域进行搜索。我该怎么做
请参阅此处的一个示例http://www.hm.com/no/store-locator

尝试此代码。。。

那就是获得纬度&经度来自邮政编码。。。

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"/>

你从这个代码中得到纬度&的经度邮政编码位置纬度&经度您可以获得位置。。。

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邮政编码数据库(输入邮政编码-获取所有地址详细信息),该数据库中有lat-long,但只有小数点后4位(不太准确)