Osmdroid渲染不像那样--TileSource PublicTransport

时间:2015-04-23 12:28:31

标签: android osmdroid

我对需要使用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);
       }

事先,谢谢你!

2 个答案:

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