2012-04-14 3 views
1

저는 Android에서 초보자이며 주소에서 특정 위치를 표시 할 수있는 Google지도를 만들려고합니다.Android의 주소에서 위도와 경도를 얻는 방법은 무엇입니까?

현재 다음 코드는 "제국 상태 건물"이라고 표시 할 수 있지만 다른 것은 아무것도 표시하지 않습니다. : < 거리 주소 나 전체 주소에서 위도와 경도를 얻는 방법을 알고지도에 표시하고 싶습니다. .

나는 인터넷과 ACCESS_COARSE_LOCATION

감사합니다 같은 구글 맵보기를 지원하는 매니페스트 파일을 수정했습니다.

package cs2340.kiwi.HelloGoogleMaps; 

import java.io.IOException; 
import java.util.List; 
import java.util.Locale; 

import android.graphics.drawable.Drawable; 
import android.location.Address; 
import android.location.Geocoder; 
import android.os.Bundle; 

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 
import com.google.android.maps.Overlay; 
import com.google.android.maps.OverlayItem; 

public class HelloGoogleMapsActivity extends MapActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 
    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    MapView mapView = (MapView) findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 

    List<Overlay> mapOverlays = mapView.getOverlays(); 
    Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker); 
    HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, this); 

    Geocoder coder = new Geocoder(HelloGoogleMapsActivity.this, Locale.getDefault()); 

    List<Address> address; 
    String strAddress = "empire state building"; 
    GeoPoint p1 = new GeoPoint(0,0); 
    Double latitude; 
    Double longitude; 
    MapController mc = mapView.getController(); 

    try { 
     address = coder.getFromLocationName(strAddress,5); 
     Address location = address.get(0); 
     latitude = location.getLatitude() * 1E6;   
     longitude = location.getLongitude() * 1E6; 

     p1 = new GeoPoint(latitude.intValue(), 
          longitude.intValue()); 

     mc.animateTo(p1);  
     mapView.invalidate(); 
    } 
    catch (IOException e){} 
    OverlayItem overlayitem2 = new OverlayItem(p1, "Hello", "not working"); 

    itemizedoverlay.addOverlay(overlayitem2); 
    mapOverlays.add(itemizedoverlay); 

} 
} 

여기

package cs2340.kiwi.HelloGoogleMaps; 

import java.util.ArrayList; 

import android.app.AlertDialog; 
import android.content.Context; 
import android.graphics.drawable.Drawable; 

import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.OverlayItem; 

public class HelloItemizedOverlay extends ItemizedOverlay { 

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
private Context mContext; 

public HelloItemizedOverlay(Drawable defaultMarker, Context context) { 
     super(boundCenterBottom(defaultMarker)); 
     mContext = context; 
    } 

public void addOverlay(OverlayItem overlay) { 
    mOverlays.add(overlay); 
    populate(); 
} 

protected OverlayItem createItem(int i) { 
     return mOverlays.get(i); 
} 

public int size() { 
     return mOverlays.size(); 
} 

protected boolean onTap(int index) { 
     OverlayItem item = mOverlays.get(index); 
     AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
     dialog.setTitle(item.getTitle()); 
     dialog.setMessage(item.getSnippet()); 
     dialog.show(); 
     return true; 
} 

} 
+0

당신의 질문의 솔루션은 여기 [여기] [1] [1]입니다 stackoverflow.com/q/16686436/1858599 –

답변

1

후 응답을 읽고지도에 마커를 배치 서비스에 HTTP를 요청 geocoding service .Send을 시도 내 다른 클래스입니다.

1
http://maps.googleapis.com/maps/api/geocode/json?address=hyderabad&sensor=true_or_false 

또는

http://maps.googleapis.com/maps/api/geocode/xml?address=hyderabad&sensor=true_or_false 

사용하는 URL 중 하나는 원하는 주소를 교환하고 네트워크는 다음이 구글 서버에서 관련 위도의 목록과 긴을 반환합니다 명중있다.

1

주소 또는 전체 주소의 위도 및 경도를 얻으려면 다음을 수행하십시오 : HTTP : //

int maxResults = 5; 
String address = "Example Road 15"; 

Geocoder geo = new Geocoder(context, Locale.getDefault()); 
List<Address> addresses = geo.getFromLocationName(address, maxResults); 

for (Address a : adresses) 
    map.addMarker(new MarkerOptions().position(new LatLng(a.getLatitude(), a.getLongitude())).title("Hello").snippet("Description about me!")); 
관련 문제