百度地图和定位

  1 package com.example.administrator.yunstore;
  2
  3 import android.app.Activity;
  4 import android.os.Bundle;
  5 import android.util.Log;
  6 import android.widget.TextView;
  7
  8 import com.baidu.location.BDLocation;
  9 import com.baidu.location.BDLocationListener;
 10 import com.baidu.location.LocationClient;
 11 import com.baidu.location.LocationClientOption;
 12 import com.baidu.mapapi.SDKInitializer;
 13 import com.baidu.mapapi.map.BaiduMap;
 14 import com.baidu.mapapi.map.MapStatusUpdate;
 15 import com.baidu.mapapi.map.MapStatusUpdateFactory;
 16 import com.baidu.mapapi.map.MapView;
 17 import com.baidu.mapapi.map.MyLocationData;
 18 import com.baidu.mapapi.model.LatLng;
 19
 20 public class MapActivity extends Activity {
 21
 22     private MapView mapView;
 23     private BaiduMap myMap;
 24     private TextView addressView;
 25     //定位相关
 26     private LocationClient mLocationClient;
 27     private myLocationListener mLocationLisener;
 28     private float mCurrentX=0.0f;
 29     private boolean isFirstIn = true;
 30
 31     @Override
 32     protected void onCreate(Bundle savedInstanceState) {
 33         super.onCreate(savedInstanceState);
 34         SDKInitializer.initialize(getApplicationContext());
 35         setContentView(R.layout.activity_map);
 36
 37         initView();
 38         //初始化定位
 39         initLocation();
 40
 41     }
 42
 43     private void initLocation() {
 44         mLocationClient = new LocationClient(this);
 45         mLocationLisener = new myLocationListener();
 46         mLocationClient.registerLocationListener(mLocationLisener);
 47         LocationClientOption option = new LocationClientOption();
 48         //设置坐标类型
 49         option.setCoorType("bd09ll");
 50         //设置打开gps
 51         option.setOpenGps(true);
 52         //设置获取地址
 53         option.setIsNeedAddress(true);
 54         //请求时间
 55         option.setScanSpan(1000);
 56         //执行操作
 57         mLocationClient.setLocOption(option);
 58     }
 59
 60     private void initView() {
 61         mapView = (MapView) findViewById(R.id.mapView);
 62         addressView= (TextView) findViewById(R.id.address);
 63         myMap = mapView.getMap();
 64         //设置地图的状态  15.0f显示距离为500m
 65         MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f);
 66         myMap.setMapStatus(msu);
 67     }
 68
 69
 70     //定位监听
 71     private class myLocationListener implements BDLocationListener {
 72
 73         @Override
 74         //定位成功以后的回调
 75         public void onReceiveLocation(BDLocation location) {
 76             MyLocationData data = new MyLocationData.Builder()//
 77                     .direction(mCurrentX)//
 78                     .accuracy(location.getRadius())//
 79                     .latitude(location.getLatitude())//
 80                     .longitude(location.getLongitude())//
 81                     .build();
 82             myMap.setMyLocationData(data);
 83
 84             if (isFirstIn) {
 85                 LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());
 86                 Log.e("",location.getAddrStr()+"   "+location.getLatitude()+"  "+location.getLongitude());
 87                 MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
 88                 myMap.animateMapStatus(msu);
 89                 isFirstIn = false;
 90                 addressView.setText("你现在所在的位置是:"+location.getAddrStr());
 91             }
 92
 93         }
 94     }
 95     @Override
 96     protected void onStart() {
 97         super.onStart();
 98         //开启定位
 99         myMap.setMyLocationEnabled(true);
100         if(!mLocationClient.isStarted()){
101             mLocationClient.start();
102
103         }
104     }
105
106     @Override
107     protected void onStop() {
108         super.onStop();
109         //停止定位
110         myMap.setMyLocationEnabled(false);
111         mLocationClient.stop();
112     }
113
114     @Override
115     protected void onDestroy() {
116         super.onDestroy();
117         mapView.onDestroy();
118     }
119
120     @Override
121     protected void onResume() {
122         super.onResume();
123         mapView.onResume();
124     }
125
126     @Override
127     protected void onPause() {
128         super.onPause();
129         mapView.onPause();
130     }
131 }
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical">
 5
 6     <com.baidu.mapapi.map.MapView
 7         android:id="@+id/mapView"
 8         android:layout_width="fill_parent"
 9         android:layout_height="300dp"
10         android:clickable="true" />
11     <TextView
12         android:id="@+id/address"
13         android:layout_width="match_parent"
14         android:layout_height="match_parent"
15         android:text="其他控件"
16         android:textSize="20sp"
17         android:background="#00ff00"/>
18 </LinearLayout>
时间: 2024-12-19 09:02:24

百度地图和定位的相关文章

Android应用中使用百度地图API定位自己的位置(二)

官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发者们提供了如下类型的地图覆盖物: 我的位置图层(MyLocationOverlay):用于显示用户当前位置的图层(支持自定义位置图标): Poi搜索结果图层(PoiOverlay):用于显示兴趣点搜索结果的图层: 路线图层(RouteOverlay):公交.步行和驾车线路图层,将公交.步行和驾车出行方案的路线及关键点显示在地图上(起.终

利用HTML5定位功能,实现在百度地图上定位

利用HTML5定位功能,实现在百度地图上定位 代码如下: <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>HTML5定位</title>     <script type="text/javascript" src="http://lib.sinaapp

利用HTML5定位功能,实现在百度地图上定位(转)

原文:利用HTML5定位功能,实现在百度地图上定位 代码如下: 测试浏览器:ie11定位成功率100%,Safari定位成功率97%,(add by zhj :在手机上测试(用微信内置浏览器打开),无论使用WIFI还是移动4G联网, 定位精度都是蛮高的,误差在几十米内) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

百度地图 web定位

<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><title>测试定位</title><script type="text/javascript"

百度地图开发定位与显示Demo(Android)

百度地图给我们提供了非常丰富的API供我们进行二次开发.百度地图的SDK与定位SDK在今年6月份进行了更新.地图更新为3.0,定位更新为4.2.百度说:这次更新对接口有了较大部分的调整,与之前版本不兼容.本篇博文基于以上最新版本的API提供一个小例子:获取自己当前的经纬度坐标,并且显示在地图上.这里只给出核心代码,其他KEY的引入,地图控件的添加,权限的声明,定位服务的声明可在百度地图API官网(http://developer.baidu.com/map/sdkandev-download.h

在Fragment中实现百度地图,定位到当前位置(基于SDKv2.1.0)

使用最新版本的百度地图需要注意的几个地方: 1.libs文件夹下要有android-support-v4.jar.baidumapapi_v2_1_0.jar.locSDK_3.1.jar三个jar包和armeabi文件夹. 2.布局文件要写成<com.baidu.mapapi.map.MapView />,旧版本是写作<com.baidu.mapapi.MapView />的. 3.AndroidMainfest这个配置文件要把该添加的东西都加上.比如各种权限.比如屏幕支持.比如

Xamarin.Android 使用百度地图获取定位信息

最近做一个项目,web端使用百度地图,PDA使用手持机自带的GPS定位系统获取经纬度,然后再百度地图上显示该经纬度会有一定距离的差异,这里就像可乐的瓶子拧上雪碧的盖子,能拧的上却不美观.所以为了数据的精确性,PDA端也用百度地图的接口. 下面主要流程分为以下几步: 新建项目BaiduMapAPIDemo. 下载百度地图 --Android定位SDK . Binging Labrary项目添加相关文件. 注册百度开发平台,创建应用,获取AK. 写入百度提供示例代码. 查看输出结果. 第一步:新建项

IOS 更改百度地图的定位图片

使用了百度地图的SDK,定位图片一直是蓝色的小圆点,很不喜欢,想换成自定义的图片,在网上搜罗了一大通,找到了解决的方案. 写下如下代码: //定位图层自定义样式参数 BMKLocationViewDisplayParam *displayParam = [BMKLocationViewDisplayParam new]; displayParam.isRotateAngleValid =YES; displayParam.isAccuracyCircleShow =YES; displayPar

Android 开发之集成百度地图的定位与地图展示

app 应用中,大多数应用都具有定位功能,百度定位就成了开发人员的集成定位功能的首选,最近也在做定位功能,但是发现百度真是个大坑啊, sdk 命名更新了,相关代码却不更新,害得我花费了很长时间来研究,今天来给大家分享下 Android 集成百度地图要注意的事情,这里只是集成了定位和地图展示功能,其他功能还未涉及,先看下效果图: 接下来介绍一下 Android 集成百度地图的步骤: 首先登陆百度开发平台,在我的应用中创建应用,然后你会看到如下界面: 根据它的要求填写相关信息,这里的安全是有 SHA

团队项目:安卓端用百度地图api定位显示跑道

因为安卓调用api对我来说是一个完全陌生的领域,我在经过很长时间终于弄出来了,这段时间还是很有成效的,我得到了历练. 第一步:注册成为百度开发者 在百度地图开放平台创建应用.地址http://lbsyun.baidu.com/index.php?title=首页 在电脑中找到sha1码来注册,寻找sha1码的方式,网上有教程,开始我没有用集成安卓的eclipse,用android studio.所以采用的是cmd命令台的方式查找的. 这张图片节选自网络 这是另一种方式:在eclipse中打开Wi