在百度地图开发平台 http://developer.baidu.com/map/index.php?

title=androidsdk

进行创建应用,获取应用的AK,在进行下载BaiduLBS_Android.jar和armeabi--然后放于libs文件夹下。另外获取安全码

Android SDK安全码组成:数字签名+;+包名。(查看具体配置方法),创建应用,提交后,自己主动下发Ak(配置文件里用到)

以下是官方的提示:

第一步:在project里新建libs文件夹。将开发包里的baidumapapi_vX_X_X.jar复制到libs根文件夹下。将libBaiduMapSDK_vX_X_X.so复制到libs\armeabi文件夹下(官网demo里已有这两个文件。假设要集成到自己的project里,就须要自己加入),拷贝完毕后的project文件夹例如以下图所看到的;
1.JPG
第二步:在project属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_vX_X_X.jar,确定后返回。
通过以上两步操作后,您就能够正常使用百度地图SDK为您提供的所有功能了。
注意:因为adt插件升级。若您使用Eclipse adt 22的话,须要对开发环境进行对应的设置,方法例如以下:
1. 在Eclipse 中选中project。右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态;
2. Project -> clean-> clean all .

以下也是官方的提示:

百度地图SDK为开发人员提供了便捷的显示百度地图数据的接口,通过下面几步操作。就可以在您的应用中使用百度地图数据:
第一步:创建并配置project(详细方法參见project配置部分的介绍);
第二步:在AndroidManifest中加入开发密钥、所需权限等信息;
(1)在application中加入开发密钥
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发人员 key" />
</application>
2)加入所需权限
<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.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
第三步。在布局xml文件里加入地图控件。
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
第四步。在应用程序创建时初始化 SDK引用的Context 全局变量:
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);
}
}
注意:在SDK各功能组件使用之前都须要调用
SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中
第五步,创建地图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();
}
}

修正:官方的权限在某些手机上无法成功。为了保险起见,能够用以下的这些权限

 <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" />

***************************************************************************************************项目代码開始*************************************

開始粘贴项目代码吧 +++++++++天下一大抄。抄来抄去,这里感谢一些hyman大神。

。。

先看自己项目的配置文件吧

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.homebaimap"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="18" /> <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" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="h1sIN5FLXGPodE5QCt7VpU7R" /> <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> <service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
<intent-filter>
<action android:name="com.baidu.location.service_v2.2" >
</action>
</intent-filter>
</service>
</application> </manifest>

主页面布局

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" > <com.baidu.mapapi.map.MapView
android:id="@+id/id_bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" /> <RelativeLayout
android:id="@+id/id_maker_ly"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_alignParentBottom="true"
android:background="#cc4e5a6b"
android:clickable="true"
android:visibility="gone" > <ImageView
android:id="@+id/id_info_img"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="10dp"
android:background="@drawable/img_border"
android:scaleType="fitXY"
android:src="@drawable/a01" >
</ImageView> <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:background="@drawable/bg_map_bottom" > <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:orientation="vertical" > <TextView
android:id="@+id/id_info_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="老米家泡馍"
android:textColor="#fff5eb" /> <TextView
android:id="@+id/id_info_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距离200米"
android:textColor="#fff5eb" />
</LinearLayout> <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:orientation="horizontal" > <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/map_zan"
android:clickable="true" /> <TextView
android:id="@+id/id_info_zan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="789"
android:textColor="#fff5eb" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout> </RelativeLayout>

另外drawable里面的一个小文件(无关痛痒。是图像的小处理)

img_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke
android:width="20dp"
android:color="#AAFFFFFF" /> <padding
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp" >
</padding>
</shape>

Info(是地图上marker的封装信息类,便于学习,没有从server获取)

package com.example.homebaimap;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List; public class Info implements Serializable
{
private static final long serialVersionUID = -1010711775392052966L;
private double latitude;
private double longitude;
//图片
private int imgId;
//名字
private String name;
//距离
private String distance;
//赞
private int zan; public static List<Info> infos = new ArrayList<Info>(); static
{
infos.add(new Info(34.242652, 108.971171, R.drawable.a01, "英伦贵族小旅馆",
"距离209米", 1456));
infos.add(new Info(34.242952, 108.972171, R.drawable.a02, "沙井国际洗浴会所",
"距离897米", 456));
infos.add(new Info(34.242852, 108.973171, R.drawable.a03, "五环服装城",
"距离249米", 1456));
infos.add(new Info(34.242152, 108.971971, R.drawable.a04, "老米家泡馍小炒",
"距离679米", 1456));
} public Info(double latitude, double longitude, int imgId, String name,
String distance, int zan)
{
this.latitude = latitude;
this.longitude = longitude;
this.imgId = imgId;
this.name = name;
this.distance = distance;
this.zan = zan;
} public double getLatitude()
{
return latitude;
} public void setLatitude(double latitude)
{
this.latitude = latitude;
} public double getLongitude()
{
return longitude;
} public void setLongitude(double longitude)
{
this.longitude = longitude;
} public int getImgId()
{
return imgId;
} public void setImgId(int imgId)
{
this.imgId = imgId;
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} public String getDistance()
{
return distance;
} public void setDistance(String distance)
{
this.distance = distance;
} public int getZan()
{
return zan;
} public void setZan(int zan)
{
this.zan = zan;
} }

MainActivity

package com.example.homebaimap;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Point;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast; import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMap.OnMapClickListener;
import com.baidu.mapapi.map.BaiduMap.OnMarkerClickListener;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.InfoWindow;
import com.baidu.mapapi.map.InfoWindow.OnInfoWindowClickListener;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationConfiguration.LocationMode;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.example.homebaimap.MyOrientationListener.OnOrientationListener; public class MainActivity extends Activity {
private Context context;
// 定位相关
private LocationMode mLocationMode;
private LocationClient mLocationClient;
private MyLocationListener mLocationListener;
private boolean isFirstIn = true;
private double mLatitude;
private double mLongtitude;
// 自己定义定位图标
private BitmapDescriptor mIconLocation;
private MyOrientationListener myOrientationListener;
private float mCurrentX; // 覆盖物相关
private BitmapDescriptor mMarker;
private RelativeLayout mMarkerLy; // 初始化视图控件
private MapView mMapView;
private BaiduMap mBaiduMap;
private void initView() {
mMapView = (MapView) findViewById(R.id.id_bmapView);
mBaiduMap = mMapView.getMap();
// 设置地图缩放级别。标尺大概在500米左右
MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f);
mBaiduMap.setMapStatus(msu);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main); this.context = this;
//初始化控件。而且设置缩放级别
initView();
// 初始化定位
initLocation();
//初始化覆盖物
initMarker(); /**
* 点击位置信息,回调方法
*/
mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Bundle extraInfo = marker.getExtraInfo();
//获取携带的信息
Info info = (Info) extraInfo.getSerializable("info");
ImageView iv = (ImageView) mMarkerLy
.findViewById(R.id.id_info_img);
TextView distance = (TextView) mMarkerLy
.findViewById(R.id.id_info_distance);
TextView name = (TextView) mMarkerLy
.findViewById(R.id.id_info_name);
TextView zan = (TextView) mMarkerLy
.findViewById(R.id.id_info_zan);
iv.setImageResource(info.getImgId());
distance.setText(info.getDistance());
name.setText(info.getName());
zan.setText(info.getZan() + ""); InfoWindow infoWindow;
TextView tv = new TextView(context);
tv.setBackgroundResource(R.drawable.location_tips);
tv.setPadding(30, 20, 30, 50);
tv.setText(info.getName());
tv.setTextColor(Color.parseColor("#ffffff")); final LatLng latLng = marker.getPosition();
Point p = mBaiduMap.getProjection().toScreenLocation(latLng);
p.y -= 47;
LatLng ll = mBaiduMap.getProjection().fromScreenLocation(p); infoWindow = new InfoWindow(tv, ll,
new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick() {
mBaiduMap.hideInfoWindow();
}
});
mBaiduMap.showInfoWindow(infoWindow);
mMarkerLy.setVisibility(View.VISIBLE);
return true;
}
});
//点击屏幕其它地方。取消那些提示。还有位置信息
mBaiduMap.setOnMapClickListener(new OnMapClickListener() { @Override
public boolean onMapPoiClick(MapPoi arg0) {
return false;
} @Override
public void onMapClick(LatLng arg0) {
mMarkerLy.setVisibility(View.GONE);
mBaiduMap.hideInfoWindow();
}
});
} /********************************************
* 初始化定位
*/
private void initLocation() {
//定位图层显示方式, 默觉得 LocationMode.NORMAL 普通态--还有罗盘。尾随模式
mLocationMode = LocationMode.NORMAL;
//创建LocationClient,以及监听。以及设置定位监听
mLocationClient = new LocationClient(this);
mLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(mLocationListener); //为locationClient进行必要的设置
LocationClientOption option = new LocationClientOption();
option.setCoorType("bd09ll");//设置百度经纬度坐标系格式
option.setIsNeedAddress(true);//某处
option.setOpenGps(true);//打开gps
option.setScanSpan(1000);//每隔多少秒请求
mLocationClient.setLocOption(option);//设置必要的參数
// 视图展现的时候,先初始化一个自己定义图标
mIconLocation = BitmapDescriptorFactory
.fromResource(R.drawable.navi_map_gps_locked);
//传感器对象监听
myOrientationListener = new MyOrientationListener(context); //监听到改变时候,进行赋最新的值x值
myOrientationListener
.setOnOrientationListener(new OnOrientationListener() {
@Override
public void onOrientationChanged(float x) {
mCurrentX = x;
}
}); }
private class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) { //创建的位置数据
MyLocationData data = new MyLocationData.Builder()//
.direction(mCurrentX)//
.accuracy(location.getRadius())//
.latitude(location.getLatitude())//
.longitude(location.getLongitude())//
.build();
mBaiduMap.setMyLocationData(data);
// 设置自己定义图标
MyLocationConfiguration config = new MyLocationConfiguration(
mLocationMode, true, mIconLocation);
mBaiduMap.setMyLocationConfigeration(config); // 更新经纬度
mLatitude = location.getLatitude();
mLongtitude = location.getLongitude();
//当用户第一次获取定位时候,定位到自己的位置
if (isFirstIn) {
LatLng latLng = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
mBaiduMap.animateMapStatus(msu);
isFirstIn = false; Toast.makeText(context, location.getAddrStr(),
Toast.LENGTH_SHORT).show();
} }
}
/**********************************************************
* 初始化覆盖物
*/
private void initMarker() {
//初始化覆盖物控件
mMarker = BitmapDescriptorFactory.fromResource(R.drawable.maker);
mMarkerLy = (RelativeLayout) findViewById(R.id.id_maker_ly);
}
//____________________________________________________________________
@Override
protected void onResume() {
super.onResume();
// 在activity运行onResume时运行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
} @Override
protected void onStart() {
super.onStart();
// 开启定位
mBaiduMap.setMyLocationEnabled(true);
if (!mLocationClient.isStarted())
mLocationClient.start();
// 开启方向传感器
myOrientationListener.start();
} @Override
protected void onPause() {
super.onPause();
// 在activity运行onDestroy时运行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onPause();
} @Override
protected void onStop() {
super.onStop(); // 停止定位
mBaiduMap.setMyLocationEnabled(false);
mLocationClient.stop();
// 停止方向传感器
myOrientationListener.stop(); } @Override
protected void onDestroy() {
super.onDestroy();
// 在activity运行onDestroy时运行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
//____________________________________________________________________
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} /**
* 定位到我的位置
*/
private void centerToMyLocation() {
//创建最新的经度维度
LatLng latLng = new LatLng(mLatitude, mLongtitude);
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
//去移动到最新的位置上去
mBaiduMap.animateMapStatus(msu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.id_map_common:
//普通
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
break; case R.id.id_map_site:
//卫星
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
break; case R.id.id_map_traffic:
//显示实时交通
if (mBaiduMap.isTrafficEnabled()) {
mBaiduMap.setTrafficEnabled(false);
item.setTitle("实时交通(off)");
} else {
mBaiduMap.setTrafficEnabled(true);
item.setTitle("实时交通(on)");
}
break;
case R.id.id_map_location:
//实现定位--我的位置
centerToMyLocation();
break;
case R.id.id_map_mode_common:
mLocationMode = LocationMode.NORMAL;
break;
case R.id.id_map_mode_following:
mLocationMode = LocationMode.FOLLOWING;
break;
case R.id.id_map_mode_compass:
mLocationMode = LocationMode.COMPASS;
break;
case R.id.id_add_overlay:
addOverlays(Info.infos);
break;
default:
break;
} return super.onOptionsItemSelected(item);
} /*********************************************
* 加入覆盖物
* 循环得到经纬度,得到图标
* 依据MarkerOptions设置经纬度,设置图标
* 讲marker携带info,完毕地图上的加入
*
*/
private void addOverlays(List<Info> infos) {
//清屏
mBaiduMap.clear();
//经度维度
LatLng latLng = null;
//
OverlayOptions options;
//将marker放到地图上
Marker marker = null;
for (Info info : infos) {
// 经纬度
latLng = new LatLng(info.getLatitude(), info.getLongitude());
// 图标--制定marker地图上的位置(图标,放到最上层为5)
options = new MarkerOptions().position(latLng).icon(mMarker)
.zIndex(5);
//加入
marker = (Marker) mBaiduMap.addOverlay(options);
//marker携带值
Bundle arg0 = new Bundle();
arg0.putSerializable("info", info);
marker.setExtraInfo(arg0);
} //移动位置
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
mBaiduMap.setMapStatus(msu); } }

MyOrientationListener

package com.example.homebaimap;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager; public class MyOrientationListener implements SensorEventListener {
// 传感器管理工具
private SensorManager mSensorManager;
private Context mContext;
// 传感器
private Sensor mSensor;
private float lastX; //获取环境变量
public MyOrientationListener(Context context) {
this.mContext = context;
} // 開始监听
@SuppressWarnings("deprecation")
public void start() {
//获取监听管理者
mSensorManager = (SensorManager) mContext
.getSystemService(Context.SENSOR_SERVICE);
if (mSensorManager != null) {
// 获得方向传感器--水平的这里用
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
} //假设手指支持传感器
if (mSensor != null) {
/**
* 注冊方向改变监听--listener自己实现了传this就可以。传感器,精度,
onSensorChanged实现监听的方法
*/
mSensorManager.registerListener(this, mSensor,
SensorManager.SENSOR_DELAY_UI);
}
} // 结束监听
public void stop() {
mSensorManager.unregisterListener(this);
} @Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub } // 传感器改变须要的回调方法
@SuppressWarnings({ "deprecation" })
@Override
public void onSensorChanged(SensorEvent event) {
//假设检測到方向改变
if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
//假设方向发生改变时候,event会携带一个类型--这里是水平。以及会携带三个数据xyz--这里是x值,而且获取x值
float x = event.values[SensorManager.DATA_X]; //发生变化
if (Math.abs(x - lastX) > 1.0) {
if (mOnOrientationListener != null) {
//这里有一个接口方法。传入最新的x值
mOnOrientationListener.onOrientationChanged(x);
}
} lastX = x; }
} private OnOrientationListener mOnOrientationListener; public void setOnOrientationListener(
OnOrientationListener mOnOrientationListener) {
this.mOnOrientationListener = mOnOrientationListener;
} public interface OnOrientationListener {
void onOrientationChanged(float x);
} }

另外还有那个menu文件(无关痛痒的)

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

    <item
android:id="@+id/id_map_common"
android:showAsAction="never"
android:title="普通地图"/>
<item
android:id="@+id/id_map_site"
android:showAsAction="never"
android:title="卫星地图"/>
<item
android:id="@+id/id_map_traffic"
android:showAsAction="never"
android:title="实时交通(off)"/>
<item
android:id="@+id/id_map_location"
android:showAsAction="never"
android:title="我的位置"/>
<item
android:id="@+id/id_map_mode_common"
android:showAsAction="never"
android:title="普通模式"/>
<item
android:id="@+id/id_map_mode_following"
android:showAsAction="never"
android:title="尾随模式"/>
<item
android:id="@+id/id_map_mode_compass"
android:showAsAction="never"
android:title="罗盘模式"/>
<item
android:id="@+id/id_add_overlay"
android:showAsAction="never"
android:title="加入覆盖物">
</item> </menu>

百度地图-----&gt;地图类型、定位模式、实时交通、我的位置、加入覆盖物、覆盖物详情及提示的更多相关文章

  1. iOS:后台定位并实时向服务器发送位置

    第一步:开启后台模式,选中定位,选择project --> capabilities-->Backgorund Modes --> Location updates 如图: 第二步: ...

  2. 我的Android开发之路——百度地图开源工具获取定位信息

    定位技术在现在的移动设备上是必不可少的,许多app都会使用定位功能. 通常定位方式有两种:GPS定位:网络定位. Android系统对这两种定位方式都提供了相应的API支持,但是因为google的网络 ...

  3. 使用百度地图开发一个导航定位demo-android学习之旅(77)

    首先介绍如何导入百度地图 步骤(其实官方文档写的很清楚了)http://developer.baidu.com/map/index.php?title=androidsdk/guide/introdu ...

  4. 百度地图API的IP定位城市和浏览器定位(转)

    百度地图API提供了Geolocation 和 LocalCity两个服务类. 这俩API可以分别供用户在JavaScript中进行定位和城市确认. 1 本质上,Geolocation这个类是使用了支 ...

  5. 如何利用【百度地图API】进行定位?非GPS定位

    原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------- ...

  6. 完整版百度地图点击列表定位到对应位置并有交互动画效果demo

    1.前言 将地图嵌入到项目中的需求很多,好吧,我一般都是用的百度地图.那么今天就主要写一个完整的demo.展示一个列表,点击列表的任一内容,在地图上定位到该位置,并有动画效果.来来来,直接上demo  ...

  7. HTML5调用百度地图API进行地理定位实例

    自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图AP ...

  8. Android学习笔记之使用百度地图实现地图控制

    PS:吾之荣耀,离别已久. 学习内容: 1.实现地图控制. 2.百度地图开发的一些细节     1.实现地图控制:   这一篇主要写在百度地图上添加一些其他控制.上一篇书写了覆盖物的添加,地理编码和反 ...

  9. android studio高德地图的显示于定位(附带逆地理编码围栏)

    首先注册高德成为开发者(打开高德地图,点击底部的开发者平台),创建应用,按照要求填写相应信息 网站:http://lbs.amap.com/api/android-sdk/guide/create-p ...

随机推荐

  1. QTP自带订票实现循环执行,參数化和将异常提示信息输出

    做这个样例主要是为了积累一些较基础的知识,以便日后可參考学习 这个样例是一个订票的C/Sclient程序 一.业务需求: 1.实现异常和正常数据登录窗体,系统对数据进行校验 2.登录成功后.进行订票业 ...

  2. USACO 1.5 Superprime Rib

    Superprime Rib Butchering Farmer John's cows always yields the best prime rib. You can tell prime ri ...

  3. 光标属性CSS cursor 属性

    CSS cursor 属性 CSS cursor属性,以前不知道,如果以后用到自己看的 <html> <body> <p>请把鼠标移动到单词上,可以看到鼠标指针发生 ...

  4. Linux就该这么学 20181009(第十二章 SAMBA)

    参考链接https://www.linuxprobe.com Samba 跨平台的文件共享 linux-linux linux-windows /etc/samba/smb.conf 里面 []这个名 ...

  5. ROS-SLAM仿真-cartographer

    前言:cartographer是谷歌2016年发布的一个开源slam算法,采用基于图网络的优化方法,主要基于激光雷达来实现. 使用源码编译方式. 一.新建工作空间 1.1 使用roboware新建名为 ...

  6. 欢迎来到SQL学院

    给学习SQL的同学的福利@ http://sqlschool.modeanalytics.com/ 第一部分 学习SQL 本教程是专为那些想用数据回答问题的人们而设计的.从很大程度上讲,SQL是数据分 ...

  7. string 去除空格

      /** * 去除空格 * @param {str} * @param {type} * type: 1-所有空格 2-前后空格 3-前空格 4-后空格 * @return {String} */ ...

  8. 基于 Web 的 Go 语言 IDE - Wide 1.3.0 发布!

    http://symphony.b3log.org/article/1437292757551 欢迎各位提意见.建议,参与到 Wide 开源项目中 :-)

  9. (转载) Android Studio你不知道的调试技巧

    Android Studio你不知道的调试技巧 标签: android studio 2015-12-29 16:05 2514人阅读 评论(0) 收藏 举报  分类: android(74)    ...

  10. Android 实现调用系统拍照相册,剪切功能

    1.XML布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...