日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信实现定位城市并获取城市编码

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信实现定位城市并获取城市编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在做一個項目是將用戶的當前所在市縣定位出來并展示在手機端頁面,同時還要獲取到該市縣的城市編碼從而進行數據過濾,這里重點講定位城市及獲取城市編碼

前端頁面代碼:

首先引用騰訊地圖的一個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

總結

以上是生活随笔為你收集整理的微信实现定位城市并获取城市编码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。