android v2 mapview中的中心固定标记

use*_*851 2 android android-layout android-fragments android-activity

我想mapview在拖动地图的同时在中心点设置固定标记.它已在android Map V1 google上完成mapview.但现在它已被弃用.现在我的问题是,它是否有可能在android Map V2谷歌mapview?(我试过.但地图没有显示)

j4r*_*rey 13

所以你想要在地图中心有类似十字线的东西,对吧?

我没有使用过MapView.但是我使用了Map Fragment,我在地图上实现修复标记的方式是使用ImageView,所以你最终会得到如下内容:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <fragment
        android:id="@+id/fragment1"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/cross_hairs" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

您可以使用MapView交换MapFragment.

将标记放在地图上效率很低,因为当用户平移地图时,您需要不断更新标记.

希望能帮助到你!


MrH*_*rio 7

我打赌你用的getMapCenter()是谷歌地图for Android v2,不再可以使用了.但不用担心,只需使用:

GoogleMap.getCameraPosition().target
Run Code Online (Sandbox Code Playgroud)

它将返回一个LatLng基本上代表地图中心的对象.然后,您可以使用它的每一个有通过分配拖拽事件时间标记重新定位到中心OnCameraChangedListener给您GoogleMap.

yourGMapInstance.setOnCameraChangeListener(new OnCameraChangedListener() {
    @Override
    public void onCameraChange (CameraPosition position) {

        // Get the center of the Map.
        LatLng centerOfMap = yourGMapInstance.getCameraPosition().target;

        // Update your Marker's position to the center of the Map.
        yourMarkerInstance.setPosition(centerOfMap);
    }
});
Run Code Online (Sandbox Code Playgroud)

那里.我希望这有帮助!