Sha256: 8ba10673e23dca0d6f79be94c50b6166cced4568d44b1a6bacd261a12049fd39

Contents?: true

Size: 1.52 KB

Versions: 16

Compression:

Stored size: 1.52 KB

Contents

#= 位置情報

# Rack 化にあわせて gem を見るように
begin
  require 'openssl'
  require 'geokit'
rescue LoadError
end

module Jpmobile
  # 位置情報
  class Position
    if Object.const_defined?('GeoKit')
      # GeoKitが読み込まれている場合はMappableにする
      include ::GeoKit::Mappable
      def self.acts_as_mappable
      end

      def self.distance_column_name
      end

      def self.lat_column_name
        :lat
      end

      def self.lng_column_name
        :lng
      end
    end
    def initialize
      @lat = nil
      @lon = nil
      @options = {}
    end

    # 度分秒を度に変換する。
    def self.dms2deg(d, m, s)
      d.to_i + m.to_i.to_f / 60 + s.to_f / 3600
    end

    # 日本測地系から世界測地系に変換する。
    def tokyo2wgs84!
      @lat, @lon = DatumConv.tky2jgd(@lat, @lon)
    end

    # 文字列で緯度経度を返す。
    def to_s
      '%s%f%s%f' %
        [
          (@lat > 0) ? 'N' : 'S',
          @lat, (@lon > 0) ? 'E' : 'W',
          @lon
        ]
    end

    # 緯度経度をカンマ区切りで返す
    def ll
      "#{lat},#{lng}"
    end

    # 緯度
    attr_accessor :lat

    # 経度
    attr_accessor :lon

    # 経度
    def lng
      self.lon
    end

    # 経度を設定
    def lng=(l)
      self.lon = l
    end

    # 緯度と経度が一致している場合に +true+
    def ==(other)
      other.lat == self.lat && other.lon == self.lon
    end

    # その他の情報
    attr_accessor :options
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
jpmobile-7.0.1 lib/jpmobile/position.rb
jpmobile-7.0.0 lib/jpmobile/position.rb
jpmobile-6.1.2 lib/jpmobile/position.rb
jpmobile-6.1.1 lib/jpmobile/position.rb
jpmobile-6.1.0 lib/jpmobile/position.rb
jpmobile-6.0.0 lib/jpmobile/position.rb
jpmobile-5.2.5 lib/jpmobile/position.rb
jpmobile-6.0.0.beta lib/jpmobile/position.rb
jpmobile-5.2.4 lib/jpmobile/position.rb
jpmobile-5.0.1 lib/jpmobile/position.rb
jpmobile-5.1.1 lib/jpmobile/position.rb
jpmobile-5.2.3 lib/jpmobile/position.rb
jpmobile-5.2.2 lib/jpmobile/position.rb
jpmobile-5.2.1 lib/jpmobile/position.rb
jpmobile-5.2.0 lib/jpmobile/position.rb
jpmobile-5.1.0 lib/jpmobile/position.rb