我对需要使用OSMPublicTransport tilesource的应用程序遇到了一些麻烦。
点击here查看奇怪 MapView。那么,为什么在我的应用中这个丑陋的东西? 其他的瓷砖就像魅力一样。
我不知道为什么它会向我显示这样的地图视图。 我正在等待官方website
之类的结果这是我的 XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parent_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<org.osmdroid.views.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent"
tilesource="OSMPublicTransport" />
</RelativeLayout>
在这里我如何声明我的观点:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
mapView = FindViewById<MapView> (Resource.Id.mapview);
mapView.SetTileSource (TileSourceFactory.PublicTransport);
mapView.SetBuiltInZoomControls (true);
mapView.SetMultiTouchControls (true);
}
事先,谢谢你!
答案 0 :(得分:0)
osmdroid PublicTransport的磁贴网址为:http://openptmap.org/tiles/
您提到的瓷砖网址(官方osm公共交通地图)具有以下结构:http://b.tile.thunderforest.com/transport/
你可能在osmdroid中提出一个问题,因为他们的网址似乎已经过时了。
您还可以构建自己的磁贴源。通过查看osmdroid TileSourceFactory来源获取示例非常简单。
答案 1 :(得分:0)
OSMPublicTransport图块是叠加图块。它们旨在显示在现有图像的顶部。因此,请使用常规切片源,然后为叠加图像添加新的TilesOverlay:
// Add tiles layer
MapTileProviderBasic provider = new MapTileProviderBasic(getApplicationContext());
provider.setTileSource(TileSourceFactory.PUBLIC_TRANSPORT);
TilesOverlay tilesOverlay = new TilesOverlay(provider, this.getBaseContext());
mapView.getOverlays().add(tilesOverlay);