【问题标题】:Google Maps API v2 for Android: Marker and Polyline position mismatch适用于 Android 的 Google Maps API v2:标记和折线位置不匹配
【发布时间】:2013-07-18 14:13:33
【问题描述】:

我正在尝试以这种方式在同一张地图中绘制一些标记和折线

    MarkerOptions options = new MarkerOptions();
    Marker marker;

    PolylineOptions polyLineOptions = new PolylineOptions();
    polyLineOptions.color(context.getResources().getColor(R.color.mm_red));

    if (route != null) {

        for(Entry entry : route.getEntries().getEntryList()){

            LatLng pos = new LatLng(entry.getGeolocation().getLatitude(), entry.getGeolocation().getLongitude());
            options.position(pos);
            polyLineOptions.add(pos);

            marker = mMap.addMarker(options.icon(BitmapDescriptorFactory.fromResource(R.drawable.im_map_marker_main_num)));
            marker.setVisible(true);

        }


    Polyline polyline = mMap.addPolyline(polyLineOptions);
    polyline.setVisible(true);

    }

但是,在这里你可以看到我得到的结果:

如您所见,即使我将相同的LatLng 位置传递给MarkerOptionsPolylineOptions,也存在某种偏移。

作为额外信息,我在 Nexus 7 中得到了这种行为。

谢谢

编辑:标记图标的大头针位置是默认的,所以它底部的中心

编辑:不是位图创建问题。如果我使用canvas.drawColor,这就是我得到的(不同的尺寸,因为现在我使用的是 Nexus 10)

【问题讨论】:

    标签: android android-maps-v2


    【解决方案1】:

    这里的问题是,默认情况下,Marker 的 pin 位置在图像的底部中心。

    您将不得不摆弄anchor(float, float) 和/或确保锐边是底部中心的最后一个像素(下方没有透明像素)。

    【讨论】:

    • 嗨 MaciejGórski, 我使用的所有图标的大头针位置都位于默认位置的中心(底部尺寸的中间)。谢谢:-)
    • @Wakka 您似乎正在将此图标绘制到Bitmap 中。你能用canvas.drawColor填充背景吗?
    • @MaciejGórksi 谢谢,但它仍然不起作用(在第二个编辑中查看上方):-)
    • 最后我用锚值解决了它。这不是最好的解决方案,但它是一个有效的解决方案。谢谢。
    • @Wakka 这很奇怪。你能在 github 上做一个简单的应用程序来显示这个问题吗?如果您的代码确实不是问题,则可以在 gmaps-api-issues 上发布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2013-08-27
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2013-03-22
    相关资源
    最近更新 更多