我正在尝试让route-me
显示捆绑或在安装应用后下载的离线地图。我正在使用route-me
绑定示例项目来完成目前的工作。我还使用原始mbtiles
repo的route-me
项目中的SampleMap
文件。我将文件复制到项目的根目录并将其构建操作设置为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);
}
但没有运气。应用程序在模拟器中运行,但仅显示灰色背景。所以我需要有人来帮助我并告诉我我做错了什么。我需要在本周完成它,因为下周是项目的截止日期。所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
我自己实际上并没有使用离线图块,但基于this thread,您可能需要将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的包装器绑定,从绑定项目的外观来看,它默认情况下没有。您需要引入一个至少定义构造函数的包装器。
This page看起来它向底部提供了类似的代码(在Obj-C中)。