网站内容怎么写,php网站怎么做301跳转,惠州网站推广,南宁商城网站建设目录 前言
一、需求的缘由
1、百度坐标拾取
2、高德坐标拾取
3、不同地图的坐标展示
二、后端坐标偏移转换处理
1、相关类库介绍
2、coordtransorm类图介绍
3、后台实际转换
三、总结 前言 在当今数字化时代#xff0c;地理位置信息的精确性和实时性对于各种应用至…目录 前言
一、需求的缘由
1、百度坐标拾取
2、高德坐标拾取
3、不同地图的坐标展示
二、后端坐标偏移转换处理
1、相关类库介绍
2、coordtransorm类图介绍
3、后台实际转换
三、总结 前言 在当今数字化时代地理位置信息的精确性和实时性对于各种应用至关重要。其实在之前的博客中我们曾将提到过高德AOI的位置偏移也讲过如何来解决这些位置偏移带来的问题基于Leaflet的高德AOI数据在天地图底图可视化纠偏实践。无论是地图导航、物流配送还是社交网络都依赖于精确的地理坐标系统来提供服务。然而不同的地图服务提供商如百度地图、高德地图和国际上广泛使用的WGS84坐标系统它们之间存在着坐标系的差异。这种差异给开发者在实现跨平台、跨服务的地理信息服务时带来了挑战。因此掌握如何在这些不同的坐标系统之间进行转换成为了后端开发人员的一项必备技能。在下图中详细演示了这种场景以天地图底图为例右边两个位置分别是百度和高德的位置紫色的位置是正确的原始位置。 本文旨在探讨如何使用Java后台技术实现百度、高德和WGS84坐标之间的转换。我们将深入分析这些坐标系统的特点以及它们之间的转换逻辑和算法。通过实战案例我们将展示如何在Java环境中编写高效、可靠的坐标转换代码以满足不同业务场景的需求。 首先我们需要了解不同的坐标系统下比如百度、高德的具体位置展示。然后在技术实现上我们将探讨如何利用java来简化开发过程提高开发效率。此外本文还将分享一些在实际开发中遇到的常见问题及其解决方案比如如何处理坐标转换中的精度问题、如何优化大规模坐标转换的性能等。通过这些实战经验的分享我们希望能够帮助开发者在面对复杂的地理信息服务时能够更加从容不迫。最后随着技术的不断进步坐标转换的方法和工具也在不断更新。本文将提供一个持续学习和探索的平台鼓励开发者关注最新的技术动态不断优化和升级自己的坐标转换解决方案以适应不断变化的市场需求。
一、需求的缘由 说起一个在刚开始接触GIS时一位老同志讲的故事虽然现在听起来有点不可思议。但是当时说不定你也是抱有同样的疑问。故事的起因是这样某公司要求一名工程师通过手机去采集车辆的轨迹信息然后将轨迹信息放到地图中去展示。需求很简单没什么复杂的。手机嘛一般都是用的GPS的信息底图有点意思。当时用户没有自己的离线地图因此就尝试用高德地图作为他们的离线地图服务器。三下五除二把坐标导出来然后连接成一条线接着二三并作五再把生成的线叠加到地图上。本来以为手到擒来可以汇报结果。可当一群人看到地图上的曲线傻眼了。明明自己只是过了一座桥怎么在地图上跑河里去了。于是大家你一言我一语的说。张三说这是有人搞破坏我们的数据被篡改了。有的说发生了不可描述的事情大家被带偏了。一时没有了主义。于是找到了一个大牛将情况跟大佬说了一下。大佬听到了高德地图眼神闪过一丝亮光似乎有了答案又卖了一个关子。 相信以上场景对于半路出家的GISER同学来说确实有点悬明明是好的。来的时候明明走的陆地怎么到这里却飞了呢不是走的河里就是穿墙而过。当你在这一行有了一定的经验后一定会会心的一笑。那么我们先来使用地图来情景再现一下。当然这里我们只是模拟通过现象看本质。为了起到对比的作用这里分别选用百度地图和高德地图的坐标拾取器来对同一个标志物长沙市橘子洲景区的橘市文创店进行拾取然后将两者的坐标叠加到天地图中。来看看是在山上还是河里
1、百度坐标拾取 首先我们打开百度地图的坐标拾取器地址百度地图坐标拾取器然后缩放到我们的目标地点。如下所示 首先当我们在地图上找到我们的目标点即橘市文创店。然后点击鼠标的左键。在界面的右上角就有生成的当前选择地点的坐标位置。可以点击按钮实现复制。当前的坐标信息如下
(112.967397, 28.172314) 在获取了百度的坐标之后接下来我们尝试在高德地图上获取同一个位置的坐标。
2、高德坐标拾取 与百度地图一样高德地图也提供的坐标拾取的功能它的官方地址是高德坐标拾取器。依然选择缩放到橘市文创店附近如下图所示 最终得到的高德坐标为
(112.960922, 28.166447) 到这里可能您并不觉得他们有什么问题因为我们还没有把他们放到一起来进行展示。是骡子是马是该拉出来溜溜。因此下面我们统一将他们放到天地图中进行展示。
3、不同地图的坐标展示 为了解决工作量也为了有统一展示的效果。我们将采集到的百度坐标和高德坐标进行统一展示。展示组件依然选用Leaflet。Leaflet展示点的关键代码如下
// 待标绘的点
var dataJson [{lat:28.172314,lon:112.967397,name:橘市文创店-百度坐标(转换前),color:#aba021},{lat:28.166447,lon:112.960922,name:橘市文创店-高德坐标(转换前),color:#21abab}
];for(var i0;idataJson.length;i){L.marker([dataJson[i].lat, dataJson[i].lon], {icon: L.divIcon({iconSize: null,className: ,popupAnchor:[5,5],shadowAnchor:[5,5],html: div classmarsBlackPanel animation-spaceInDown stylebackground:dataJson[i].colordiv classmarsBlackPanel-text styledataJson[i].name/divdiv classmarsBlackPanel-text style经度:dataJson[i].lon/divdiv classmarsBlackPanel-text style经度:dataJson[i].lat/div/div})}).addTo(map);
} 首先来看一下这时的效果 是不是符合你的预期呢将百度的坐标和高德的坐标叠加在天地图的底图上你会惊奇的发现。点居然跑了。不在我们预期的橘子洲头的位置。而且百度的坐标偏的更厉害。这也就解释了什么事二次偏移。在高德的偏移上还加了自己的偏移。 到这里能理解为什么GPS的信息可能到了高德这里会跑到河里了吧。 遇到问题不可怕下面我们来解决问题。之前我们曾经分享过了如何在Javascript前端来解决下面我们来介绍如何使用后端的方式来进行处理。
二、后端坐标偏移转换处理 在之前的博客中我们介绍了使用JavaScript前端的方式来进行坐标的转换。这种方式在前端使用普遍而且能很好的与前端开发语言进行结合。但是缺点也同样的明显很多场景中我们需要在后台进行数据的处理比如某接口调用的是百度或者高德的地图的API接口。通过这些API接口得到的坐标都是对应平台的。通过前面的博客可以得知其坐标在不同的平台有不同的偏移。因此急需在后台来进行相应的坐标转换。同时我们还可以在后台以接口的形式提供对外服务提供坐标转换的服务。因此本节来具体介绍如何在后台以java语言为例详细介绍如何进行坐标偏移转换。
1、相关类库介绍 这里提供一个开源的java坐标转换组件。不再进行重复造轮子。为了让大家熟悉相关的组件和方法这里还是对组件进行简单的介绍。coordtransform java实现。 这个组件主要提供了百度坐标BD09、国测局坐标火星坐标GCJ02、和WGS84坐标系之间的转换的工具模块 参考wandergis的python版coordtransform的Java版实现。也是我们在后台进行坐标转换的主要方法。
2、coordtransorm类图介绍 左边转换的类比较简单这里采用面向对象的方法对它的类图进行介绍让大家对转换组件有一个详细的认识。类图结构如下所示 属性列表
序号参数参数说明1x_pi3.14159265358979324 * 3000.0 / 180.02π3.14159265358979323846263a长半轴6378245.04ee扁率0.00669342162296594323 方法列表
序号方法名方法说明参数说明1bd09towgs84百度坐标系(BD-09)转WGS坐标百度坐标经纬度2wgs84tobd09WGS坐标转百度坐标系(BD-09)WGS84坐标系的经纬度3gcj02tobd09火星坐标系(GCJ-02)转百度坐标系(BD-09)火星坐标系经纬度4bd09togcj02百度坐标系(BD-09)转火星坐标系(GCJ-02)百度坐标系经纬度5wgs84togcj02WGS84转GCJ02(火星坐标系)WGS84坐标系的经纬度6gcj02towgs84GCJ02(火星坐标系)转GPS84火星坐标系经纬度7transformlat纬度转换8transformlng经度转换9out_of_china判断是否在国内不在国内不做偏移 在掌握了以上的参数和方法之后下面我们使用Java开发语言在后台来进行相关坐标的转换与转换。
3、后台实际转换 下面根据第一章中采集的百度和高德坐标在后台分别进行相应的转换。变成我们需要的WGS84坐标后然后我们在天地图中进行WebGIS展示。
public static void main(String[] args) {double [] bd284 CoordinateTransformUtil.bd09towgs84(112.967397D, 28.172314D);System.out.println(百度坐标转wgs84坐标 bd284[0] bd284[1]);double [] gcj284 CoordinateTransformUtil.gcj02towgs84(112.960922D, 28.166447D);System.out.println(高德坐标转wgs84坐标 gcj284[0] gcj284[1]);
} 在控制台中看到以下的转换结果如下所示
百度坐标转wgs84坐标112.9553676412624428.16996238135615
高德坐标转wgs84坐标112.9554190816810328.16990747088316 单从转换后的结果可以看到两个坐标的值是非常接近的。稍微有点偏差这可能与我们在实际拾取坐标时有一定的偏差。将转换后的坐标在Leaflet中进行展示。关键代码如下
// 待标绘的点
var dataJson [{lat:28.172314,lon:112.967397,name:橘市文创店-百度坐标(转换前),color:#aba021},{lat:28.166447,lon:112.960922,name:橘市文创店-高德坐标(转换前),color:#21abab},{lat:28.16996238135615,lon:112.95536764126244,name:橘市文创店-百度坐标(转换后),color:#b91980},{lat:28.16990747088316,lon:112.95541908168103,name:橘市文创店-高德坐标(转换后),color:#b91980}
]; 最后来看一下经过转换后的坐标在天地图中的位置展示如下 可以看到经过纠偏后的坐标基本实现了还原有一点的误差大概率是我们在拾取时可能手抖了导致的。忽略这个误差说明我们的转换结果符合我们的需求。至此基于后台来进行相关坐标的转换就已经实现。
三、总结 以上就是本文的主要内容本文旨在探讨如何使用Java后台技术实现百度、高德和WGS84坐标之间的转换。我们将深入分析这些坐标系统的特点以及它们之间的转换逻辑和算法。通过实战案例我们将展示如何在Java环境中编写高效、可靠的坐标转换代码以满足不同业务场景的需求。行文藏度定有诸多不足之处如有不足还恳请各位专家朋友在评论区批评指出不胜感激。文章重点在讲解偏移的出现场景通过场景的还原让大家了解不同的坐标展示效果同时为下一步进行转换奠定基础。关于java的转换代码完全是开源的大家可以根据需要集成到自己的gis系统当中。 参考地址coordtransform java转换 文章转载自: http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.hyyxsc.cn.gov.cn.hyyxsc.cn http://www.morning.tqjwx.cn.gov.cn.tqjwx.cn http://www.morning.mhmcr.cn.gov.cn.mhmcr.cn http://www.morning.qxnns.cn.gov.cn.qxnns.cn http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn http://www.morning.rtpw.cn.gov.cn.rtpw.cn http://www.morning.mkpqr.cn.gov.cn.mkpqr.cn http://www.morning.ylpwc.cn.gov.cn.ylpwc.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn http://www.morning.ghccq.cn.gov.cn.ghccq.cn http://www.morning.rxfgh.cn.gov.cn.rxfgh.cn http://www.morning.bzfwn.cn.gov.cn.bzfwn.cn http://www.morning.clkyw.cn.gov.cn.clkyw.cn http://www.morning.wypyl.cn.gov.cn.wypyl.cn http://www.morning.gwmjy.cn.gov.cn.gwmjy.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.xfxnq.cn.gov.cn.xfxnq.cn http://www.morning.zwxfj.cn.gov.cn.zwxfj.cn http://www.morning.jrgxx.cn.gov.cn.jrgxx.cn http://www.morning.dhqg.cn.gov.cn.dhqg.cn http://www.morning.lxjxl.cn.gov.cn.lxjxl.cn http://www.morning.knnc.cn.gov.cn.knnc.cn http://www.morning.rmltt.cn.gov.cn.rmltt.cn http://www.morning.zrbpx.cn.gov.cn.zrbpx.cn http://www.morning.rgkd.cn.gov.cn.rgkd.cn http://www.morning.qbgff.cn.gov.cn.qbgff.cn http://www.morning.xjnjb.cn.gov.cn.xjnjb.cn http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn http://www.morning.rkzk.cn.gov.cn.rkzk.cn http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn http://www.morning.fkffr.cn.gov.cn.fkffr.cn http://www.morning.snbrs.cn.gov.cn.snbrs.cn http://www.morning.hxwrs.cn.gov.cn.hxwrs.cn http://www.morning.wjplm.cn.gov.cn.wjplm.cn http://www.morning.fcftj.cn.gov.cn.fcftj.cn http://www.morning.bfrsr.cn.gov.cn.bfrsr.cn http://www.morning.bbxbh.cn.gov.cn.bbxbh.cn http://www.morning.snnwx.cn.gov.cn.snnwx.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.kzcz.cn.gov.cn.kzcz.cn http://www.morning.rwjh.cn.gov.cn.rwjh.cn http://www.morning.fmqw.cn.gov.cn.fmqw.cn http://www.morning.ltpph.cn.gov.cn.ltpph.cn http://www.morning.lmmh.cn.gov.cn.lmmh.cn http://www.morning.ogzjf.cn.gov.cn.ogzjf.cn http://www.morning.gmdtk.cn.gov.cn.gmdtk.cn http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn http://www.morning.plgbh.cn.gov.cn.plgbh.cn http://www.morning.mhcys.cn.gov.cn.mhcys.cn http://www.morning.pqnkg.cn.gov.cn.pqnkg.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.njntp.cn.gov.cn.njntp.cn http://www.morning.qprtm.cn.gov.cn.qprtm.cn http://www.morning.rfpq.cn.gov.cn.rfpq.cn http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn http://www.morning.mnqz.cn.gov.cn.mnqz.cn http://www.morning.pxwjp.cn.gov.cn.pxwjp.cn http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn http://www.morning.pqwhk.cn.gov.cn.pqwhk.cn http://www.morning.supera.com.cn.gov.cn.supera.com.cn http://www.morning.mtrrf.cn.gov.cn.mtrrf.cn http://www.morning.ppllj.cn.gov.cn.ppllj.cn http://www.morning.rxdsq.cn.gov.cn.rxdsq.cn http://www.morning.yxplz.cn.gov.cn.yxplz.cn http://www.morning.pljxz.cn.gov.cn.pljxz.cn http://www.morning.fqsxf.cn.gov.cn.fqsxf.cn http://www.morning.nynpf.cn.gov.cn.nynpf.cn http://www.morning.mpyry.cn.gov.cn.mpyry.cn http://www.morning.dangaw.com.gov.cn.dangaw.com http://www.morning.sfwcx.cn.gov.cn.sfwcx.cn http://www.morning.jypsm.cn.gov.cn.jypsm.cn http://www.morning.pmtky.cn.gov.cn.pmtky.cn http://www.morning.pbknh.cn.gov.cn.pbknh.cn http://www.morning.tpps.cn.gov.cn.tpps.cn http://www.morning.srnth.cn.gov.cn.srnth.cn http://www.morning.ysybx.cn.gov.cn.ysybx.cn http://www.morning.mbaiwan.com.gov.cn.mbaiwan.com http://www.morning.wgtr.cn.gov.cn.wgtr.cn