【问题标题】: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 中转换为这种 go​​ogle 友好格式!...请注意,这些不是真正的转换数字,只是我认为我需要的格式的一个示例!

<coordinates_east>45.46998</coordinates_east>
<coordinates_north>6.90764</coordinates_north>

怎么做?

【问题讨论】:

  • 这看起来像十进制度(尽管你的例子不正确)。只需将度/分/秒转换为十进制度。
  • 除了发布东/北之外,您有时是否还有&lt;coordinates_west&gt;&lt;coordinates_south&gt; 值?否则,您不知道要解释赤道/子午线的哪一侧的值。
  • 除非遵循通常的约定......也就是说,纬度是负数,经度也是如此。
  • @pavium:意思是“西”由&lt;coordinates_east&gt;-6'01.4&lt;/coordinates_east&gt;表示(注意否定)?
  • 抱歉耽搁了 - WOW 堆栈很好,谢谢大家 :-)。我会看看我是否可以提供更多帮助。 - 我没有西和南,只有东和西。好的,一个更好的例子可能是这个。它“应该”是 Isola 2000 的法国滑雪胜地。我有这个,坐标 (e) 7'04.3 坐标 (n) 44'10.3 它在谷歌地图上。 maps.google.co.uk/… 最终我需要 Ruby 代码将它们转换为谷歌友好格式。

标签: ruby-on-rails ruby


【解决方案1】:
  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")

  2. 一旦找出正确的输入符号,就可以使用Parsing latitude and longitude with Ruby 将它们转换为十进制度。如果您的输入符号是度° arcminutes',您必须稍微修改它。还要注意负坐标。

  3. 如果你只是想和谷歌地图一起使用,其实不需要转换,因为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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    相关资源
    最近更新 更多