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

部分下载android中的开放式街道地图,android,android-mapview,openstreetmap,Android,Android Mapview,Openstreetmap,我正在创建一个应用程序,允许用户同时使用在线和离线地图,在线地图我使用谷歌地图API,离线我使用开放街道地图(因为谷歌地图不能根据他们的策略下载或缓存),我如何部分下载地图 例如,现在我有一个坐标为x,y的命运,我如何下载这个坐标周围的地图区域并保存在我的设备上供以后使用,以及以后如何加载它 目前,我只能显示和缩小与地图视图 你说的是光栅地图还是矢量地图?从官方OSM服务器下载大量的Tile是违反他们的要求的,因为这些服务器运行在资金支持的资源上。但是您可以,例如使用和 如果您想使用矢量地图,只

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

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


目前,我只能显示和缩小与地图视图

你说的是光栅地图还是矢量地图?从官方OSM服务器下载大量的Tile是违反他们的要求的,因为这些服务器运行在资金支持的资源上。但是您可以,例如使用和

如果您想使用矢量地图,只需转到并遵循首页上的链接即可

对于非常小的区域,例如一些街道,您可以使用。对于较大的区域,例如城市,您应该尝试使用。对于任何更大的东西,最好是使用。之后,您可以使用、和等工具进一步处理数据

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

您应该(深入)查看openstreetmap.org的wiki,并在web上搜索“tiles offline osm”

还有一个叫做的项目。它有一个小部件,具有谷歌地图小部件的大部分功能。有一个离线tiles提供程序,可以利用下载的tiles(使用特殊工具创建的缓存和zip文件)

这方面最大的问题之一是,大多数tiles服务器不允许下载大面积的Tile供脱机使用。如果你使用像这样的工具,你会被tiles服务器阻止,只下载告诉你“你被阻止了”的图片

因此,如果你想为你的应用程序用户提供更大的缩放范围(>14),你就有问题了。但是如果你只是提供一个小城市的地图,你可以尝试使用一个开放的tiles服务器(AFAIK MapQuest是那些具有更自由下载策略的服务器之一),或者从商业提供商那里购买一定数量的tiles(见wiki,我不想在这里做广告)

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


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

我建议,您可以为Android甚至桌面制作离线地图。与具有高缩放级别的平铺相比,它需要更少的带宽。缺点是,您必须在自己的服务器上为每个区域创建一个地图,就像我为graphhopper所做的那样。

我现在正在使用osmaroid库,我现在遇到了一些问题:1。如何下载特定区域的地图(区域大小无关紧要,但放大级别最好是街道级别),存储格式如何,以及2。当我想使用时,我如何加载它?我如何在上面放置标记?感谢您的建议,您是否有关于如何使用下载和创建地图的详细步骤?@user1452954您可以使用mapsforge map writer创建地图,并通过其API将其加载到android上。应该很简单。只要问问他们的邮件列表就行了。重要事项:确保使用正确的渗透版本。我想只有0.40.1会起作用@hgoebl谢谢,如果您使用它并有疑问,请随时加入邮件列表:)