在移动网络应用上呈现城市地图

我正在编写一个使用开放式网络技术的移动应用程序,主要针对新兴的Firefox操作系统,但计划通过网络浏览器支持任何移动设备。 该应用程序涉及公共交通的手段,目前在我的城市,但也有能力延伸到其他领域。 我想向用户提供关于公共交通线路站点的图形信息,提供从站点A到站点B的最短路径信息,使用城市的公共API跟踪车辆位置等等。

由于它是Firefox OS应用程序,因此我将HTML5 / CSS3用于演示文稿,并将Javascript用于逻辑,并将这些文件保存为本地文件,因此从不要求应用程序能够访问互联网。 但是,我面临的问题是渲染城市地图(顶部可能有叠加层,例如突出显示的道路和车站)。 我想让应用程序不依赖互联网连接工作,因为我认为它有时会在运输过程中和公共场合使用,在那里不可能存在持续的WiFi连接,用户不得不依赖运营商提供商数据连接,这可能会导致成本高昂并转移潜在用户。

到目前为止,我只能找到能够从离线文件中渲染OpenStreetMap数据的Kothic-JS(使用HTML5画布),但即使有足够的计算能力,其性能仍然令我担忧,因为它在我的Firefox OS模拟器中会出现断断续续的情况我的台式电脑。 我只能想象在配备FxOS的低端移动设备上会造成什么样的恐慌 - 我担心该应用程序无法使用。 据我所知,其他图书馆(如OpenLayers)往往都会下载服务器生成的图块。

在使用HTML5和Javascript的移动设备上渲染城市地图是否可行? 我应该如何处理这个问题? 可以使用巧妙的XSLT将地图文件转换为SVG,也可以预先分割为SVG切片,在必要时剪切,但由于可以使用大量的缩放级别,因此这些切片的大小永远无法以正确的方式选择(即if在缩放级别5上的图块占据设备屏幕,在缩放级别2上,它们只占用它的小部分,并且最终以30个图块的顺序绘制以填充屏幕)。 除了转向在线服务之外,还有其他方式可以做到吗? 我知道有很好的客户端地图渲染库,但是这些都不能在Javascript中使用。


你应该尝试Leaflet JS - 这是一个很棒的开源的JavaScript映射库,支持手持/触摸。 我已经在我的项目中使用过它,它在Firefox OS上效果很好。

至于离线支持,您可能会发现几篇关于如何使用Leaflet将贴图缓存为离线使用的博客文章 - 您应该将这些贴片与您的应用捆绑在一起(如果它仅用于显示本地信息)或者实现某种缓存算法if你不能捆绑这些资产。

链接地址: http://www.djcxy.com/p/79741.html

上一篇: Rendering city maps on mobile web apps

下一篇: Unable to deploy Hosted app into Firefox OS marketplace from Tomcat