Google Map 서비스와 관련된 프로젝트로 이전 중입니다. 내지도에서 현재 위치를 지적하고 싶습니다. 이를 위해 itemizedoverlay를 사용할 생각이 있습니다. Geopoint를 사용하여 현재 위치를 검색합니다. 하지만 코드에서 itemizedoverlay를 사용할 때 위치를 파악할 수 없으며이 메서드를 OnCreate 메서드에서 사용하고 있습니다. 이것을 OnLocationChanged 메소드로 이동하면, GeoPoint (point)는 itemizedoverlay에 의해 선택되지 않고 오류로 끝나게되고 현재 상황에서는 어플리케이션이 부서져 버립니다.현재 Loation이 안드로이드에서 선택되지 않았습니다
MapView mapView;
Location location;
LocationManager locationmanager;
LocationListener locationlistener;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapView);
mapView.setTraffic(true);
mapView.setBuiltInZoomControls(true);
//locationmanager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// locationlistener = new GPSLocationListener();
// locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER 0,0,locationlistener);
GeoPoint point = new GeoPoint(
(int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
Toast.makeText(getBaseContext(),
"Latitude: " + location.getLatitude() +
" Longitude: " + location.getLongitude(),
Toast.LENGTH_SHORT).show();
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.icon);
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
OverlayItem overlayitem = new OverlayItem(point,"","");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}
/* private class GPSLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location location) {
if (location != null) {
GeoPoint point = new GeoPoint(
(int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
Toast.makeText(getBaseContext(),
"Latitude: " + location.getLatitude() +
" Longitude: " + location.getLongitude(),
Toast.LENGTH_SHORT).show();
OverlayItem overlayitem = new OverlayItem(point,"","");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}
} */
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(getBaseContext(),"GPS Disabled",Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getBaseContext(),"GPS Enabled",Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
제게이 해결책을 제안 해 주시겠습니까 ?? 미리 감사드립니다. 미안하다면 실수를 저 지르십시오.
지도에서 현재 위치가 표시되지 않고 있습니다. 동생이 작동합니까? – Tony
GPS 위치가 실내에서 항상 사용할 수있는 것은 아닙니다. 따라서 GPS 제공 업체를위한 위치 수신기를 설치하고 실내에있는 경우 GPS 신호를 수신하지 못할 수 있습니다. MyLocationOverlay는 위치 수신기를 사용 및 설정하고 위치를 얻으려는 제공자를 찾습니다. –
enableMyLocation에 대한 문서를 보면 "MyLocation을 활성화하고 LocationManager.GPS_PROVIDER 및 LocationManager.NETWORK_PROVIDER의 업데이트를 등록하려고합니다."라는 메시지가 표시됩니다. 따라서 공급자와 등록자를 모두 등록하므로 청취자 설정 및 업데이트를 위해 오버레이를 다시 업데이트 할 필요가 없습니다. –