百度有提供api的,一般是按照api給的網址,在網址后加經緯度或者地區名,但是百度地圖要申請秘鑰的,這個需要自己去申請一個,免費的,類似的功能你可以參考下面的源碼雖然是javascript的,但是java用起來差不多,畢竟你的地圖肯定是在web頁面顯示的
成都服務器托管,創新互聯建站提供包括服務器租用、成都服務器托管、帶寬租用、云主機、機柜租用、主機租用托管、CDN網站加速、申請域名等業務的一體化完整服務。電話咨詢:18980820575
!DOCTYPE?html??
html??
head??
meta?name="viewport"?content="initial-scale=1.0,?user-scalable=no"?/??
meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/??
titleHello,?World/title??
style?type="text/css"??
html{height:100%}??
body{height:100%;margin:0px;padding:0px}??
#container{height:100%}??
/style??
script?type="text/javascript"?src=";ak=您的密鑰"
//v2.0版本的引用方式:src=";ak=您的密鑰"
//v1.4版本及以前版本的引用方式:src=";key=您的密鑰callback=initialize"
/script
/head??
body??
div?id="container"/div?
script?type="text/javascript"?
var?map?=?new?BMap.Map("container");??????????//?創建地圖實例??
var?point?=?new?BMap.Point(116.404,?39.915);??//?創建點坐標??
map.centerAndZoom(point,?15);?????????????????//?初始化地圖,設置中心點坐標和地圖級別??
/script??
/body??
/html
百度地圖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"));
}
}
}
一、申請密鑰
1、先用eclipse創建一個Android工程
2、在百度api官網上申請一個密鑰,鏈接:
bubuko.com,布布扣
二、工程配置
1、將baidumapapi_vX_X_X.jar拷貝到工程libs目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi
目錄下,拷貝完成后,如下所示:
注: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使用百度地圖代碼 java 百度地圖
轉載來于:http://vcdvsql.cn/article20/doiegjo.html
成都網站建設公司_創新互聯,為您提供網站建設、靜態網站、品牌網站建設、服務器托管、響應式網站、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯