2015-04-23 33 views
0

我有一些需要使用OSMPublicTransport tilesource的应用程序有一些麻烦。Osmdroid渲染不像这样 - TileSource PublicTransport

点击here看到奇怪 MapView。所以,为什么是我的应用程序中这个丑陋的东西? 其他tilesource像魅力工作。

我不知道为什么它显示我这样的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

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

谢谢,它的工作原理非常魅力! – Nawako