1

route-meバンドルされているか、アプリのインストール後にダウンロードされるオフライン マップを表示しようとしています。route-me今のところ、作業を完了するためにバインディング サンプル プロジェクトを使用しています。元のレポのプロジェクトのmbtilesファイルも使用します。ファイルをプロジェクトのルート ディレクトリにコピーし、そのビルド アクションを に設定します(これが適切だと思いました)。その後、コードを次のように変更しました。route-meSampleMapBundleResource

public override void ViewDidLoad ()
{ 
    base.ViewDidLoad ();

    RMDBMapSource dbSource = new RMDBMapSource ("Philadelphia.mbtiles");

    MapView = new RMMapView(View.Frame, dbSource.Handle);
    MapView.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;

    if (UIScreen.MainScreen.Scale > 1.0)
        MapView.AdjustTilesForRetinaDisplay = true;

    Add (MapView);
}

しかし、運がありません。アプリはシミュレーターで実行されますが、灰色の背景しか表示されません。だから私は誰かが私を助けて、私が間違っていることを教えてくれる必要があります. 来週がプロジェクトの締め切りなので、今週中に仕上げる必要があります。そのため、どんな助けもいただければ幸いです。

4

1 に答える 1

0

私自身は実際にオフライン タイルを使用したことはありませんが、このスレッドに基づくと、RMDBMapSource を直接 MapView に入れるのではなく、RMMapContents のインスタンスに入れる必要があるようです。したがって、Xamarin では次のようになると思います。

RMDBMapSource dbSource = new RMDBMapSource ("Philadelphia.mbtiles");

MapView = new RMMapView(View.Frame, new IntPtr());

RMMapContents contents = new RMMapContents (MapView.Handle, dbSource.Handle);

これは、RMMapContents のラッパー バインディングもあると想定していますが、見た目からするとバインディング プロジェクトにはデフォルトではありません。少なくともコンストラクターを定義するラッパーを投入する必要があります。

このページは、下部に向かって (Obj-C で) 同様のコードを提供しているように見えます。

于 2013-09-26T12:51:09.553 に答える