簡介
OpenStreetMap最核心的部分,就是他的地圖囉,而在OSMDROID中當然也會有個東西用來顯示地圖的元件,那就是我們現在要來介紹的MapView
OSMDROID的MapView是改寫Android本身的MapView,簡單來說就是把原本是Google Map的MapView變成是OpenStreetMap的。
使用方式
OSMDROID中用MapView有兩種方式,一種是寫在Layout裡面,一種是寫在Activity裡面 首先先介紹如果寫在Layout裡面會是什麼樣子
<org.osmdroid.views.MapView android:id="@+id/mapview" android:layout_width="match_parent" android:layout_height="match_parent" tilesource="Mapnik" />
然後是Activity中的寫法
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MapView map = (MapView) findViewById(R.id.map); map.setTileSource(TileSourceFactory.MAPNIK); } }
這兩種寫法都很棒,就看個人習慣囉
另外MapView還有提供一些其他的方法,像是
這是在MapView上新增內建的縮放工具
map.setBuiltInZoomControls(true);
這個是啟用兩指縮放功能
map.setMultiTouchControls(true);
這是限制最大縮放等級
map.setMaxZoomLevel(16);這是限制最小縮放等級
map.setMinZoomLevel(1);這個是在設定說是否當本機沒有圖資時,允許讓MapView去跟Tile Server要圖資
map.useDataConnection(true);最後這個是個很重要的東西,因為Android能支援的螢幕解析度太多了,但圖資的解析度是固定的,所以可能會出現到明明Zoom Level已經到最細緻的部分了,但還是沒辦法看到全部的東西,所以OSMDROID中提供這個方法可以根據手機的螢幕解析度去將圖資做一些調整,讓圖資顯示正常。
map.setTilesScaledToDpi(true);
沒有留言:
張貼留言