百度地圖軌跡(Andriod SDK)
專案結構
BaseActivity.java
package siso.track.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import siso.track.R;
public abstract class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentViewId());
}
/**
* 獲取佈局檔案ID
*/
protected abstract int getContentViewId();
/**
* 設定Activity標題
*/
public void setTitle(int resId) {
LinearLayout layout = (LinearLayout) findViewById(R.id.layout_top);
TextView textView = (TextView) layout.findViewById(R.id.tv_activity_title);
textView.setText(resId);
}
/**
* 設定點選監聽器
*/
public void setOnClickListener(View.OnClickListener listener) {
LinearLayout layout = (LinearLayout) findViewById(R.id.layout_top);
LinearLayout optionsButton = (LinearLayout) layout.findViewById(R.id.btn_activity_options);
optionsButton.setOnClickListener(listener);
}
/**
* 不顯示設定按鈕
*/
public void setOptionsButtonInVisible() {
LinearLayout layout = (LinearLayout) findViewById(R.id.layout_top);
LinearLayout optionsButton = (LinearLayout) layout.findViewById(R.id.btn_activity_options);
optionsButton.setVisibility(View.INVISIBLE);
}
/**
* 回退事件
*/
public void onBack(View v) {
super.onBackPressed();
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
MainActivity.java
package siso.track.activity;
import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.trace.LBSTraceClient;
import com.baidu.trace.Trace;
import com.baidu.trace.api.entity.LocRequest;
import com.baidu.trace.api.entity.OnEntityListener;
import com.baidu.trace.model.OnTraceListener;
import com.baidu.trace.model.PushMessage;
import com.baidu.trace.model.TraceLocation;
import siso.track.utils.BitmapUtil;
import siso.track.R;
import siso.track.TrackApplication;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends BaseActivity {
private TrackApplication trackApp;
private SDKReceiver mReceiver;
/**
* 構造廣播監聽類,監聽 SDK key 驗證以及網路異常廣播
*/
public class SDKReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String s = intent.getAction();
if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {
Toast.makeText(MainActivity.this,"apikey驗證失敗,地圖功能無法正常使用",Toast.LENGTH_SHORT).show();
} else if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) {
Toast.makeText(MainActivity.this,"apikey驗證成功",Toast.LENGTH_SHORT).show();
} else if (s.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {
Toast.makeText(MainActivity.this,"網路錯誤",Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// apikey的授權需要一定的時間,在授權成功之前地圖相關操作會出現異常;apikey授權成功後會傳送廣播通知,我們這裡註冊 SDK 廣播監聽者
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK);
iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
mReceiver = new SDKReceiver();
registerReceiver(mReceiver, iFilter);
init();
siso.track.utils.BitmapUtil.init();
}
private void init() {
trackApp = (TrackApplication) getApplicationContext();
Button trace = (Button) findViewById(R.id.btn_trace);
Button query = (Button) findViewById(R.id.btn_query);
trace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, TracingActivity.class);
startActivity(intent);
}
});
query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,TrackQueryActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
super.onStart();
// 適配android M,檢查許可權
List<String> permissions = new ArrayList<>();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && isNeedRequestPermissions(permissions)) {
requestPermissions(permissions.toArray(new String[permissions.size()]), 0);
}
}
@Override
protected int getContentViewId() {
return R.layout.activity_main;
}
private boolean isNeedRequestPermissions(List<String> permissions) {
// 定位精確位置
addPermission(permissions, Manifest.permission.ACCESS_FINE_LOCATION);
// 儲存許可權
addPermission(permissions, Manifest.permission.WRITE_EXTERNAL_STORAGE);
// 讀取手機狀態
addPermission(permissions, Manifest.permission.READ_PHONE_STATE);
return permissions.size() > 0;
}
private void addPermission(List<String> permissionsList, String permission) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(permission);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mReceiver);
if (trackApp.trackConf.contains("is_trace_started")
&& trackApp.trackConf.getBoolean("is_trace_started", true)) {
// 退出app停止軌跡服務時,不再接收回調,將OnTraceListener置空
trackApp.mClient.setOnTraceListener(null);
trackApp.mClient.stopTrace(trackApp.mTrace, null);
trackApp.mClient.clear();
} else {
trackApp.mClient.clear();
}
trackApp.isTraceStarted = false;
trackApp.isGatherStarted = false;
SharedPreferences.Editor editor = trackApp.trackConf.edit();
editor.remove("is_trace_started");
editor.remove("is_gather_started");
editor.apply();
BitmapUtil.clear();
}
}
TracingActivity.java
package siso.track.activity;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SyncStatusObserver;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import android.provider.Settings;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.res.ResourcesCompat;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.baidu.mapapi.common.SysOSUtil;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;
import com.baidu.trace.api.entity.OnEntityListener;
import com.baidu.trace.api.track.HistoryTrackRequest;
import com.baidu.trace.api.track.HistoryTrackResponse;
import com.baidu.trace.api.track.LatestPoint;
import com.baidu.trace.api.track.LatestPointResponse;
import com.baidu.trace.api.track.OnTrackListener;
import com.baidu.trace.api.track.SupplementMode;
import com.baidu.trace.api.track.TrackPoint;
import com.baidu.trace.model.CoordType;
import com.baidu.trace.model.LocationMode;
import com.baidu.trace.model.OnTraceListener;
import com.baidu.trace.model.ProcessOption;
import com.baidu.trace.model.PushMessage;
import com.baidu.trace.model.SortType;
import com.baidu.trace.model.StatusCodes;
import com.baidu.trace.model.TraceLocation;
import com.baidu.trace.model.TransportMode;
import siso.track.utils.CommonUtil;
import siso.track.utils.Constants;
import siso.track.utils.MapUtil;
import siso.track.utils.TrackReceiver;
import siso.track.utils.ViewUtil;
import siso.track.R;
import siso.track.TrackApplication;
import siso.track.model.CurrentLocation;
import java.util.ArrayList;
import java.util.List;
import siso.track.activity.BaseActivity;
/**
* 軌跡時時追蹤
* Created by zhh
*/
public class TracingActivity extends BaseActivity implements View.OnClickListener, SensorEventListener {
private TrackApplication trackApp = null;
private ViewUtil viewUtil = null;
private Button traceBtn = null;
private Button gatherBtn = null;
private PowerManager powerManager = null;
private PowerManager.WakeLock wakeLock = null;
private TrackReceiver trackReceiver = null;
private SensorManager mSensorManager;
private Double lastX = 0.0;
private int mCurrentDirection = 0;
/**
* 地圖工具
*/
private MapUtil mapUtil = null;
/**
* 軌跡服務監聽器
*/
private OnTraceListener traceListener = null;
/**
* 軌跡監聽器(用於接收糾偏後實時位置回撥)
*/
private OnTrackListener trackListener = null;
/**
* Entity監聽器(用於接收實時定位回撥)
*/
private OnEntityListener entityListener = null;
/**
* 實時定位任務
*/
private RealTimeHandler realTimeHandler = new RealTimeHandler();
private RealTimeLocRunnable realTimeLocRunnable = null;
/**
* 打包週期
*/
public int packInterval = Constants.DEFAULT_PACK_INTERVAL;
/**
* 軌跡點集合
*/
private List<LatLng> trackPoints;
private boolean firstLocate = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.tracing_title);
setOptionsText();
setOnClickListener(this);
init();
}
public void setOptionsText() {
LinearLayout layout = (LinearLayout) findViewById(R.id.layout_top);
TextView textView = (TextView) layout.findViewById(R.id.tv_options);
textView.setText("軌跡追蹤設定");
}
private void init() {
initListener();
trackApp = (TrackApplication) getApplicationContext();
viewUtil = new ViewUtil();
mapUtil = MapUtil.getInstance();
mapUtil.init((MapView)
相關推薦
百度地圖軌跡(Andriod SDK)
專案結構
BaseActivity.java
package siso.track.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
impor
百度地圖軌跡
function guigui(){
//alert("fdhkj");
// 百度地圖定義中心點
map.centerAndZoom(new BMap.Point(116.404, 39.915), 15);
// 百度地圖滾輪可縮放
百度地圖API Android SDK 常見問題
1 使用須知在使用百度地圖SDK(Android版)之前,請仔細閱讀使用條款,一旦您使用了百度地圖SDK(Android版),即表明您已閱讀並接受使用條款中的全部內容。百度地圖SDK(Android版)可幫助您在應用中以豐富的形式展示地圖,實現興趣點搜尋、線路規劃等操作。 您只可使用在百度地圖SDK(Andr
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
百度地圖api android sdk leaked ServiceConnection com.baidu.location.LocationClient錯誤
最近在百度地圖api 的android sdk , 下載了官方的例子執行,一切正常,然後參照定點陣圖層寫了個程式一執行,出現了以下錯誤:
03-29 15:36:52.300: E/ActivityThread(6484): Activity com.gif.activ
第三方SDK:百度地圖(二)定位 + 鷹眼軌跡
#1 基礎地圖 + 基礎定位#
可以看到地圖的介面。
如圖:
Menu:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app
基於百度地圖SDK和Elasticsearch GEO查詢的地理圍欄分析系統(3)-前端實現
方便 復制 類型 復制代碼 自動跳轉 rar 窗口 stack delete 轉載自:http://www.cnblogs.com/Auyuer/p/8086975.html
MoonLight可視化訂單需求區域分析系統實現功能:
在現實生活中,計算機和互聯網迅速發展,
百度地圖sdk使用
maps ase 一體化 class lib sdk map 申請 系統 1.android開發百度地圖定位,我怎麽老是定到幾內亞灣
權限問題,首先安卓6.0之後的Android的系統需要動態申請權限。
然後百度地圖的sdk的不同功能,申請的權限不同,每個功能都需要看官方文
百度地圖sdk sha1秘鑰獲取有種想吐的趕腳
src andro files inf com admin oid file http 擼代碼坐的腰算背疼還只是弄一個不是項目裏邊需要的升級版本的so
日 需要sha1 指紋秘鑰,還有項目包, 才能用百度地圖sdk
這個找sha1 獲取廢了20分鐘,
顯示全盤找keyt
iOS·採用第三方(百度地圖SDK)實現定位等功能開發
陳滿iOS 關注
2017.05.01 01:06* 字數 2212 閱讀 6818評論 7喜歡 133
1.申請金鑰
首先,申請一個baidu賬號,接著進入新建金鑰入口申請成為baidu地圖開發者,填寫相關開發者資訊和簡訊驗證碼。接
android studio使用百度SDK開發百度地圖應用中遇到的問題彙總
1、com.baidu.mapapi.map.MapView (Open Class, Show Exception, Clear Cache)
The following classes could not be instantiated:
百度地圖開發之——百度地圖鷹眼軌跡管理臺DEMO-v3部署到伺服器上
百度地圖開發官方下載口:https://github.com/baidu-openmap-trace/web-demo-v3
第一:部署準備
搭建NPM和FIS3的環境
1、安裝node.js:https://nodejs.org/en/
點選版本下載,然後就安裝
android 接入百度地圖sdk
專案需求:
接入地圖
定位位置
設定百度地圖上的各種圖示
載入方格的問題
接入地圖
1.建立應用
接入的是百度地圖,首先去百度地圖開放平臺上新增應用。在http://lbsyun.baidu.com/apicon
qt與js互動,並在百度地圖上繪製軌跡
前言:
獲得了照片的GPS資訊後,我們現在要做的就是把GPS資訊傳入JS中,然後通過百度地圖API將軌跡繪製出來。
一:在程式頁面載入地圖
qt5.6及之後取消了QWebkits,轉為使用QWebEngine.
在qt5.6的額ui設計師介面中,並不能直
如何讓高德/百度地圖的sdk直接可執行在真機上
或許大家都有遇到過在百度地圖或者是高德地圖上註冊key簽名時放置到自己的manifest中,會發現直接執行真機是會無效(地圖無法顯示/無法定位),一定要另外打包才可現實相關三方資訊,比如地圖的顯示。在這做個筆記,剛好解決了這個問題,今天要講的
百度地圖SDK配置與使用
在配置百度地圖 SDK 和使用時,發現官網上的教程並不是那麼好用,而且容易出現定位回撥裡 BDLocation.getLocType() == 162 這個問題,官網只是說 SO 配置出現異常,並沒有明確問題所在;如果你也遇到了,請點這個連結:BDLocation.getLocType() == 1
百度地圖SDK整合定位,衛星地圖
其中兩種整合方式基本相同
1.百度地圖第三方SDK的開放平臺建立應用 2.下載官方的SDK
3.複製到專案的libs目錄下
4.但這樣工程並不會自動載入libs下的so檔案,需配置so檔案的路徑為該libs路徑,關聯所有地圖SDK的so檔案 App下的groud.build的
mui使用百度地圖sdk及定位方法
一、使用前配置:參考http://ask.dcloud.net.cn/article/29
注意事項:
(1)HBuilder預設打包使用的簽名為"BA:AD:09:3A:82:82:9F: