android谷歌地图标记放置

时间:2015-09-07 11:43:03

标签: android android-maps-v2 android-maps

在我的Android应用程序中,我需要将标记放在地图上的确切位置。我用51.507351,-0.127758(伦敦)位置在地图上标记了一个标记。我使用以下代码来完成工作。

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));

这是我的标记可绘图像:

enter image description here

现在我的问题是,“Q”符号位于51.507351,-0.127758的位置。我需要将标记放在底部箭头开始的位置。

请查看图片,以便了解我的问题。

我该怎么做?请帮帮我。

enter image description here

4 个答案:

答案 0 :(得分:19)

标记如何锚定的逻辑是这样的:

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

另外考虑到根据您的位图资源,它的位置可能与您预期的略有不同,因为它们实际上接近最近的捕捉位置。因此,在上面的示例中,您的锚点将捕捉到此位置: *-----+-----+-----+-----* | | | | | | | | | | +-----+-----+-----X-----+ (X, Y) = (3, 1) | | | | | | | | | | *-----+-----+-----+-----*

答案 1 :(得分:10)

答案 2 :(得分:1)

试试这个:

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));

答案 3 :(得分:0)

试试这个,

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)));