Explicação detalhada da introdução do sistema de coordenadas do mapa Gaode/Baidu no miniprograma

Explicação detalhada da introdução do sistema de coordenadas do mapa Gaode/Baidu no miniprograma

Hora da última atualização do site oficial: Hora da última atualização:2021年08月17日

  • Link de perguntas frequentes do site oficial do AutoNavi para uso em miniprogramas nativos
    Insira a descrição da imagem aqui

  • Atualmente, o uso do Amap no miniprograma suporta apenas as seguintes funções: descrição de endereço, POI e dados meteorológicos em tempo real.
    Insira a descrição da imagem aqui

Resumo: Obtenha dados da API Gaode e atualize-os para o mapa do Mapa Tencent. Na verdade, o mapa Tencent ainda é usado, mas a fonte dos dados vem do mapa Gaode.

​ Podemos simplesmente obter os dados do Amap e depois desenhar a cerca eletrônica na tela do Tencent Maps

No entanto, algumas cenas especiais, seleção de pontos de coordenadas, pesquisa de endereço, etc. são todas encapsuladas em componentes Tencent, por isso é difícil de implementar com base no Amap.
![Insira a descrição da imagem aqui](https://img-blog.csdnimg.cn/84fe2b2ccb2d40dcbd8b751250f85617.png

Sobre o sistema de coordenadas

  • Amap, Tencent Maps e Google China Maps usam o sistema de coordenadas GCJ-02

  • Baidu Maps usa o sistema de coordenadas BD-09

  • As coordenadas obtidas pela interface subjacente (geolocalização HTML5 ou API ios e Android) através do dispositivo GPS utilizam o sistema de coordenadas WGS-84 .

As informações de latitude e longitude obtidas por diferentes plataformas podem não estar no mesmo sistema de coordenadas.

  • O sistema de coordenadas é dividido em:

    • GCJ-02 - Escritório Nacional de Coordenadas de Topografia

Todos os dados geográficos públicos na China continental precisam de ser encriptados com pelo menos GCJ-02**, ou seja, os dados que obtemos dos produtos de empresas nacionais devem ser encriptados

Amap, Mapa Tencent e Mapa Google China

  • BD-09 - Sistema de coordenadas Baidu

É o sistema de coordenadas geográficas usado pelo Baidu Maps e adiciona mais uma transformação ao GCJ-02 para proteger a privacidade do usuário. As coordenadas obtidas dos produtos Baidu são todas do sistema de coordenadas BD-09.

Mapa Baidu

  • WGS-84 - Sistema Geodésico Mundial

É o sistema de coordenadas mais utilizado e um sistema de coordenadas universal no mundo.A longitude e a latitude obtidas pelo dispositivo GPS são a longitude e a latitude do sistema de coordenadas WGS84.

Normalmente, as informações de posicionamento obtidas através da interface subjacente são o sistema de coordenadas WGS84.

  • Transformação de coordenadas

    • Tanto o Baidu Maps quanto o Gaode Maps fornecem alguns métodos para converter coordenadas em diferentes sistemas de coordenadas, mas todos exigem solicitações de rede e têm baixo desempenho.
    1. gcoord

    ​ gcoord resolve principalmente dois problemas

    • Capacidade de converter coordenadas entre si em diferentes sistemas de coordenadas

    • Capaz de lidar com GeoJSON

    • Exemplo - Conversão do sistema de coordenadas WGS-84 para o sistema de coordenadas BD-09

    var result = gcoord.transform(
        [ 116.403988, 39.914266 ],    // 经纬度坐标
        gcoord.WGS84,                 // 当前坐标系
        gcoord.BD09                   // 目标坐标系
    );
    console.log( result );  // [ 116.41661560068297, 39.92196580126834 ]
    

    Para uso detalhado, verifique a documentação do gcoord.
    Para ferramentas de processamento de sistema de coordenadas mais profissionais, você pode usar bibliotecas de código aberto, como proj4js .

Amap citado no projeto

Nota: Os métodos de introdução do Baidu Map e Amap são quase os mesmos, o que precisa ser introduzido é o plug-in do site oficial do Baidu, Baidu.

1. Baixe e instale o plug-in do miniprograma WeChat

  • amap-wx.js

    No projeto criado, crie um novo diretório chamado libs e copie o arquivo amap-wx.js para o diretório local de libs

    Insira a descrição da imagem aqui

2. Configure um nome de domínio de comunicação seguro

  • Solicitação corrigida para nome de domínio AMAP: https://restapi.amap.com

Insira a descrição da imagem aqui

3.Introduza o arquivo amap-wx.js em index.js

var amapFile = require('path/to/amap-wx.js');//如:..­/..­/libs/amap-wx.js
  • JS chama API
Page({
    
    
  /**
   * 页面的初始数据
   */
  data: {
    
    
    markers: [{
    
     // 绘制 markers
      iconPath: "../../image/green_tri.png",
      id: 0,
      latitude: 39.989643,
      longitude: 116.481028,
      width: 23,
      height: 33
    },{
    
    
      iconPath: "../../image/green_tri.png",
      id: 0,
      latitude: 39.90816,
      longitude: 116.434446,
      width: 24,
      height: 34
    }],
    distance: '',
    cost: '',
    polyline: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
    
    var that = this;
    var myAmapFun = new amapFile.AMapWX({
    
    key:'4ac16a1fe3903abf2f7663a2888860f9'});
    myAmapFun.getPoiAround({
    
    
      success: function(data){
    
    
        console.log(data,"myAmapFun")
        //成功回调
      },
      fail: function(info){
    
    
        //失败回调
        console.log(info)
      }
    })
    //获取自己所在地址的定位
    myAmapFun.getRegeo({
    
    
      success: function(data){
    
    
        //成功回调
        console.log('---------')

        console.log(data,"获取自己所在地址的定位")
      },
      fail: function(info){
    
    
        //失败回调
        console.log(info)
      }
    })

    //获取定位地点天气内容
    myAmapFun.getWeather({
    
    
      success: function(data){
    
    
        console.log(data,'123')
        //成功回调
      },
      fail: function(info){
    
    
        //失败回调
        console.log(info)
      }
    })

    //路线
    myAmapFun.getDrivingRoute({
    
    
      origin: '116.481028,39.989643',
      destination: '116.434446,39.90816',
      success: function(data){
    
    
        var points = [];
        if(data.paths && data.paths[0] && data.paths[0].steps){
    
    
          var steps = data.paths[0].steps;
          for(var i = 0; i < steps.length; i++){
    
    
            var poLen = steps[i].polyline.split(';');
            for(var j = 0;j < poLen.length; j++){
    
    
              points.push({
    
    
                longitude: parseFloat(poLen[j].split(',')[0]),
                latitude: parseFloat(poLen[j].split(',')[1])
              })
            } 
          }
        }
        that.setData({
    
    
          polyline: [{
    
    
            points: points,
            color: "#0091ff",
            width: 6
          }]
        });
          
      },
      fail: function(info){
    
    

      }
    })

  },	

})

  • HTML
<view class="map_box">
  <map id="navi_map" longitude="116.451028" latitude="39.949643" scale="12" markers="{
     
     {markers}}" polyline="{
     
     {polyline}}"></map>
</view>

Insira a descrição da imagem aqui

A descrição acima é a explicação detalhada da introdução do pequeno programa do sistema de coordenadas do mapa Gaode/Baidu. Obrigado pela leitura.
Se você encontrar outros problemas, pode discutir e estudar comigo em particular.
Se for útil para você, 点赞marque como favorito isso. Obrigado~!
Siga o autor do blog favorito para atualizações contínuas...

Acho que você gosta

Origin blog.csdn.net/qq2754289818/article/details/132734599
Recomendado
Clasificación