我有一个服务器,存储了遍布全局的数十万个谷歌地图标记详细信息,现在我试图在我的 Android 应用程序中显示它们。显然,我不需要立即显示整个标记,而是仅显示用户正在查看的位置和特定的缩放比例。我使用服务器中的 json 文件发送标记,但我还没有意识到根据用户需要加载它们的最有效方法是什么。谢谢!
您可以获得Google map 中心位置的LatLng。然后,您可以将位置发送到服务器并计算距离小于特定距离的点,然后仅返回那些点。
使用这样的东西:
mGoogleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
LatLng latLng = cameraPosition.target;
mRepository.requestPointsNearPosition(latLng)
}
});
因此,每次您的相机改变位置时,您都会重新加载点。这样您始终只显示 map 中的相关点。
也许您可以使用句柄来确保用户停止移动 map 0.5 秒,处理程序仅在 map 停止移动时触发操作...其他,如果 map 再次移动,它会自行取消
我是一名优秀的程序员,十分优秀!