微信端地圖相關技術

来源:https://www.cnblogs.com/fireflying/archive/2019/02/16/9854620.html
-Advertisement-
Play Games

1,打卡簽到 —— 500米範圍限制 a,getLocation 獲取gcj02 == 騰訊系坐標,可以直接用來打開騰訊地圖 (獲取wgs84則需轉換) b,百度坐標轉騰訊坐標,引入鏈接配置 <script charset="utf-8" src="http://map.qq.com/api/js? ...


1,打卡簽到 —— 500米範圍限制

    a,getLocation 獲取gcj02 == 騰訊系坐標,可以直接用來打開騰訊地圖 (獲取wgs84則需轉換)
    b,百度坐標轉騰訊坐標,引入鏈接配置

        <script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&libraries=convertor"></script><!-- 百度坐標轉化為騰訊系坐標 -->    

        qq.maps.convertor.translate(new qq.maps.LatLng(vm.list.activityPlacePoilat,vm.list.activityPlacePoilng), 3, function(res){
            var latlng = res[0];
           var latitudeFromPC = latlng.lat;
           var longitudeFromPC = latlng.lng;
        })

  具體參數內容,詳情:https://lbs.qq.com/javascript_v2/doc/convertor.html ;

    c,轉換原理的理解

     WGS-84:是國際標準,GPS坐標(Google Earth使用、或者GPS模塊)(GPS全球衛星定位系統使用的坐標系)

    GCJ-02:中國坐標偏移標準,Google Map、高德、騰訊使用(由WGS84坐標系經加密後的坐標系)

    BD-09:百度坐標偏移標準,Baidu Map使用(在GCJ02坐標系基礎上再次加密。其中bd09ll表示百度經緯度坐標,bd09mc表示百度墨卡托米制坐標)

    d,500米經緯度差 大約 500÷1000÷40000×360=0.0045度   復驗百度坐標地圖觀察

 

2、騰訊地圖api——逆解析

  a)  獲取guj02坐標系     b)  申請key,請求轉換    如下:

  var data={
      location : locationGCJ02.latitude + ',' + locationGCJ02.longitude,
             /*換成自己申請的key*/
      key:"6EBBZ-S5SW6-FZ5SV-MBBXH-5TZPE-X4BN7",
      get_poi:0
  };
  var url="https://apis.map.qq.com/ws/geocoder/v1/?";
  data.output="jsonp";
  $.ajax({
    type:"get",
    dataType:'jsonp',
    data:data,
    jsonp:"callback",
    jsonpCallback:"QQmap",
    url:url,
    success:function(res){
      if(res.status==0){
        var toStr = JSON.stringify(res);
        alert(toStr);
      }
    },
    error : function(err){alert("服務端錯誤,請刷新瀏覽器後重試")}

  });

 

    參考:https://www.cnblogs.com/benefitworld/p/5328420.html

     https://lbs.qq.com/webservice_v1/guide-gcoder.html

 

    3,騰訊地圖api——計算兩個坐標系,非直線距離      

  distanceMap:function(){

    var that=this ,
    data={
      from : that.urgDate.locationForm.lat+','+that.urgDate.locationForm.lng ,
      to : getLocationStr.locationGCJ02.latitude + ',' + getLocationStr.locationGCJ02.longitude,
      key: window.common.mapKey.qqMapKey ,
    } ,
    url="https://apis.map.qq.com/ws/distance/v1/?";

    data.output="jsonp";
    $.ajax({
      url:url,

      type:"get",
      dataType:'jsonp',
      data:data,
      jsonp:"callback",
      jsonpCallback:"QQmap",
      success:function(res){
      if(res.status==0){
        try{
          var toStr = JSON.stringify(res);
          //alert(toStr);
          that.urgDate.myDistance = res.result.elements[0].distance;
        }catch(e){
          console.log("坐標系距離計算錯誤");
        }
      }
    },
    error : function(err){console.log("坐標系距離計算網路鏈接失敗");}

    });
  },

 

    參考:https://lbs.qq.com/webservice_v1/guide-distance.html

 

   4,坐標間直線距離,計算公式:

  distanceMap:function(lat1, lng1, lat2, lng2){
    function toRad(d) { return d * Math.PI / 180; }
    var dis = 0;
    var radLat1 = toRad(lat1);
    var radLat2 = toRad(lat2);
    var deltaLat = radLat1 - radLat2;
    var deltaLng = toRad(lng1) - toRad(lng2);
    var dis = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(deltaLat / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(deltaLng / 2), 2)));
    return  dis * 6378137;
  }


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • --查詢資料庫邏輯文件名 USE 資料庫名 SELECT FILE_NAME(1) --查詢資料庫邏輯文件名(日誌) USE 資料庫名 SELECT FILE_NAME(2) --附加資料庫 sp_attach_db '資料庫名','資料庫全路徑','資料庫日誌全路徑' GO USE 資料庫名 -- ...
  • 什麼是組件化 不用去糾結組件和模塊語義上的區別,如果模塊間不存在強依賴且模塊間可以任意組合,我們就說這些模塊是組件化的。 組件化的好處 1. 實現組件化本身就是一個解耦的過程,同時也在不斷對你的項目代碼進行提煉。對於已有的老項目,實現組件化剛開始是很難受的,但是一旦組件的框架初步完成,對於後期開發效 ...
  • 一、效果圖 二、思路 1. 定義兩個 CSS 過度動畫,前進與後退: slide-right-enter 和 slide-left-enter 2. 給路由配置meta信息,設置各個路由的級別: index 3. 監控路由跳轉,比對 meta 信息級別,如果從大跳轉到小說明是返回,從小跳轉到大則是前 ...
  • Vue完成 TodoList 1.預設方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>TodoList</title> <script src="../../vue.js"></script> </he ...
  • 由使用request-promise-native想到的非同步處理方法 問題場景 因為js語言的特性,使用node開發程式的時候經常會遇到非同步處理的問題。對於之前專長App開發的我來說,會糾結node中實現客戶端API請求的“最佳實踐”。下麵以OAuth2.0為場景,需要處理的流程: 處理過程 一開始 ...
  • 封裝就是要具有靈活性,樣式自適應,調用的時候傳入props就可以變成自己想要的樣式。 效果展示網址:https://1963331542.github.io/ 源代碼: 1 <template> 2 <div :style="mainBoxStyle"> 3 <div :style="topLine ...
  • 修改|新增jquery-easyui icon圖標 by:授客 QQ:1033553122 測試環境 jquery-easyui-1.5.3 修改配置文件 打開jquery-easyui-1.5.3\themes\icon.css文件,文件頭部添加目標圖標樣式,例子: .icon{ backgrou ...
  • 修改jquery validatebox為英文校驗提示為中文提示 by:授客 QQ:1033553122 測試環境 jquery-easyui-1.5.3 問題描述: 如圖,想把校驗提示由英文改成中文 解決方案 編輯jquery.easyui.min.js 文件,搜索以下內容, missingMes ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...