android 版百度地图如何通过android 定位功能能获得当前的位置所在的城市?

Pages: 1/2
主题 : 百度地图怎么定位获取当前经纬度?
级别: 侠客
UID: 124329
可可豆: 399 CB
威望: 388 点
在线时间: 530(时)
发自: Web Page
来源于&&分类
百度地图怎么定位获取当前经纬度?&&&
百度地图怎么定位获取当前经纬度?官网上那个是可以定位了,但是经纬度总是0.00000,怎么获取啊?各位大神们
这是帖子签名
级别: 侠客
UID: 124329
可可豆: 399 CB
威望: 388 点
在线时间: 530(时)
发自: Web Page
是不是没人用过啊?
这是帖子签名
级别: 新手上路
可可豆: 352 CB
威望: 352 点
在线时间: 37(时)
发自: Web Page
饿、、、我现在和你遇到的情况一样、、求解
级别: 侠客
UID: 124329
可可豆: 399 CB
威望: 388 点
在线时间: 530(时)
发自: Web Page
回 2楼(sh) 的帖子
/** *在地图View停止定位后,会调用此函数 *@param mapView 地图View */- (void)mapViewDidStopLocatingUser:(BMKMapView *)mapView{}/** *用户位置更新后,会调用此函数 *@param mapView 地图View *@param userLocation 新的用户位置 */- (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userL{}在这里取经纬度
这是帖子签名
级别: 新手上路
可可豆: 352 CB
威望: 352 点
在线时间: 37(时)
发自: Web Page
回 3楼(huangguozan) 的帖子
嗯。谢谢!太感激了!&&我想问一个问题:我用的是&&在viewdidload 里locationManager = [[CLLocationManager alloc]init ];&&&&locationManager.delegate =&&&&&&&&locationManager.desiredAccuracy = kCLLocationAccuracyB&&&&[locationManager startUpdatingLocation];然后-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{&&&&&&&&NSLog(@&经度:%g&,newLocation.coordinate.latitude);&&&&NSLog(@&纬度:%g&,newLocation.coordinate.longitude);}和那个有出入啊、、、我同时把它们写进去之后,它们的的显示相差甚远啊、、
级别: 新手上路
可可豆: 352 CB
威望: 352 点
在线时间: 37(时)
发自: Web Page
回 3楼(huangguozan) 的帖子
我刚才定位了一下,还是&&locationManager 这个比较准一些
级别: 侠客
UID: 124329
可可豆: 399 CB
威望: 388 点
在线时间: 530(时)
发自: Web Page
回 5楼(sh) 的帖子
那个是谷歌定位吧。谷歌当然比较准确
这是帖子签名
级别: 新手上路
可可豆: 81 CB
威望: 71 点
在线时间: 155(时)
发自: Web Page
Re:回 2楼(sh) 的帖子
引用 引用第3楼huangguozan于 13:02发表的 回 2楼(sh) 的帖子 :/** *在地图View停止定位后,会调用此函数 *@param mapView 地图View */- (void)mapViewDidStopLocatingUser:(BMKMapView *)mapView{}....... 是不是[self.mapView setShowsUserLocation:YES];触发定位方法阿。。。。我在停止定位那监听不到
级别: 新手上路
可可豆: 33 CB
威望: 33 点
在线时间: 109(时)
发自: Web Page
回 7楼(gandam19) 的帖子
要先设置代理的self.mapView.delegate  =[self.mapView setShowsUserLocation:YES];这样以后你再看就可以在  - (void)mapViewDidStopLocatingUser:(BMKMapView *)mapView{}  监听了比如移动到当前位置://定位完成后,移动到当前位置- (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation{    CLLocationCoordinate2D    coor.latitude                   = self.mapView.userLocation.coordinate.latitude;    coor.longitude                  = self.mapView.userLocation.coordinate.longitude;    [self.mapViewsetCenterCoordinate:coor animated:YES];}
级别: 新手上路
可可豆: 81 CB
威望: 71 点
在线时间: 155(时)
发自: Web Page
回 8楼(sonique) 的帖子
多谢,问题早就解决了。
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版用户名:李明起
访问量:5087
注册日期:
阅读量:1297
阅读量:3317
阅读量:445946
阅读量:1131327
51CTO推荐博文
Android百度地图地位当前位置和城市检索一 ,定位到当前位置 百度SDK下载及导入
我下载的是3.1版本的SDK。首先将解压后的 BaiduMap_AndroidSDK_v2.1.3_Sample\libs 文件夹下的 armeabi文件夹和locSDK_3.1.jar以及baidumapapi_v2_1_3.jar文件copy到你的项目libs文件夹下。
2,你的项目右键build path 将 baidumapapi_v2_1_3.jar添加到
3,初始化地图
实例化地图管理类
BMapManager manager=new BManager(context对象)
manager.init("你申请的key值",MKGeneralListener监听(负责监听网络连接状态和key值是否可用));
manager.start();//开启服务
(注意生命周期的控制) 4,定位到当前的位置
相关API -- LocationClient
LocationClient检索的返回结果:
5,拿到经纬度后可以将其设置到地图的中心点,
二,城市的搜索。搜索一个城市名,并将其地位到该城市
1,相关API MKSearch
MKSearch search = new MKSearch();
search.init(BManager对象,MKSearchListener监听(MKSearch发起检索后返回数据的监听接口));
search.poiSearchInCity("输入你要搜索的城市名称(如:深圳)", "搜索的关键字(如:城市中心)");
其搜索的结果在MKSearchListener监听中的 onGetPoiResult方法中当arg2为0时表示有返回结果:如图:
2,拿到经纬度后就可以按照(一)中的方法将地图转换至你搜索的城市。
了这篇文章
类别:未分类┆阅读(0)┆评论(0)您所在的位置: &
百度地图手机版如何进行我的位置定位?
时间: 17:16:42
编辑:jhao
来源:下载吧
阅读9482次
百度手机地图Android版是由百度公司为您...
不知大家有没有使用过百度地图手机版我的位置定位功能?百度地图的位置定位功能很不错,我的位置定位让我们随时分享位置信息,可以通过这个位置定位功能让其他的好友都知道我们的具体所在位置,真是一个很实用的功能。百度地图手机版如何进行我的位置定位步骤:第一步:首先,我们手机上要下载安装好最新版本的,打开百度地图,我们点击我的这个按钮,如下图红色箭头所示。第二步:进入以下图所示界面后,我们点击图中的更多工具第三步:看下图,选择位置共享这个选项。第四步:选择以后,我们可以看到两个选项共选择:一个是共享位置;一个是发起聚会,我们以共享位置为例子。第五步:点击以后,我们选择需要共享给的好友,然后邀请一下就可以了。好友一般都是通讯录里面的。第六步:如果是聚会的话,我们就点击上面的发起聚会,再选择聚会地点,选择好地点以后,再邀请好友们。PS:百度地图的位置定位功能比较适合我们对不熟悉的地方就行我的位置定位分享,我们可以直接通过位置定位让好友随时查看到。
分享给朋友:
百度地图手机版如何进行我的位置定位相关教程
百度地图手机版如何进行我的位置定位相关新闻
下载1831次
下载1530次
热门关键字Android百度地图定位后获取周边位置的实现代码
作者:Hankkin
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Android百度地图定位后获取周边位置的实现代码,准确获取周边地理位置,感兴趣的小伙伴们可以参考一下
本文实例讲解Android百度地图定位后获取周边位置的实现代码,分享给大家供大家参考,具体内容如下
具体代码:
1.布局文件
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"&
&RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/height_top_bar"
android:background="@color/common_top_bar_dark"
android:gravity="center_vertical"&
android:id="@+id/btn_location_back"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:drawableLeft="@drawable/back"
android:text="@string/top_back"
style="@style/btn_title_bar"
android:layout_alignParentLeft="true"
android:onClick="back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/location_message"
style="@style/txt_titlebar_message"/&
android:id="@+id/btn_location_ok"
android:layout_width="52dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:background="@drawable/common_tab_bg"
android:text="@string/txt_queding"
style="@style/btn_title_bar"/&
&/RelativeLayout&
&com.baidu.mapapi.map.MapView
android:layout_weight="2"
android:id="@+id/mapview_location"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:clickable="true" /&
android:layout_weight="3"
android:id="@+id/lv_location_nearby"
android:layout_width="match_parent"
android:layout_height="match_parent"/&
&/LinearLayout&
布局文件就是上面是一个百度地图的mapview,下面是一个显示周边位置的ListView,很简单。
1、自动定位
我们先看一下根据自己的地理位置实现定位
1.首先初始化要用到的组件
* 初始化组件
private void initView() {
btnLocationBack = (Button) findViewById(R.id.btn_location_back);
btnLocationBack.setOnClickListener(this);
btnLocationOk = (Button) findViewById(R.id.btn_location_ok);
btnLocationOk.setOnClickListener(this);
mapViewLocation = (MapView) findViewById(R.id.mapview_location);
lvLocNear = (ListView) findViewById(R.id.lv_location_nearby);
nearList = new ArrayList&PoiInfo&();
adapter = new LocNearAddressAdapter(context, nearList, isSelected);
lvLocNear.setAdapter(adapter);
2.初始化LocationClient类,该类需要在主线程中声明
public LocationClient mLocationClient =
public BDLocationListener myListener = new MyLocationListener();
public void onCreate() {
mLocationClient = new LocationClient(getApplicationContext());
//声明LocationClient类
mLocationClient.registerLocationListener( myListener );
//注册监听函数
3.配置定位SDK参数
设置定位参数包括:定位模式(高精度定位模式,低功耗定位模式和仅用设备定位模式),返回坐标类型,是否打开GPS,是否返回地址信息、位置语义化信息、POI信息等等。
LocationClientOption类,该类用来设置定位SDK的定位方式
private void initLocation(){
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy
);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系
int span=1000;
option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
option.setOpenGps(true);//可选,默认false,设置是否使用gps
option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
option.setIgnoreKillProcess(false);//可选,默认false,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认杀死
option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集
option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要
mLocationClient.setLocOption(option);
4.实现BDLocationListener接口
* 监听函数,有新位置的时候,格式化成字符串,输出到屏幕中
public class MyLocationListenner implements BDLocationListener {
public void onReceiveLocation(BDLocation location) {
if (location == null) {
Log.d("map", "On location change received:" + location);
Log.d("map", "addr:" + location.getAddrStr());
if (progressDialog != null) {
progressDialog.dismiss();
if (lastLocation != null) {
if (lastLocation.getLatitude() == location.getLatitude() && lastLocation.getLongitude() == location.getLongitude()) {
Log.d("map", "same location, skip refresh");
// mMapView.refresh(); //need this refresh?
lastLocation =
mBaiduMap.clear();
mCurrentLantitude = lastLocation.getLatitude();
mCurrentLongitude = lastLocation.getLongitude();
Log.e("&&&&&&&", mCurrentLantitude + "," + mCurrentLongitude);
LatLng llA = new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude());
CoordinateConverter converter = new CoordinateConverter();
converter.coord(llA);
converter.from(MON);
LatLng convertLatLng = converter.convert();
OverlayOptions ooA = new MarkerOptions().position(convertLatLng).icon(BitmapDescriptorFactory
.fromResource(R.drawable.icon_marka))
.zIndex(4).draggable(true);
mCurrentMarker = (Marker) mBaiduMap.addOverlay(ooA);
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(convertLatLng, 16.0f);
mBaiduMap.animateMapStatus(u);
new Thread(new Runnable() {
public void run() {
searchNeayBy();
}).start();
public void onReceivePoi(BDLocation poiLocation) {
if (poiLocation == null) {
这里接受到的BDLocation中包含好多参数,相信总有一个对你有用的。
2、根据经纬度定位
这种方法不需要自动定位,就是根据经纬度来显示地图上的位置
* 显示经纬度的位置
private void showMap(double latitude, double longtitude, String address) {
sendButton.setVisibility(View.GONE);
LatLng llA = new LatLng(latitude, longtitude);
CoordinateConverter converter = new CoordinateConverter();
converter.coord(llA);
converter.from(MON);
LatLng convertLatLng = converter.convert();
OverlayOptions ooA = new MarkerOptions().position(convertLatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_marka))
.zIndex(4).draggable(true);
markerA = (Marker) (mBaiduMap.addOverlay(ooA));
u = MapStatusUpdateFactory.newLatLngZoom(convertLatLng, 16.0f);
mBaiduMap.animateMapStatus(u);
new Thread(new Runnable() {
public void run() {
searchNeayBy();
}).start();
3、获取周边地理位置
最后看一下怎么获取周边的地理位置,这里需要用到SDK中的一个类PoiNearbySearchOption,我们可以看一下类参考:
PoiNearbySearchOption keyword(java.lang.String key)
检索关键字
PoiNearbySearchOption location(LatLng location)
PoiNearbySearchOption pageCapacity(int pageCapacity)
设置每页容量,默认为每页10条
PoiNearbySearchOption pageNum(int pageNum)
PoiNearbySearchOption radius(int radius)
设置检索的半径范围
PoiNearbySearchOption sortType(PoiSortType sortType)
搜索结果排序规则,可选,默认
这里是它的一些方法,我们可以看到我们只需要设置一下关键字、周边位置半径、检索位置、排序规则、分页号、每页数量等。然后我们实现OnGetPoiSearchResultListener这个接口,获取周边地理位置结果。
* 搜索周边地理位置
private void searchNeayBy() {
PoiNearbySearchOption option = new PoiNearbySearchOption();
option.keyword("写字楼");
option.sortType(PoiSortType.distance_from_near_to_far);
option.location(new LatLng(mCurrentLantitude, mCurrentLongitude));
if (radius != 0) {
option.radius(radius);
option.radius(1000);
option.pageCapacity(20);
mPoiSearch.searchNearby(option);
* 接受周边地理位置结果
* @param poiResult
public void onGetPoiResult(PoiResult poiResult) {
if (poiResult != null) {
if (poiResult.getAllPoi()!=null&&poiResult.getAllPoi().size()&0){
nearList.addAll(poiResult.getAllPoi());
if (nearList != null && nearList.size() & 0) {
for (int i = 0; i & nearList.size(); i++) {
isSelected.put(i, false);
Message msg = new Message();
msg.what = 0;
handler.sendMessage(msg);
获取完数据之后更新适配器显示周边位置就OK了,最后再实现一个小小的功能,就是点击列表中的每个位置,显示位置的小图标根据位置的改变而改变
* 周边地理位置列表点击事件
lvLocNear.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView&?& adapterView, View view, int i, long l) {
adapter.setSelected(i);
adapter.notifyDataSetChanged();
PoiInfo ad = (PoiInfo) adapter.getItem(i);
u = MapStatusUpdateFactory.newLatLng(ad.location);
mBaiduMap.animateMapStatus(u);
if (!isLoc) {
mCurrentMarker.setPosition(ad.location);
markerA.setPosition(ad.location);
好了,很简单有用的一个小功能,会给用户带来很好的体验效果。
希望大家会喜欢这篇文章。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 android 获得当前view 的文章

 

随机推荐