MapmyIndia Map SDK имеет опцию для установки точки привязки маркера (Аннотация)
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
Полный код:
import com.mmi.layers.Marker;
Marker marker= new Marker(mMapView);
marker.setPosition(geoPoint);
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
mMapView.getOverlays().add(marker);
mMapView.invalidate();
Примечание:
Маркер должен иметь географическую точку, чтобы указать свою позицию на карте.
Свойство Anchor определяет положение маркеров относительно его географической точки на карте. то есть. Нижняя, Верхняя, Центральная и т. Д.
Если вы хотите зафиксировать положение маркера в центре карты, лучший способ сделать это:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.mmi.MapmyIndiaMapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<View
android:id="@+id/guideline"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_centerInParent="true"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/your_pin_marker"
android:layout_above="@+id/guideline"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
Если у вас есть маркер типа Pin / Pointer, вам понадобится указатель внизу, чтобы указать центр карты. Вот почему я использовал ориентир.
Если ваш маркер круглый. то есть. Вы хотите, чтобы центр маркера находился в центре карты, затем просто используйте вид изображения и отметьте его гравитацию в качестве центра.
Теперь ваш маркер всегда будет указывать на центр карты, чтобы получить позицию, которую вы можете просто написать
mMapView.getMapCenter()