Hit*_*dra 5 android google-maps latitude-longitude google-maps-api-3
是否可以通过触摸事件从Google地图获取经度和纬度?
例如:如果我在地图上触摸纽约,它应该给我纽约的经度和纬度.
Joh*_*ith 15
您可以从大多数触摸事件中获取位置,例如
public boolean onTouchEvent(MotionEvent event)
{
int X = (int)event.getX();
int Y = (int)event.getY();
GeoPoint geoPoint = mapView.getProjection().fromPixels(X, Y);
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*oho 15
您可以OnMapClickListener直接在GoogleMap对象上设置,而不是使用叠加层拦截TouchEvent .
googleMap.setOnMapClickListener(new OnMapClickListener(){
void onMapClick(LatLng point){
Toast.makeText(getContext(),
point.latitude + ", " + point.longitude,
Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
如何从MapFragment或MapView访问Google地图对象,请参阅
https://developers.google.com/maps/documentation/android/map#add_map_code
小智 5
试试这个
public class Google_maps extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_google_maps);
MapView mapview=(MapView)findViewById(R.id.mapView);
mapview.setBuiltInZoomControls(true);
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = mapview.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
mapview.invalidate();
}
class MapOverlay extends Overlay
{
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
//---when user lifts his finger---
if (event.getAction() == 1) {
GeoPoint p = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
Toast.makeText(getBaseContext(),
p.getLatitudeE6() / 1E6 + "," +
p.getLongitudeE6() /1E6 ,
Toast.LENGTH_SHORT).show();
}
return false;
}
}
@Override
protected boolean isRouteDisplayed() {
return false;
}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15661 次 |
| 最近记录: |