求各种地图转换坐标坐标的转换方法。

查看: 2187|回复: 15
求助--如何实现批量GPS经纬度转换为百度地图经纬度
阅读权限10
在线时间 小时
各位专家,
众所周知的原因,我国地图上的经纬度都是故意加了偏移的。我的EXCEL表里有大批经纬度(GPS测得)需要转换在百度经纬度,再存回EXCEL表里面,搞了几天没搞好,请专家支招。
百度提图API例程如下,不知道如何同EXCEL结合。
&!DOCTYPE html&
& & &meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&
& & &meta name=&viewport& content=&initial-scale=1.0, user-scalable=no& /&
& & &style type=&text/css&&
& && &&&body, html,#allmap {width: 100%;height: 100%;overflow:margin:0;font-family:&微软雅黑&;}
& & &/style&
& & &script type=&text/javascript& src=&http://api./api?v=2.0&ak=您的密钥&&&/script&
& & &title&批量转换&/title&
& & &div id=&allmap&&&/div&
&script type=&text/javascript&&
& & var points = [new BMap.Point(116.9,39.83),
& && && && && && &new BMap.Point(116.32,39.71),
& && && && && && &new BMap.Point(116.35,39.574),
& && && && && && &new BMap.Point(116.88,39.29),
& && && && && && &new BMap.Point(116.72,39.71)
& & //地图初始化
& & var bm = new BMap.Map(&allmap&);
& & bm.centerAndZoom(new BMap.Point(116..), 15);
& & //坐标转换完之后的回调函数
& & translateCallback = function (data){
& && &if(data.status === 0) {
& && &&&for (var i = 0; i & data.points. i++) {
& && && && &bm.addOverlay(new BMap.Marker(data.points[i]));
& && && && &bm.setCenter(data.points[i]);
& & setTimeout(function(){
& && &&&var convertor = new BMap.Convertor();
& && &&&convertor.translate(points, 1, 5, translateCallback)
& & }, 1000);
阅读权限10
在线时间 小时
求助求助,哪位大神出手啊
阅读权限50
在线时间 小时
关注,期待高手出手!
阅读权限30
在线时间 小时
百度的API转换方法为:
其中:& && &
from: 来源坐标系& &(0表示原始GPS坐标,2表示Google坐标)& && &
to: 转换后的坐标& &(4就是百度自己啦,好像这个必须是4才行)& && && &
x: 经度& && && && &
y: 纬度& && && && &&&
返回的结果是一个json字符串:& && && && & {&error&:0,&x&:&MTIxLjUwMDIyODIxNDk2&,&y&:&MzEuMjM1ODUwMjYwMTE3&}
其中:& && && && &&&
error:是结果是否出错标志位,&0&表示OK& && && && &
x: 百度坐标系的经度(Base64加密)& && && && &
y: 百度坐标系的纬度(Base64加密)
阅读权限30
在线时间 小时
阅读权限30
在线时间 小时
请上传附件供测试!
阅读权限10
在线时间 小时
http://api./api?v=2.0&ak=Q0O9mkEqXfiLRRfVLUl7sHDZ
百度的API转换方法为:
感谢高手,通过你的办法已经实现了,非常感谢!!
阅读权限30
在线时间 小时
& & & & & & & &
感谢高手,通过你的办法已经实现了,非常感谢!!
很想学习您的代码!能贴上来供大家参考学习吗!
阅读权限10
在线时间 小时
本帖最后由 军刀入鞘 于
10:17 编辑
实测通过的代码如下,初学VBA,代码不够优美简洁,仅保证实现 :)
& & Public gpslng As String
& & Public gpslat As String
& & Public bdlng As String
& & Public bdlat As String
gpslng=116.31891gpslat=39.97515
call GPS2BD
Private Sub GPS2BD()
& & Dim strText As String
& & Dim gpspoi As String
gpspoi = &http://api./ag/coord/convert?from=0& & &&& & &to=4& & &&& & &x=& & gpslng & &&& & &y=& & gpslat
& & With CreateObject(&MSXML2.XMLHTTP&)
& && &&&.Open &GET&, gpspoi, False
& && &&&.Send
& && &&&strText = .responsetext
& & End With
'百度数据返回分析并赋值
& & bdlng = Split(Split(strText, &,&)(1), &:&)(1)
& & bdlat = Split(Split(Split(strText, &,&)(2), &:&)(1), &}&)(0)
'& &Debug.Print strText
阅读权限30
在线时间 小时
代码不错,学习啦!
来一个自定义函数的!
Public Const pi As Double = 3.79
Public Const a As Double = 6378245#
Public Const ee As Double = 6.94E-03
Public Const X_pi As Double = 3.79 * 3000# / 180#
Function wgs2bd(lat, lon)
& & wgs2gcj = wgs2gcj(lat, lon)
& & gcj2bd = gcj2bd(wgs2gcj(0), wgs2gcj(1))
End Function
Function gcj2bd(lat, lon)
& & x = lon: y = lat
& & Z = Sqr(x * x + y * y) + 0.00002 * Sin(y * X_pi)
& & theta = Application.Atan2(y, x) + 0.000003 * Cos(x * X_pi)
& & bd_lon = Z * Cos(theta) + 0.00644& && &&&'***?
& & bd_lat = Z * Sin(theta) + 0.00633& && & '***?
'& & bd_lon = Z * Cos(theta) + 0.0065
'& &bd_lat = Z * Sin(theta) + 0.006
& & gcj2bd = bd_lat & &,& & bd_lon
End Function
Function bd2gcj(lat, lon)
& & x = lon - 0.0065: y = lat - 0.006
& & Z = Sqr(x * x + y * y) - 0.00002 * Sin(y * X_pi) '***
& & theta = Application.Atan2(y, x) - 0.000003 * Cos(x * X_pi)
& & gg_lon = Z * Cos(theta)
& & gg_lat = Z * Sin(theta)
& & bd2gcj = gg_lat & &,& & gg_lon
End Function
Function wgs2gcj(lat, lon)
& & dLat = transformLat(lon - 105#, lat - 35#)
& & dLon = transformLon(lon - 105#, lat - 35#)
& & radLat = lat / 180# * pi
& & magic = Sin(radLat)
& & magic = 1 - ee * magic * magic
& & sqrtMagic = Sqr(magic) '***
& & dLat = (dLat * 180#) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi)
& & dLon = (dLon * 180#) / (a / sqrtMagic * Cos(radLat) * pi)
& & mgLat = lat + dLat
& & mgLon = lon + dLon
& & wgs2gcj = mgLat & &,& & mgLon ' Loc
End Function
Function transformLat(lat, lon)
& & ret = -100# + 2# * lat + 3# * lon + 0.2 * lon * lon + 0.1 * lat * lon + 0.2 * Sqr(Abs(lat))
& & ret = ret + (20# * Sin(6# * lat * pi) + 20# * Sin(2# * lat * pi)) * 2# / 3#
& & ret = ret + (20# * Sin(lon * pi) + 40# * Sin(lon / 3# * pi)) * 2# / 3#
& & ret = ret + (160# * Sin(lon / 12# * pi) + 320 * Sin(lon * pi / 30#)) * 2# / 3#
& & transformLat = ret
End Function
Function transformLon(lat, lon)
& & ret = 300# + lat + 2# * lon + 0.1 * lat * lat + 0.1 * lat * lon + 0.1 * Sqr(Abs(lat))
& & ret = ret + (20# * Sin(6# * lat * pi) + 20# * Sin(2# * lat * pi)) * 2# / 3#
& & ret = ret + (20# * Sin(lat * pi) + 40# * Sin(lat / 3# * pi)) * 2# / 3#
& & ret = ret + (150# * Sin(lat / 12# * pi) + 300# * Sin(lat / 30# * pi)) * 2# / 3#
& & transformLon = ret
End Function复制代码
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师君,已阅读到文档的结尾了呢~~
矢量地图坐标转换方法及工具,地图坐标转换工具,百度地图坐标转换,百度地图gps坐标转换,高德地图坐标转换,地图坐标转换,腾讯地图坐标转换,百度地图api坐标转换,谷歌地图坐标转换,百度地图坐标转换接口
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
矢量地图坐标转换方法及工具
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
矢量地图坐标转换方法及其工具.doc 19页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:100 &&
你可能关注的文档:
··········
··········
矢量地图坐标转换方法及工具
在MapInfo中,通常采用大地坐标的北京54标准。与GPS采用的WGS84在同一点上相差经纬度相差有10-20分(仅仅从地图在MAPINFO的显示数据来说没涉及到NumericCoordSys的坐标系统)。虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。实际工作中一般都根据工作区内已知的北京54坐标控制点计算转换参数,如果工作区内有足够多的已知北京54与WGS84坐标控制点,可直接计算坐标转换的7参数或3参数;当工作区内有3个已知北京54与WGS84坐标控制点时,可用下式计算WGS84到北京54坐标的转换参数(A、B、C、D、E、F):x54 = AX84 + BY84 + C,y54 = DX84 + EY84 + F,多余一点用作检验;在只有一个已知控制点的情况下(往往如此),用已知点的北京54与WGS84坐标之差作为平移参数,当工作区范围不大时精度也足够了。
一般使用3参数,将3个控制点的数据代入方程,求解出参数,可以利用Excel求解,如图
在黄色区域分别输入3个点的不同坐标系的数据,通过消元法,在红色区域会得出a、b、c、d、e、f参数的值,可以在下图的黄色区域输入数据进行验证,检验误差
为了实现地图数据的转换,我用MapBasic编写了一个程序。该程序在MapInfo程序界面中添加了一个转换的菜单,主要包括2部分:一是参数设置,用于设置并保存用于转换的3参数;二是执行转换,选择需要进行转换的表并转换。如图:
参数设置内容如图:
Default按钮可以将3参数恢复到缺省值,点击OK按钮会将输入的参数设置进系统,并保存为config.ini文件。
转换内容如图:
可以选择需要转换的表,如果点击全选则自动全部选中所有表,再次点击则取消全部选中。
该程序具有记录操作的功能,将主要的操作记录到log文件中。
附件:源程序
'***** 坐标转换
'***** Created by 孙国文,江苏电信徐州分公司无线中心
'***** Jan 28, 2005
include &mapbasic.def&
declare sub main
declare sub RCV
'declare sub CB
'declare sub HB
declare sub editlayer
declare sub minmap
declare sub restoremap
declare sub checktab
declare sub objmove
'declare sub deltab
declare sub YesButton
'declare sub NoButton
declare sub EndPro
declare sub About
declare sub provision
declare sub objmove_main
declare sub getconffromfile
declare sub setdefaultconfig
declare Sub getres
declare Sub changestatemulti
declare Sub changestatecheck
dim r,v,i,j,h,poly,pnode,cnt as integer
dim z as Smallint
dim numtab,tabtemp,tabnum,numlayer,objoff,numwin,mx,my,arccnt as integer
dim ptcnt,plcnt,lcnt,regcnt,filecnt,rctcnt,rrtcnt,elpcnt,txcnt,ewindow as integer
dim sobj as object
dim nx,ny,xoff,yoff,go1,go2,go3,go4,tsp,ta,tlx,tly,gx1,gy1,gx2,gy2 as float
dim tabstr(1) as string
dim tabname,runstr,ts,elayer,ct as string
dim tabobj as alias
dim layerfound,cancel as logical
dim filenum(1) as integer
dim tf as font
dim tj,tar as smallint
dim tjs as string
dim da,db,dc,dd,de,df as
正在加载中,请稍后...后使用快捷导航没有帐号?
暂时没有人问过相似的问题,你可以做第一个提问题的人
查看: 6450|回复: 17
求教坐标转换方法convertor.translate的各个参数的意思
官方示例里有一个批量转换坐标的,我看用的是convertor.translate(points, 1, 5, translateCallback)这个方法,第一个和第四个参数的意思我懂,但是第二和第三个不明白,官方的文档上也没搜到相关的说明,用搜索引擎查到的都是三个参数的版本,请问这里的1和5都是什么意思,换成其他的数字都是什么意思,取值范围又是多少,请大神们指点,谢谢
请问大神,我想把谷歌的坐标转成百度的坐标,from to 这两个值应该填什么? ...
146E09ADCD8251ADD056BE.JPG (96.62 KB, 下载次数: 7)
21:30 上传
请问大神,我想把谷歌的坐标转成百度的坐标,from to 这两个值应该填什么?
/index.php?title=webapi/guide/changeposition
大神,坐标转换不是一次支持100个么?我用怎么转了50个就超限了,提示状态码为25
大神,坐标转换不是一次支持100个么?我用怎么转了50个就超限了,提示状态码为25 ...
直接用的web api?
本帖最后由 Bender08 于
16:38 编辑
直接用的web api?
不是,我用的JS的API,调用的就是convertor.translate这个方法,我是参照JS API的DEMO里的批量转换的例子写的
不是,我用的JS的API,调用的就是convertor.translate这个方法,我是参照JS API的DEMO里的批量转换的例子 ...
jsapi调用上限20个
jsapi调用上限20个
我测试了一下,超过10个坐标点就会报状态码为&25&的坐标数超限的错误
我测试了一下,超过10个坐标点就会报状态码为&25&的坐标数超限的错误
噢噢,不好意思,,我打错了。是10个,因为这个请求之后我们走ajax get进行转发,所以对长度有限制。
同样遇到这个问题,看api是100个,原来如此
webApi有跨域问题咋办啊。。
噢噢,不好意思,,我打错了。是10个,因为这个请求之后我们走ajax get进行转发,所以对长度有限制。 ...
你好,请问一下,js api的坐标转化手册在哪?没有找到。我看demo里面有写回调函数,但是web api的文档里参数没写有会掉函数啊,而且我删除了发现也不行
webApi有跨域问题咋办啊。。
前端解决跨域可以用jsonp
你好,请问一下,js api的坐标转化手册在哪?没有找到。我看demo里面有写回调函数,但是web api的文档里 ...
具体文档可以看2楼
具体文档可以看2楼
非常感谢。我现在遇到一个问题。在new一个BMap对象的时候,提示如下错误,求指导:
(9.25 KB, 下载次数: 3)
15:10 上传
程序报错。
非常感谢。我现在遇到一个问题。在new一个BMap对象的时候,提示如下错误,求指导: ...
参考一下demo的异步调用jsapi把
参考一下demo的异步调用jsapi把
知道是什么问题了,多谢
Powered by地图测距与经纬度格式转换:地图上地理上多点连续测量距离,在线经纬度转换的工具,各种格式经纬度的在线转换,精度达到县区一级的经纬度查询。
使用帮助:单击各个地点测距,谷歌地图已实现,。本站新完成,不但提供单击后,计算各地点之间的总距离,还支持,批量输入经纬度后顺序计算各点之间总距离。单击左侧的刻度计上的加减号,可放大缩小地图;单击右上角的地形和地图,可在普通地图和地形地图间切换;在右侧输入地址,可定位指定的位置。单击你需要查询的地点创建的标记,单击标记可显示所处地理位置的经度和纬度。
&&&测距经纬度转换
54北京坐标系统转换为高斯平面直角坐标系在线转换工具(多个数据,可以粘贴,程序使用回车区分):
输入纬度(小数格式)输入经度(小数格式)&&&&
&&&&&&&& 3度带中央子午线&&&&&&&&&&&&&&&&&&&&&&&&&
带号&&&&&&
&&&&&&&&&&&&&&&& 计算结果X&&&&&&&&&&&&&&&&& 计算结果Y
&&&&&&&&&&&
结果含带号Y
为便于复制,这里将X和Y一并列出,便于复制(以逗号分隔):
54北京坐标系统转换为高斯平面直角坐标使用说明:你可以输入一组54北京经纬度坐标数据,输入格式为如38°
14'00'',输入38.1420,然后单击转换按钮进行转换。也可以从其他数据源,如Excel单元格中的数据复制下来,纬度数据粘贴到纬度输入框,经度数据粘贴到经度数据输入框,然后单击转换,可以快速实现批量转换。转换后的结果,你可以复制下来,在粘贴到你需要的地方,注意成对使用。
相关链接:
输入地址进行定位(县区级):
(地址定位不参与测距)
输入经纬度进行定位(小数格式):
经纬度格式转换:
小数格式的经度或纬度
角度格式的经度或纬度}

我要回帖

更多关于 地图转换坐标 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信