和其他地圖一樣,都要先去官網注冊成為開發者,然後擷取key。下面直接上代碼。
效果圖:
package com.example.gaodemap;
import com.amap.api.maps.amap;
import com.amap.api.maps.cameraupdate;
import com.amap.api.maps.cameraupdatefactory;
import com.amap.api.maps.mapview;
import com.amap.api.maps.model.latlng;
import com.amap.api.maps.model.marker;
import com.amap.api.maps.model.markeroptions;
import android.app.activity;
import android.content.context;
import android.location.location;
import android.location.locationlistener;
import android.location.locationmanager;
import android.os.bundle;
import android.widget.compoundbutton;
import android.widget.togglebutton;
public class mainactivity extends activity {
private mapview mmapview;
private amap amap;
private mapview mapview;
private locationmanager locationmanager;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
locationmanager = (locationmanager) getsystemservice(context.location_service);
mmapview = (mapview) findviewbyid(r.id.map);
mmapview.oncreate(savedinstancestate);
init();
//gprs提供的定位資訊改變
locationmanager.requestlocationupdates(locationmanager.gps_provider, 300, 8, new locationlistener() {
@override
public void onstatuschanged(string provider, int status, bundle extras) {
// todo auto-generated method stub
}
public void onproviderenabled(string provider) {
// 使用gprs提供的定位資訊來更新位置
updateposition(locationmanager.getlastknownlocation(provider));
public void onproviderdisabled(string provider) {
public void onlocationchanged(location location) {
updateposition(location);
});
togglebutton tb = (togglebutton) findviewbyid(r.id.tb);
tb.setoncheckedchangelistener(new compoundbutton.oncheckedchangelistener(){
public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) {
if(ischecked){
amap.setmaptype(amap.map_type_satellite);
}else{
amap.setmaptype(amap.map_type_normal);
}
}
//初始化amap對象
private void init(){
if(amap == null){
amap = mmapview.getmap();
}
protected void ondestroy() {
// todo auto-generated method stub
super.ondestroy();
mmapview.ondestroy();
protected void onpause() {
super.onpause();
mmapview.onpause();
protected void onresume() {
super.onresume();
mmapview.onresume();
protected void onsaveinstancestate(bundle outstate) {
super.onsaveinstancestate(outstate);
mmapview.onsaveinstancestate(outstate);
private void updateposition(location location){
latlng pos = new latlng(location.getlatitude(), location.getlongitude());
//建立一個設定經緯度的cameraupdate
cameraupdate cu = cameraupdatefactory.changelatlng(pos);
//更新地圖的顯示區域
amap.movecamera(cu);
//清除所有的marker等覆寫物
amap.clear();
//建立一個markeroptions對象
markeroptions markoptions = new markeroptions();
markoptions.position(pos);
//添加markeroptions(實際上是添加marker)
marker marker = amap.addmarker(markoptions);
}
<?xml version="1.0" encoding="utf-8"?>
<framelayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.amap.api.maps.mapview
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.amap.api.maps.mapview>
<togglebutton
android:id="@+id/tb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top|right"
android:textoff="普通地圖"
android:texton="衛星地圖"
android:checked="false"
android:background="@android:color/transparent"
/>
<linearlayout
android:layout_width="fill_parent"
android:layout_gravity="bottom"
android:orientation="horizontal"
>
<button
android:id="@+id/near"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="附近"
android:layout_weight="1"
android:background="@android:color/transparent"
/>
android:id="@+id/route"
android:text="路線"
android:id="@+id/my"
android:text="我的"
</linearlayout>
</framelayout>
轉載:http://blog.csdn.net/chaoyu168/article/details/51375159