问题标签 [itemizedoverlay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1842 浏览

android - android MapView 画线

我正在尝试在我的 mapActivity 上绘制一些覆盖路径。

这是我的 ItemizedOverlay 类:

这就是我调用它的 MapActivity。

关于如何在地图上显示线条的任何建议。截至目前,它正在运行。但不显示覆盖。

谢谢你。

0 投票
2 回答
1078 浏览

android - Android 覆盖整个地图

您将如何创建覆盖整个地图的 ItemizedOverlay?

我在地图上有多个标记,它们是 ItemizedOverlay 类。

我想创建另一个覆盖整个地图的 ItemizedOverlay 以拦截不在我的标记上而是在地图本身上的触摸事件。我在其他类似这样的SO 问题中读过,唯一的方法是通过 ItemizedOverlay->onTap。问题是我不知道如何创建覆盖整个地图的可绘制标记。

我已经尝试过 LinearLayout 可绘制对象,但它似乎只能使用可绘制图像作为标记。

这是我的代码

并创建覆盖

和可绘制的 xml

提前致谢

0 投票
1 回答
370 浏览

android - ItemizedOverlay 仅显示 FIRST ENTRY

我按照Google Dev上的教程创建了一个 ItemSizedOverlay。我的想法是从名为list的 ArrayList 中获取多个位置。因此,我使用 for() 读出 ArrayList 列表并将位置添加到名为PowerStationOverlay的 ItemSizedOverlay - 但奇怪的是,这仅给了我列表的第一个条目- 其他条目未显示在地图上。 ..

如果我像在教程中那样在静态位置读取 - 它工作正常,但是当我通过 ArrayList 和 for() 读取位置时,它应该迭代它 - 然后它不起作用。

我很困惑我不明白这一点 - 怎么了?

protected void onCreate(Bundle savedInstanceState) {

mapOverlays.add(itemizedoverlay);

}

这里是称为 PowerStationOverlay 的 ItemSizedOverlay。

0 投票
2 回答
11393 浏览

android - 重绘/刷新Itemizedoverlay?(安卓/谷歌地图 API)

我正在使用谷歌地图 API 制作 GPS 跟踪器,并使用 ItemizedOverylay 在地图上显示用户当前位置。由于用户位置定期更改,我设置了一个 CountDownTimer 来删除当前的 Itemizedoverlay 并每 5 秒在新位置添加一个新的(无法更改 itemizedOverlay 的位置)但屏幕没有绘制除非我亲自触摸屏幕,否则新职位!这是我的逐项叠加的代码:

有谁知道当我放入新项目时是否有方法或可以调用强制重绘/刷新的方法?

编辑:这是 MapsActivity 的片段:

0 投票
1 回答
547 浏览

android - ItemizedOverlay.draw() 的性能问题

我有一堂课:

它覆盖draw()ItemizedOverlay.
在我的活动中,我有一个包含许多叠加项目的地图以及一个列表。我从 traceviewer 输出和 logcat 中注意到,MapView.onDraw()即使地图没有被触及,它也会被多次调用。这导致了一个非常无响应的列表和地图(当我的WaypointOverlay班级只是从这些onDraw调用中返回时,一切都运行良好)

我怎样才能让onDraw电话发生的频率降低 - 理想情况下只有当MapView更改跨越时?我尝试在onDraw中检查MapViewlat/lon 跨度是否与上次onDraw调用时相同,并且仅在两者不同时才绘制。这导致OverlayItems仅在地图平移或缩放时出现。

关于提高性能的任何想法?

0 投票
1 回答
2002 浏览

android - Android 中的 ConcurrentModificationException

首先,我很抱歉再次提出这个问题,但我还没有找到解决我的问题的方法。

我有一个应用程序,我可以在其中使用 MyLocationOverlay 定位自己,并使用 itemizedOverlay 绘制朋友的位置。但是该应用程序因 ConcurrentModificationExcepion 而崩溃

对于我的位置,我使用 MyLocationOverlay 和这个单一的代码(以前初始化):

对于我朋友的位置,我使用了 ItemizedOverlay 和绘制位置的方法。ItemizedOverlay 这是:

这是绘制位置的方法:

使用两个不同的mapViews(mapView和mapView2),否则draw方法会在执行时擦除myLocationOverlay点mapView2.postInvalidate();

正如我所说,我获得了 ConcurrentModificationException。我找到了一些解决方案,但我不知道如何应用......这对我来说非常重要,因为它是我职业生涯的结束。太感谢了!

0 投票
1 回答
7419 浏览

android - GoogleMaps:自定义 ItemizedOverlay 和 OverlayItem,显示不同标记的正确方法

我一直在寻找关于扩展 ItemizedOverlay 和 OverlayItem 的正确方法的明确信息,但我得到的结果还不能让我满意。简而言之,我需要在地图上显示与多个位置相关的不同类型的标记;要显示的标记类型由位置本身的特定属性决定。当标记被选中时,我还需要显示某个标记,当标记未选中或未聚焦时,我还需要显示另一个标记。据我了解,这是我写的:

MyItemizedOverlay 由主 MapActivity 中的 MyOverlayItem 创建和填充。现在:正确放置的唯一标记是默认标记。也就是说,传递给 MyItemizedOverlay 的构造函数的那些具有可绘制性,并使用 boundCenterBottom 设置(将图像的中间底部点设置为指向地图中的指定点)。当 MyOverlayItem 类中的 getMarker 方法不返回 null,并且使用了另一个标记时,图像显示错误(例如,阴影不跟随图像!)。在getMarker方法中,你必须为drawable定义一个边界框(用drawable.setBounds);但是我认为,通过这种方式,您没有指定必须放置在地图点中的点。

因此,问题是:对于从 OverlayItem 对象的 getMarker 方法返回到 ItemizedOverlay 的标记可绘制对象,如何指定用于放置在地图中的边界(与默认可绘制对象的 MyItemizedOverlay 中的 boundCenterBottom 一样)? 最好的方法是什么?

;)

0 投票
1 回答
940 浏览

android - Android MapView ItemizedOverlay 绘制 onTap

我正在尝试在 ItemizedOverlay 的 Draw 方法中绘制自定义形状。是否可以为绘制的形状获取 onTap 事件。目前 onTap 适用于默认的可绘制/标记。如何使它适用于在 Draw 方法中绘制的形状?

0 投票
0 回答
2015 浏览

android - 使用 onTap() 时出现问题

在我的应用程序中,要求是当我触摸地图中的任何位置时,我必须创建一个新的叠加层并用标记显示它,如果我点击任何标记的位置,我必须在气球中显示其详细信息。

我的 ItemizedOverlay 类中编写的 onTap() 和 onTouchEvent() 如下:

MyOverlayItem里面的onTap()如下:

我的问题是:

如果我添加此 onTouchEvent(),则不会调用 onTap()。总是有一个新的点被添加。

我怎样才能达到我的要求?我对这两种方法都感到困惑。谁能帮帮我。提前致谢。

0 投票
3 回答
372 浏览

android - 在没有用户输入的情况下使 ItemizedOverlay onTap 动作触发以使气球在更改为屏幕活动时可见

我的项目中有一个 MapView,我在其中显示一组带有 ItemizedOverlay 的项目。

当用户点击其中一个项目时,会在其上显示一个带有一些信息的气球。

现在,我想要实现的是,当更改为地图活动屏幕时,无需用户点击屏幕即可显示气球......就像初始化一样,我在没有用户输入的情况下使气球已经可见。