如何将坐标转换为谷歌友好坐标
Posted
技术标签:
【中文标题】如何将坐标转换为谷歌友好坐标【英文标题】:How do I convert coordinates to google friendly coordinates 【发布时间】:2009-11-21 07:03:39 【问题描述】:我需要这样做..
<coordinates_east>6'01.4</coordinates_east>
<coordinates_north>45'05.5</coordinates_north>
我需要在 Ruby 中转换为这种 google 友好格式!...请注意,这些不是真正的转换数字,只是我认为我需要的格式的一个示例!
<coordinates_east>45.46998</coordinates_east>
<coordinates_north>6.90764</coordinates_north>
怎么做?
【问题讨论】:
这看起来像十进制度(尽管你的例子不正确)。只需将度/分/秒转换为十进制度。 除了发布东/北之外,您有时是否还有<coordinates_west>
和<coordinates_south>
值?否则,您不知道要解释赤道/子午线的哪一侧的值。
除非遵循通常的约定......也就是说,南纬度是负数,东经度也是如此。
@pavium:意思是“西”由<coordinates_east>-6'01.4</coordinates_east>
表示(注意否定)?
抱歉耽搁了 - WOW 堆栈很好,谢谢大家 :-)。我会看看我是否可以提供更多帮助。 - 我没有西和南,只有东和西。好的,一个更好的例子可能是这个。它“应该”是 Isola 2000 的法国滑雪胜地。我有这个,坐标 (e) 7'04.3 坐标 (n) 44'10.3 它在谷歌地图上。 maps.google.co.uk/… 最终我需要 Ruby 代码将它们转换为谷歌友好格式。
【参考方案1】:
您的输入坐标似乎是错误的符号。应该是
<coordinates_north>45°05.5'</coordinates_north>
<coordinates_east>6°01.4'</coordinates_east>
(degrees°arcminutes'),或
<coordinates_north>45°05'5"</coordinates_north>
<coordinates_east>6°01'4"</coordinates_east>
(度° arcminutes' arcseconds")
一旦找出正确的输入符号,就可以使用Parsing latitude and longitude with Ruby 将它们转换为十进制度。如果您的输入符号是度° arcminutes',您必须稍微修改它。还要注意负坐标。
如果你只是想和谷歌地图一起使用,其实不需要转换,因为google maps understands arcminutes/-seconds notation。
【讨论】:
选项 3 对我来说很好,我明白你的意思。它们工作得很好,因为它们在谷歌地图和你的第二个例子中 - 很好,(度° arcminutes' arcseconds“)。事情是我需要把东西转换成那种形式 - 我需要我有的°最后还有一个“我有一个.他们需要的地方”!你能帮我用一个 ruby 命令来做到这一点吗,我需要 gsub/regex 吗?我要拥有2000个这样的东西! :-)【参考方案2】:我的坐标是空格分隔的(“deg min sec”),我写了这个小 lambda 来处理它们:
@to_decimal = lambda do |str|
deg, min, sec = str.split(" ").map(&:to_f)
if deg >= 0
output = deg + (min / 60.0) + (sec / 3600.0)
elsif deg < #HARD EARNED KNOWLEDGE HERE
output = deg - (min / 60.0) - (sec / 3600.0)
end
raise "something is wrong" if output.abs > 180
output
end
【讨论】:
以上是关于如何将坐标转换为谷歌友好坐标的主要内容,如果未能解决你的问题,请参考以下文章
rasterio ford geotiff 中的坐标参考系变换