Установите центр маркера на GeoPoint

Я работаю над osmdroid и пытаюсь сделать что-то очень простое, что я делал на другой платформе карты, но я не могу найти, как это сделать на OSMdroid. Я хочу поставить маркер где-нибудь на карте, в GeoPoint. До этого легко. Но я также хочу, чтобы центр изображения маркера находился на отложенном геопункте. С моим кодом прямо сейчас геопункт находится в левом нижнем углу изображения.

Как это сделать?

3 ответа

Решение

ОК, я нашел это. Поэтому я отвечаю на мой вопрос на случай, если у кого-то возникнет такая же проблема.

Сначала я попробовал вашу идею Вудсток, но мне не удалось найти метод связанный центр.

Поэтому, чтобы сделать GeoPoint центром рисования, вам просто нужно сделать это:

overlayItem.setMarker(YourDrawable);
overlayItem.setMarkerHotspot(HotspotPlace.CENTER);

Если вы используете класс Marker, то лучше использовать код ниже...

Marker marker = new Marker(map);
marker.setAnchor((float)0.5, (float)0.5); // center icon to geo pint

Раньше я не использовал osmdroid, но обычно этого можно добиться, установив границы маркера.

Например, при использовании Google MapView вы должны использовать следующий код, чтобы указать, что вы хотите, чтобы центр маркера находился в данной GeoPoint:

super(boundCenter(defaultMarker));
Другие вопросы по тегам