2011-02-02 25 views
4

私の現在のアンドロイドアプリケーションでは、入力した都市名、通り名、または郵便番号に基づいて地理座標を取得したいと思います。どうすればこれを達成できますか?都市名から緯度と経度を取得

よろしく

答えて

0

使用Geocoderクラス。使用するのは難しくありませんし、getFromLocationNameを使用することもできます。このクラスを他の方法で使うこともできます。つまり、(lat、lon)を入力してそこに住所を取得することです。

Androidコードでやりたいと思っています.Javascriptを使いたいのであれば、Google map's APIを別の答えとして指摘してください。

3

searchedAddress - >(都市名/住所/郵便番号)にすることができます。

public boolean getLatitudeAndLongitudeFromGoogleMapForAddress(String searchedAddress){ 

    Geocoder coder = new Geocoder(IPlant.iPlantActivity); 
    List<Address> address; 
    try 
    { 
     address = coder.getFromLocationName(searchedAddress,5); 
     if (address == null) { 
      Log.d(TAG, "############Address not correct #########"); 
     } 
     Address location = address.get(0); 

     Log.d(TAG, "Address Latitude : "+ location.getLatitude();+ "Address Longitude : "+ location.getLongitude()); 
     return true; 

    } 
    catch(Exception e) 
    { 
     Log.d(TAG, "MY_ERROR : ############Address Not Found"); 
     return false; 
    } 
} 
4

がネット

private static JSONObject getLocationInfo(String address) 
{ 

    StringBuilder stringBuilder = new StringBuilder(); 
    try { 

    address = address.replaceAll(" ","%20");  

    HttpPost httppost = new HttpPost("http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false"); 
    HttpClient client = new DefaultHttpClient(); 
    HttpResponse response; 
    stringBuilder = new StringBuilder(); 


     response = client.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     InputStream stream = entity.getContent(); 
     int b; 
     while ((b = stream.read()) != -1) { 
      stringBuilder.append((char) b); 
     } 
    } catch (ClientProtocolException e) { 
     Log.i("getLocationInfo ClientProtocolException", e.toString()); 
    } catch (IOException e) { 

     Log.i("getLocationInfo IOException", e.toString()); 
    } 


    JSONObject jsonObject = new JSONObject(); 
    try { 
     jsonObject = new JSONObject(stringBuilder.toString()); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     Log.i("getLocationInfo JSONException", e.toString()); 
    } 

    return jsonObject; 
} 

private static boolean getLatLong(JSONObject jsonObject) 
{ 

    try { 

     longitute = ((JSONArray)jsonObject.get("results")).getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lng"); 
     Log.i("Log1", longitute1+""); 
    latitude = ((JSONArray)jsonObject.get("results")).getJSONObject(0) 
      .getJSONObject("geometry").getJSONObject("location") 
      .getDouble("lat"); 
     Log.i("lat1", latitude1+""); 
    } catch (JSONException e) { 

     longitute=0; 
     latitude = 0; 
     Log.i("getLatLong", e.toString()); 
     return false; 

    } 

    return true; 
} 
経由で地理座標を取得します
関連する問題