首页 > 编程知识 正文

java百度地图api轨迹,百度地图api地址解析

时间:2023-12-26 22:40:31 阅读:322854 作者:KOOO

本文目录一览:

百度地图api java怎么用

一、申请密钥

1、先用eclipse创建一个Android工程

2、在百度api官网上申请一个密钥,链接:

bubuko.com,布布扣

二、工程配置

1、将baidumapapi_vX_X_X.jar拷贝到工程libs目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libsarmeabi

目录下,拷贝完成后,如下所示:

注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。

bubuko.com,布布扣

2、右键工程属性,在Libraries中选择“Add External JARs”,选择baidumapapi_vX_X_X.jar,确定返回

配置好以上步骤,即可使用百度地图了

三、显示百度地图

1、在android配置清单文件中AndroidManifest.xml添加开发密钥和所需权限

application meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" / /application

所需权限

uses-permission android:name="android.permission.GET_ACCOUNTS" /

uses-permission android:name="android.permission.USE_CREDENTIALS" /

uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /

uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /

uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /

uses-permission android:name="android.permission.INTERNET" /

uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /

uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /

uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /

uses-permission android:name="android.permission.READ_PHONE_STATE" /

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /

uses-permission android:name="android.permission.BROADCAST_STICKY" /

uses-permission android:name="android.permission.WRITE_SETTINGS" /

uses-permission android:name="android.permission.READ_PHONE_STATE" /

2、在xml布局中添加地图控件

com.baidu.mapapi.map.MapView

android:id="@+id/bmapView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="true" /

?3、在应用程序创建时初始化,SDK引用的全局变量Context

注意:在SDK各功能组件使用之前都需要调用

SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中

public class MyApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

//在使用SDK各组件之前初始化context信息,传入ApplicationContext

SDKInitializer.initialize(getApplicationContext());

System.out.println("SDKInitializer一初始化");

}

}

设置自定义的application为默认应用

application

android:name="com.bao.ah.MyApplication"

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme"

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//在使用SDK各组件之前初始化context信息,传入ApplicationContext

//注意该方法要再setContentView方法之前实现

//SDKInitializer.initialize(getApplicationContext());

setContentView(R.layout.activity_main);

}

}

4、百度地图应和Activity生命周期绑定

public class MainActivity extends Activity {

MapView mMapView = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//在使用SDK各组件之前初始化context信息,传入ApplicationContext

//注意该方法要再setContentView方法之前实现

//SDKInitializer.initialize(getApplicationContext());

setContentView(R.layout.activity_main);

//获取地图控件引用

mMapView = (MapView) findViewById(R.id.bmapView);

}

@Override

protected void onDestroy() {

super.onDestroy();

//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理

mMapView.onDestroy();

}

@Override

protected void onResume() {

super.onResume();

//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理

mMapView.onResume();

}

@Override

protected void onPause() {

super.onPause();

//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理

mMapView.onPause();

}

}

java类方法中百度地图API

百度地图Web服务API为开发者提供http接口,即开发者通过http形式发起检索请求,获取返回json或xml格式的检索数据。

api官网说明链接:

1、可用接口列举:

获取相关地址提示 place suggestion

水杉region=成都output=jsonak=42b8ececa9cd6fe72ae4cddd77c0da5d

2、获取坐标 geocoding

锦江区菱安路299号output=jsonkey=42b8ececa9cd6fe72ae4cddd77c0da5d

;output=jsonquery=蓝光coco金沙page_size=10page_num=0scope=1region=成都

{

"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、设施导航

;output=jsonquery=图书馆page_size=20page_num=0scope=2region=成都

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 = "42b8ececa9cd6fe72ae4cddd77c0da5d";

/**

* 返回输入地址的经纬度坐标 key lng(经度),lat(纬度)

*/

public static MapString, 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(""

+ address + "output=jsonkey=" + 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("")){

MapString, 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 HashMapString, String();

map.put("lng", lng);

map.put("lat", lat);

return map;

}

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

public static void main(String args[]) {

MapString, String map = LocationUtil.getLatitude("成都 高新西区西区大道1398号");

if (null != map) {

System.out.println(map.get("lng"));

System.out.println(map.get("lat"));

}

}

}

如何使用java和百度地图api 得到两点之间的路程(

获取到两点的经纬度,再调用百度地图的api计算。我记得,有一个计算距离的api.

script type="text/javascript"

// 百度地图API功能

var map = new BMap.Map("allmap");

map.centerAndZoom("重庆",12); //初始化地图,设置城市和地图级别。

var pointA = new BMap.Point(106.486654,29.490295); // 创建点坐标A--大渡口区

var pointB = new BMap.Point(106.581515,29.615467); // 创建点坐标B--江北区

alert('从大渡口区到江北区的距离是:'+(map.getDistance(pointA,pointB)).toFixed(2)+' 米。'); //获取两点距离,保留小数点后两位

var polyline = new BMap.Polyline([pointA,pointB], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}); //定义折线

map.addOverlay(polyline); //添加折线到地图上

/script

想用java 做一个平台,能够调用百度或谷歌地图并在地图上显示定位位置和轨迹回放,涉及java 的那些知识

如果是WEB方式,需要:

java开发移动端APP,获取GPS数据并存入数据库

页面JSP调用百度地图API

地图上所需的位置坐标从数据库中查询

涉及到的知识比较广,JSPJAVA ANDROID IDEJ2SEHTMLDATABASE

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。