2012-11-19 84 views
0

我使用LocationManager获取位置。然后将位置转换为GeoPoint并将其显示在地图上。为什么它与Google地图显示位置有很大不同? 这是获取位置的方法:地图中的GeoPoint与Google地图显示位置不同

mLocationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE); 
     Criteria criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     criteria.setAltitudeRequired(false); 
     criteria.setBearingRequired(false); 
     criteria.setCostAllowed(true); 
     criteria.setPowerRequirement(Criteria.POWER_LOW); 
     final String strLocationProvider = mLocationManager.getBestProvider(criteria, true); 
mLocationManager.requestLocationUpdates(strLocationProvider, 1000, 0, 
       new LocationListener(){ 

        @Override 
        public void onLocationChanged(Location location) { 
         // TODO Auto-generated method stub 
         double geoLatitude = mLocation.getLatitude()*1E6; 
      double geoLongitude = mLocation.getLongitude()*1E6; 
      GeoPoint currentGeoPoint = new GeoPoint((int)geoLatitude,(int)geoLongitude); 
      mapCon.animateTo(currentGeoPoint);     } 

        @Override 
        public void onProviderDisabled(String provider) { 
         // TODO Auto-generated method stub 

        } 

        @Override 
        public void onProviderEnabled(String provider) { 
         // TODO Auto-generated method stub 

        } 

        @Override 
        public void onStatusChanged(String provider, int status, 
          Bundle extras) { 
         // TODO Auto-generated method stub 

        } 
     }); 

回答

1

试试这个。

LocationListener locationListener = new LocationListener() { 
    public void onLocationChanged(Location location) {  
    int lat = (int) (location.getLatitude() * 1E6); 
    int lng = (int) (location.getLongitude() * 1E6); 
    GeoPoint point = new GeoPoint(lat, lng); 
    OverlayItem overlayitem4 = new OverlayItem(point, "You Are Here", "Boulder, CO"); 
} 
} 
0

您可以使用投影在GeoPoints和地图上的点之间进行转换。

Projection projection = mapView.getProjection(); 

GeoPoint point = new GeoPoint(lat, lng); 

Point myPoint = new Point(); 
projection.toPixels(point, myPoint); 

那么你会在你的OverlayItem使用myPoint

相关问题