|
28
Overlay通常被譯為“圖層”或“覆蓋物”。那么對(duì)于地圖而言,什么稱之為覆蓋物?“所有疊加或覆蓋到地圖之上的內(nèi)容,都被稱之為地圖覆蓋物,如標(biāo)注、矢量圖形元素(包括:折線和多邊形和圓)、定位圖標(biāo)等。覆蓋物擁有自己的地理坐標(biāo),當(dāng)您拖動(dòng)或縮放地圖時(shí),它們會(huì)相應(yīng)的移動(dòng)?!?nbsp;
為了讓大家能夠?qū)verlay有更進(jìn)一步的認(rèn)識(shí),我們?cè)偻ㄟ^下面的圖形來直觀的認(rèn)識(shí)它。 圖中標(biāo)記的那些紅色的圖標(biāo)A,B,...,J正是Overlay的其中一種形式。如果你了解PhotoShop中圖層的概念,這里應(yīng)該不難理解。我們可以這樣來理解地圖、圖層與圖層上標(biāo)記物三者的關(guān)系: 下圖中的那些紅色標(biāo)記并不屬于地圖的一部分,這些所有的標(biāo)記是附著在圖層上的,然后將圖層蒙在地圖之上。
百度地圖API提供了以下幾種Overlay(覆蓋物):
1)Overlay:它是所有覆蓋物的抽象基類,所有的覆蓋物均繼承此類的方法,實(shí)現(xiàn)用戶自定義圖層顯示;
2)MyLocationOverlay:一個(gè)負(fù)責(zé)顯示用戶當(dāng)前位置的Overlay;
3)ItemizedOverlay:它包含了一個(gè)OverlayItem列表,相當(dāng)于一組分條的Overlay,通過繼承此類,將一組興趣點(diǎn)顯示在地圖上;
4)PoiOverlay:本地搜索圖層,提供某一特定地區(qū)的位置搜索服務(wù),比如在北京市搜索“公園”,通過此圖層將公園顯示在地圖上;
5)RouteOverlay:步行、駕車導(dǎo)航線路圖層,將步行、駕車出行方案的路線及關(guān)鍵點(diǎn)顯示在地圖上;
6)TransitOverlay:公交換乘線路圖層,將某一特定地區(qū)的公交出行方案的路線及換乘位置顯示在地圖上。
ItemizedOverlay提供了一種快捷的方法,可以把標(biāo)記圖片和相關(guān)的文本分配給特定的地理位置。ItemizedOverlay實(shí)例可以處理每一個(gè)OverlayItem標(biāo)記的繪制、放置、單擊處理、焦點(diǎn)控制和布局優(yōu)化。例如,上面的那個(gè)地圖示例就是ItemizedOverlay。
下面將通過一個(gè)示例來演示ItemizedOverlay的使用。我們先來看看最終做出的效果,如下圖所示:
我們的目標(biāo):“顯示出百度地圖,并且給地圖添加一個(gè)圖層(ItemizedOverlay),該圖層上有兩個(gè)標(biāo)記項(xiàng)(OverlayItem),每個(gè)標(biāo)記項(xiàng)上都標(biāo)注有相應(yīng)的圖標(biāo)、文本信息,并且能夠響應(yīng)點(diǎn)擊事件(onTap)”。
view plain
view plain
view plain
view plaincopy
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.liufeng.baidumap" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permissio
|
上一篇: 第三十七講:Android傳感器編程入門下一篇: Android使用sharedpreference實(shí)現(xiàn)記住密碼功能
|