大家好,我正在为我的下一个项目做一些基础工作,我需要在应用程序中显示地图。我正在寻找谷歌地图的替代品,我在这里找到了一个列表替代谷歌地图 api正在考虑使用 OpenLayer 地图。我想知道使用 OpenLayers 是否有任何限制有没有人研究过这个。我在 OpenLayers 网站上找不到任何限制。
1 回答
我目前正在实现一个应用程序,它使用 openlayers 来显示由我们自己的瓦片服务器提供的基于 OSM 的地图。我在 webview 中使用 OL。html 文件和脚本、图像……存储在应用程序的资产文件夹中,并从那里调用。
到目前为止,它工作正常。但是对于 Android,您对多点触控导航有一定的限制。尽管该设备将支持多点触控(尤其是捏缩放手势),但 Android WebView(和普通浏览器)却不能。这是自 2009 年以来 Android < 3.0 的一个未解决问题您可以在 openlayers.org 上找到相应的限制文档,并且有一个摘要表(我会发布它,但 StackOverflow 不允许我发布图片,因为我是新人成员) 有一个有趣的项目可以在 Android 上进行缩放缩放工作,我将在接下来的几周内尝试一下。
虽然从股票浏览器观看地图的性能非常好,但在 webview 中使用它时存在一些性能问题:任何缩放操作都会导致异常的高 cpu 负载,并且无法使用该应用程序 5-10秒。我只在三星 Galaxy S1 (Android 2.3.6) 上测试过它。但是,模拟器上不会出现性能问题。下周我应该有双核 cpu 的 android 设备。我认为这将使该应用程序再次在 web 视图中与地图一起使用(会告诉你我的结果)。
总结我的经验,我必须说 OpenLayers 真的很强大,我觉得你可以用它做任何事情。你只需要在谷歌周围寻找教程;-)
更新:本周我能够在三星 Galaxy S3 上进行测试。地图的表现很棒!没有问题了。由于 S3 配备 Android 4.0.4,多点触控手势默认都可用 - 无需更改。在模拟器上,当您使用非常密集的地图(缩放)时会出现一些问题 - 但在设备上没有这样的问题。我发现 Galaxy S 1 的 webview 缓存(仍然)存在一些错误,因此速度非常慢。对于只有单核 CPU 的手机来说,这可能是个问题。无法测试其他设备。但是,如果您找不到问题的解决方案并认为这是与 openlayers 相关的问题,请检查项目页面是否有问题