2014-08-27 2 views
0

Google지도 조각에서 거리 이름을 검색 할 수있는 검색 기능 (예 : 작업 표시 줄)을 사용할 수 있습니까? 나는 지금 매우 유용 할 애플 리케이션을 개발하고있다. 앱이 그 위치로 이동할 수 있으면.Google지도의 거리 이름으로 검색

답변

5

예 지오 코더 클래스를 사용하여 작업 할 수 있습니다. AFAIK 내장 안드로이드 지오 코더는 ESRI의 지오 코딩 웹 서비스에 의존합니다.

Geocoder geocoder = new Geocoder(this); 
List<Address> addresses = null; 
try { 
    // Find a maximum of 3 locations with the name Kyoto 
    addresses = geocoder.getFromLocationName("Kyoto", 3); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
if (addresses != null) { 
    for (Address loc : addresses) { 
     MarkerOptions opts = new MarkerOptions() 
       .position(new LatLng(loc.getLatitude(), loc.getLongitude())) 
       .title(loc.getAddressLine(0)); 
     mMap.addMarker(opts); 
    } 
} 

주 :

  • 지오 코딩 과정이 동기이며 시간이 걸릴 수 있습니다. AsyncTask에서 랩핑하도록 제안되었습니다.
  • 자세한 내용은 Android Docs (평소와 같이)에서 확인할 수 있습니다.
  • 또는 Google의 지오 코딩 API (limits)를 사용할 수 있습니다.

편집 : 지오 코더는 ESRI의 웹 서비스에 의존 esri's arcgis developer website을 바탕으로

. 나는 이것에 놀랐지만 Google의 Geolocation API에는 한계가 있기 때문에 의미가있는 반면 Android의 Geocoder 위치 기능에는 제한이 없습니다.

+0

Location.Geocoder가 ESRI 서비스를 사용한다고 생각하는 이유는 무엇입니까? 필자는 아무런 결과없이 지오 코더의 소스 코드를 추적하려고했기 때문에 단지 묻는 것입니다. 그리고 구글이 자체 웹 서비스 래퍼 (wrapper)를 사용하는 것이 더 분명합니다. –

+0

@SteveBenett 소스를 제공하는 답변을 수정했습니다. – Simas

+0

감사합니다 @ user3249477 -하지만 조각 하나에서 검색 할 수 있도록 어떻게 구현하나요? 이것은 단지 위치 이름 교토를 얻으 려하지 않을까요? – user2974706