天天看點

Android--高德地圖自動定位

和其他地圖一樣,都要先去官網注冊成為開發者,然後擷取key。下面直接上代碼。

效果圖:

Android--高德地圖自動定位
Android--高德地圖自動定位

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);  

}  

Android--高德地圖自動定位

<?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

繼續閱讀