Android 腾讯地图 选点定位,仿微信发送位置
效果图:
不需要集成定位、地图,然后标记 回调等繁琐的操作,你只需要一个webview,使用腾讯地图的地图选点组件即可。
申请key
接入指引
使用地图选点组件
调用方式一:
通过iframe内嵌调用,地图选点组件的页面会根据开发者设置的iframe宽高自适应。
调用方式二:
通过页面跳转的方式调用该组件的时候,开发者需要设置backurl参数,用户点击选中的位置点后,页面跳转至开发者指定的返回地址(backurl),并将位置信息添加到回跳地址(backurl)上。
例如:https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=http://3gimg.qq.com/lightmap/components/locationPicker2/back.html&key=yourkey&referer=myapp
方式一明显是html的使用方式,方式二是通过页面跳转的方式调用,我们就可以用webview来加载。
这里要注意backurl,是我们自定义的回调地址,位置信息会添加到回跳地址(backurl)上,所以,拦截了回调地址就能知道位置信息了。
参数说明:
1,WebView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><WebViewandroid:id="@+id/web_view"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>
2,初始化WebView并拦截跳转请求
String mUrl = "https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=http://callback&key=QULBZ-6M6KO-5YZWR-SEYTJ-GNNS5-O6B3L&referer=myapp";WebSettings settings = mWebView.getSettings();settings.setRenderPriority(WebSettings.RenderPriority.HIGH);settings.setSupportMultipleWindows(true);settings.setJavaScriptEnabled(true);settings.setSavePassword(false);settings.setJavaScriptCanOpenWindowsAutomatically(true);settings.setMinimumFontSize(settings.getMinimumFontSize() + 8);settings.setAllowFileAccess(false);settings.setTextSize(WebSettings.TextSize.NORMAL);mWebView.setVerticalScrollbarOverlay(true);mWebView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (!url.startsWith("http://callback")) {view.loadUrl(url);} else {try {LogUtil.i(url);//转utf-8编码String decode = URLDecoder.decode(url, "UTF-8");LogUtil.i(decode);//转uri,然后根据key取值Uri uri = Uri.parse(decode);String latng = uri.getQueryParameter("latng");//纬度在前,经度在后,以逗号分隔String[] split = latng.split(",");String lat = split[0];//纬度String lng = split[1];//经度String address = uri.getQueryParameter("addr");//地址LogUtil.i(uri.getQueryParameter("addr"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return true;}});mWebView.loadUrl(mUrl);
- 回调地址http://callback
- 然后在shouldOverrideUrlLoading中处理逻辑
初始url是这样的:
http://callback/?name=%E9%99%86%E5%AE%B6%E5%98%B4&latng=31.23776,121.50218&addr=%E4%B8%8A%E6%B5%B7%E5%B8%82%E6%B5%A6%E4%B8%9C%E6%96%B0%E5%8C%BA%E9%99%86%E5%AE%B6%E5%98%B4&city=%E4%B8%8A%E6%B5%B7%E5%B8%82&module=locationPicker
明显是编码不对啊,然后转成utf-8:
String decode = URLDecoder.decode(url, "UTF-8");
http://callback/?name=陆家嘴&latng=31.23776,121.50218&addr=上海市浦东新区陆家嘴&city=上海市&module=locationPicker
然后把url转成uri,直接根据key取值即可
Uri uri = Uri.parse(decode);String latng = uri.getQueryParameter("latng");//经纬度String name = uri.getQueryParameter("name");//标题String address = uri.getQueryParameter("addr");//地址
最后:如果不能获取位置附近的地址列表,在key控制台中,把WebServiceApi选项 选中即可。
感谢:https://www.jianshu.com/p/e466d6fce3e3
Android 腾讯地图 选点定位,仿微信发送位置相关推荐
- Android高德地图poi检索仿微信发送位置
最近项目需求把发送定位模块改成类似微信发送位置给好友的效果,我使用了高德地图实现了一个demo,效果图如下: 从主界面中我们可以看到中心标记上面显示的就是我们定位的地址,下面是一个listview列表 ...
- android access 腾讯地图,Android 腾讯地图 选点定位,仿微信发送位置
效果图: 不需要集成定位.地图,然后标记 回调等繁琐的操作,你只需要一个webview,使用腾讯地图的地图选点组件即可. 申请key 接入指引 使用地图选点组件 调用方式一: 通过iframe内嵌调用 ...
- 【解决】Android 腾讯地图 选点定位组件,获取当前位置有偏差所遇到的坑!!
解决方案一: 获取当前位置有偏差只能到市?可以先定位获取经纬度,然后把经纬度拼接到链接中即可 https://blog.csdn.net/yechaoa/article/details/8889378 ...
- Android使用百度地图sdk,实现微信发送位置功能
1.效果如下: 2.主要代码 //拖动停止的时候,获取中心经纬度 mapView.map.setOnMapStatusChangeListener(object : BaiduMap.OnMapSta ...
- android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...
接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送 ...
- 仿微信发送位置(高德地图定位)
仿微信发送位置,可以定位以及附近周边位置,搜索功能,获取位置以及经纬度 源码链接: https://download.csdn.net/download/jiaosheng1/11328362
- 腾讯地图仿微信发送位置功能
以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...
- 腾讯位置服务仿微信发送位置功能
以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...
- android仿微信发送位置,Android仿微信发送位置-百度地图
[实例简介] [实例截图] [核心代码] package com.chenxuxu.baiduwechatposition; import android.app.Activity; import a ...
最新文章
- 【蓝桥java】递归基础之输出连续数字
- 小问题(可能持续更新)
- 电梯调度算法 软工 Pair Project
- 博客园有人随笔总数10000+?
- oracle回收ddl权限,oracle禁止指定用户DDL操作触发器
- 把UltraEdit改造成VC
- c语言追加字符串_Redis源码解析二--简单动态字符串
- node.js下mongoose简单操作实例
- 线程?进程?-----该停下来思考一下了
- python球的体积公式_鬼斧神工:求n维球的体积
- Google新人的成长思考
- 树莓派开发板Android Things镜像烧录
- 局域网中使用来宾账户访问计算机
- 一文读懂APS系统的核心算法和数学理论
- 计算机专业cad 办公 ps,厦门集美办公、商务办公、CAD、PS、平面设计培训
- 大数据运营之财务数据模型设计
- WPF企业内训全程实录(上)
- 淘宝收藏加购对流量分配有影响吗?
- (50)uniGUI 高大上的HyperServer-多机部署一个硬集群
- oracle nbu异机恢复,通过NBU进行Oracle异机恢复的实验操作步骤
热门文章
- Praat脚本-017 |拆分已经标注好的音素为两个音素
- asp.net(c#)中IsPostBack是什么意思
- C++:统计小写字母个数
- 《Windows 程序设计(第3版)》——6.7 【实例】窗口查看器
- DB2表空间状态列表
- 嵌入式系统开发笔记89:认识AVR微控制器系统架构
- 无法定位程序输入点(cmake opencv_contrib,并配置后)
- MATLAB当中一些简单的数值分析函数总结
- org.apache.dubbo 2.7.7 服务端处理请求及时间轮(失败重试)
- arcgis for Android 100.4 面积测量