1

我正在尝试route-me显示捆绑或在应用安装后下载的离线地图。我现在正在使用route-me绑定示例项目来完成工作。我还使用mbtiles原始route-merepoSampleMap项目中的文件。我将文件复制到项目的根目录并将其构建操作设置为BundleResource(这是我认为合适的)。之后,我将代码更改为:

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 放入 RMMapContents 的实例中,而不是直接放入 MapView。所以我认为 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 回答