首页 > 其他分享 >高德坐标打点(点为正常的WGS84地球坐标系,常见于 GPS 设备,Google 地图等国际标准的坐标体系)偏移,调整偏移量

高德坐标打点(点为正常的WGS84地球坐标系,常见于 GPS 设备,Google 地图等国际标准的坐标体系)偏移,调整偏移量

时间:2024-06-03 11:56:42浏览次数:14  
标签:Google WGS84 item 坐标 lat lng PI sin Math

创建一个js文件工具

// WGS84 to GCJ-02 converter // 高德转地球坐标 // coordinateUtils.js
const PI = 3.1415926535897932384626; const a = 6378245.0; // a: WGS84 大地坐标系的长半轴 const ee = 0.00669342162296594323; // ee: WGS84 椭球的偏心率平方
// WGS84 to GCJ-02 converter export function wgs84ToGcj02(lng, lat) {   if (outOfChina(lng, lat)) {     return [lng, lat];   }
  let dLat = transformLat(lng - 105.0, lat - 35.0);   let dLng = transformLng(lng - 105.0, lat - 35.0);   const radLat = lat / 180.0 * PI;   let magic = Math.sin(radLat);   magic = 1 - ee * magic * magic;   const sqrtMagic = Math.sqrt(magic);   dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * PI);   dLng = (dLng * 180.0) / (a / sqrtMagic * Math.cos(radLat) * PI);   const mgLat = lat + dLat;   const mgLng = lng + dLng;   return [mgLng, mgLat]; }
function transformLat(lng, lat) {   let ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));   ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;   ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;   ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;   return ret; }
function transformLng(lng, lat) {   let ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));   ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;   ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;   ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;   return ret; }
function outOfChina(lng, lat) {   // 纬度 3.86~53.55, 经度 73.66~135.05   return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55); }

 

import { wgs84ToGcj02 } from '../../utils/coordinateUtils'; 在组件中先引入后打点使用封装方法,主要是这个(  let [lng, lat] = wgs84ToGcj02(parseFloat(item.lng), parseFloat(item.lat));) function addMarker(stations) {   // console.log("stations",stations);   map.value.clearMap();   stations.forEach((item) => {     if (item.lng === null || item.lat === null) {       return;     }     let [lng, lat] = wgs84ToGcj02(parseFloat(item.lng), parseFloat(item.lat));     console.log("lng",lng);     let icon = new AMap_P.value.Icon({       size: new AMap_P.value.Size(30, 30),       image: MapIconPic,       imageOffset: new AMap_P.value.Pixel(0, 0),       imageSize: new AMap_P.value.Size(30, 30),     });     // 创建 LngLat 对象     let position = new AMap_P.value.LngLat(lng, lat);     // console.log("position",position);     let marker = new AMap_P.value.Marker({       icon: icon,       position: [position.lng, position.lat],       zIndex: 1000,       title: [item.lng, item.lat],       label: {         content: item.stationId,         direction: 'bottom',         style: { 'background-color': 'red' },       },     }); markers.value.push(marker); map.value.add(markers.value);

标签:Google,WGS84,item,坐标,lat,lng,PI,sin,Math
From: https://www.cnblogs.com/ZhangmengC/p/18228497

相关文章

  • 在 Google 电子表格中无法求和美元符号
    我想使用google电子表格管理我的支出。问题是我使用美元和欧元。我写的数字是23美元和25欧元。求和函数对欧元符号工作正常,但对美元符号返回零。我在这里设置了一个小示例:https://docs.google.com/spreadsheets/d/1_mg6xxsae2ybDHXQAqGLddXmJMDsYaaGkkhRY2......
  • 上架 Google Play 的那些辛酸泪
    一、注册Google账号首先你要有个账号,地址如下:accounts.google.com/signup/v2/w…按照Google爸爸要求,该填写的都填了,随后点击下一步。验证手机号:输入验证码验证当前手机号:其他信息填写,这里我个人建议,能填的都填,预防万一:别杠,Google让启用就启用,乖。接下来......
  • 百度地图坐标拾取器
     001、打开地图 002、地图开放平台 003、选开发者频道 004、开发者工具→坐标拾取器 。 ......
  • idea无法拉取maven坐标
    idea报错:java.net.ConnectException:Connectionrefused:connectatjava.base/java.net.PlainSocketImpl.connect0(NativeMethod)atjava.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)atjava.base/java.net.AbstractPlainSocketImpl.doConn......
  • Python 如何从 Google 地图短链接显示 X 和 Y?
    我有这样的google地图短链接:https://maps.app.goo.gl/wsmXZrYfP8V3ur2RAIwantpythonscripttoaskusertoinputgooglemaplink,thenprintXandYIuserinput:https://maps.app.goo.gl/wsmXZrYfP8V3ur2RApythoncodewillgetfulllink......
  • GA4 界面和 Google Analytics 数据应用程序接口的定义不同
    问题......
  • 【网络通信】初探Google的reCAPTCHA安全认证技术
        在数字化日益普及的今天,如何有效保护网站免受恶意攻击和滥用成为了每个网站管理员和开发者必须面对的重要问题。而reCAPTCHA正是Google提供的一种强大且智能的解决方案,旨在通过人机验证来增强网站的安全性。一、reCAPTCHA简介        reCAPTCHA是Google推......
  • Google使用AI改进了 Sheets;开源视觉语言模型llama3v;开源情绪语音模型ChatTTS;
    ✨1:GooglehasimprovedSheetswithAI.Google使用AI改进了Sheets您可以使用Gemini处理您的数据并将其变成老师。优化您的数据Gemini了解您的数据并提出改进建议。例如,它可以将重复数据转换为更实用的下拉框。解释数据通过单击双子座图标,您可以自动获......
  • Google难架马甲多
    今年谷歌上架的难度可谓是地狱级别。可是国内马甲这么多,总要摸索出一些套路来。这里总结几条开源aab混淆策略。1、as自带混淆是必要的,否则就是源码提包,相当于到谷歌门口举个牌子说我是马甲包。不仅要驳回,还要被封号。所以这个得加上。2、做了第一步,也还只是个小孩。只是......
  • GDI+图形显示控件(坐标轴、缩放、轨迹、图像、实时编辑等功能)
    1.显示控件介绍自动化设备(点胶、激光、贴装等等)中经常需要实时显示加工轨迹以及在线编辑加工轨迹等功能,需要用到相应的绘图显示控件。功能强的显示控件不但需要支持大量数据点显示还需要有强大的轨迹编辑功能。如下CadDisplay控件使用GDI+绘图技术,不断的在多个项目中进......