OSDN Git Service

対応: 既存データ
[convbusstop/convbusstop.git] / src / osm / jp / RectArea.java
1 package osm.jp;
2
3 public class RectArea {
4     public double minlon;       // 経度(西)
5     public double maxlon;       // 経度(東)
6     public double minlat;       // 緯度(南)
7     public double maxlat;       // 緯度(北)
8
9     /**
10      * 矩形領域を中心点と中心点からの距離(メートル)でセットする
11      * 
12      * @param lat       // 中心点の緯度
13      * @param lon       // 中心点の経度
14      * @param m         // 距離 領域の一辺の長さの半分
15      */
16         public RectArea(double lat, double lon, int m) {
17                 double BIG_Y = (40000000.0d / 2.0d / Math.PI);          // 地球の半径
18                 double LAT1 = (10000000.0d / 90.0d);            // 緯度1度の距離(m)
19                 double dLat = m / LAT1;                                         // 距離を表す緯度(差分)
20                 minlat = lat - dLat;            // 底辺(緯度)
21                 maxlat = lat + dLat;            // 上辺(緯度)
22                 double y = Math.sin((90.0d - lat) / 180.0d) * BIG_Y;    // 緯線上の地球の半径
23                 double lon1 = y * 2.0d * Math.PI;                       // 経度1度の距離(m)
24                 double dLon = m / lon1;                                         // 距離を表す経度(差分)
25                 minlon = lon - dLon;            // 左辺
26                 maxlon = lon + dLon;            // 右辺
27         }
28 }