当前位置: 首页 > 知识库问答 >
问题:

使用Android Google Maps Api v2打开街道地图

杨景山
2023-03-14

有没有可能在Android上使用开放式街道地图提供商和新的Google Maps V2 Api?如果是,你能提供一个例子或文档吗?我快速查看了这些文档,找到了UrlTileProvider(),所以看起来这是可能的。

好处:简单地将MapFragment类与OSM tiles一起使用,是否仍受Google Maps TOS的约束?

共有2个答案

弓方伟
2023-03-14

使用此方法时,请注意OSM磁贴使用策略:http://wiki.openstreetmap.org/wiki/Tile_usage_policy

特别是“未经事先许可,禁止大量使用(例如,分发使用openstreetmap.org中瓷砖的应用程序)”

融修平
2023-03-14

您需要扩展UrlTileProvider类,以便为OSM平铺贴图定义URL,并添加如下平铺覆盖:

MyUrlTileProvider mTileProvider = new MyUrlTileProvider(256, 256, mUrl);
mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mTileProvider));

OSM的url定义如下:

String mUrl = "http://a.tile.openstreetmap.org/{z}/{x}/{y}.png";

MyUrlTileProvider类:

public class MyUrlTileProvider extends UrlTileProvider {

private String baseUrl;

public MyUrlTileProvider(int width, int height, String url) {
    super(width, height);
    this.baseUrl = url;
}

@Override
public URL getTileUrl(int x, int y, int zoom) {
    try {
        return new URL(baseUrl.replace("{z}", ""+zoom).replace("{x}",""+x).replace("{y}",""+y));
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    return null;
}
}

我现在正试图通过离线模式从OSM获取这些平铺地图,所以如果有人得到快速解决方案,请让我知道!

 类似资料:
  • 我对谷歌地图API完全是个新手,我想开发一款将谷歌地图上的街道作为路径的游戏。我很清楚我需要什么,但我甚至不知道从API文档中开始搜索什么。。。 如何获得城市街道或谷歌地图其他部分的图形表示,例如交叉点的顶点和边的街道名称(或任何我可以转换为类似的内容),并将顶点映射到(lat,long)协调点…甚至街道的多段线对象,以便从中提取所需内容?(路由查找算法当然可以访问这样的数据结构,所以它就在那里的

  • 我正在考虑Rchart/传单创建一个闪亮的应用程序房屋销售在我的县。任何时候都有几百套房子出售。想要为所有人绘制街道地址到地理位置的地图(lat/long)并在地图上显示它们。所以,我正在寻找一个r包,服务或数据库,可以映射街道地址到地理位置。

  • 7.2. 个案研究:街道地址 这一系列的例子是由我几年前日常工作中的现实问题启发而来的,当时我需要从一个老化系统中导出街道地址,在将他们导入新的系统之前,进行清理和标准化。(看,我不是只将这些东西堆到一起,他有实际的用处)。这个例子展示我如何处理这个问题。 例 7.1. 在字符串的结尾匹配 >>> s = '100 NORTH MAIN ROAD' >>> s.replace('ROAD', '

  • 背景一般来说,我对谷歌地图/地图sdks有点陌生。我想在iOS上创建一个地区的街道“热量”地图。作为一个容易理解的例子,让我们假设它是为了绘制城市中每天看到的小狗。数据定期变化,我们需要表明某些街道比其他街道有更多的小狗流量。 问题:我如何判断用户何时输入了唯一的街道?如何获得唯一的街道ID? 相关问题:如果在谷歌地图中不可能,请链接到在OpenStreetMap或Mapbox中这样做。 我看过的

  • 问题内容: 我正在尝试从Google json获取$ street,$ city和$ country字符串。它适用于我的家庭住址:http : //maps.googleapis.com/maps/api/geocode/json?latlng=52.108662,6.307370&sensor=true 但是,对于像这样的示例中数组中包含更多数据的其他地址:http : //maps.googl

  • 我的目标是在用户询问方向时,确定用户是否已经在谷歌地图方向搜索结果中给出的街道之一(即使不在完全相同的坐标中)。 事情是这样的: 当用户只是浏览街道时,应用程序会不时使用地理编码api询问谷歌用户在哪里。然后它注册它(我仍然需要知道我应该使用哪些信息)。 在未来的另一个时间,用户会询问他想去的特定地方的方向,应用程序会询问谷歌地图的替代品,然后它会决定使用哪种路径,如果用户会识别为根据一种配置,尽