Osmdroid 渲染不像那样 - TileSource PublicTransport

Osmdroid render not expected like that - TileSource PublicTransport

我在使用需要使用 OSMPublicTransport tilesource 的应用程序时遇到了一些问题。

单击here可以看到奇怪的 MapView。那么,为什么 在我的应用程序中出现这种丑陋的东西? 其他 tilesource 很有魅力。

我不知道为什么它给我显示这样的地图视图。 一直在等官方的结果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);
       }

提前,谢谢!

osmdroid PublicTransport 的图块 url 是:http://openptmap.org/tiles/

你说的tilesurl(官方osmpublic交通图)结构如下:http://b.tile.thunderforest.com/transport/

您可能会在 osmdroid 中提出问题,因为它们的 url 似乎已过时。

您也可以构建自己的图块源。很简单,通过查看 osmdroid TileSourceFactory 源代码来获取示例。

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);