java - map View 上的多个逐项叠加需要帮助

标签 java android google-maps android-mapview itemizedoverlay

我正在寻求帮助......

首先,我有一个数据库服务器端,有大量位置(长+拉特)

现在仅一个城市就有多达 1000 个。此刻,我的 Android 设备一次性获得所有信息。然后,我创建 1000 个逐项叠加层并将它们添加到 map View 中。 这反过来又使我的模拟器和手机运行缓慢。

我的一个想法是放大某个位置,然后下载叠加层的子集并将其放置在 map View 上。 我遇到了这个问题 1. 当我在 map 上滚动时,我不知道要注册监听器的事件。 2.当用户缩小时,我仍然会创建大量的逐项叠加。

我想问你们的是,

我该如何克服这些问题?或者你会如何去做这件事?

解决方案类似于谷歌地图的工作方式。当你缩小时,你会看到一个不太详细的 map ,但当你放大时,它会显示一张详细的 map ,当你四处移动时会重新加载

最佳答案

I then create 1000 itemized overlays and add them to the map view.

嗯...请告诉我这是一个拼写错误,您的意思是“1000 OverlayItems”,而不是“1000 ItemizedOverlays”。

1000 个 OverlayItems 可能已经够糟糕了 - ItemizedOverlay 并不是真正为那么多点而设计的。

When I scroll on the map I don't know what event to register a listener to.

我认为这里没有直接的解决方案。我认为其他人对触摸事件进行了逆向工程并正在监听这些事件。请参阅Android Maps get Scroll Event了解更多。

When the user zooms out I will still create the large number of itemised overlays.

使用优先级方案。您在 Google map 中看到的是,仅显示前 N 个项目,其中“顶部”基于某种优先级机制。

关于java - map View 上的多个逐项叠加需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6418839/

相关文章:

java - 如何从 JButton 的操作中获取 JTextField 中的字符串?

java - 从 Web 应用程序运行 Java 应用程序

android - 基于 API 级别请求权限

api - 使用谷歌地图api计算两点之间的距离?

java - 属性未传递给 bean

java - 如何使用 httpPost 将数据发送到网站,应用程序崩溃

java - 如何在 Facebook 分享对话框中设置描述(你在想什么?)

java - 如何获取android :name from <application>

ios - Google map 无法在 iOS 中加载

c# - 谷歌地图位置按 map 上最近的第一个排序