高德地圖 Android SDK 是一套地圖開(kāi)發(fā)調(diào)用接口,開(kāi)發(fā)者可以輕松地在自己的Android應(yīng)用中加入高德地圖相關(guān)的功能,包括:地圖顯示(含室內(nèi)、室外地圖)、與地圖交互、在地圖上繪制、興趣點(diǎn)搜索、地理編碼、離線地圖等功能。

下面這個(gè)實(shí)例演示了在Android手機(jī)高德地圖上繪制箭頭線。

01

實(shí)例功能

此實(shí)例主要通過(guò)使用高德地圖SDK的addNavigateArrow方法,實(shí)現(xiàn)在兩地之間繪制帶指示箭頭的連線。高德地圖 Android SDK 是一套地圖開(kāi)發(fā)調(diào)用接口,開(kāi)發(fā)者可以輕松地在自己的Android應(yīng)用中加入高德地圖相關(guān)的功能,包括:地圖顯示(含室內(nèi)、室外地圖)、與地圖交互、在地圖上繪制、興趣點(diǎn)搜索、地理編碼、離線地圖等功能。

當(dāng)實(shí)例運(yùn)行之后,單擊“繪制重慶到成都的指示箭頭”按鈕,將繪制重慶到成都的箭頭連線,單擊前后效果分別如圖1(a)和圖1(b)所示。

展開(kāi)全文

■ 圖1

02

實(shí)現(xiàn)代碼

publicclassMainActivityextendsActivity{

AMap myAMap;

@Override

protectedvoidonCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

MapView myMapView=(MapView)findViewById(R.id.myMapView);

myMapView.onCreate(savedInstanceState);

myAMap =myMapView.getMap;

myAMap.moveCamera(CameraUpdateFactory.changeLatLng(

newLatLng( 29.557300, 106.577150))); //設(shè)置重慶為高德地圖中心

myAMap.moveCamera(CameraUpdateFactory.zoomTo( 7)); //設(shè)置高德地圖縮放級(jí)別7

}

publicvoidonClickButton1(View v){ //響應(yīng)單擊按鈕“繪制重慶到成都的指示箭頭”

NavigateArrowOptions myNavigateArrowOptions = newNavigateArrowOptions;

myNavigateArrowOptions.add( newLatLng( 29.557300, 106.577150)) //重慶的緯度經(jīng)度值

.add( newLatLng( 30.63586, 103.956134)) //成都的緯度經(jīng)度值

.topColor(Color.RED);

myAMap.addNavigateArrow(myNavigateArrowOptions); //繪制重慶到成都的指示箭頭

}

}

03

代碼說(shuō)明

上面這段代碼在MyCode\MySampleI90\app\src\main\java\com\bin\luo\mysample\ MainActivity.java文件中。在這段代碼中,myAMap =myMapView.getMap用于根據(jù)高德地圖的顯示控件MapView獲取AMap,AMap是操作高德地圖最主要、最基本的類。在布局文件中,MapView控件的主要代碼如下面的粗體字所示:

上面這段代碼在MyCode\MySampleI90\app\src\main\res\layout\activity_main.xml文件中。需要說(shuō)明的是,此實(shí)例需要在MyCode\MySampleI90\app\build.gradle文件中添加開(kāi)發(fā)高德地圖的依賴項(xiàng)(implementation 'com.amap.api:3dmap:latest.integration'),并執(zhí)行同步(Sync Now)操作。如下面的粗體字所示:

此外,還要按照下面粗體字所示的內(nèi)容修改MyCode\MySampleI90\app\src\main\ AndroidManifest.xml文件:

在AndroidManifest.xml文件中,f1a5d4dd4c6cf3ecf69c892fe3301fd8是高德地圖的開(kāi)發(fā)者Key,需要到高德開(kāi)放平臺(tái)(https://lbs.amap.com/dev/id/choose)申請(qǐng)。另外,使用高德地圖的不同功能可能需要不同的依賴項(xiàng)及權(quán)限,甚至開(kāi)發(fā)者Key,因此具體內(nèi)容請(qǐng)參考每個(gè)實(shí)例源代碼的AndroidManifest.xml文件和build.gradle文件。<uses-permission android:name="android.permission.INTERNET"/>是網(wǎng)絡(luò)權(quán)限,因?yàn)槭褂酶叩碌貓D通常需要聯(lián)網(wǎng)。

此實(shí)例的完整代碼在MyCode\MySampleI90文件夾中。

04

補(bǔ)充說(shuō)明

在測(cè)試代碼時(shí),必須保持網(wǎng)絡(luò)暢通。

05

源代碼下載

關(guān)注微信公眾號(hào),后臺(tái)回復(fù)關(guān)鍵詞 “Android App開(kāi)發(fā)超實(shí)用代碼241” 即可獲得完整源代碼。

06

參考書(shū)籍

掃碼優(yōu)惠購(gòu)書(shū)

《Android App開(kāi)發(fā)超實(shí)用代碼集錦——jQuery Mobile+OpenCV+O》

作者:羅帥、羅斌

定價(jià):99元

問(wèn)題描述+解決方案+真實(shí)源碼+效果截圖

介紹jQuery Mobile、OpenCV、OpenGL等在Android平臺(tái)運(yùn)行的應(yīng)用

300個(gè)實(shí)例,提供完整源代碼,邊看邊做邊學(xué)