android google map marker placing

前端 未结 4 1597
故里飘歌
故里飘歌 2021-02-06 00:40

In my Android application I need to place marker at exact position on map. I pin a marker on map with 51.507351, -0.127758 (London) location. I used the following code to do the

相关标签:
4条回答
  • 2021-02-06 01:13

    Try this,

    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)));
    
    0 讨论(0)
  • 2021-02-06 01:31

    Use MarkerOption's anchor method: https://developers.google.com/android/reference/com/google/android/gms/maps/model/MarkerOptions.html#anchor(float,%20float)

    For your case:

    MarkerOptions marker = new MarkerOptions()
    .anchor(0.5f, 1.0f)
    // Rest of the properties follow
    
    0 讨论(0)
  • 2021-02-06 01:32

    The logic behind how the markers are anchored is something like this for a 4px-by-2px image:

            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
    

    Also take into consideration that based on your bitmap resource, it could be positioned a little different than you would expect, because they actually approximate to the nearest snap position. So in the example above, your anchor points will snap to this position:

     *-----+-----+-----+-----*
     |     |     |     |     |
     |     |     |     |     |
     +-----+-----+-----X-----+   (X, Y) = (3, 1)
     |     |     |     |     |
     |     |     |     |     |
     *-----+-----+-----+-----*
    

    Documentation

    0 讨论(0)
  • 2021-02-06 01:32

    Try this one:

    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 讨论(0)
提交回复
热议问题