在移动App程序中,有些情况下需要获取某一位置的经纬度信息。例如 当GPS定位不准确的时候,可以通过手工选取位置信息来修正一些错误信息。 特别对于一些找朋友类应用的时候,明明人在A地结果地图上显示的结果却在B地,误差有1KM,让人无法接受。
而使用谷嘀位置选择器就可以手工在地图上选择位置了,并且可以把所选位置的经纬度信息复制出来,选择好位置后,点击程序界面右下方?按钮傍边的复制按钮即可;而对于第三方开发者来说,可以直接调用谷嘀位置选择器来让用户选择位置,完成后把用户选择的经纬度信息返回给第三方App。
谷嘀位置选择器App的主界面,如右图 图中标记的信息都是可以有第三方App定制的信息,如何定制下面会介绍;
谷嘀位置选择
先来看看如何调用该程序来选择位置:
1. 第三方App通过Intent (goodev.intent.action.PICK_LOCATION) 来调用谷嘀位置选择器,然后在Intent中设置一些附加数据(通过函数 intent.putExtra(key, value)) 来定制谷嘀位置选择器的界面。
可定制元素的KEY如下:
- TITLE:自定义选择界面的标题;
- ENABLE_SEARCH:是否启用位置搜索,如果为false则隐藏搜索按钮和位置输入框,默认为true;
- SEARCH_HINT:自定义搜索位置输入框中的输入提示内容;
- SEARCH_TEXT:自定义搜索按钮的文本内容;
- OK_TEXT:自定义完成按钮的文本内容;
- LOCATION_TEXT:自定义显示用户所选位置前面的位置标签的文本;
- ZOOM_LEVEL:自定义地图的默认放大缩小级别(int型数字 范围为1-21);
- HELP_TEXT:自定义帮助界面的文本内容(用户点击界面右下角的?按钮打开帮助界面);
- LATITUDE:自定义默认选择位置的纬度坐标信息,该值为字符串,内容为纬度数值*1000000,例如 如果想设置默认位置为 (12.343,123.21) 则这个字符串为“12343000”;
- LONGITUDE:自定义默认经度信息,字符串 同上;
用户选择后返回的内容有3个,他们的KEY分别为:
- LATITUDE:内容为纬度坐标值*1000000, int型;
- LONGITUDE:内容为经度坐标值*1000000, int型;
- ADDRESS:返回的内容为android.location.Address 对象,如果没法获取位置(例如 无法访问网络),则返回NULL。
为了简化调用该程序,我们还提供了一个开发者集成库,下载goodevLocationPickCn.jar这个文件(或者下载源代码:Utils.java ),然后通过如下代码来调用即可:
1
2
3
4
5
6
|
Intent intent = new Intent( "goodev.intent.action.PICK_LOCATION" );
intent.putExtra( "title" , "Pick a address!" );
intent.putExtra( "search" , true );
intent.putExtra( "latitude" , "12210000" );
intent.putExtra( "longitude" , "22210000" );
Utils.pickLocationOrShowDownloadDialog( this ,intent, 200 );
|
如果用户手机中还没有安装谷嘀位置选择器则会弹出一个对话框告诉用户需要安装,可以通过网络下载安装也可以通过电子市场安装。如下图:
下载对话框
当用户完成后,需要在onActivityResult函数中处理用户选择的结果,示例代码如下:
1
2
3
4
5
6
7
8
9
|
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent data) {
super .onActivityResult(requestCode, resultCode, data);
if (requestCode == 200 && resultCode == Activity.RESULT_OK) {
Address address = data.getParcelableExtra( "address" );
int latitudeE6 = data.getIntExtra(Utils.LATITUDE, 0 );
int longitudeE6 = data.getIntExtra(Utils.LONGITUDE, 0 );
}
}
|
分享到:
相关推荐
这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的,本文将给大家详细的介绍关于python通过百度地图API获取某地址的经纬度的相关内容,分享出来供...
php根据百度地图输入汉字地址即获取经纬度信息
对于未知信息的nc文件,可以获取其经纬度等位置信息
利用谷歌地图获取对应地名的经纬度源码(C#) 谷歌地图获取经纬度源码
自己写的一个Js 就几行代码 获取到某一个地点的经纬度 ...用地图的时候很方便!
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的...
高德地图 1,根据经纬度计算面积 2,判断一个点是否在圈内
百度地图获取经度纬度、省市街道号码,方便找到坐标。
使用python爬取某租房网站租房信息,并使用excel保存
不采用鼠标点击的被动式获取方式,通过插值等等方式获取离散点,借助cesium的api获取直线、范围面的高程,只需要经纬度坐标即可,分不同情况调用不同接口,放上代码与截图说明
Android可以通过google实现获取指定经纬度位置或者某一个城市的天气信息。如果是根据经纬度查询天气信息,需要对精度为进行转换,例如lat值为31.174165,需要过滤掉小数点,变为31174165传到接口中,维度也一样处理...
百度地图API中的定位SDK,可以一次性获取当前位置经纬度以及详细地址信息,还可以获取周边POI信息,同时可以设定位置通知点,当到达某一位置时,发出通知信息等方式来告知用户
高德地图路径规划api,批量获取坐标点间的距离,驾车时间等
前段时间有一个关于通过获取用户当前经纬度坐标,计算出该用户距离某指定地点之间的距离。因为做这个项目需要能够获取到比较精确的经纬度坐标,刚开始使用的是百度地图结果发现百度地图地位不太准确(有时候相差的...
3,微信没有将经纬度直接转换为地理位置,借用腾讯位置服务中关于微信小程序的地理转换JS SDK 的API(返回信息中包括国家,省,市,区,经纬度等地理位置) 步骤描述清楚以后,下面就开始按步骤操作了;(本文仅仅...
C#判断指定的坐标点(经纬度)是否在指定的区域内!地图坐标点判断(经纬度判断)
通过经纬度获得某城市某路的实时路况信息。
手机端强制打开GPS,每3分钟(可调)获取一次所在经纬度,如果位置变化距离超过100米(可调), 则提交给后台的PHP。然后后台把得到的数据保存到数据库,再通过前面的百度地图API绘制出轨迹和显示驻留时间。 安卓端...