我尝试从url下载地图并将其显示在我的地图上
String prova = "http://a.tile.stamen.com/toner/0/0/0.png";
try {
prova = URLEncoder.encode(urll,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
Log.d("URL","Errore URL\n\n");
}
final ITileSource customTileSource = new CustomTileSource("SomeName",3,14,256,
".png",new String[]{prova});
final TilesOverlay overlay = new TilesOverlay(new MapTileProviderBasic(getApplicationContext(),customTileSource),getBaseContext());
overlay.setLoadingBackgroundColor(0);
map.getOverlays().add(overlay);但是我发现了这类错误
OsmDroid: IOException downloading MapTile: /3/1/7 : java.net.MalformedURLException: no protocol: http%3A%2F%2F%7Bs%7D.tile.openstreetmap.org%2F%7Bz%7D%2F%7Bx%7D%2F%7By%7D.png如何解决这个问题?提前感谢
发布于 2018-01-08 18:17:38
您正在使用URLEncoder对您的网址进行编码。URLencoder不适合用于对整个URL进行编码。
用于
表单编码的HTML类。此类包含将字符串转换为application/x-www-form-urlencoded格式的静态方法。有关HTML表单编码的更多信息,请参考HTML规范。
您不需要对您的tilesource URL使用任何编码。
此外,在您的tilousource URL中包含"0/0/0.png“也可能是不正确的,此pert应由OSMDroid填写。但我不能确定CustomTileSource是如何实现的,因此在您的情况下可能会有所不同。
有关包含自定义分块源的更多信息,请查看documentation for osmdroid。
https://stackoverflow.com/questions/48147339
复制相似问题