Установите центр маркера на 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));