2012-01-13 73 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

相關問題