android google map 入门 四
来源:互联网 发布:淘宝卖情趣内衣怎么样 编辑:程序博客网 时间:2024/05/21 04:23
获取地图中心点经纬度
为什么需要获取地图中心点经纬度呢,我们有时候移动地图,需要在移动后,获取到地图中点的经纬度
例如googl地图获取高德地图的导航功能,他们可以在地图选点,然而他们一直在滑动地图,然后为什能获取到地图的中心点呢
我们可以这样来做:
1. 在地图的中心放置一个图标(一个ico),我们一般放位置图标,例如下面的fragmen是一个地图,我们在地图的中间放置一个图标(图钉),imageView
<RelativeLayout android:layout_height="match_parent" android:layout_width="match_parent" android:layout_marginBottom="150dp"> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.gmapdemo2.googlemapdemosimple.MapsActivity" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" > </fragment> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerInParent="true" android:layout_centerVertical="true" android:src="@mipmap/centermark"/></RelativeLayout>
- 地图中去获取地图中心的经纬度方法, 获取地图中心经纬度方法
LatLng center = googleMap.getCameraPosition().target;
但是我们在加载地图的时候,就要获取到地图中心的经纬度
我们可以这样
//开启摄像头变化事件,得到地图中间的经纬度 mMyMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback(){ @Override public void onMapLoaded() { LatLng center = mMyMap.getCameraPosition().target; mNewLatLng =center; } });
但是我们有时候想移动地图后也能获取到地图的经纬度,我们需要用下面的方法,地图移动完成后的事件
mMyMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() { @Override public void onCameraIdle() { //得到地图正中心的经纬度 LatLng center = mMyMap.getCameraPosition().target; mNewLatLng =center; } });
这样,我们移动地图,但是地图中心的图钉一直处于地图的中心位置,也能获取地图中心的经纬度
根据经纬度获取地址信息
有时候,我们需要根据用户所在经纬度,确定用户在哪个地方,例如40,114 在北京
在google提供了一个方法是用来反向解析经纬度的, 注意,如果这个经纬度很偏远,比如在太平洋的某个区域,googl会解析不到,会catch到空指针异常,如果不能连接代理,或者查询超时,也会查询不到,会报IOException功能,所以建议下面这段代码放在一个异步方法中,否则会阻碍主线程
List<Address> addresses;Geocoder geocoder;private String city="";private String state="";private String country="";private String postalCode="";private String knownName="";private String historyName="";addresses = geocoder.getFromLocation(latlng.latitude, latlng.longitude, 1);try {if(addresses.get(0).getLocality()!=null){ city = addresses.get(0).getLocality(); } if(addresses.get(0).getAdminArea()!=null){ state = addresses.get(0).getAdminArea(); } if(addresses.get(0).getCountryName()!=null){ country = addresses.get(0).getCountryName(); } if(addresses.get(0).getPostalCode()!=null){ postalCode = addresses.get(0).getPostalCode(); } if(addresses.get(0).getFeatureName()!=null){ knownName = addresses.get(0).getFeatureName(); }}catch (Exception e) { Log.i("Get Address","no address getINSTANCE"); e.printStackTrace(); return ""; }
0 0
- android google map 入门 四
- android google map 入门 三
- android google map入门 二
- android google map api 入门 一
- android google map 入门 二(已删除)
- Google Map API入门
- google map入门一
- google map入门二
- Android Google Map学习四(地图组件的添加)
- Android(十一):ubuntu10.10下Google Map入门
- android GOOGLE MAP应用
- android google map
- android google map 气泡
- Android调用Google Map
- 使用Android Google Map
- Android Google map使用
- Android:Google Map学习
- android Google map 范例
- Java中的StringBuffer和Stringbuider
- python数据结构学习笔记-2016-11-30-01-堆
- 邮件发送以及javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp解决方案
- 无线安全专题_攻击篇--干扰通信
- Elasticsearch使用中遇到的一些问题及相应解决方法
- android google map 入门 四
- python常用函数(一)
- Destroying Array
- Video标签的问题
- lintcode,复制带随机指针的链表
- 单词搜索树
- BOM案例之图片移动
- 解决Linux环境Oracle显示乱码
- 无线安全专题_攻击篇--MAC泛洪攻击