在web项目中使用来自Android项目的map.osm和osmander.xml



我不久前编辑了一个.osm文件和一个样式文件(osmander.xml),并将其包含在一个Android项目中(使用渗透和Mapsfage库)。效果很好,看起来也不错。现在,我想在使用OpenLayers(或传单?)的web项目中重用这些文件。

使用此示例(https://wiki.openstreetmap.org/wiki/OpenLayers_osm_file_example)我能够显示我的(非常本地,但仍然是23MB)地图,然而,它都是黄色的(当然没有应用任何样式),并且它是在OSM基础地图的顶部渲染的。

我想做以下事情:1.只显示我的地图(不需要或不需要其他基础地图)。2.快速显示(但允许平移和缩放)。3.使用我的样式(在osmander.xml中定义)显示它。4.只在它移动的时候显示它(停止在边界框的边界附近平移)。

我可以用OpenLayers(可能还有渗透或一些渲染工具)做到这一点吗?如果是的话,怎么办?

您可以使用Maperiive、TileMill或类似的应用程序预渲染所有需要的瓦片。它再快不过了。还可以看看OSM的各种渲染软件。

MOBAC(2.0 Alpha 4)和Mapsfage Tile Server可以基于Mapsfage样式和地图文件渲染光栅分幅。瓦片/服务器可以用于其他应用程序,如传单或OpenLayers。

尽管不确定这些标签有多稳定和成熟,但MOBAC仍然是阿尔法,MTS有一个标签裁剪和不支持Windows的问题。

另请参阅OSM Wiki页面的地图。

Aarg。。。Mapsfage Tile Server是一个很好的提示,然而,正如我今天发现的那样,答案要容易得多。

如果你有一个基于Mapsfage库的Android地图应用程序,你可以让这个应用程序生成瓷砖并将其存储在你的移动设备上。例如,从那里你可以复制它们,并在使用OpenLayers的web项目中重用它们。

在我的情况下,Android代码(Mapsfage 0.5.2)如下:

TileCache tileCache = AndroidUtil.createTileCache(activity, "mapcache",
            mapView.getModel().displayModel.getTileSize(), this.getScreenRatio(),
            mapView.getModel().frameBufferModel.getOverdrawFactor());

它将瓦片写入"mapcache"目录。

不管怎样,非常感谢你们两个的帮助!

相关内容

  • 没有找到相关文章

最新更新