2012-01-13 235 views

回答

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

    $url ="http://local.yahooapis.com/MapsService/V1/geocode?appid=$app_id&zip=$code"; 
    [email protected]_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和长时间的功能,我想你会在那工作。 在雅虎注册一个API密钥。并使用此功能。几个月来一直在使用它。

有奇怪的场合它地理编码错误的,但它只是偶然的,最简单的方法找出来,是它们通常是100米的英里外的(所以LAT多头是完全不同的)

我们还使用了AFD邮政编码数据库(放在邮编 - 让所有的详细地址),这在纬度多头,但只有4位小数(不是非常准确)

2

试试这个代码 ...

是越来越纬度& longit UDE邮编 ...

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

你从这个代码纬度经度& 邮编地方越来越纬度&经度你可以得到地点 ...

+1

谢谢你的回答。然而,要求投票/接受是不礼貌的 - 也是不可接受的。如果OP想投票或接受,他们会。我正在从您的问题中删除该文本。请不要在将来这样做。 :) – 2013-02-27 06:23:04

相关问题