效果图:

不需要集成定位、地图,然后标记 回调等繁琐的操作,你只需要一个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 腾讯地图 选点定位,仿微信发送位置相关推荐

  1. Android高德地图poi检索仿微信发送位置

    最近项目需求把发送定位模块改成类似微信发送位置给好友的效果,我使用了高德地图实现了一个demo,效果图如下: 从主界面中我们可以看到中心标记上面显示的就是我们定位的地址,下面是一个listview列表 ...

  2. android access 腾讯地图,Android 腾讯地图 选点定位,仿微信发送位置

    效果图: 不需要集成定位.地图,然后标记 回调等繁琐的操作,你只需要一个webview,使用腾讯地图的地图选点组件即可. 申请key 接入指引 使用地图选点组件 调用方式一: 通过iframe内嵌调用 ...

  3. 【解决】Android 腾讯地图 选点定位组件,获取当前位置有偏差所遇到的坑!!

    解决方案一: 获取当前位置有偏差只能到市?可以先定位获取经纬度,然后把经纬度拼接到链接中即可 https://blog.csdn.net/yechaoa/article/details/8889378 ...

  4. Android使用百度地图sdk,实现微信发送位置功能

    1.效果如下: 2.主要代码 //拖动停止的时候,获取中心经纬度 mapView.map.setOnMapStatusChangeListener(object : BaiduMap.OnMapSta ...

  5. android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...

    接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送 ...

  6. 仿微信发送位置(高德地图定位)

    仿微信发送位置,可以定位以及附近周边位置,搜索功能,获取位置以及经纬度 源码链接: https://download.csdn.net/download/jiaosheng1/11328362

  7. 腾讯地图仿微信发送位置功能

    以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...

  8. 腾讯位置服务仿微信发送位置功能

    以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...

  9. android仿微信发送位置,Android仿微信发送位置-百度地图

    [实例简介] [实例截图] [核心代码] package com.chenxuxu.baiduwechatposition; import android.app.Activity; import a ...

最新文章

  1. 【蓝桥java】递归基础之输出连续数字
  2. 小问题(可能持续更新)
  3. 电梯调度算法 软工 Pair Project
  4. 博客园有人随笔总数10000+?
  5. oracle回收ddl权限,oracle禁止指定用户DDL操作触发器
  6. 把UltraEdit改造成VC
  7. c语言追加字符串_Redis源码解析二--简单动态字符串
  8. node.js下mongoose简单操作实例
  9. 线程?进程?-----该停下来思考一下了
  10. python球的体积公式_鬼斧神工:求n维球的体积
  11. Google新人的成长思考
  12. 树莓派开发板Android Things镜像烧录
  13. 局域网中使用来宾账户访问计算机
  14. 一文读懂APS系统的核心算法和数学理论
  15. 计算机专业cad 办公 ps,厦门集美办公、商务办公、CAD、PS、平面设计培训
  16. 大数据运营之财务数据模型设计
  17. WPF企业内训全程实录(上)
  18. 淘宝收藏加购对流量分配有影响吗?
  19. (50)uniGUI 高大上的HyperServer-多机部署一个硬集群
  20. oracle nbu异机恢复,通过NBU进行Oracle异机恢复的实验操作步骤

热门文章

  1. Praat脚本-017 |拆分已经标注好的音素为两个音素
  2. asp.net(c#)中IsPostBack是什么意思
  3. C++:统计小写字母个数
  4. 《Windows 程序设计(第3版)》——6.7 【实例】窗口查看器
  5. DB2表空间状态列表
  6. 嵌入式系统开发笔记89:认识AVR微控制器系统架构
  7. 无法定位程序输入点(cmake opencv_contrib,并配置后)
  8. MATLAB当中一些简单的数值分析函数总结
  9. org.apache.dubbo 2.7.7 服务端处理请求及时间轮(失败重试)
  10. arcgis for Android 100.4 面积测量