導航:首頁 > 編程語言 > java百度地圖軌跡回放源代碼

java百度地圖軌跡回放源代碼

發布時間:2023-08-04 14:59:45

1. 百度地圖API基本使用(三)

PS:我所使用的的是網路地圖javascript API 3.0
本文是對之前使用的延續,繼續對網路地圖API的一些使用去做歸納和總結,本次主要是對地圖上的事件以及路線規劃做下一下介紹,如果有小夥伴沒有看過之前的網路地圖API基本使用(一),網路地圖API基本使用(二),可以先去觀看一下,前期所需要的一些准備,以及一些基本的用法。

感興趣的小夥伴可以自行查看網路地圖官方提供的文檔
網路地圖開放平台開發文檔中的JavaScript API

也可以通過下方示例中心更直觀地看到網路地圖API的一些使用,以及它的一些特性
網路地圖開放平台-示例中心

想深入研究網路地圖avaScript API 3.0方法參數信息的話,可以通過下方類參考
網路地圖avaScript API v3.0類參考
另外不同版本的API可以自行在開發文檔中的類參考類目中找到,請自行查找

不過要注意:實例中心使用的是BMap去創建容器的,最新版GL地圖命名空間為BMapGL, 可按住滑鼠右鍵控制地圖旋轉、修改傾斜角度。

BMapGL在引入API的方式如下:

BMap在引入API的方式如下:

按照你自己的需求去引用

好的,廢話不多說,開整

1.地圖載入完成事件 這個事件顧名思義就是在地圖載入完成之後會調用這個事件,我們可以去做一些操作。

實現的效果就是在地圖載入完成之後,會彈出地圖載入完成的提示!實際應用的時候可以能就會涉及到一些基於地圖的初始化操作。具體情況具體分析,就不做過多贅述了。

2.地圖單擊事件 這個事件顧名思義就是在當我們滑鼠點擊地圖上的時候,就會觸發這個事件。

我們實現的這個就是單擊地圖的時候就會觸發,可以獲取到這個點的經緯度等信息。以及我們之前有介紹的覆蓋物的一些觸發事件,基本上都是使用的是這個單擊事件,使用addEventListener監聽click去實現的,這個方法還有監聽別的事件,就不一一舉例了,給大家看一下有哪些事件可以監聽,這些都是從官方提供的類參考中找到的。

3.注銷事件 這個注銷方法也比較簡單,上一個點擊事件我們使用的是addEventListener監聽click去實現的,這個注銷實際上就是移除這個事件,類似於之前的刪除覆蓋類都是使用的remove這個欄位,對應的就是removeEventListener監聽click去刪除這個點擊事件實現的。

如果想研究比較詳細的地圖事件的小夥伴可以自行查看研究
事件-地圖事件

1.覆蓋物滑鼠事件 這個覆蓋物滑鼠事件實質就是地圖的點擊事件,只不過對象換成了覆蓋物對象,本質都是使用addEventListener去監聽事件的發生。
創建一個點和一個面覆蓋物,然後去給這兩個覆蓋物添加滑鼠點擊事件

如果想研究比較詳細的覆蓋物事件的小夥伴可以自行查看研究
事件-覆蓋物事件

首先說明一下這個路線規劃分為4種,分別是駕車路線規劃,公交路線規劃,步行路線規劃,以及騎行路線規劃,使用的類是不一樣的,我們一起來看一看。

1.基礎駕車路線規劃服務示例:
代碼如下:

2.數據介面
駕車導航服務也提供了豐富的數據介面,通過onSearchComplete回調函數可以得到BMap.DrivingRouteResult對象,它包含了駕車導航結果數據信息。 結果會包含若干駕車方案,每條方案中包含了若干駕車線路。 每條駕車線路又會包含一系列的關鍵步驟(BMap.Step),關鍵步驟描述了具體駕車行駛方案。

BMap.TransitRoute類提供公交線路規劃服務。
注意:v3.0中,新增了TransitRoutePlan.getTotal 和 TransitRoutePlan.getTotalType方法,可以獲取一條公交換乘方案中總路段數(步行+公交),和指定路段的交通方式類型(步行或公交)。

1.使用服務示例
代碼如下:

2.進行跨城路線規劃
代碼如下:

BMap.WalkingRoute提供步行線路規劃服務。基本用法和駕車線路規劃類似。
使用服務示例
代碼如下:

BMap.RidingRoute提供騎行線路規劃服務,基本用法和步行線路規劃基本相同。
使用服務示例
代碼如下:

感興趣的小夥伴可以自行去研究
網路地圖Javascript API 3.0 出行路線規劃 網路地圖js API示例 路線規劃

感謝諸君的觀看,文中如有紕漏,歡迎在評論區來交流。如果這篇文章幫助到了你,歡迎點贊和關注。

2. java類方法中百度地圖API

網路地圖Web服務為開發者提供http介面,即開發者通過http形式發起檢索請求,獲取返回json或xml格式的檢索數據。
api官網說明鏈接:

http://developer..com/map/webservice.htm

1、可用介面列舉:
獲取相關地址提示 place suggestion
http://api.map..com/place/v2/suggestion?query=水杉®ion=成都&output=json&ak=

2、獲取坐標 geocoding

http://api.map..com/geocoder?address=錦江區菱安路299號&output=json&key=

http://api.map..com/place/v2/search?ak=&output=json&query=藍光coco金沙&page_size=10&page_num=0&scope=1®ion=成都
{
"status":0,
"message":"ok",
"total":2,
"results":[
{
"name":"藍光COCO金沙",
"location":{
"lat":30.687544,
"lng":103.996691
},
"address":"西三環外金沙西源大道(IT大道旁)",
"uid":"223992992c5ee7e0841541df"
},
{
"name":"藍光COCO金沙2期",
"location":{
"lat":30.681123,
"lng":103.991123
},
"address":"青羊區金沙IT大道旁",
"uid":"b7bb5abb1cd4982213293580"
}
]
}

3、設施導航
http://api.map..com/place/v2/search?ak=&output=json&query=圖書館&page_size=20&page_num=0&scope=2®ion=成都

4、java測試類:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

public class LocationUtil {

private static final String BAIDU_APP_KEY = "";

/**
* 返回輸入地址的經緯度坐標 key lng(經度),lat(緯度)
*/
public static Map<String, String> getLatitude(String address) {
try {
// 將地址轉換成utf-8的16進制
address = URLEncoder.encode(address, "UTF-8");
// 如果有代理,要設置代理,沒代理可注釋
// System.setProperty("http.proxyHost","192.168.172.23");
// System.setProperty("http.proxyPort","3209");

URL resjson = new URL("http://api.map..com/geocoder?address="
+ address + "&output=json&key=" + BAIDU_APP_KEY);
BufferedReader in = new BufferedReader(new InputStreamReader(
resjson.openStream()));
String res;
StringBuilder sb = new StringBuilder("");
while ((res = in.readLine()) != null) {
sb.append(res.trim());
}
in.close();
String str = sb.toString();
System.out.println("return json:" + str);
if(str!=null&&!str.equals("")){
Map<String, String> map = null;
int lngStart = str.indexOf("lng\":");
int lngEnd = str.indexOf(",\"lat");
int latEnd = str.indexOf("},\"precise");
if (lngStart > 0 && lngEnd > 0 && latEnd > 0) {
String lng = str.substring(lngStart + 5, lngEnd);
String lat = str.substring(lngEnd + 7, latEnd);
map = new HashMap<String, String>();
map.put("lng", lng);
map.put("lat", lat);
return map;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

public static void main(String args[]) {

Map<String, String> map = LocationUtil.getLatitude("成都 高新西區西區大道1398號");
if (null != map) {
System.out.println(map.get("lng"));
System.out.println(map.get("lat"));
}
}
}

3. 百度地圖api獲取代碼怎麼使用

1)下載網路地圖移動版API(Android)開發包
要在Android應用中使用網路地圖API,就需要在工程中引用網路地圖API開發包,這個開發包包含兩個文件:mapapi.jar和libBMapApiEngine.so。

2)申請API Key 和使用Google map api一樣,在使用網路地圖API之前也需要獲取相應的API Key。網路地圖API Key與你的網路賬戶相關聯,因此您必須先有網路帳戶,才能獲得API
Key;並且,該Key與您引用API的程序名稱有關。
網路API Key的申請要比Google的簡單多了,其實只要你有網路帳號,應該不超過30秒就能完成API Key的申請。

3)創建一個Android工程
這里需要強調一點:網路地圖移動版api支持Android 1.5及以上系統,因此我們創建的工程應基於Android SDK 1.5及以上。 工程創建完成後,將mapapi.jar和libBMapApiEngine.so分別拷貝到工程的根目錄及libs/armeabi目錄下,並在工程屬性->Java Build Path->Libraries中選擇「Add JARs」,選定mapapi.jar,這樣就可以在應用中使用網路地圖API了。工程完整的目錄結構如下圖所示:

4)在布局文件中添加地圖控制項(res/layout/main.xml)

5)創建Activity繼承com..mapapi.MapActivity

package com.liufeng.map;

import android.graphics.drawable.Drawable;
import android.os.Bundle;

import com..mapapi.BMapManager;
import com..mapapi.GeoPoint;
import com..mapapi.MapActivity;
import com..mapapi.MapController;
import com..mapapi.MapView;

public class MainActivity extends MapActivity {
private BMapManager mapManager;
private MapView mapView;
private MapController mapController;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// 初始化MapActivity
mapManager = new BMapManager(getApplication());
// init方法的第一個參數需填入申請的API Key
mapManager.init("", null);
super.initMapActivity(mapManager);

mapView = (MapView) findViewById(R.id.map_View);
// 設置地圖模式為交通地圖
mapView.setTraffic(true);
// 設置啟用內置的縮放控制項
mapView.setBuiltInZoomControls(true);

// 用給定的經緯度構造一個GeoPoint(緯度,經度)
GeoPoint point = new GeoPoint((int) (47.118440 * 1E6), (int) (87.493147 * 1E6));

// 創建標記maker
Drawable marker = this.getResources().getDrawable(R.drawable.iconmarka);
// 為maker定義位置和邊界
marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight());

// 取得地圖控制器對象,用於控制MapView
mapController = mapView.getController();
// 設置地圖的中心
mapController.setCenter(point);
// 設置地圖默認的縮放級別
mapController.setZoom(12);
}

@Override
protected boolean isRouteDisplayed() {
return false;
}

@Override
protected void onDestroy() {
if (mapManager != null) {
mapManager.destroy();
mapManager = null;
}
super.onDestroy();
}

@Override
protected void onPause() {
if (mapManager != null) {
mapManager.stop();
}
super.onPause();
}

@Override
protected void onResume() {
if (mapManager != null) {
mapManager.start();
}
super.onResume();
}
}
6)在AndroidManifest.xml中配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="

package="com.liufeng.map"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest>

4. 怎麼樣使用java來獲得百度地圖開源介面中,IP定位返回的結果

|

額這個就是json的啦

vars='{"address":"CN|u5409u6797|u957fu6625|None|CERNET|1|None","content":{"address":"","address_detail":{"city":"u957fu6625u5e02","city_code":53,"district":"","province":"u5409u6797u7701","street":"","street_number":""},"point":{"x":"125.31364243","y":"43.89833761"}},"status":0}';

varjsonObj=eval("("+s+")");

你就可內以得容到的啦

就是的啦

varstr=jsonObj.address;

5. 想用java 做一個平台,能夠調用百度或谷歌地圖並在地圖上顯示定位位置和軌跡回放,涉及java 的那些知識

如果是WEB方式,需要:
java開發移動端APP,獲取GPS數據並存入資料庫
頁面JSP調用網路地版圖API
地圖上權所需的位置坐標從資料庫中查詢
涉及到的知識比較廣,JSP\JAVA ANDROID IDE\J2SE\HTML\DATABASE

閱讀全文

與java百度地圖軌跡回放源代碼相關的資料

熱點內容
電子資料文件有哪些 瀏覽:241
猥瑣貓表情教程 瀏覽:599
android音頻文件格式 瀏覽:458
漫畫臉app哪裡可以下載 瀏覽:959
購買歡樂升級歡樂豆 瀏覽:282
學習智能機器人用什麼編程最好 瀏覽:655
蘋果手機如何管控app 瀏覽:633
mn文件夾 瀏覽:590
安卓平板通用刷機包下載 瀏覽:751
安卓獲取內部存儲路徑 瀏覽:880
寫代碼兩台顯示器 瀏覽:327
unitypackage壓縮文件 瀏覽:493
奕心安卓 瀏覽:563
使用土地的有關證明文件包含哪些 瀏覽:493
數據標注哪裡可以接 瀏覽:482
在家自學編程下什麼學 瀏覽:705
最近很火的app軟體是什麼軟體 瀏覽:862
ai文字工具 瀏覽:157
蘭博玩游戲路徑怎麼選擇正確文件 瀏覽:972
淘寶直通車恢復老版本 瀏覽:510

友情鏈接