1

핀 코드 또는 지역 코드가 지정된 Google지도 위치를로드해야합니다. 지오 코더 메서드를 사용하여 주어진 주소를 사용하여 위도와 경도를 찾으려고했습니다. 이것은 위치 나 지역이 주어졌지만 pincode (특히 인도)에서 작동하지 않을 때 작동합니다. pincode를 사용하여 주어진 영역의 위도와 경도를 찾는 방법이나 방법이 있습니까?Google지도에서 핀 코드를 사용하여 위도와 경도를 알아보십시오

이것은 mapview를 사용하여 android에로드 할지도에만 해당됩니다.

package com.example.geocodingexample; 

import java.io.IOException; 
import java.util.List; 
import java.util.Locale; 
import android.location.Address; 
import android.location.Geocoder; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.widget.LinearLayout; 
import android.widget.Toast; 
import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 

public class MainActivity extends MapActivity { 
MapView mapView; 
MapController mapController; 
GeoPoint p; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mapView = (MapView) findViewById(R.id.mapview); 
    mapController = mapView.getController(); 
    mapView.setBuiltInZoomControls(true); 
    mapController = mapView.getController(); 
    mapController.setZoom(14); 
    Geocoder geoCoder = new Geocoder(this, Locale.getDefault()); 
    try { 
     List<Address> addresses = geoCoder.getFromLocationName("karnataka", 
       1); 
     String add = ""; 
     if (addresses.size() > 0) { 
      p = new GeoPoint((int) (addresses.get(0).getLatitude() * 1E6), 
        (int) (addresses.get(0).getLongitude() * 1E6)); 
      mapController.animateTo(p); 
      mapView.invalidate(); 
      Log.i("latitude obtained", String.valueOf(p.getLatitudeE6())); 
      Log.i("longitude obtained", String.valueOf(p.getLongitudeE6())); 
      Toast.makeText(this, "lat obtained", Toast.LENGTH_SHORT).show(); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

@Override 
protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 
} 

}

+0

http://maps.googleapis.com/maps/api/geocode/xml?address=110016&sensor=false itworks. 하지만 인도에 대한 확실하지 –

+0

Seshu Vinay 고맙습니다. 그러나 생성 된 xml의 우편 번호는 싱가포르, 델리 및 중국에 대해 동일한 가치를 갖는 것으로 보입니다. XML 생성 방법을 안내 할 수 있습니까? GeoCoder 클래스를 사용 했습니까? – jasdmystery

+0

Google에서 제공하는 API입니다. 정확한 델리를 얻으려면 단지 pincode 대신에 "pincode, Delhi"를 인수해야합니다. –

답변

0

인도의 경우는 PIN 코드가 작동하지 않습니다으로

내가 작성한 코드

이 주어진다.

하지만이 대체 방법을 시도해보십시오. "Near ="와 같은 추가 인수를 추가 할 수 있습니다. 아마도 인디언 상태를 쿼리에 추가하여 작동시킬 수 있습니다.

이것은 작동하지만 잘 모르겠습니다. 재밌게 보내십시오

+0

감사합니다. 그러나 당신이 안드로이드 맵뷰에서 이것을 어떻게 포함 할 수 있는지에 관해서 당신을 도울 수 있습니까? – jasdmystery

0

메소드 서명에서 위치의 수를 늘리면 작동합니다.

getFromLocationName("karnataka", 
         5); 

위도와 경도를 표시합니다. 예 : -

public void findLocationName() 
     { 
    try { 
    Geocoder gcd = new Geocoder(this, Locale.getDefault()); 
    List<Address> addresses; 

    addresses = gcd.getFromLocationName("110002",5); 


    for(int i=0;i<addresses.size();i++){ 
    Log.e("","in loop"); 
    Log.e("","lat :,,,,,,,,,,,,,"+addresses.get(i).getLatitude()+" long............"+addresses.get(i).getLongitude());  
Toast.makeText(this, "lat : "+addresses.get(i).getLatitude(),1).show(); 
Toast.makeText(this, "long : "+addresses.get(i).getLongitude(),1).show(); 
    } 

    } 
    catch (IOException e) {e.printStackTrace();} 
    }