Skip to content

parrot-studio/geo-triangle

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

geo-triangle

Introduction

Author

parrot_studio < parrot at users.sourceforge.jp >

License

The MIT License

三点の座標から中心(重心)を求める。

あくまで緯度経度を数値的に処理しているだけで、距離の補正等は考慮していない。 そのため、あまりに離れすぎた三点を指定すると、値が妥当でない場合があり得る。

Install

gem install geo-triangle

Usage

# require 'rubygems' # if ruby 1.8.x
require 'geo-triangle'

# 緯度(lat), 経度(lon)の組み合わせを3つ渡す
GeoTriangle.center(
  [36.383304,139.073632], [36.391026,139.075107], [36.378536,139.046445]) #=> [36.384289, 139.065061]

# 順序が正しければ引数は適当でもいい
GeoTriangle.center(
  36.383304,139.073632,36.391026,139.075107,36.378536,139.046445) 

# newしてから構築するやり方
gt1 = GeoTriangle.new
gt1.set_coordinate([36.383304,139.073632])
gt1.set_coordinate([36.391026,139.075107])
gt1.set_coordinate([36.378536,139.046445])
gt1.center #=> [36.384289, 139.065061]

# 4個以上は無視される
gt2 = GeoTriangle.new
gt2.set_coordinate([36.383304,139.073632])
gt2.set_coordinate([36.391026,139.075107])
gt2.set_coordinate([36.378536,139.046445])
gt2.set_coordinate([37.378536,136.046445]) # 4つ目以降は無視
gt2.center #=> [36.384289, 139.065061]

# 同じ座標はまとめられる
gt3 = GeoTriangle.new
gt3.set_coordinate([36.383304,139.073632])
gt3.set_coordinate([36.391026,139.075107])
gt3.set_coordinate([36.391026,139.075107]) # 上と同じ座標
# 座標が2つと見なされ、座標の数が足りないのでnilを返す
gt3.center #=> nil

Extra Module

# require 'rubygems' # if 1.8.x
require 'geo-triangle'

# 重心ではなく外心を求めたい場合
cc = GeoTriangleExt::CircumCenter.create([0,4],[2,0],[5,6])
cc.center #=> [2.333333, 3.333333]

# 鈍角三角形の場合、外心は三角形の外になるため、実装はしたが使えない

Release Note

ver 0.0.1

  • release for test

Copyright © 2011 parrot-studio. See LICENSE.txt for further details.

About

calculate center of 3 geo-coordinates(lat, lon)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages