2011-01-05 6 views
0

Ich versuche einen 40x40 Marker an einer lat/lon Position in einem itemizedOverlay für eine Kartenansicht zu zentrieren.Präzise Positionierung von Markern für lat/lon

stelle ich die Marker Grenzen mit

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

Wenn ich das überprüfen lat/lon durch die Mitte des Markierungsbildes schneidend, die lat etwa um die Höhe des Bildes zu sein scheint falsch.

Gibt es eine Möglichkeit, um sicherzustellen, dass das Bild auf das erforderliche Breiten-/Längengrad zentriert ist?

Ist es möglich, dass der Standardmauszeiger - ein Pfeil - sein übliches Verhalten nicht macht, das spitze Ende zu benutzen, um mit dem Emulator zu interagieren?

Danke,

Geoff

+0

Was Mauszeiger? – Falmarri

+0

Ich benutze den Emulator, also ist der "Tap" eigentlich ein Mausklick. Ich verwende die Methode onTap (GeoPoint p, MapView mapView), um den Punkt zu erkennen und das lat-lon von p zu erhalten. – Geoff

Antwort

0

Die Antwort -

ich ein ItemisedOverlay bin mit. Wenn ein OverlayItem hinzugefügt wird, können Sie angeben, ob der Marker mit seiner Mitte an der Position oder der unteren Kante an der Position positioniert wird. Siehe ItemizedOverlay.

Ich hatte Kopieren und Einfügen ein paar nette Code für ein ItemizedOverlay I (auf Stackoverflow natürlich) gefunden, die

enthalten
super(boundCenterBottom(defaultMarker)); 

Diese die scheinbare Anomalie verursacht ich gefunden habe. Es ist gut, wenn Sie einen Stift-Typ-Marker verwenden. Ich änderte es in

super(boundCenter(defaultMarker)); 

und es funktioniert wie erwartet.