我尝试从网址下载maptile并在我的地图上显示
val flowUpdates = cordaRPCOps.stateMachinesFeed().updates
flowUpdates.subscribe {
if (it.id == flowHandle.id && it is StateMachineUpdate.Removed) {
val int = it.result.getOrThrow()
// Handle result.
}
}
但是我发现了这种错误
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);
如何解决这个问题? 提前致谢
答案 0 :(得分:0)
您正在使用URLEncoder对您的网址进行编码。 URLencoder不能用于整个URL的编码。
HTML表单编码的实用程序类。这个类包含静态 将String转换为的方法 application / x-www-form-urlencoded MIME格式。欲获得更多信息 关于HTML表单编码,请参阅HTML规范。
您不需要对tilesource URL使用任何编码。
在您的tilousource网址中包含“0/0 / 0.png”可能不正确,这个应该由OSMDroid填写。但我无法确定CustomTileSource是如何实现的,因此在您的情况下可能会有所不同。
有关包含自定义tilesources的更多信息,请查看documentation for osmdroid。