出门莫恨无人随,书中车马多如簇。这篇文章主要讲述在我的屏幕上显示给我的区域中的android上的地图中显示标记相关的知识,希望能为你提供帮助。
【在我的屏幕上显示给我的区域中的android上的地图中显示标记】我正在使用Google地图。假设我的数据库中存储了大约100万个位置标记。我想要做的是加载或仅显示应当在屏幕上当前显示的地图部分上的那些标记。 (例如,如果我的地图显示亚洲,它应该只显示亚洲的标记;
如果我移动到地图上的任何其他位置,它应该显示该区域的标记。)我这样做所以我不喜欢必须立即加载整个数据库,因为这可能会导致应用程序延迟。我尝试使用Spatialite,但我找不到一个好的教程,或者有关如何使用它的信息。这是我遵循的链接之一,但我没有得到一个好主意。还有其他方法可以做到这一点,还是Spatialite是最佳选择?
答案您必须找出从数据库中检索这些位置的最佳方法,但根据地图相机的位置添加标记的一种方法是在GoogleMap.OnCameraChangeListener中添加相关标记。
// Check to see if your GoogleMap variable exists.
if (mGoogleMap != null) {
// Respond to camera movements.
mGoogleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
@Override
public void onCameraMove() {
// Get the current bounds of the map's visible region.
LatLngBounds bounds = mGoogleMap.getProjection().getVisibleRegion().latLngBounds;
// Loop through your list of positions.
for (LatLng latLng: yourLatLngList) {
// If a position is inside of the bounds,
if (bounds.contains(latLng)) {
// Add the marker.
mGoogleMap.addMarker(new MarkerOptions()
.position(latLng));
}
}
}
});
}
每次地图的相机位置发生变化时,我都不会建议循环一百万个位置。我认为最好的方法是在移动相机时获取地图可见区域的当前边界,然后在不同的线程上将调用中的边界发送到后端,让后端完成工作找到适合这些边界的位置,然后将该列表返回到您的应用程序,您可以相应地添加标记。
推荐阅读
- Android google Places API超出了每日配额
- 如何在现有的旧版Android项目中使用最新的API添加Google Map()
- Android onLocationChanged with Direction使用Google Map Api v2
- Apptentive Message单元格颜色变化
- Buggy JavaScript代码(JavaScript开发人员最常犯的10个错误)
- 什么是Bootstrap(关于什么,为什么以及如何做的简短的Bootstrap教程)
- 为什么我从AngularJS切换到React
- AngularJS开发人员最常犯的18个错误
- Backbone.js开发人员最常犯的8个错误