最近在做一个项目是将用户的当前所在市县定位出来并展示在手机端页面,同时还要获取到该市县的城市编码从而进行数据过滤,这里重点讲定位城市及获取城市编码

前端页面代码:

首先引用腾讯地图的一个js

<script  type="text/javascript" src="https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js" ></script>

同时在页面加载时调用下面js:

$(function() {getLocation();
})

function getLocation() {var geolocation = new qq.maps.Geolocation("OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77", "myapp");  if (geolocation) {  var options = {timeout: 8000};  geolocation.getLocation(onSuccess, onError, options);  } else {  alert("定位尚未加载");  }
}//成功时
function onSuccess(position) {//经度var longitude = position.lng;//纬度var latitude = position.lat;var param = {longitude : longitude,latitude : latitude};$.ajax({type : "post",url : "getCode.jspx",data : param,dataType : "json",success : function(data) {      alert(data.admCode);      alert(data.adm);    }  })} 

//失败时 function onError(error) {   switch (error.code) {     case 1:       alert("位置服务被拒绝");       break;     case 2:       alert("暂时获取不到位置信息");       break;     case 3:       alert("获取信息超时");      break;     case 4:       alert("未知错误");       break;   }}

这里可以获取用户当前所在市县的经纬度,然后经过经纬度再去后台调用接口获取城市编码,我们看后台代码:

@RequestMapping("/getCode.jspx")
public String getCode(HttpServletRequest request,HttpServletResponse response, ModelMap model) {String longitude = request.getParameter("longitude");String latitude =  request.getParameter("latitude");String add = getAdd(longitude, latitude);JSONObject jsonObject = JSONObject.fromObject(add);JSONArray jsonArray = JSONArray.fromObject(jsonObject.getString("addrList"));JSONObject j_2 = JSONObject.fromObject(jsonArray.get(0));String allAdd = j_2.getString("admName");String arr[] = allAdd.split(",");System.out.println("省:" + arr[0] + "\n市:" + arr[1] + "\n区:" + arr[2]);Map<String,String> map = new HashMap<String,String>();if(arr[2] != null && !"".equals(arr[2])){map.put("adm", arr[2]);}else if(arr[1] != null && !"".equals(arr[1])){map.put("adm", arr[1]);}else{map.put("adm", arr[0]);}String admCode = j_2.getString("admCode");System.out.println(admCode);map.put("admCode", admCode);String json = JSONObject.fromObject(map).toString();return json
}public String getAdd(String log, String lat) {// lat 小 log 大// 参数解释: 纬度,经度 type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)String urlString = "http://gc.ditu.aliyun.com/regeocoding?l=" + lat + "," + log + "&type=010";String res = "";try {URL url = new URL(urlString);java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url.openConnection();conn.setDoOutput(true);conn.setRequestMethod("POST");java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream(),"UTF-8"));String line;while ((line = in.readLine()) != null) {res += line + "\n";}in.close();} catch (Exception e) {System.out.println("error in wapaction,and e is " + e.getMessage());}System.out.println(res);return res;
}

控制台打印输出:

{"queryLocation":[34.797817,113.601715],"addrList":[{"type":"poi","status":1,"name":"郑州热电厂家属院(南门)","id":"ANB01730IC2W","admCode":"410102","admName":"河南省,郑州市,中原区,","addr":"","nearestPoint":[113.60046,34.79849],"distance":142.299}]}省:河南省
市:郑州市
区:中原区
410102

将得到的数据封装成json返回前台即可

转载于:https://www.cnblogs.com/henuyuxiang/p/7525239.html

微信实现定位城市并获取城市编码相关推荐

  1. 使用强大的离线IP地址定位库ip2region获取城市信息

    文章目录 一.简介 二.ip2region的使用 1.引入依赖 2.下载ip2region.db 3.IpUtils工具类 一.简介    ip2region - 准确率99.9%的离线IP地址定位库 ...

  2. 微信小程序调用高德api定位当前经纬度,根据城市名获取对应经纬度

    最近写小程序有一个首页关于定位功能,指定高德API,话不多说,上图: 首先小程序需要先设置定位提示语,在mainfest.json中添加配置scope.userLocation: "mp-w ...

  3. 有关于腾讯地图服务端IP定位接口的获取当前城市的处理

    接口说明:http://apis.map.qq.com/ws/location/v1/ip 说明里面写了ip可以缺省,然并卵,经过测试的到结果并不能获取到当前城市,理由是腾讯ip库的对应ip精度没有定 ...

  4. uniapp 获取定位以及经纬度转换为城市名

    /*2021/8/26xh获取地理位置经纬度及城市名(h5,app,微信小程序三端)*/ // #ifdef H5 //引入jquery文件,用jquery的jsonp来访问腾讯地图的逆地址解析,只适 ...

  5. 微信小程序开发--当前位置的详细地址获取amp;amp;amp;amp;城市列表获取-具体到:省--市--区、县级市---乡镇、街道

    1. 申请开发者密钥(key):申请密钥 2. 下载微信小程序JavaScriptSDK,微信小程序JavaScriptSDK v1.0 3. 安全域名设置,在"设置" -> ...

  6. 微信小程序调用腾讯位置服务获取城市列表

    微信小程序调用腾讯位置服务获取城市列表 注意前期的准备: 1.需要用到微信小程序JavaScript SDK https://lbs.qq.com/miniProgram/jsSdk/jsSdkGui ...

  7. android定位并获取城市

    在项目中需要定位当前用户所在城市,然后根据不同城市返回不同的数据.一般来说,定位有两种方式,1.用第三方的定位sdk,如百度定位:2.用android自带的sdk中的api定位. 一.用百度SDK定位 ...

  8. 小程序获取城市经纬度_微信小程序demo:天气预报,根据经纬度获取城市,获取天气...

    [AppleScript] 纯文本查看 复制代码//app.js Page({ data: { city: "", today: {}, future:{} }, onLoad: ...

  9. [android] 百度地图开发 (二).定位城市位置和城市POI搜索

    一. 百度地图城市定位和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位 ...

最新文章

  1. https原理与实践
  2. 4种分支机构服务器管理最佳实践—Vecloud微云
  3. implementation of UI5 bindAggregation - busyDialog is handled automatically
  4. 前端学习(2903):用vite开发环境
  5. nginx+Tomcat实现动静分离架构
  6. 【刷算法】按照之字形打印二叉树
  7. 问题1:UIView不会被释放--block中如果有self的话会造成循环引用
  8. 【转】linux /centos 中OpenSSL升级方法详解
  9. 用 GDI 操作 EMF 文件(转)
  10. 苹果爸爸发飙,封杀 React Native?
  11. 十大最值得逛的上海马路~~(完整版)
  12. 驱动人生解锁“C盘瘦身”功能,助力电脑快速运行
  13. 教你自定义百度网盘分享密码 提取码
  14. js彻底解决中文乱码问题
  15. Java项目:基于SSM实现驾校预约管理系统
  16. 一文读懂锂电池叠片、卷绕工艺区别!
  17. CodeForces-1040B Shashlik Cooking(贪心)
  18. stm32f103r6最小系统原理图_stm32f103c8t6封装及最小系统原理图
  19. RNN梯度消失和爆炸的原因
  20. Microservices 基础理论

热门文章

  1. python自启动 绕过360_记录一次绕过杀软的过程
  2. java tcp 编程实例_Java实现基于TCP的通讯程序实例解析
  3. Puppeteer设置浏览器代理的三种思路
  4. 2019年末逆向复习系列之淘宝M站Sign参数逆向分析
  5. Python基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
  6. scikit-learn学习笔记(二)load_files加载自己的文件
  7. Scrapy定向爬虫教程(二)——提取网页内容
  8. mysql Insert on duplicate引发的死锁
  9. jvm系列(十):教你如何成为Java的OOM Killer
  10. 单链表的整表创建以及整表删除