基于高德sdk实现摩拜单车主界面,滑动地图获取地址信息
2017-03-20 17:46
531 查看
共享单车可以说是2016年至今,一个火的不要不要的项目,简单的界面,实用的功能。观察摩拜单车,ofo单车等几个项目会发现,基本上大同小异,项目的思路跟滴滴打车项目大同小异,都是基于Gps定位,实现查找出行工具的一种出行项目,区别在于滴滴找的车是四个轮子的,摩拜等共享单车则是找两个轮子的自行车。个人吐槽,我不知道这种共享单车的项目为什么会这么受投资人的喜爱,动不动则上亿的融资进来。个人分析优点:1.共享单车在某种程度上来讲确是一个快速增加用户量的项目,而用户量对于数据纷飞的时代来说就是金钱2.共享单车由于是这种押金的模式可以快速收回投入资本,虽然押金不是自己的,但是这种大量的资金流在投资人手里来说则有太多的赚钱方式了,但是两会后政府明显对这种资金控制力度加大,甚至来说为了防止资金去向不明,投资失败,政府会不允许公司动用这些资金3.中国现在私家车越来越多,公路交通越来越堵,自行车在某种程度的短距离内能够有效缓解出行压力4.中国环境污染严重,看上海越来越多的电动汽车就能看出,政府更倾向于环保的电动能源,而没有什么车比自行车更环保了,自行车在不赶时间的情况下,5公里内都是很方便的,那么一个人五公里,当这个人数基数变大时,是能够起到环保的作用的有点跑题了,回到项目基于高德sdk实现滑图取点。先上图在pos机上运行的,拖动地图,然后下面的edittext会显示marker所在地图上的地址信息。准备:高德开发者平台申请账号并申请key,下载两个jar,AMap2DMap_4.2.0_AMapSearch_4.0.0_20170120.jar和AMap_Location_V3.3.0_20170118.jar。步骤分析:1、显示地图2、获取当前定位3、将marker标记在当前定位点4、将marker标记在屏幕中间保持不动5、滑动地图获取marker所在经纬度,6、将经纬度转换为地址信息显示code如下:
//显示地图容器 1、mapView.onCreate(savedInstanceState);
//获取map
2、aMap = mapView.getMap();
//获取AMapLocationClient
3、mLocationClient = new AMapLocationClient(IApplication.getInstance());
//定位监听
4、mLocationClient.setLocationListener(mLocationListener);
//定位回调监听 private AMapLocationListener mLocationListener = new AMapLocationListener() { @Override public void onLocationChanged(AMapLocation aMapLocation) { if (aMapLocation != null) { if (aMapLocation.getErrorCode() == 0) { //可在其中解析amapLocation获取相应内容。 String address = aMapLocation.getAddress(); mLatitude = aMapLocation.getLatitude(); mLongitude = aMapLocation.getLongitude(); //当前位置设置为地图中心 setMapCenter(mLongitude, mLatitude); } else { //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息 } } } };
5、//启动定位
mLocationClient.startLocation();
6、//地图显示到当前位置
aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 18));
7、//marker固定在屏幕中间
marker.setPositionByPixels(IApplication.getWidth() / 2, IApplication.getHeight() / 2 - IApplication.getHeight() * 10 / 100);
8、//map设置视角监听
aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener(){
@Overridepublic void onCameraChange(CameraPosition cameraPosition) {}@Overridepublic void onCameraChangeFinish(CameraPosition cameraPosition) {
//实时获取marker所在经纬度LatLng mLatLng = marker.getPosition();mLatitude = mLatLng.latitude;mLongitude = mLatLng.longitude;
LatLonPoint latLonPoint = new LatLonPoint(mLatitude, mLongitude);
getAddressByLatLonPoint(latLonPoint);}
})
9.//坐标转地址
private void getAddressByLatLonPoint(LatLonPoint latLonPoint) { GeocodeSearch geocodeSearch = new GeocodeSearch(MainActivity.this); RegeocodeQuery regeocodeQuery = new RegeocodeQuery(latLonPoint, 200, GeocodeSearch.AMAP); geocodeSearch.getFromLocationAsyn(regeocodeQuery); //监听逆地理编码结果 geocodeSearch.setOnGeocodeSearchListener(new MyOnGeocodeSearchListener() { @Override protected void myOnRegeocodeSearched(RegeocodeResult regeocodeResult, int backCode) { if (backCode == 1000) { et_startPosition.setText(""); RegeocodeAddress regeocodeAddress = regeocodeResult.getRegeocodeAddress(); String formatAddress = regeocodeAddress.getFormatAddress(); ToastUtil.getInstacne().shortShow(formatAddress); et_startPosition.setText(formatAddress); } else { LogUtil.getInstance().i(getClassName(), getResources().getString(R.string.regeocodeResult_error)); } } }); }行吧就这样了,需要源码的联系我就好了,挺简单的。
相关文章推荐
- 百度地图开发实现点击地图添加Marker并获取地址信息
- 基于MSAA的QQ界面信息获取的实现
- 高德地图实现地址检索获取结果列表和坐标
- 基于MSAA的QQ界面信息获取的实现
- 基于sina微博官方sdk源码实现的微博授权登录和分享,以及获取信息
- 基于JAVA代码 获取手机基本信息(本机号码,SDK版本,系统版本,手机型号)
- 【第三方SDK】百度地图实现最简单的定位功能(无地图界面)
- 基于curl实现微信公众平台的模拟登录、开发者信息获取和端口绑定
- 百度定位(不显示界面获取经纬度以及详细地址信息)
- Android基于mAppWidget实现手绘地图(八)–获取用户地理位置
- arcgis二次开发时,c#代码实现鼠标点击地图时,获取地图的表的字段的信息
- 根据查询的关键字,实现获取百度指定页数的搜索结果的信息(网页地址,标题,摘要,并有排序的说明)
- 如何将地图SDK中获取到的经纬度信息写入到exif中
- android-基于Webservice实现天气信息获取及源码下载(一)
- android-基于Webservice实现天气信息获取及源码下载(二)
- 利用百度地图开源sdk获取地址信息。
- 凨-百度地图API之地图标注(JS版),地理位置信息,根据地址获取经度纬度
- Android地图获取详细街道地址信息 精确定位
- 高德amap 根据坐标获取的地址信息
- 关于获取系统信息,CPUID,硬盘ID,网卡MAC地址的VS2008实现