2015-09-07 19 views
6

In meiner Android-Anwendung muss ich Marker an der genauen Position auf der Karte platzieren. Ich hefte einen Marker auf der Karte mit 51.507351, -0.127758 (London) Ort. Ich habe den folgenden Code verwendet, um die Arbeit zu erledigen.android Google Map Marker Platzierung

googleMap.addMarker(new MarkerOptions().position(
     new LatLng(51.507351, -0.127758)).icon(
     BitmapDescriptorFactory.fromBitmap(BitmapFactory 
       .decodeResource(getResources(), 
         R.drawable.q_icon)))); 
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
     new LatLng(51.507351, -0.127758), 20)); 

Und das ist mein Marker ziehbar Bild:

enter image description here

Nun mein Problem ist, wird das "Q" Symbol an der Stelle von 51,507351 platziert, -0,127758. Ich muss den Marker an der Position platzieren, an der der untere Pfeil beginnt.

Bitte sehen Sie das Bild, so dass Sie meine Frage verstehen können.

Wie kann ich das tun? Bitte hilf mir.

enter image description here

Antwort

0

die Sie interessieren,

private GoogleMap mMap; 

mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 

mMap.addMarker(new MarkerOptions() 
    .position(new LatLng(0, 0)) 
    .title("Hello world") 
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))); 
1

Versuchen Sie dieses:

googleMap.addMarker(new MarkerOptions().position(
       new LatLng(51.507351, -0.127758)).icon(
       BitmapDescriptorFactory.fromBitmap(BitmapFactory 
         .decodeResource(getResources(), 
           R.drawable.q_icon))).anchor(0.5f, 1f)); 
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
    new LatLng(51.507351, -0.127758), 20)); 
+0

Hier gearbeitet. Spaciba o_O – statosdotcom

11

Die Logik dahinter, wie die Markierungen verankert sind, ist so etwas wie dieses:

0,0 0.5,0.0 1,0 *-----+-----+-----+-----* | | | | | | | | | | 0,0.5 +-----+-----+-----+-----+ 1,0.5 | | | X | | (U, V) = (0.7, 0.6) | | | | | *-----+-----+-----+-----* 0,1 0.5,1.0 1,1

auch in Betracht ziehen, die auf Ihrem Bitmap-Ressource basiert, ist es ein wenig anders positioniert werden könnte, als würden Sie erwarten, weil sie sich tatsächlich der nächsten Snap-Position annähern. Im obigen Beispiel fangen Ihre Ankerpunkte an dieser Position ein: *-----+-----+-----+-----* | | | | | | | | | | +-----+-----+-----X-----+ (X, Y) = (3, 1) | | | | | | | | | | *-----+-----+-----+-----*