我尝试按照here (weblink).
给出的源代码然后,更改变量:
RasterDataSource dataSource = new HTTPRasterDataSource(new EPSG3857(), 0, 18, "http://otile1.mqcdn.com/tiles/1.0.0/osm/{zoom}/{x}/{y}.png");
使用我自己的值(该文件由MOBAC使用RMaps SQLite格式创建):
RasterDataSource dataSource = new HTTPRasterDataSource(new EPSG3857(), 0, 18, "/sdcard0/podcast/map/bandung.sqlitedb");
其余代码仍然相同。 但是没有显示地图。我有什么遗忘的吗?
这是我的 activity_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gps_title"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/default_color" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gps_desc"
android:textColor="@color/default_color" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gps_livtr"
android:textColor="@color/default_color" />
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
</TableLayout>
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gps_curloc"
android:textColor="@color/default_color" />
<FrameLayout
android:id="@+id/frm_lay"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<com.nutiteq.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<ZoomControls
android:id="@+id/zoomcontrols"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</FrameLayout>
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gps_latitude"
android:textColor="@color/default_color" />
<EditText
android:id="@+id/txt_latitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gps_longtitude"
android:textColor="@color/default_color" />
<EditText
android:id="@+id/txt_longtitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:ems="10" >
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gps_altitude"
android:textColor="@color/default_color" />
<EditText
android:id="@+id/txt_altitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
</TableRow>
</TableLayout>
</LinearLayout>
</ScrollView>
答案 0 :(得分:0)
HTTPRasterDataSource用于 HTTP ,如名称所示。您必须使用AdvancedLayers项目中的 MBTilesRasterDataSource 来获取MOBAC生成的文件
try {
MBTilesRasterDataSource dataSource = new MBTilesRasterDataSource(new EPSG3857(), 0, 18, "/sdcard0/podcast/map/bandung.sqlitedb", false, this);
RasterLayer mbLayer = new RasterLayer(dataSource, file.hashCode());
mapView.getLayers().addLayer(mbLayer);
} catch (IOException e) {
// means usually that given .mbtiles file is not found or cannot be opened as sqlite database
Log.error(e.getLocalizedMessage());
e.printStackTrace();
}