我有一个问题,当我试图获得地图的中心时,它与屏幕的中心不同,并且在不同的设备中存在不同的距离差异。我怎样才能获得地图的真实中心?我需要在其中添加一个标记
谢谢
部分XML代码:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map" tools:context=".MapsActivity"
android:name="com.google.android.gms.maps.SupportMapFragment" />
<ImageView
android:layout_width="64dp"
android:layout_height="64dp"
android:id="@+id/crosshair"
android:src="@drawable/crosshair"
android:onClick="btPontoClick"
android:layout_centerInParent="true"/>
</RelativeLayout>
获得中心的Java代码:
public void btPontoClick(View v){
LatLng latlng = mMap.getCameraPosition().target;
addPonto(latlng);
okParaVoltar = false;
}
答案 0 :(得分:1)
目标取决于相机的方位和旋转。 最好的方法是获取地图“中心”的屏幕点,然后通过执行以下操作将其转换为地图点:
myMap.getProjection().fromScreenLocation(screenPoint);
https://developers.google.com/android/reference/com/google/android/gms/maps/Projection
注意:
返回与屏幕位置对应的地理位置。 屏幕位置以屏幕像素(不是显示像素)的形式指定,相对于地图的左上角(不是左上角) 整个屏幕)。
答案 1 :(得分:0)
我以不同的方式解决了这个问题。
现在我将ImageView屏幕中的位置(X,Y)转换为LatLng到谷歌地图!
谢谢大家