当前位置: 首页 > 知识库问答 >
问题:

Android系统的谷歌地图v2更新标记(问题

施飞鸿
2023-03-14

我正在将现有的交通应用程序从<code>MapView</code>升级到Google地图v2。我有两个核心要求,但从叠加到标记会带来以下问题:

要求1) -地图需要播种固定位置标记的初始层。然后再加一层标记来描绘车辆的位置。如果车辆具有相同的< code > latting ,则应始终在车站位置的顶部进行渲染。

使用覆盖<代码> MapView > < /代码,Z-Inde

this.GenerateStations();  //Renders a base of Station Overlays
this.GenerateVehicles();  //Renders vehicles on-top of Station Overlays

但是,在使用 GoogleMap v2 时,地图似乎正在随机呈现所有标记,而不管每个标记实例的创建和添加顺序如何。这是地图的公认缺陷还是有解决方法?

要求2)-每个标记实现一个信息窗口适配器,以显示有关标记的信息。在后台线程中,车辆标记的位置和图标每秒更新一次,如果图标与站点标记相同,则需要更改图标。问题是,如果我更新标记的位置或代码段,InfoWindowAdapter会随着图标移动位置,但当我更新setIcon,我会丢失InfoWindowsAdapter>/code>:

//This works perfectly, InfoWindowAdapter snippet updates too
vMarker.setPosition(vehicleLatLng);
vMarker.setSnippet(vehicleSnippet);

//Causes the InfoWindowAdapter to disappear 
vMarker.setIcon(BitmapDescriptorFactory.fromResource(imageResource));

似乎当setIcon叫做,标志是d


共有3个答案

杨俊茂
2023-03-14

我也有同样的问题。

我有一个自定义标记,它指示pois的当前位置和其他标记。

如果按给定顺序添加标记,首先是当前位置,然后是 pois,则标记在地图上的顺序是正确的。poi 标记位于当前位置标记的上方。

我的代码看起来像这样:

map.clear();
map.addMarker(currentPosition)
for (MarkerOptions poi : poiMarkerOptions) {
     map.addMarker(poi);
}
张敏达
2023-03-14

但是,在使用 GoogleMap v2 时,地图似乎正在随机呈现所有标记,而不管每个标记实例的创建和添加顺序如何。这是地图的公认缺陷还是有解决方法?

无法控制标记,也无法控制标记的渲染顺序。

暴夕
2023-03-14

看起来地图正在随机渲染所有的标记

不。标记呈现从顶部的年代

设置图标后是否尝试调用<code>showInfoWindow</code>了?

vMarker.setIcon(BitmapDescriptorFactory.fromResource(imageResource));
vMarker.showInfoWindow();

编辑:或

new Handler().post(new Runnable() {
    public void run() {
        vMarker.showInfoWindow();
    }
});

根据马辛的回答,你的观点是非常合理的。这是一种专门的聚类。

关于<code>setIcon</code>后消失的信息窗口:我报告说,就在他们发布了一个具有此功能的版本之后。您可以在此处对此进行评论:http://code.google.com/p/gmaps-api-issues/issues/detail?id=5419

 类似资料:
  • 我的项目内容粘贴在下面。我想我已经有了从所有这些不同的帖子中推荐的一切,但是,像许多其他人一样,我得到了这个通货膨胀运行时错误。 这个实际的项目取自Vogella教程,它甚至不会编译。我从其他帖子中应用了相同问题的修复。 谁能告诉我如何使这工作?有人知道任何地方有一个可行的例子吗?谢谢,加里 清单文件。.. 我的主布局XML文件。... MainActivity.java文件。..(祝代码粘贴在此

  • 我使用的谷歌地图api如下: 这需要拉特和lng,地图画得很好,但是当新的拉特 我想在不重新绘制地图的情况下更新地图上的标记。

  • 我正在尝试建立地图应用程序和遵循这个链接一步一步。我在这里找到了类似的话题,但没有帮助我。我想显示地图,但当我运行它,它返回的力量关闭和我的android设备。我看到了很多关于这个错误的问题,但没有人真正回答我的问题。这是我的logcat: 这里是我的mainactivity.java 我已经从下面链接一步一步地阅读了,但是在我的代码中似乎有很多错误。我错过了什么?有什么建议吗?多谢。

  • 我想更改Google Maps上选定的标记图标,因此我有以下代码: 在这一行,我从下面得到错误: 例外情况如下:

  • 更新:我通过添加previousMarker对象解决了性能问题。因此,只有先前点击的标记将被删除,并替换为默认图标。然而,当我单击标记时,信息窗口仍然没有显示。 我有一个地图视图,并在上面设置了一些标记。我想要的是当我点击一个标记时,它会改变它的图标为一个不同的图标,当我点击另一个标记时,前一个标记的图标应该改变为它原来的图标。 populateAllMarkersOnMap()目前可以是如下所示

  • 我正在为Android制作基于谷歌地图服务的公共交通地图。地图应该包含很多标记(超过300个),它们应该在地图放大和缩小(缩放)时调整大小。现在标记只是互相重叠,有没有办法创建像这样的自定义标记? 我自己也试过,但没有成功。使用android-map-utils库(https://github.com/googlemaps/android-maps-utils)标记现在看起来更好了,但它们不能调整