首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android中部分下载开放的街道地图

在android中部分下载开放的街道地图
EN

Stack Overflow用户
提问于 2014-02-22 16:15:30
回答 3查看 358关注 0票数 0

我正在创建一个应用程序,以允许用户使用在线和离线地图,在线地图我使用谷歌地图API,离线我使用开放的街道地图(因为谷歌地图无法下载或缓存根据他们的政策),我如何下载地图的一部分?

例如,现在我有一个坐标为x,y的命运,我如何下载这个坐标周围的地图区域并保存到我的设备上供以后使用,然后我如何加载它?

目前,我只能使用地图视图显示和放大。

EN

回答 3

Stack Overflow用户

发布于 2014-02-23 05:28:12

我推荐mapsforge,你可以在安卓甚至桌面上做离线地图。与高缩放级别的磁贴相比,它需要的带宽要少得多。缺点是,你必须在你自己的服务器上为每个区域创建一个地图,就像我对graphhopper所做的那样。

票数 2
EN

Stack Overflow用户

发布于 2014-02-22 16:43:58

您是在谈论由tiles组成的光栅地图还是矢量地图?从官方的OSM服务器上下载大量的tiles是违反他们的tile usage policy的,因为这些服务器运行在资助的资源上。但是,您可以使用render your own tiles,例如使用TileMillMaperitive

如果你想使用矢量地图,那么只需转到OSM wiki并点击首页上的Download链接即可。

对于非常小的区域,比如一些街道,你可以使用regular API。对于较大的地区,比如一个城市,你应该尝试使用Overpass API。对于更大的任何东西,最好的方法是使用area or country extract。之后,您可以使用osmosispbftoosmosmconvert等工具进一步处理数据。

请注意,您仍然需要将此原始地图数据呈现为矢量地图。

票数 0
EN

Stack Overflow用户

发布于 2014-02-22 16:48:25

你应该(深入)看看openstreetmap.org的维基,然后在网上搜索"tiles offline osm“。

还有一个叫的项目。它有一个具有Google Maps Widget的大多数功能的小部件。有一个离线tiles提供商,它可以利用下载的tiles (使用特殊工具创建的缓存和zip文件)。

这一领域最大的问题之一是,大多数tiles服务器不允许下载大范围的tiles供离线使用。如果你使用像Mobile Atlas Creator这样的工具,你会被tiles服务器屏蔽,只下载告诉你“你被屏蔽了”的图片。

因此,如果你想为你的应用程序用户提供更高缩放级别(>14)的非常大的区域,你就遇到了一个问题。但是,如果你只是提供一个小城市的地图,你可以尝试使用一个开放的瓦片服务器(AFAIK是其中一个更自由的下载政策),或者从商业提供商那里购买一定数量的瓦片(见维基,我不想在这里做广告)。

如果能对当前地图进行点对点的文件共享,那就太好了。因为OSM的许可证(至少我是这么理解的)说,可以销售基于OSM数据的地图,但这些地图可以以任何方式共享和发布。

如果有人找到了共享地图的解决方案(无需花费太多的AWS/provider/cloudfront/...)这对许多Android应用程序程序员来说是很有趣的。osmdroid的优点是所有安装的应用程序都可以重用相同的地图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21951668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档