我想点击我的地图上的长按 我将获得我在地图中点击的位置的坐标 这是我的代码:
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);
}
}
我能做到吗?
我和我正在使用开放街道地图请帮助我!!