百度地图中如何由输入的信息得到所在城市,由我输入的地点,得到我所在的城市,百度API有方法吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度地图中如何由输入的信息得到所在城市,由我输入的地点,得到我所在的城市,百度API有方法吗相关的知识,希望对你有一定的参考价值。

参考技术A 楼主也是开发手机应用的把?可以先通过百度地图中的 mSearch.reverseGeocode(point);来获取到实际的地址信息,会得到开头是城市名的地址信息字符串

/**初始化地理信息和经纬度之间编译和反编译的模块**/ private void initSearchGeoInfo() DemoApplication app = (DemoApplication) this.getApplication(); // 初始化搜索模块,注册事件监听 mSearch = new MKSearch(); mSearch.init(app.mBMapManager, new MKSearchListener() @Override public void onGetPoiDetailSearchResult(int type, int error) public void onGetAddrResult(MKAddrInfo res, int error) if ( error != 0 ) String str = String.format("错误号:%d", error); Toast.makeText(LocationOverlayDemo.this, str, Toast.LENGTH_LONG).show(); return; // 地图移动到该点 mMapView.getController().animateTo(res.geoPt); if ( res.type == MKAddrInfo.MK_GEOCODE ) // 地理编码:通过地址检索坐标点 String strInfo = String.format("纬度:%f 经度:%f", res.geoPt.getLatitudeE6() / 1e6, res.geoPt.getLongitudeE6() / 1e6); Toast.makeText(LocationOverlayDemo.this, strInfo, Toast.LENGTH_LONG).show(); if ( res.type == MKAddrInfo.MK_REVERSEGEOCODE ) // 反地理编码:通过坐标点检索详细地址及周边poi String strInfo = res.strAddr; myLocationGeo = strInfo; handler.sendEmptyMessage(4); Toast.makeText(LocationOverlayDemo.this, strInfo, Toast.LENGTH_LONG).show();
参考技术B 直接在地图上输入你在城市,搜索一下就能出来。追问

我的意思是,百度地图里面有个路线规划,给定的是 西单--中关村,但是下边设置的城市名字是北京,而我现在的地方是济南,如何下边的城市自动设置为济南。

追答

你点一下“驾车”,然后输入起点 和终点就可以了,地图会自动规划出来线路,有时候还有几个线路出来供你选择。

参考技术C 就是模糊搜索,地址解析!!这是要根据数据库里的坐标显示的!
方法可参考http://dev.baidu.com/wiki/map/index.php?title=%E7%B1%BB%E5%8F%82%E8%80%83追问

不是那样的,可以根据你所在位置的经纬度,解析出来你所在的城市的,然后在你搜索的城市里,弄上解析出来的赋值

追答

相当于搜素出来后还要显示信息窗口吧

追问

可以直接画在地图上,跟直观点

追答

需不需要有数据库查询?

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

  百度地图是通过移动通信基站定位来确定当前位置所在的城市。其原理就是通过测算周围基站与手机的距离来交会估算手机的空间位置。
  手机定位是指通过特定的定位技术来获取移动手机或终端用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的位置的技术或服务。定位技术有两种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。后者不需要手机具有GPS定位能力,但是精度很大程度依赖于基站的分布及覆盖范围的大小,有时误差会超过一公里。前者定位精度较高。此外还有利用Wifi在小范围内定位的方式。
参考技术A 在onLocationChanged方法里获得自己当前的坐标然后方法里写 mSearch.reverseGeocode(new GeoPoint((int)(location.getLatitude()*1e6),(int)(location.getLongitude()*1e6))); 然后再通过代码实行这个方法功能 public class MySearchListener implements MKSearchListener public void onGetAddrResult(MKAddrInfo result, int error){ MKGeocoderAddressComponent kk=result.addressComponents; String city=kk.city; }} city就是你所在城市追问

好的,谢谢啊,我过会试验一下,不懂可以继续问你不?

追答

我正好前阵子做了一点百度地图 也不是很深

本回答被提问者和网友采纳
参考技术B 刚刚写了这个方法,直接调用GetAddressFromGeoPoint(geoPoint)代码如下:
/**
* 通过经纬度获取地址
* @param GeoPoint
*/
public void GetAddressFromGeoPoint(GeoPoint geoPoint)

mkSearch = new MKSearch();
mkSearch.init(app.mBMapMan, new MySearchListener());
mkSearch.reverseGeocode(geoPoint);

/**
* 监听方法里面通过实现onGetAddrResult取得地址
*/
public class MySearchListener implements MKSearchListener

public void onGetAddrResult(MKAddrInfo res, int error)

if (error != 0)

String str = String.format("错误号:%d", error);
return;


String strInfo = String.format("城市:%\r\n 地址:%s\r\n",
res.addressComponents.city,
res.addressComponents.district +
res.addressComponents.street );
Log.i("ADDR", strInfo);
//Toast.makeText(Geocoder.this, strInfo, Toast.LENGTH_LONG).show();
TextView addrTextView = (TextView)popView.findViewById(R.id.tvAddress);
addrTextView.setText(strInfo);

public void onGetWalkingRouteResult(MKWalkingRouteResult res,
int error)

@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1)
// TODO Auto-generated method stub


@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1)
// TODO Auto-generated method stub


@Override
public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2)
// TODO Auto-generated method stub


@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1)
// TODO Auto-generated method stub


以上是关于百度地图中如何由输入的信息得到所在城市,由我输入的地点,得到我所在的城市,百度API有方法吗的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序实现城市定位:获取当前所在的国家城市信息

怎么查两个地点之间的城市

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

微信小程序自动定位,通过百度地图根据经纬度获取该地点所在城市信息

商家怎样加入百度地图?百度地图商户标注方法

百度地图如何测量距离?