将度,分和秒转换为十进制度的网页/方法


1

我需要一个网页,软件或任何其他方法,我可以在D°M'S(纬度和经度)中提供一个列表(大约10000个)位置点,并获得十进制度的等效值(例如,132.123456 lat,99.12345 long )。

我看到的所有网页和方法都需要逐个插入数据。MSDN(http://support.microsoft.com/kb/213449)提供的方法给出了完全错误的结果。

输入所需的格式无关紧要,因为我可以轻松修改数据以符合它。

Answers:


2

如果您使用的是Windows机器,那么您可能已经拥有(或可以轻松获得)Windows Powershell。给定一个名为Info.csv的CSV文件,其内容如下:

Lat, Long
56 35 42, 73 55 21
12 55 12, 155 23 42

只要我在wiki上得到公式,这就会产生转换:

Import-csv C:\Path\To\Info.csv | Select @{n='Lat'; e={[int[]]$p = $_.Lat.Split(' '); $res = $p[0] + ($p[1]/60) + ($p[2]/3600); return "{0:N6}" -f $res}}, @{n='Long'; e={[int[]]$p = $_.Long.Split(' '); $res = $p[0] + ($p[1]/60) + ($p[2]/3600); return "{0:N6}" -f $res}}

这给出了这样的结果:

Lat                                                         Long
---                                                         ----
56.595000                                                   73.922500
12.920000                                                   155.395000

但是,为了诚实,你应该把它写成一个脚本并做你应该总是做的所有好事,比如数据验证。


1
我还要指出,这是为了处理正纬度。您需要为南半球调整它。:)
EBGreen

那么,你的答案是接近我最想要的那个......除了你说我需要考虑负纬度(南半球坐标)。由于我没有GIS经验,我真的不知道你的脚本会做什么改变。:(
obaqueiro 2011年

1

这听起来就像是为matlab创建的那种问题。

还有一个matlab的开源替代品,你可以尝试使用freemat。还有这里列出的其他替代品

编辑:这是matlab的一些额外帮助:


我认为MATLAB也可能是一个很好的解决方案。你可以编辑你的答案,提供一些关于如何使用MATLAB进行计算的更多信息(例如,如果它有内置函数或者你必须编写自己的函数等)
nhinkle

@nhinkle - 我不知道他想要实现的算法,让它变得更难。我只是提供一个指向我要去的方向。
James T Snell

很好的建议,不幸的是我的问题是“一次性”类型。我只需要转换这些坐标。我无法真正下载并安装新的应用程序。此外,正如nhinkle所说,你没有为我的主要问题提供任何解决方案。非常感谢您的回复!
obaqueiro 2011年

@obaqueiro - 我明白了,我不明白你在寻找算法比什么都重要..
James T Snell


0

Mapsdata在线转换器可能适合您:http//www.mapsdata.co.uk/online-file-converter/

我们的免费在线转换器允许批量地理编码邮政编码和英国邮政编码,将GPX转换为KML,将SHP转换为KML,将KMZ转换为KML,将UTM转换为lat lon,以及更多......我们为自己的产品开发了这些转换器背后的技术并决定分享给他人自由使用。除了我们的服务器可以承受的数量之外,目前您可以转换的条目数量没有限制,所以尽情享受吧!如果我们帮助了,请在Twitter上告诉我们:@Mapsdata或通过电子邮件。

不幸的是,他们似乎没有回到另一个方向,从十进制度到几分钟秒

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.