在我的应用程序中,当用户在地图上滚动时,我正试图获取地图的中心坐标。
我想得到坐标并在文本视图中设置它。
这是我的代码:
public boolean onTouchEvent(MotionEvent event) {
int action=event.getAction();
projection=mapView.getProjection();
int X = (int)event.getX();
int Y = (int)event.getY();
if(action==MotionEvent.ACTION_MOVE)
{
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
GeoPoint G = projection.fromPixels(metrics.heightPixels/2, metrics.widthPixels/2);
//GeoPoint p= mapView.getMapCenter();
int lati=p.getLatitudeE6();
Log.i("Lat : ",""+lati);
Toast.makeText(this,""+lati,Toast.LENGTH_LONG);
int longi=p.getLongitudeE6();
Log.i("Lon : ",""+longi);
Toast.makeText(this,""+longi,Toast.LENGTH_LONG);
lat.setText(""+lati);
lon.setText(""+longi);
}
return true;
}
答案 0 :(得分:4)
使用这篇文章:
http://mobiforge.com/developing/story/using-google-maps-android
它将回答您关于使用mapview的所有问题。(主要是全部)。另外,根据您的特殊需求:
在页面上搜索“获取被触摸的位置”。
答案 1 :(得分:2)
OP在他的问题中包含了正确的答案。这是怎么做的:
GeoPoint mapCenter = mapView.getProjection().fromPixels(
mapView.getWidth()/2,
mapView.getHeight()/2);
int lat = mapCenter.getLatitudeE6();
int lon = mapCenter.getLongitudeE6();
答案 2 :(得分:0)
API稍有更新。这是实际版本:
val mapViewCenter = Point(
googleMapView.width / 2,
googleMapView.height / 2
)
val mapCenter: LatLng = googleMap.projection.fromScreenLocation(mapViewCenter)