请问如何一次性得到大批点的经纬度?

911 views
Skip to first unread message

unread,
Nov 30, 2008, 6:08:47 AM11/30/08
to Google 地图 API 讨论组
Google Map或者Google Earth都是用的WGS-84坐标系,点的坐标也就是坐标系。

我想根据我手头上数据点的地址描述,在Google Map上标出一些点,然后把这些点的经纬度导出,再换算成高斯-克吕格 北京1954坐
标。Geocode据说在中国的地图上是行不通的。唯有手工标点,但这些点的经纬度信息如何批量式的保存下来呢?

比如,在武汉市,我在G map中找到武珞路和关山一路的交叉口,在这里标记一个点;然后,又用同样的方法,标记了很多点。如何能批量式得到
这些点的经纬度呢?

在Google Earth中倒是好解决,标记之后保存为kml,再去解析那个kml文件就行了。但是Google Earth软件中却看不了
Google Map。

请达人指教。

Dorian

unread,
Nov 30, 2008, 9:38:24 PM11/30/08
to Google 地图 API 讨论组
你可以在标好点后,将点数据组成个KML提交到一个服务器端,保存成KML就可以了吧。

Phinix Chen

unread,
Dec 1, 2008, 5:50:06 AM12/1/08
to Google-Map...@googlegroups.com
用"我的地图"创建一个地图,标出你的点以后,在地图右上角的"链接"中取到你的地图链接,在这个链接的URL后加一个output=kml参数就可以导出为KML,直接用右上角的KML链接不是你想得到的数据
从这里开始 http://ditu.google.com/maps/mm?hl=zh-CN

另外,能说一下怎么把坐标换算成北京1954坐标么,没做过这个

2008/12/1 Dorian <leed...@gmail.com>

unread,
Dec 2, 2008, 8:41:25 PM12/2/08
to Google 地图 API 讨论组
你好。

谢谢你的帮助。但我在url后面加";output=kml"之后也并没有得到想到的数据,不知道是怎么回事呢?

关于坐标,Gmap用的是WGS-1984坐标系,和国内常用的高斯-克吕格beijing1954需要进行计算转换,具体做法,可以参见我在网上找的
这个帖子:

【用EXCEL完成GPS坐标转换的简易方法 】
发布时间:2008-10-16 11:16:12
[摘要] 对利用EXCEL电子表格进行高斯投影换算的方法进行了较详细的介绍,对如何进行GPS坐标系转换进行了分析,提出了一种简单实用的坐标改正
转换方法,介绍了用EXCEL完成转换的思路。
[关键字] 电子表格;GPS;坐标转换
作为尖端技术GPS,能方便快捷性地测定出点位坐标,无论是操作上还是精度上,比全站仪等其他常规测量设备有明显的优越性。随着我国各地GPS差分台站
的不断建立以及美国SA政策的取消,使得单机定位的精度大大提高,有的已经达到了亚米级精度,能够满足国土资源调查、土地利用更新、遥感监测、海域使用
权清查等工作的应用。在一般情况下,我们使用的是1954年北京坐标系或1980年西安坐标系(以下分别简称54系和80系),而GPS测定的坐标是
WGS-84坐标系坐标,需要进行坐标系转换。对于非测量专业的工作人员来说,虽然GPS定位操作非常容易,但坐标转换则难以掌握,EXCEL是比较普
及的电子表格软件,能够处理较复杂的数学运算,用它来进行GPS坐标转换、面积计算会非常轻松自如。要进行坐标系转换,离不开高斯投影换算,下面分别介
绍用EXCEL进行换算的方法和GPS坐标转换方法。
一、用EXCEL进行高斯投影换算
从经纬度BL换算到高斯平面直角坐标XY(高斯投影正算),或从XY换算成BL(高斯投影反算),一般需要专用计算机软件完成,在目前流行的换算软件
中,存在一个共同的不足之处,就是灵活性较差,大都需要一个点一个点地进行,不能成批量地完成,给实际工作带来许多不便。笔者发现,用EXCEL可以很
直观、方便地完成坐标换算工作,不需要编制任何软件,只需要在EXCEL的相应单元格中输入相应的公式即可。下面以54系为例,介绍具体的计算方法。
完成经纬度BL到平面直角坐标XY的换算,在EXCEL中大约需要占用21列,当然读者可以通过简化计算公式或考虑直观性,适当增加或减少所占列数。在
EXCEL中,输入公式的起始单元格不同,则反映出来的公式不同,以公式从第2行第1列(A2格)为起始单元格为例,各单元格的公式如下:
单元格
单元格内容
说明
A2
输入中央子午线,以度.分秒形式输入,如115度30分则输入115.30
起算数据L0
B2
=INT(A2)+(INT(A2*100)-INT(A2)*100)/60+(A2*10000-INT(A2*100)*100)/3600
把L0化成度
C2
以度小数形式输入纬度值,如38°14′20″则输入38.1420
起算数据B
D2
以度小数形式输入经度值
起算数据L
E2
=INT(C2)+(INT(C2*100)-INT(C2)*100)/60+(C2*10000-INT(C2*100)*100)/3600
把B化成度
F2
=INT(D2)+(INT(D2*100)-INT(D2)*100)/60+(D2*10000-INT(D2*100)*100)/3600
把L化成度
G2
=F2-B2
L-L0
H2
=G2/57.2957795130823
化作弧度
I2
=TAN(RADIANS(E2))
Tan(B)
J2
=COS(RADIANS(E2))
COS(B)
K2
=0.006738525415*J2*J2

L2
=I2*I2

M2
=1+K2

N2
=6399698.9018/SQRT(M2)

O2
=H2*H2*J2*J2

P2
=I2*J2

Q2
=P2*P2

R2
=(32005.78006+Q2*(133.92133+Q2*0.7031))

S2
=6367558.49686*E2/57.29577951308-P2*J2*R2+((((L2-58)*L2+61)
*O2/30+(4*K2+5)*M2-L2)*O2/12+1)*N2*I2*O2/2
计算结果X
T2
=((((L2-18)*L2-(58*L2-14)*K2+5)*O2/20+M2-L2)*O2/6+1)*N2*(H2*J2)
计算结果Y


表中公式的来源及EXCEL软件的操作方法,请参阅有关资料,这里不再赘述。按上面表格中的公式输入到相应单元格后,就可方便地由经纬度求得平面直角坐
标。当输入完所有的经纬度后,用鼠标下拉即可得到所有的计算结果。表中的许多单元格公式为中间过程,可以用EXCEL的列隐藏功能把这些没有必要显示的
列隐藏起来,表面上形成标准的计算报表,使整个计算表简单明了。从理论上讲,可计算的数据量是无限的,当第一次输入公式后,相当于自己完成了一软件的编
制,可另存起来供今后重复使用,一劳永逸。

二、GPS坐标转换方法与面积计算
GPS所采用的坐标系是美国国防部1984世界坐标系,简称WGS-84,它是一个协议地球参考系,坐标系原点在地球质心。GPS的测量结果与我国的
54系或80系坐标相差几十米至一百多米,随区域不同,差别也不同,经粗落统计,我国西部相差70米左右,东北部140米左右,南部75米左右,中部
45米左右。由此可见,必须将WGS-84坐标进行坐标系转换才能供标图使用。坐标系之间的转换一般采用七参数法或三参数法,其中七参数为X平移、Y平
移、Z平移、X旋转、Y旋转、Z旋转以及尺度比参数,若忽略旋转参数和尺度比参数则为三参数方法,三参数法为七参数法的特例。这里的Z、Y、Z是空间大
地直角坐标系坐标,为转换过程的中间值。在实际工作中我们常用的是平面直角坐标,是否可以跳过空间直角坐标系,省略复杂的运算,进行简单转换呢?为此,
笔者进行了长期的实践,证明是可行的。其在原理是:不把GPS所测定的WGS-84坐标当作WGS-84坐标,而是当作具有一定系统性误差的54系坐标
值,然后通过国家已知点纠正,消除该系统误差。我们暂把该方法称作坐标改正法,下面以WGS-84坐标转换成54系坐标为例,介绍数据处理方法:
首先,在测区附近选择一国家已知点,在该已知点上用GPS测定WGPS-84坐标系经纬度B和L,把此坐标视为有误差的54系坐标,利用54系
EXCEL将经纬度BL转换成平面直角坐标X'Y',然后与已知坐标比较则可计算出偏移量:
△X=X-X'
△Y=Y-Y'
式中的X、Y为国家控制点的已知坐标,X'、Y'为测定坐标,△X和△Y为偏移量。
求得偏移量后,就可以用此偏移量纠正测区内的其他测量点了。把其他GPS测量点的经纬度测量值,转换成平面坐标X'Y',在此XY坐标值上直接加上偏移
值就得到了转换后的54系坐标:
X=X'+△X
Y=Y'+△Y
在上述EXCEL计算表的最后两列,附加上求得的改正数并分别与计算出来的XY相加后,即得到转换结果。若测量路线是一闭合区域的话,可把计算结果按路
线顺序排列起来,再输入相应的计算公式,即可计算出该区域的面积。有关用坐标计算面积的原理与公式,这里不再叙述,读者可参阅有关资料。需要说明的是,
面积的计算精度基本上不受坐标转换精度的影响,若只需要求算面积的话,可不进行坐标系转换这一步,只需要把BL化成XY就行了。
就1:1万比例尺成图而言,在一般的县行政区范围内(如40Km×40Km),用此简单的坐标改正法进行转换与较复杂的七参数法没有多大差别。能否满足
1:1万比例尺变更调查的要求,主要取决于GPS接收机本身的精度,与转换方法的选择关系不大。当面积较大时,使用该方法可能会使误差增大,这时可考虑
分区域转换。

On 12月1日, 下午6时50分, "Phinix Chen" <phinix.c...@gmail.com> wrote:
> 用"我的地图"创建一个地图,标出你的点以后,在地图右上角的"链接"中取到你的地图链接,在这个链接的URL后加一个output=kml参数就可以导出为K-ML,直接用右上角的KML链接不是你想得到的数据
> 从这里开始http://ditu.google.com/maps/mm?hl=zh-CN
>
> 另外,能说一下怎么把坐标换算成北京1954坐标么,没做过这个
>
> 2008/12/1 Dorian <leedor...@gmail.com>


>
>
>
> > 你可以在标好点后,将点数据组成个KML提交到一个服务器端,保存成KML就可以了吧。
>
> > On 11月30日, 下午7时08分, 卢 <lujiawe...@gmail.com> wrote:
> > > Google Map或者Google Earth都是用的WGS-84坐标系,点的坐标也就是坐标系。
>
> > > 我想根据我手头上数据点的地址描述,在Google Map上标出一些点,然后把这些点的经纬度导出,再换算成高斯-克吕格 北京1954坐
> > > 标。Geocode据说在中国的地图上是行不通的。唯有手工标点,但这些点的经纬度信息如何批量式的保存下来呢?
>
> > > 比如,在武汉市,我在G map中找到武珞路和关山一路的交叉口,在这里标记一个点;然后,又用同样的方法,标记了很多点。如何能批量式得到
> > > 这些点的经纬度呢?
>
> > > 在Google Earth中倒是好解决,标记之后保存为kml,再去解析那个kml文件就行了。但是Google Earth软件中却看不了
> > > Google Map。
>

> > > 请达人指教。- 隐藏被引用文字 -
>
> - 显示引用的文字 -

@@

unread,
Dec 2, 2008, 9:15:24 PM12/2/08
to Google-Map...@googlegroups.com
这个可以自己写点小代码实现的

或者用现成的 http://geodatastore.appspot.com/ 这个程序在gae smaple里能下到
在本地装个GAE的sdk然后用这个程序标点,点kml output就行了

2008/12/3 卢 <lujia...@gmail.com>

Phinix Chen

unread,
Dec 3, 2008, 3:34:53 AM12/3/08
to Google-Map...@googlegroups.com
参数用&链接,应该用"&output=kml"

2008/12/3 @@ <ask...@gmail.com>

unread,
Dec 9, 2008, 4:53:54 AM12/9/08
to Google 地图 API 讨论组
谢谢!!!
后来试了下,行了。

实际上如果想得到标记点的经纬度的话,点"RSS"也行,在geopoint里就可以看见经纬度。
保存为xml文件,然后用excel导入,就可以批量的得到了。

On 12月3日, 下午4时34分, "Phinix Chen" <phinix.c...@gmail.com> wrote:
> 参数用&链接,应该用"&output=kml"
>
> 2008/12/3 @@ <ask...@gmail.com>
>
>
>
> > 这个可以自己写点小代码实现的

> > 或者用现成的http://geodatastore.appspot.com/这个程序在gae smaple里能下到
> > 在本地装个GAE的sdk然后用这个程序标点,点kml output就行了
>
> > 2008/12/3 卢 <lujiawe...@gmail.com>

> >> 用"我的地图"创建一个地图,标出你的点以后,在地图右上角的"链接"中取到你的地图链接,在这个链接的URL后加一个output=kml参数就可以导出为K--ML,直接用右上角的KML链接不是你想得到的数据


> >> > 从这里开始http://ditu.google.com/maps/mm?hl=zh-CN
>
> >> > 另外,能说一下怎么把坐标换算成北京1954坐标么,没做过这个
>
> >> > 2008/12/1 Dorian <leedor...@gmail.com>
>
> >> > > 你可以在标好点后,将点数据组成个KML提交到一个服务器端,保存成KML就可以了吧。
>
> >> > > On 11月30日, 下午7时08分, 卢 <lujiawe...@gmail.com> wrote:
> >> > > > Google Map或者Google Earth都是用的WGS-84坐标系,点的坐标也就是坐标系。
>
> >> > > > 我想根据我手头上数据点的地址描述,在Google Map上标出一些点,然后把这些点的经纬度导出,再换算成高斯-克吕格
> >> 北京1954坐
> >> > > > 标。Geocode据说在中国的地图上是行不通的。唯有手工标点,但这些点的经纬度信息如何批量式的保存下来呢?
>
> >> > > > 比如,在武汉市,我在G
> >> map中找到武珞路和关山一路的交叉口,在这里标记一个点;然后,又用同样的方法,标记了很多点。如何能批量式得到
> >> > > > 这些点的经纬度呢?
>
> >> > > > 在Google Earth中倒是好解决,标记之后保存为kml,再去解析那个kml文件就行了。但是Google
> >> Earth软件中却看不了
> >> > > > Google Map。
>
> >> > > > 请达人指教。- 隐藏被引用文字 -
>

> >> > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -

Phinix Chen

unread,
Dec 9, 2008, 4:56:59 AM12/9/08
to Google-Map...@googlegroups.com
谢谢分享经验啊,呵呵

2008/12/9 卢 <lujia...@gmail.com>
Reply all
Reply to author
Forward
0 new messages