高德地图之定位篇----->定位、预测天气、围栏、搜索周边、行踪轨迹


 http://blog.csdn.net/u013210620/article/details/47700629


跟集成百度地图一样,首先获取KEY,获取方式(官方的截图)


这篇主要是讲解高德地图定位篇,高德地图定位篇跟高德地图篇是不同的sdk,分离开了。。。

来看下配置流程吧,配置是第一位的

[java]  view plain  copy
  1. 1.从网站下载并解压得到定位包“Android_Location_V1.xx.jar“。  
  2.   
  3. 2.开发工程中新建“libs”文件夹,将定位包拷贝到 libs 的根目录下。拷贝完成后的工程目录(以 V1.0.4 为例)如图所示:  
  4.   
  5. image  
  6.   
  7. 注意:若您在 Eclipse 上使用 adt22 版本插件,则需要在 Eclipse 上进行如下配置:  
  8.   
  9. 选中 Eclipse 的工程,右键选择 “Properties > Java Build Path > Order and Export”,勾选 “Android Private Libraries”。  
  10.   
  11. 3.添加用户 Key。在工程的“AndroidManifest.xml”文件如下代码中添加您的用户 Key。  
  12.   
  13. <application  
  14.          android:icon="@drawable/icon"  
  15.          android:label="@string/app_name" >  
  16.          <meta-data  
  17.             android:name="com.amap.api.v2.apikey"  
  18.             android:value="请输入您的用户Key" />  
  19.   
  20.          <activity android:name="com.amap.demo.LocationManager" >  
  21.              <intent-filter>  
  22.                 <action android:name="android.intent.action.MAIN" />  
  23.                 <category android:name="android.intent.category.LAUNCHER" />  
  24.              </intent-filter>  
  25.          </activity>  
  26. </application>  
  27. 4.添加权限。在工程的“AndroidManifest.xml”文件中进行添加,请直接拷贝。  
  28.   
  29. <uses-permission android:name="android.permission.INTERNET" />  
  30. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  31. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  
  32. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  33. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
  34. <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  35. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  36. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  37. <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />  
  38. 5.clean 工程,结束配置。  

接下来就开始贴自己总结的代码了,,,

*****************************************************华丽的分割线********************************************************

先看自己的配置文件

AndroidManifest.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.example.helloworld"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="17"  
  9.         android:targetSdkVersion="21" />  
  10.   
  11.     <application  
  12.         android:allowBackup="true"  
  13.         android:icon="@drawable/ic_launcher"  
  14.         android:label="@string/app_name"  
  15.         android:theme="@style/AppTheme" >  
  16.         <meta-data  
  17.             android:name="com.amap.api.v2.apikey"  
  18.             android:value="c9e78719c6c000407753045aeb0de1fd" />  
  19.   
  20.         <!-- 启动的activity不同 -->  
  21.         <activity  
  22.             android:name=".TraceActivity"  
  23.             android:label="@string/app_name" >  
  24.             <intent-filter>  
  25.                 <action android:name="android.intent.action.MAIN" />  
  26.   
  27.                 <category android:name="android.intent.category.LAUNCHER" />  
  28.             </intent-filter>  
  29.         </activity>  
  30.     </application>  
  31.   
  32.     <uses-permission android:name="android.permission.INTERNET" />  
  33.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  34.     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  
  35.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  36.     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
  37.     <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  38.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  39.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  40.     <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />  
  41.     <uses-permission android:name="android.permission.WRITE_SETTINGS" />  
  42.   
  43. </manifest>  

MainActivity(先测试下能不能定位,为以后的demo做准备)

[java]  view plain  copy
  1. package com.example.helloworld;  
  2.   
  3. import com.amap.api.location.AMapLocation;  
  4. import com.amap.api.location.AMapLocationListener;  
  5. import com.amap.api.location.LocationManagerProxy;  
  6. import com.amap.api.location.LocationProviderProxy;  
  7.   
  8. import android.app.Activity;  
  9. import android.location.Location;  
  10. import android.os.Bundle;  
  11. import android.util.Log;  
  12.   
  13. //实现定位接口  
  14. public class MainActivity extends Activity implements AMapLocationListener {  
  15.     // 初始化定位对象  
  16.     LocationManagerProxy mLocationManagerProxy;  
  17.   
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.         // 初始化定位对象  
  22.         mLocationManagerProxy = LocationManagerProxy.getInstance(this);  
  23.         /** 
  24.          * 注册定位监听 
  25.          * LocationProviderProxy.AMapNetwork高德定位(高德定位是混合定位,网络和gps均有, 
  26.          * 如果都返回,首选gps定位) 第二个参数是定位时间频率(-1是单次定位),移动距离,回调监听 
  27.          */  
  28.         mLocationManagerProxy.requestLocationData(  
  29.                 LocationProviderProxy.AMapNetwork, -115this);  
  30.     }  
  31.   
  32.     @Override  
  33.     protected void onResume() {  
  34.         super.onResume();  
  35.     }  
  36.   
  37.     //生命周期的管理  
  38.     @Override  
  39.     protected void onDestroy() {  
  40.         super.onDestroy();  
  41.         mLocationManagerProxy.destroy();  
  42.     }  
  43.   
  44.     @Override  
  45.     public void onLocationChanged(Location location) {  
  46.   
  47.     }  
  48.   
  49.     @Override  
  50.     public void onStatusChanged(String provider, int status, Bundle extras) {  
  51.   
  52.     }  
  53.   
  54.     @Override  
  55.     public void onProviderEnabled(String provider) {  
  56.   
  57.     }  
  58.   
  59.     @Override  
  60.     public void onProviderDisabled(String provider) {  
  61.   
  62.     }  
  63.   
  64.     // 处理定位结果  
  65.     @Override  
  66.     public void onLocationChanged(AMapLocation arg0) {  
  67.         // 定位回调--getErrorCode() == 0说明正确定位返回了  
  68.         if (arg0 != null && arg0.getAMapException().getErrorCode() == 0) {  
  69.             Log.e("helloworld", arg0.toString());  
  70.         }  
  71.     }  
  72. }  

WeatherActivity(高德也可以测试今天或者未来几天的天气,尼玛感觉好强大啊。。。。。。。。。。。)

[java]  view plain  copy
  1. package com.example.helloworld;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.amap.api.location.AMapLocalDayWeatherForecast;  
  6. import com.amap.api.location.AMapLocalWeatherForecast;  
  7. import com.amap.api.location.AMapLocalWeatherListener;  
  8. import com.amap.api.location.AMapLocalWeatherLive;  
  9. import com.amap.api.location.LocationManagerProxy;  
  10.   
  11. import android.app.Activity;  
  12. import android.util.Log;  
  13.   
  14. //实现天气回调接口  
  15. public class WeatherActivity extends Activity implements AMapLocalWeatherListener{  
  16.     LocationManagerProxy mLocationManagerProxy;  
  17.     protected void onCreate(android.os.Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.         //初始化定位对象  
  21.         mLocationManagerProxy = LocationManagerProxy.getInstance(this);  
  22.         //注册天气监听  
  23.         mLocationManagerProxy.requestWeatherUpdates(LocationManagerProxy.WEATHER_TYPE_FORECAST, this);    
  24.     };  
  25.       
  26.     protected void onDestroy() {  
  27.         super.onDestroy();  
  28.     }  
  29.   
  30.     @Override  
  31.     public void onWeatherForecaseSearched(AMapLocalWeatherForecast arg0) {  
  32.         //未来天气预报  
  33.         List<AMapLocalDayWeatherForecast> list= arg0.getWeatherForecast();  
  34.         for(int i =0;i<list.size();i++){  
  35.             AMapLocalDayWeatherForecast dayWeather = list.get(i);  
  36.             Log.e("helloworld""城市:"+dayWeather.getCity());  
  37.             Log.e("helloworld""时间:"+dayWeather.getDate());  
  38.             Log.e("helloworld""温度:"+dayWeather.getDayTemp());  
  39.             Log.e("helloworld""风力:"+dayWeather.getDayWindPower());  
  40.         }  
  41.     }  
  42.   
  43.     @Override  
  44.     public void onWeatherLiveSearched(AMapLocalWeatherLive arg0) {  
  45.         //当天天气预报  
  46.         Log.e("helloworld""城市:"+arg0.getCity());  
  47.         Log.e("helloworld""温度:"+arg0.getTemperature());  
  48.         Log.e("helloworld""风力:"+arg0.getWindPower());  
  49.     };  
  50. }  

GeoFenceActivity(围栏效果--不知道为什么用这个名词。。。。。。。。。。。。。。。。)

[java]  view plain  copy
  1. package com.example.helloworld;  
  2.   
  3. import com.amap.api.location.AMapLocation;  
  4. import com.amap.api.location.AMapLocationListener;  
  5. import com.amap.api.location.LocationManagerProxy;  
  6. import com.amap.api.maps.AMap.OnMapClickListener;  
  7. import com.amap.api.maps.MapView;  
  8. import com.amap.api.maps.model.CircleOptions;  
  9. import com.amap.api.maps.model.LatLng;  
  10.   
  11. import android.app.Activity;  
  12. import android.app.PendingIntent;  
  13. import android.content.BroadcastReceiver;  
  14. import android.content.Context;  
  15. import android.content.Intent;  
  16. import android.content.IntentFilter;  
  17. import android.location.Location;  
  18. import android.location.LocationManager;  
  19. import android.os.Bundle;  
  20. import android.util.Log;  
  21.   
  22. /** 
  23.  * 案例效果: 点击地图mapView,会出现一个圆圈, 在通过AMapLocationListener定位功能,获取经度维度 
  24.  * 通过mLocationManagerProxy.addGeoFenceAlert进行设置在定位的经度,纬度进行半径设置, 
  25.  * 也就是进行围栏效果,如果一旦出所警戒的区域,会激发异步intent,接受广播  
  26.  * if (i == 1) { Log.e("helloworld", 
  27.  * "在地理围栏内部"); } if (i == 0) { Log.e("helloworld", "在地理围栏外面"); } 
  28.  *  
  29.  */  
  30. public class GeoFenceActivity extends Activity implements OnMapClickListener,  
  31.         AMapLocationListener {  
  32.     MapView mapView;  
  33.     LocationManagerProxy mLocationManagerProxy;  
  34.     String GEOFENCE_BROADCAST_ACTION = "com.example.helloworld";  
  35.     PendingIntent mPendingIntent;  
  36.   
  37.     @Override  
  38.     protected void onCreate(Bundle savedInstanceState) {  
  39.         super.onCreate(savedInstanceState);  
  40.         setContentView(R.layout.activity_main);  
  41.         // 获取控件视图id  
  42.         mapView = (MapView) findViewById(R.id.main_mapView);  
  43.         // 进行onCreate初始化操作  
  44.         mapView.onCreate(savedInstanceState);  
  45.         // 点击围栏圆圈的监听  
  46.         mapView.getMap().setOnMapClickListener(this);  
  47.   
  48.         // 构建定位控制类  
  49.         mLocationManagerProxy = LocationManagerProxy.getInstance(this);  
  50.         // 构建地理围栏广播  
  51.         Intent intent = new Intent(GEOFENCE_BROADCAST_ACTION);  
  52.         /** 
  53.          * getActivity()的意思其实是,获取一个PendingIntent对象,而且该对象日后激发时所做的事情是启动一个新activity 
  54.          * 。也就是说,当它异步激发时,会执行类似Context.startActivity()那样的动作。 
  55.          */  
  56.         mPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0,  
  57.                 intent, 0);  
  58.         // 接受怎样的广播--设置下  
  59.         IntentFilter intentfilter = new IntentFilter();  
  60.         intentfilter.addAction(GEOFENCE_BROADCAST_ACTION);  
  61.         // 注册广播!!!  
  62.         this.registerReceiver(mGeoFenceReceiver, intentfilter);  
  63.         // 注册定位监听  
  64.         mLocationManagerProxy.requestLocationData(LocationManager.GPS_PROVIDER,  
  65.                 200015this);  
  66.   
  67.     }  
  68.   
  69.     // 定义一个广播接收器  
  70.     private BroadcastReceiver mGeoFenceReceiver = new BroadcastReceiver() {  
  71.         @Override  
  72.         public void onReceive(Context context, Intent intent) {  
  73.             int i = intent.getIntExtra("status", -1);  
  74.             Log.e("helloworld""收到广播");  
  75.             if (i == 1) {  
  76.                 Log.e("helloworld""在地理围栏内部");  
  77.             }  
  78.             if (i == 0) {  
  79.                 Log.e("helloworld""在地理围栏外面");  
  80.             }  
  81.   
  82.         }  
  83.     };  
  84.   
  85.     @Override  
  86.     protected void onResume() {  
  87.         super.onResume();  
  88.         mapView.onResume();  
  89.     }  
  90.   
  91.     @Override  
  92.     protected void onDestroy() {  
  93.         super.onDestroy();  
  94.     }  
  95.   
  96.     /** 
  97.      * 实现OnMapClickListener的监听回调方法 
  98.      */  
  99.     @Override  
  100.     public void onMapClick(LatLng arg0) {  
  101.         Log.e("helloworld""lat = " + arg0.latitude);  
  102.         Log.e("helloworld""lon = " + arg0.longitude);  
  103.         // 点击地图时候,在地图上添加一个围栏圆圈,设置半径1000米  
  104.         mapView.getMap().addCircle(  
  105.                 new CircleOptions().center(arg0).radius(1000));  
  106.         // 根据给定的经纬度和半径,当设备进入或从区域中离开时注册的PendingIntent将被激活一次。此方法需要与定位请求方法同时使用。  
  107.         mLocationManagerProxy.addGeoFenceAlert(arg0.latitude, arg0.longitude,  
  108.                 10001000 * 60 * 30, mPendingIntent);  
  109.         /** 
  110.          * latitude - 警戒区域中心点的纬度。 longitude - 警戒区域中心点的经度。 radius - 警戒区域的半径,单位为米。 
  111.          * expiration - 警戒时间,单位为毫秒,-1 表示没有限制。 intent 
  112.          * -当检测到进入或离开警戒区域时将被激活的PendingIntent。bundle的status 字段,0从区域中离开,1进入该区域。 
  113.          */  
  114.   
  115.     }  
  116.   
  117.     @Override  
  118.     public void onLocationChanged(Location location) {  
  119.         // TODO Auto-generated method stub  
  120.   
  121.     }  
  122.   
  123.     @Override  
  124.     public void onStatusChanged(String provider, int status, Bundle extras) {  
  125.         // TODO Auto-generated method stub  
  126.   
  127.     }  
  128.   
  129.     @Override  
  130.     public void onProviderEnabled(String provider) {  
  131.         // TODO Auto-generated method stub  
  132.   
  133.     }  
  134.   
  135.     @Override  
  136.     public void onProviderDisabled(String provider) {  
  137.         // TODO Auto-generated method stub  
  138.   
  139.     }  
  140.   
  141.     @Override  
  142.     public void onLocationChanged(AMapLocation arg0) {  
  143.         // TODO Auto-generated method stub  
  144.   
  145.     }  
  146. }  

SearchActivity(搜索周边的kfc,kfc你懂得,不要歪解它的意思。。。。。。。。。。。。。)

[java]  view plain  copy
  1. package com.example.helloworld;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.amap.api.location.AMapLocation;  
  6. import com.amap.api.location.AMapLocationListener;  
  7. import com.amap.api.location.LocationManagerProxy;  
  8. import com.amap.api.location.LocationProviderProxy;  
  9. import com.amap.api.maps.MapView;  
  10. import com.amap.api.services.core.LatLonPoint;  
  11. import com.amap.api.services.core.PoiItem;  
  12. import com.amap.api.services.poisearch.PoiItemDetail;  
  13. import com.amap.api.services.poisearch.PoiResult;  
  14. import com.amap.api.services.poisearch.PoiSearch;  
  15. import com.amap.api.services.poisearch.PoiSearch.OnPoiSearchListener;  
  16. import com.amap.api.services.poisearch.PoiSearch.SearchBound;  
  17.   
  18. import android.app.Activity;  
  19. import android.location.Location;  
  20. import android.location.LocationManager;  
  21. import android.os.Bundle;  
  22. import android.util.Log;  
  23. import android.view.View;  
  24. import android.view.View.OnClickListener;  
  25. import android.widget.Button;  
  26. /** 
  27.  * 功能描述 
  28.  * 启动后加载mapView地图界面 
  29.  * 视图中又一个button,button是用来点击后,搜索自己位置附近的北京的KFC快餐店的 
  30.  * 点击后,会log出定位某处的附近2000圈内的快餐店即可 
  31.  *  
  32.  * 实现方案: 
  33.  * 获取mapview控件,初始化,让其展现地图界面 
  34.  * 注册定位监听,让其可以实现定位功能,因为要搜索kfc 
  35.  * 在button进行点击后进行的操作是 
  36.  * 创建搜索实例对象,并且设置搜索区域范围,然后实现搜索监听, 
  37.  * 在回调方法中进行处理搜索到的结果即可 
  38.  * 
  39.  */  
  40. public class SearchActivity extends Activity implements AMapLocationListener,OnPoiSearchListener,OnClickListener{     
  41.     MapView mapview;  
  42.     @Override  
  43.     protected void onCreate(Bundle savedInstanceState) {  
  44.         super.onCreate(savedInstanceState);  
  45.         setContentView(R.layout.activity_main);  
  46.         //获取mapView控件  
  47.         mapview = (MapView)findViewById(R.id.main_mapView);  
  48.         //初始化  
  49.         mapview.onCreate(savedInstanceState);  
  50.         //获取定位实例  
  51.         LocationManagerProxy mLocationManagerProxy = LocationManagerProxy.getInstance(this);  
  52.         //注册定位监听--传递定位方式,时间,距离  
  53.         mLocationManagerProxy.requestLocationData(  
  54.                 LocationManager.GPS_PROVIDER,200015this);  
  55.         //鼠标的作用是,点击button进行获取定位  
  56.         Button button = (Button)findViewById(R.id.button);  
  57.         button.setOnClickListener(this);  
  58.     }  
  59.     @Override  
  60.     protected void onResume() {  
  61.         super.onResume();  
  62.         mapview.onResume();  
  63.     }  
  64.       
  65.     @Override  
  66.     protected void onDestroy() {  
  67.         super.onDestroy();  
  68.     }  
  69.     @Override  
  70.     public void onLocationChanged(Location location) {  
  71.           
  72.     }  
  73.     @Override  
  74.     public void onStatusChanged(String provider, int status, Bundle extras) {  
  75.           
  76.     }  
  77.     @Override  
  78.     public void onProviderEnabled(String provider) {  
  79.           
  80.     }  
  81.     @Override  
  82.     public void onProviderDisabled(String provider) {  
  83.           
  84.     }  
  85.     /** 
  86.      * 实现AMapLocationListener的回调方法,会打印出地理位置 
  87.      */  
  88.     AMapLocation location;  
  89.     @Override  
  90.     public void onLocationChanged(AMapLocation arg0) {  
  91.         location = arg0;  
  92.         Log.e("helloworld", arg0.toString());  
  93.     }  
  94.     @Override  
  95.     public void onPoiItemDetailSearched(PoiItemDetail arg0, int arg1) {  
  96.           
  97.     }  
  98.     /** 
  99.      * 实现OnPoiSearchListener搜索的的回调方法 
  100.      */  
  101.     @Override  
  102.     public void onPoiSearched(PoiResult arg0, int arg1) {  
  103.         /** 
  104.          * 如果是arg返回0,即搜索成功 
  105.          * 遍历搜索结果打印相信信息即可 
  106.          */  
  107.         if(arg1 == 0 ){  
  108.             List<PoiItem> list = arg0.getPois();  
  109.             for(int i = 0;i<list.size();i++){  
  110.                 PoiItem item = list.get(i);  
  111.                 Log.e("helloworld", item.toString());  
  112.             }  
  113.               
  114.               
  115.         }  
  116.     }  
  117.       
  118.       
  119.     public void search(){  
  120.         //高德搜索功能  
  121.         //1、创建要搜素的内容,即类似sql语句  
  122.          PoiSearch.Query query = new PoiSearch.Query("kfc","餐饮","北京市");  
  123.          query.setPageSize(10);  // 设置每页最多返回多少条poiitem  
  124.          query.setPageNum(0);//第一页  
  125.          //2、创建搜索的实例对象  
  126.          PoiSearch poiSearch = new PoiSearch(this, query);//context,query  
  127.          //3、设置搜索监听,处理搜索结果即可  
  128.          poiSearch.setOnPoiSearchListener(this);  
  129.          //创建经纬度点位  
  130.          LatLonPoint poiont = new LatLonPoint(location.getLatitude(),location.getLongitude());  
  131.          //设置搜索区域--根据给定的参数来构造PoiSearch.SearchBound 的新对象,默认由近到远排序。  
  132.          //SearchBound(LatLonPoint center, int radiusInMeters, boolean isDistanceSort)  
  133.          poiSearch.setBound(new SearchBound(poiont, 2000true));  
  134.          //执行搜索  
  135.          poiSearch.searchPOIAsyn();  
  136.     }  
  137.     /** 
  138.      * button的点击事件 
  139.      */  
  140.     @Override  
  141.     public void onClick(View v) {  
  142.         search();  
  143.     }  
  144. }  

TraceActivity(高德也可以对你的行踪进行跟踪,哎,将来可以对付女朋友或者好基友了)

[java]  view plain  copy
  1. package com.example.helloworld;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import com.amap.api.maps.AMap.OnMapLoadedListener;  
  7. import com.amap.api.maps.MapView;  
  8. import com.amap.api.maps.model.LatLng;  
  9. import com.amap.api.maps.model.PolylineOptions;  
  10.   
  11. import android.app.Activity;  
  12. import android.os.Bundle;  
  13. import android.util.Log;  
  14.   
  15. /** 
  16.  * 功能描述: 
  17.  * 这个是实现准备一系列的轨迹的经度维度的数组数据 
  18.  * 实现监听setOnMapLoadedListener,即地图一旦加载就执行该回调方法, 
  19.  * 并且添加有轨迹点组成的轨迹路线即可 
  20.  *  public void onMapLoaded() { 
  21.         mapview.getMap().addPolyline(new PolylineOptions().addAll(list)); 
  22.     } 
  23.  * 
  24.  */  
  25. public class TraceActivity extends Activity implements OnMapLoadedListener{  
  26.     MapView mapview;  
  27.     double trace[] = {40.03833763826341,116.44161604271481,  
  28.             40.038120708755,116.44178901291339,  
  29.             40.037882375415066,116.4417806669452,  
  30.             40.03758904414511,116.44176898746878,  
  31.             40.03744405133165,116.44175898937421,  
  32.             40.037160730291575,116.44174065740059,  
  33.             40.03688407626496,116.44172232621654,  
  34.             40.0366324210887,116.44170566146977,  
  35.             40.036504105478954,116.4416890116469,  
  36.             40.03623913323141,116.44166070124143,  
  37.             40.03601914632045,116.44164404027542,  
  38.             40.03582913675676,116.44164401726151,  
  39.             40.035737465479734,116.44164400615833,  
  40.             40.035550835334085,116.4416123783024,  
  41.             40.03531757714563,116.44155246627021,  
  42.             40.035092606829934,116.44152416050346,  
  43.             40.03497929671584,116.44150418544663,  
  44.             40.034890970995875,116.44149585752025,  
  45.             40.03472264127492,116.44148751989984,  
  46.             40.034544311059626,116.44147918106438,  
  47.             40.034350992125134,116.44146252316679,  
  48.             40.03414436321754,116.44142922913052,  
  49.             40.033942703318765,116.44141756053763,  
  50.             40.0337594520259,116.44135432702309,  
  51.             40.03355940132553,116.44138258156585,  
  52.             40.03336267689871,116.44141582682933,  
  53.             40.0332193052337,116.44143743434178,  
  54.             40.03316095218832,116.44144907142875,  
  55.             40.03307090444962,116.44147900260153,  
  56.             40.03301251527869,116.44151559133982,  
  57.             40.032990835497614,116.44152390593369,  
  58.             40.03295913835145,116.44154386340695,  
  59.             40.03293078192086,116.44155883094285,  
  60.             40.03291077610872,116.44156215540048,  
  61.             40.03285575168102,116.44157711969189,  
  62.             40.03275240841231,116.44158043405254,  
  63.             40.03263740996554,116.4415754298076,  
  64.             40.03257240192978,116.44157874881171,  
  65.             40.03251239655422,116.44158040498262,  
  66.             40.03231736762684,116.44159368886524,  
  67.             40.03210400929456,116.44160364364582,  
  68.             40.031903970468456,116.44162358064602,  
  69.             40.031803975210416,116.44161691479444,  
  70.             40.03160064154208,116.44161023642441,  
  71.             40.03141064428492,116.44160189623058,  
  72.             40.03120398679096,116.44158856370204,  
  73.             40.03100398181874,116.4415852126018,  
  74.             40.03090898199395,116.44158187421888,  
  75.             40.030750657801356,116.44157021096972,  
  76.             40.03068400234474,116.44156022225643,  
  77.             40.03052737863301,116.44152527100435,  
  78.             40.03036406140828,116.44150861678068,  
  79.             40.03021740684516,116.44149529145307,  
  80.             40.03006407325888,116.44149028254215,  
  81.             40.02999075078973,116.44148029297878};  
  82.     List<LatLng> list;  
  83.     @Override  
  84.     protected void onCreate(Bundle savedInstanceState) {  
  85.         // TODO Auto-generated method stub  
  86.         super.onCreate(savedInstanceState);  
  87.         setContentView(R.layout.activity_main);  
  88.         mapview = (MapView)findViewById(R.id.main_mapView);  
  89.         mapview.onCreate(savedInstanceState);  
  90.         //地图一旦加载的产生监听  
  91.         mapview.getMap().setOnMapLoadedListener(this);  
  92.         //创建经度维度点的集合对象  
  93.         list = new ArrayList<LatLng>();  
  94.         for(int i=0;i<trace.length-1;i++){  
  95.             LatLng  latlng = new LatLng(trace[i],trace[++i]);  
  96.             list.add(latlng);  
  97.         }  
  98.           
  99.     }  
  100.       
  101.     @Override  
  102.     protected void onResume() {  
  103.         // TODO Auto-generated method stub  
  104.         super.onResume();  
  105.         mapview.onResume();  
  106.     }  
  107.       
  108.     @Override  
  109.     protected void onDestroy() {  
  110.         // TODO Auto-generated method stub  
  111.         super.onDestroy();  
  112.     }  
  113.   
  114.     /** 
  115.      * 地图一旦加载就绘制轨迹 
  116.      */  
  117.     @Override  
  118.     public void onMapLoaded() {  
  119.         mapview.getMap().addPolyline(new PolylineOptions().addAll(list));  
  120.     }  
  121.       
  122.       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值