1.重点学习一下图层切换,接下来我需要用的。
2.原理:实际上图层切换好像没什么难度,只要写几个按钮或者其他的事件,通过触发事件切换地图
3.按钮的代码 布局xml
<Button
android:id="@+id/buttonStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="175dp"
android:onClick="buttonStart_Click"
android:text="F1" />
<Button
android:id="@+id/buttonEnd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/buttonStart"
android:layout_marginTop="1dp"
android:onClick="buttonEnd_Click"
android:text="F2" />
<Button
android:id="@+id/buttonVia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/buttonEnd"
android:layout_marginTop="1dp"
android:onClick="buttonVia_Click"
android:text="F3" />
按钮函数代码
m_btnStart = (Button)findViewById(R.id.buttonStart);
m_btnEnd = (Button)findViewById(R.id.buttonEnd);
m_btnVia = (Button)findViewById(R.id.buttonVia);
//起点按钮事件
public void buttonStart_Click(View view)
{
你想要做的事
}
4.切换地图的函数
public void buttonStart_Click(View view)
{
String theOfflineTiledLayers = "/sdcard/floorone.tpk";
MapView = (MapView) findViewById(R.id.mapView);
TileCache mainTileCache = new TileCache(theOfflineTiledLayers);
ArcGISTiledLayer mainArcGISTiledLayer = new ArcGISTiledLayer(mainTileCache);
Basemap mainBasemap = new Basemap(mainArcGISTiledLayer);
ArcGISMap mainArcGISMap = new ArcGISMap(mainBasemap);
MapView.setMap(mainArcGISMap);
}
public void buttonEnd_Click(View view)
{
String theOfflineTiledLayers = "/sdcard/floortwo.tpk";
MapView = (MapView) findViewById(R.id.mapView);
TileCache mainTileCache = new TileCache(theOfflineTiledLayers);
ArcGISTiledLayer mainArcGISTiledLayer = new ArcGISTiledLayer(mainTileCache);
Basemap mainBasemap = new Basemap(mainArcGISTiledLayer);
ArcGISMap mainArcGISMap = new ArcGISMap(mainBasemap);
MapView.setMap(mainArcGISMap);
}
public void buttonVia_Click(View view)
{
String theOfflineTiledLayers = "/sdcard/floorthree.tpk";
MapView = (MapView) findViewById(R.id.mapView);
TileCache mainTileCache = new TileCache(theOfflineTiledLayers);
ArcGISTiledLayer mainArcGISTiledLayer = new ArcGISTiledLayer(mainTileCache);
Basemap mainBasemap = new Basemap(mainArcGISTiledLayer);
ArcGISMap mainArcGISMap = new ArcGISMap(mainBasemap);
MapView.setMap(mainArcGISMap);
}
最终效果