1. 程式人生 > >android 百度地圖軌跡回放

android 百度地圖軌跡回放

android百度地圖實現軌跡回放,就需要用PolylineOptions畫線作為軌跡效果,和新增覆蓋物移動就可以了




package baidumapsdk.demo;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.baidu.mapapi.map.ArcOptions;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.CircleOptions;
import com.baidu.mapapi.map.DotOptions;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.Polyline;
import com.baidu.mapapi.map.PolylineOptions;
import com.baidu.mapapi.map.Stroke;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;

/**
 * 此demo用來展示如何在地圖上用GraphicsOverlay新增點、線、多邊形、圓 同時展示如何在地圖上用TextOverlay新增文字
 * 
 */
public class GeometryDemo extends Activity {

	// 地圖相關
	MapView mMapView;
	BaiduMap mBaiduMap;
	// UI相關
	Button resetBtn;
	Button clearBtn;
	BitmapDescriptor bdA = BitmapDescriptorFactory
			.fromResource(R.drawable.icon_marka);
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_geometry);
		// 初始化地圖
		mMapView = (MapView) findViewById(R.id.bmapView);
		mBaiduMap = mMapView.getMap();
		// UI初始化
		clearBtn = (Button) findViewById(R.id.button1);
		resetBtn = (Button) findViewById(R.id.button2);

		OnClickListener clearListener = new OnClickListener() {
			public void onClick(View v) {
				clearClick();
			}
		};
		OnClickListener restListener = new OnClickListener() {
			public void onClick(View v) {
				//resetClick();
				Refresh();
			}
		};

		clearBtn.setOnClickListener(clearListener);
		resetBtn.setOnClickListener(restListener);

		// 介面載入時新增繪製圖層
		addCustomElementsDemo();
	}
	
	
	List<LatLng> points =null;
	Polyline mMarkerPolyLine=null;
	Marker mMarkerA;
	public void Refresh(){
		
	    final Handler handler = new Handler(){  	
	    	double x = 0.02;
   	        public void handleMessage(Message msg) {                      	     	        	
	    		
	    		LatLng p1 = new LatLng(39.97923, 116.357428+x);
   		    	points.add(p1);
   			    mMarkerPolyLine.setPoints(points);
   			    mMarkerA.setPosition(p1);
   			    x=x+0.02;
   	        }    
       };  
       
	   TimerTask task = new TimerTask(){  
		       public void run() {  
		       Message message = new Message();      
		       message.what = 1;      
		       handler.sendMessage(message);    
		    }  
       }; 
       
       Timer timer = new Timer(true);
       timer.schedule(task,1000, 1500); 
	}

	
	/**
	 * 新增點、線、多邊形、圓、文字  aj
	 */
	public void addCustomElementsDemo() {
		// 新增折線
		LatLng p1 = new LatLng(39.97923, 116.357428);
		LatLng p2 = new LatLng(39.94923, 116.397428);
		/*	LatLng p3 = new LatLng(39.97923, 116.437428);
		LatLng p4 = new LatLng(39.95923, 116.467428);
		LatLng p5 = new LatLng(39.96923, 116.487428);*/
		
		points = new ArrayList<LatLng>();
		points.add(p1);
		points.add(p2);
		/*	points.add(p3);
		points.add(p4);
		points.add(p5);*/
	

		
		OverlayOptions ooPolyline = new PolylineOptions().width(12)
				.color(0xAAFF0000).points(points);
		
		 mMarkerPolyLine = (Polyline) mBaiduMap.addOverlay(ooPolyline);	
		 
			OverlayOptions ooA = new MarkerOptions().position(p2).icon(bdA);
			mMarkerA = (Marker) (mBaiduMap.addOverlay(ooA));
	}

	
	public void resetClick() {
		// 新增繪製元素
		addCustomElementsDemo();
	}

	public void clearClick() {
		// 清除所有圖層
		mMapView.getMap().clear();
	}

	@Override
	protected void onPause() {
		mMapView.onPause();
		super.onPause();
	}

	@Override
	protected void onResume() {
		mMapView.onResume();
		super.onResume();
	}

	@Override
	protected void onDestroy() {
		mMapView.onDestroy();
		super.onDestroy();
	}

}


相關推薦

android 地圖軌跡

android百度地圖實現軌跡回放,就需要用PolylineOptions畫線作為軌跡效果,和新增覆蓋物移動就可以了 package baidumapsdk.demo; import java.util.ArrayList; import java.util.L

ios 地圖軌跡一點心得

由於專案需要,需要通過百度地圖sdk實現軌跡回放。 使用一個非常簡單的辦法來實現軌跡回放。 話不多說,出來吧,程式碼君。 1,使用的是BMKPointAnnotation。 @interface TrackMapViewController (){ BMKPoint

地圖軌跡,自定義路書,邊走邊畫線

var arrPois=[new BMap.Point(116.403984,39.914004),new BMap.Point(116.402116,39.913938),new BMap.Point(116.402116,39.913938),new BMap.Point(116.402046,39.91

Android地圖(三):地圖畫運動軌跡及圖層點選事件處理

上篇文章講述瞭如何在地圖顯示位置點,這篇文章主要講述如何在地圖上畫運動軌跡,以及地圖圖層點選事件的處理。 很多運動類的app都有畫出跑步者運動軌跡的需求,拿咕咚來說,我們看一下它的效果圖: 咕咚運動軌跡圖 本篇將要實現的效果 1.跑步結束後,靜態的畫出整個運動

[android] 地圖開發 (一).申請AK顯示地圖及解決顯示空白網格問題

定義 gps 官方 應用程序 2.x lns settings sap xmlns 近期做android百度地圖,可是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so顯示百度地圖時總是遇到問題——僅僅顯示

android 地圖(具體請看開放平臺)

int over layout tco pap 平臺 jar pil inter compile files(‘libs/BaiduLBS_Android.jar‘) compile ‘com.android.support:appcompat-v7:26.+‘

Android地圖(二)結合方向傳感器我們自己定位哪裏走

troy 真機 pretty 刪除文件 RR tap 大神 素材 near Android百度地圖(二)結合方向傳感器我們自己定位哪裏走 本文代碼在http://b

android地圖基礎定位不用開啟許可權也可以獲取經緯度成功?什麼鬼

最近專案中需要使用百度地圖sdk,發現一個問題,手機未開啟地圖定位許可權,在地圖定位監聽裡面竟然可以返回狀態碼為161的正確定位返回,是不是很神奇。 測試了百度demo,把定位許可權關閉,也是可以定位成功的。看來確實不需要定位許可權,就可以獲取定位資訊呀。 這就讓我暈了,那這個許可權什麼時候

Android地圖開發定位和路線導航

在寫之前要先加入百度地圖sdk的jar包從百度地圖開發者官網上就能下載 百度地圖sdk下載 官網(可翻牆選擇):http://developer.android.com/sdk/index.html 不可翻牆選擇:http://www.androiddevtools.cn/ 而其中用

地圖軌跡(Andriod SDK)

專案結構 BaseActivity.java package siso.track.activity; import android.app.Activity; import android.os.Bundle; import android.view.View; impor

使用GMap.NET類庫,實現地圖軌跡。(WPF版)

前言 實現軌跡回放,GMap.NET有對應的類GMapRoute。這個類函式很少,功能有限,只能實現簡單的軌跡回放。要實現更復雜的軌跡回放,就需要自己動手了。 本文介紹一種方法,可以實現複雜的軌跡回放。有句話“功夫在詩外”,GMap.NET給你提供了基本地圖處理功能;但是不要讓CMap.NET束縛了手腳。

Android 地圖自定義地圖覆蓋物(Marker)

  理論和高德地圖一模一樣,換個sdk而已,換湯不換藥,詳情可以參考上一篇高德地圖https://blog.csdn.net/Crystal_xing/article/details/84314359,下面只給出核心程式碼:   //自定義佈局 Vie

地圖軌跡

 function guigui(){      //alert("fdhkj");       // 百度地圖定義中心點     map.centerAndZoom(new BMap.Point(116.404, 39.915), 15);     // 百度地圖滾輪可縮放

Android 地圖如何讓所有的Marker都顯示在螢幕範圍內。

前言:        高德地圖有方法直接呼叫就可以,總結下百度地圖的(直接複製就可以) 程式碼: LatLngBounds.Builder builder = new LatLngBounds.B

Android地圖開發之取消後臺持續定位

網上的方法 1:注掉option.setScanSpan(1000);//注掉後只定位一次,感覺不太好 2:呼叫mLocClient.unRegisterLocationListener方法。//取消監聽的方法不讓後臺定位,樓主只成功過一次所以不太靠譜不推薦使用 3 :

Android地圖開發-自定義地圖的使用和坑

設定個性化地圖config檔案路徑 */ public static void setMapCustomFile(Context context, String PATH) { FileOutputStream out = null; InputStream inputStream = null; Strin

Android地圖坑之Error inflating class com.baidu.mapapi.map.MapView

今天開始研究百度SDK,根據開發文件一步步操作,坑出現了,我添加了一個MapView顯示地圖,活動中getMap,它閃退!!!! 報錯指向這一行 報錯如下 百度了一下,有幾個比較常見的問題: 1、沒有初始化context,即沒有在setContentView(R.layout.act

android地圖開發之完善版

鑑於前段時間接了了小專案,一直沒時間完善百度地圖餘下的工作,現在終於完善出來了。現在給大家分享下。。。以下是部分功能截圖 這裡面做語音的時候測試了,提示沒語音裝置,在網上看說下一個google voice就可以了,但是我始終沒成功,所以語音那裡沒實現, 如果有朋友知道,可以

Android地圖api呼叫

1.首先,準備工作。前往百度地圖開放平臺 註冊百度開發者賬號,建立應用,獲取API key 地址:http://lbsyun.baidu.com/apiconsole/key 建立應用需要應用的數字簽名SHA1和包名 SHA1可以通過雙擊gradle裡面的signingRe

Android 地圖開發(一)如何呼叫地圖介面和在專案中顯示地圖以及實現定位

二、下載百度地圖API庫 然後新增到專案中即可。   三、在專案清單AndroidMainifest.xml配置百度地圖API key和新增相關許可權                         四、在專案呼叫百度地圖專案功能,這篇文章就首先講講顯示地圖和定位的功能 首先