如何获取我在地图中点击的位置的坐标

时间:2016-04-28 16:23:27

标签: java android

我想点击我的地图上的长按 我将获得我在地图中点击的位置的坐标 这是我的代码:

    public class MapActivity extends Activity {
    MapView mapView;
    TileCache tileCache;
    LatLong myLocation;
    TileRendererLayer tileRendererLayer;
    String provider;
    LocationManager lm;
    @Override public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
        AndroidGraphicFactory.createInstance(this.getApplication());
        mapView = new MapView(this);
        setContentView(this.mapView);
        mapView.setClickable(true);
        mapView.setBuiltInZoomControls(true);
        mapView.getMapZoomControls().setZoomLevelMin((byte) 14);
        mapView.getMapZoomControls().setZoomLevelMax((byte) 20);
        tileCache = AndroidUtil.createTileCache(this,
                "mapcache"
                ,
                mapView.getModel().displayModel.getTileSize(), 1f,
                mapView.getModel().frameBufferModel.getOverdrawFactor());

        lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
            provider=lm.NETWORK_PROVIDER;


    lm.requestLocationUpdates(provider, 0, 0, new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                myLocation = new LatLong(location.getLatitude(),location.getLongitude());
                mapView.getModel().mapViewPosition.setCenter(myLocation);//
                drawMarker(R.drawable.marker);
            }

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {

            }

            @Override
            public void onProviderEnabled(String provider) {

            }

            @Override
            public void onProviderDisabled(String provider) {

            }
        });



        }
    public void onStart() {
        super.onStart();
        mapView.getModel().mapViewPosition.setCenter(new LatLong(36.24322515,6.5646793));
        mapView.getModel().mapViewPosition.setZoomLevel((byte) 19);
        File file = new File(Environment.getExternalStorageDirectory(),
                "/maps/ali.map");
        MapDataStore mapDataStore = new MapFile(file);
        tileRendererLayer = new TileRendererLayer(tileCache, mapDataStore,
                mapView.getModel().mapViewPosition, false, true,
                AndroidGraphicFactory.INSTANCE);
        tileRendererLayer.setXmlRenderTheme(InternalRenderTheme.OSMARENDER);
        mapView.getLayerManager().getLayers().add(tileRendererLayer);
    }

    public void onDestroy() {
        super.onDestroy();
        mapView.destroyAll();
    }





public void drawMarker(int resourceId) {
        Drawable drawable = getResources().getDrawable(resourceId);
        Bitmap bitmap =
                AndroidGraphicFactory.convertToBitmap(drawable);
        bitmap.scaleTo(130,130);
        Marker marker = new Marker(myLocation,
                bitmap,
                0,
                -bitmap.getHeight() / 2);
        mapView.getLayerManager().getLayers().add(marker);
    }


}
我能做到吗? 我和我正在使用开放街道地图请帮助我!!

0 个答案:

没有答案