Точное позиционирование маркеров широты/долготы

Я пытаюсь центрировать маркер 40x40 по широте/долготе в itemizedOverlay для просмотра карты.

Я установил границы маркера с помощью

    markerDefault.setBounds( -markerDefault.getIntrinsicWidth()/2
            ,-markerDefault.getIntrinsicHeight()/2
            , markerDefault.getIntrinsicWidth()/2
            , markerDefault.getIntrinsicHeight()/2);

Когда я проверяю широту/долготу, касаясь центра изображения маркера, широта кажется неправильной примерно на высоту изображения.

Есть ли способ обеспечить центрирование изображения на требуемой широте/долготе?

Возможно ли, что курсор мыши по умолчанию — стрелка — не выполняет своего обычного поведения, используя свой заостренный конец для взаимодействия с эмулятором?

Спасибо,

Джефф


person Geoff    schedule 05.01.2011    source источник
comment
Я использую эмулятор, поэтому «нажатие» на самом деле является щелчком мыши. Я использую метод onTap(GeoPoint p, MapView mapView) для обнаружения точки и получения широты и долготы от p.   -  person Geoff    schedule 05.01.2011


Ответы (1)


Ответ -

Я использую ItemizedOverlay. Когда добавляется OverlayItem, вы можете указать, будет ли маркер позиционироваться с его центром в позиции или его нижним краем в позиции. См. Подробный оверлей.

Я скопировал и вставил некоторый хороший код для ItemizedOverlay, который я нашел (конечно, в stackoverflow), который включал

super(boundCenterBottom(defaultMarker));

Это вызвало очевидную аномалию, которую я обнаружил. Хорошо, если вы используете маркер типа булавки. я изменил его на

super(boundCenter(defaultMarker));

и он работает так, как ожидалось.

person Geoff    schedule 05.02.2011