저는 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;
}
}
당신의 질문의 솔루션은 여기 [여기] [1] [1]입니다 stackoverflow.com/q/16686436/1858599 –