您的位置:首页 > 移动开发 > Android开发

android 百度地图路径规划问题(第一篇)

2016-04-12 15:38 363 查看
4)创建安卓工程

工程创建完成后,将baidumapapi.jar和libBMapApiEngine.so分别拷贝到工程的根目录及libs/armeabi目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定baidumapapi.jar,这样就可以在应用中使用百度地图API了。工程完整的目录结构如下图所示:



说明:百度地图移动版api支持Android 1.5及以上系统,因此我们创建的工程应基于Android SDK
1.5及以上。

5)在布局文件中添加地图控件(res/layout/main.xml)

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<com.baidu.mapapi.map.MapView

android:id="@+id/bmapView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="true" />

</LinearLayout>

6)创建Activity继承com.baidu.mapapi.MapActivity

/*

* Copyright (C) 2015 Baidu, Inc. All Rights Reserved.

*/

package baidumapsdk.demo;

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.graphics.Color;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

import com.baidu.mapapi.SDKInitializer;

import com.baidu.mapapi.VersionInfo;

public class BMapApiDemoMain extends Activity {

private static final String LTAG = BMapApiDemoMain.class.getSimpleName();

/**

* 构造广播监听类,监听 SDK key 验证以及网络异常广播

*/

public class SDKReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

String s = intent.getAction();

Log.d(LTAG, "action: " + s);

TextView text = (TextView) findViewById(R.id.text_Info);

text.setTextColor(Color.RED);

if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {

text.setText("key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置");

} else if (s

.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) {

text.setText("key 验证成功! 功能可以正常使用");

text.setTextColor(Color.YELLOW);

}

else if (s

.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {

text.setText("网络出错");

}

}

}

private SDKReceiver mReceiver;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TextView text = (TextView) findViewById(R.id.text_Info);

text.setTextColor(Color.YELLOW);

text.setText("欢迎使用百度地图Android SDK v" + VersionInfo.getApiVersion());

ListView mListView = (ListView) findViewById(R.id.listView);

// 添加ListItem,设置事件响应

mListView.setAdapter(new DemoListAdapter());

mListView.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View v, int index,

long arg3) {

onListItemClick(index);

}

});

// 注册 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);

}

void onListItemClick(int index) {

Intent intent = null;

intent = new Intent(BMapApiDemoMain.this, DEMOS[index].demoClass);

this.startActivity(intent);

}

private static final DemoInfo[] DEMOS = {

new DemoInfo(R.string.demo_title_basemap,

R.string.demo_desc_basemap, BaseMapDemo.class),

new DemoInfo(R.string.demo_title_map_fragment,

R.string.demo_desc_map_fragment, MapFragmentDemo.class),

new DemoInfo(R.string.demo_title_layers, R.string.demo_desc_layers,

LayersDemo.class),

new DemoInfo(R.string.demo_title_multimap,

R.string.demo_desc_multimap, MultiMapViewDemo.class),

new DemoInfo(R.string.demo_title_control,

R.string.demo_desc_control, MapControlDemo.class),

new DemoInfo(R.string.demo_title_ui, R.string.demo_desc_ui,

UISettingDemo.class),

new DemoInfo(R.string.demo_title_location,

R.string.demo_desc_location, LocationDemo.class),

new DemoInfo(R.string.demo_title_geometry,

R.string.demo_desc_geometry, GeometryDemo.class),

new DemoInfo(R.string.demo_title_overlay,

R.string.demo_desc_overlay, OverlayDemo.class),

new DemoInfo(R.string.demo_title_heatmap, R.string.demo_desc_heatmap,

HeatMapDemo.class),

new DemoInfo(R.string.demo_title_geocode,

R.string.demo_desc_geocode, GeoCoderDemo.class),

new DemoInfo(R.string.demo_title_poi, R.string.demo_desc_poi,

PoiSearchDemo.class),

new DemoInfo(R.string.demo_title_route, R.string.demo_desc_route,

RoutePlanDemo.class),

new DemoInfo(R.string.demo_title_districsearch,

R.string.demo_desc_districsearch,

DistrictSearchDemo.class),

new DemoInfo(R.string.demo_title_bus, R.string.demo_desc_bus,

BusLineSearchDemo.class),

new DemoInfo(R.string.demo_title_share, R.string.demo_desc_share,

ShareDemo.class),

new DemoInfo(R.string.demo_title_offline,

R.string.demo_desc_offline, OfflineDemo.class),

new DemoInfo(R.string.demo_title_radar,

R.string.demo_desc_radar, RadarDemo.class),

new DemoInfo(R.string.demo_title_open_baidumap, R.string.demo_desc_open_baidumap,

OpenBaiduMap.class),

new DemoInfo(R.string.demo_title_favorite,

R.string.demo_desc_favorite, FavoriteDemo.class),

new DemoInfo(R.string.demo_title_cloud, R.string.demo_desc_cloud,

CloudSearchDemo.class),

new DemoInfo(R.string.demo_title_opengl, R.string.demo_desc_opengl,

OpenglDemo.class),

new DemoInfo(R.string.demo_title_cluster, R.string.demo_desc_cluster, MarkerClusterDemo.class),

new DemoInfo(R.string.demo_title_tileoverlay, R.string.demo_desc_tileoverlay,

TileOverlayDemo.class),

new DemoInfo(R.string.demo_desc_texturemapview, R.string.demo_desc_texturemapview,

TextureMapViewDemo.class),

};

@Override

protected void onResume() {

super.onResume();

}

@Override

protected void onDestroy() {

super.onDestroy();

// 取消监听 SDK 广播

unregisterReceiver(mReceiver);

}

private class DemoListAdapter extends BaseAdapter {

public DemoListAdapter() {

super();

}

@Override

public View getView(int index, View convertView, ViewGroup parent) {

convertView = View.inflate(BMapApiDemoMain.this,

R.layout.demo_info_item, null);

TextView title = (TextView) convertView.findViewById(R.id.title);

TextView desc = (TextView) convertView.findViewById(R.id.desc);

title.setText(DEMOS[index].title);

desc.setText(DEMOS[index].desc);

if (index >= 16) {

title.setTextColor(Color.YELLOW);

}

return convertView;

}

@Override

public int getCount() {

return DEMOS.length;

}

@Override

public Object getItem(int index) {

return DEMOS[index];

}

@Override

public long getItemId(int id) {

return id;

}

}

private static class DemoInfo {

private final int title;

private final int desc;

private final Class<? extends Activity> demoClass;

public DemoInfo(int title, int desc,

Class<? extends Activity> demoClass) {

this.title = title;

this.desc = desc;

this.demoClass = demoClass;

}

}

}

7)在AndroidManifest.xml中配置

<?xml
version="1.0" encoding="utf-8"?>

<!-- ~ Copyright (C) 2015 Baidu, Inc. All Rights Reserved. -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="baidumapsdk.demo"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="7"

android:targetSdkVersion="10" />

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

<!-- 这个权限用于进行网络定位 -->

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- 这个权限用于访问GPS定位 -->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->

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

<!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_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.MOUNT_UNMOUNT_FILESYSTEMS" />

<!-- 访问网络,网络定位需要上网 -->

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

<uses-permission android:name="android.permission.GET_TASKS" />

<supports-screens

android:anyDensity="true"

android:largeScreens="true"

android:normalScreens="false"

android:resizeable="true"

android:smallScreens="true" />

<application

android:name=".DemoApplication"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:hardwareAccelerated="true" >

<meta-data

android:name="com.baidu.lbsapi.API_KEY"

android:value="Tp1NFhwWns02ozpePX9gWFau" />

<activity

android:name=".BMapApiDemoMain"

android:configChanges="orientation|keyboardHidden"

android:label="BaiduMapSDKDemo"

android:screenOrientation="portrait" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity

android:name=".BaseMapDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_basemap"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".FragmentTableActivity"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_basemap"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".MapFragmentDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_map_fragment"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".MultiMapViewDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_multimap"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".GeometryDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_geometry"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".RadarDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_radar"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".FavoriteDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_favorite"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".LocationDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_location"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".MapControlDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_control"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".UISettingDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_ui"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".LayersDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_layers"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".OverlayDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_overlay"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".OfflineDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_offline"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".PoiSearchDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_poi"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".RoutePlanDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_route"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".GeoCoderDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_geocode"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".BusLineSearchDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_bus"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".HeatMapDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_heatmap"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".ShareDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_share"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".ShareDemoActivity"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_share"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".OpenBaiduMap"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_open_baidumap"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".CloudSearchActivity"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_cloud"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".CloudSearchDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/title_activity_cloud_search_demo"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".OpenglDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_opengl"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".TextureMapViewDemo"

android:screenOrientation="portrait"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_desc_texturemapview">

</activity>

<activity

android:name=".TileOverlayDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_tileoverlay"

android:screenOrientation="portrait" >

</activity>

<service

android:name="com.baidu.location.f"

android:enabled="true"

android:process=":remote" >

</service>

<activity

android:name=".MarkerClusterDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/title_activity_marker_cluster_demo"

android:screenOrientation="portrait" >

</activity>

<activity

android:name=".DistrictSearchDemo"

android:configChanges="orientation|keyboardHidden"

android:label="@string/demo_name_districsearch"

android:screenOrientation="portrait">

</activity>

</application>

</manifest>

本文只是简单的展示了如何使用百度地图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: