import GeoPoint from "./GeoPoint"; /** * 地理的空間を表現するクラス * * 経度、緯度、標高 それぞれ最小値、最大値によって定義される空間を表現します。 * 地理的空間を表現するほか、空間の拡張や結合などの操作をサポートします。 * * 空間の状態は、空、全域、それ以外の3つのいずれかです。 * {@link is_empty}, {@link is_whole}, {@link is_longitude_whole} により確認することができます。 * * 経度の値は、次の条件を満たすように保持されます。 * * - `min_lon < max_lon` * - `max_lon - min_lon <= 360` * * `min_lon`, `max_lon` それぞれの値は -180 〜 180 でない可能性がある点に注意してください。 * * 経度値の計算方法について、東経180°と西経180°が同一の点となるため、拡張や結合を行う際に特別な計算お行います。 * 拡張や結合を行う際はできるだけ拡張量が小さくなるように拡張されます。 * 例えば、東経170°付近の空間に、西経170°(-170)付近の点を含むように拡張する場合、 * 計算結果の経度領域が -170°〜170° ではなく 170° 〜 190° になります。 */ declare class GeoRegion { private _status; private _min_lon; private _max_lon; private _min_lat; private _max_lat; private _min_alt; private _max_alt; constructor(region?: GeoRegion.RegionData2D | GeoRegion.RegionData3D); /** * 空であるかを取得します。 */ get is_empty(): boolean; /** * 水平方向の空間が全区間であるかを取得します。 */ get is_whole(): boolean; /** * 経度方向の空間が全区間であるかを取得します。 */ get is_longitude_whole(): boolean; /** * 領域を初期化し空にします。 */ clear(): void; /** * インスタンスを代入 * * src を this に代入する。 * * @param src 代入元 * @return this */ assign(src: GeoRegion): GeoRegion; /** * インスタンスを複製 * * this の複製を生成して返す。 * * @return this の複製 */ clone(): GeoRegion; /** * 領域を設定します。 */ setRegion(region: GeoRegion.RegionData2D | GeoRegion.RegionData3D): void; /** * 水平方向について全領域に設定します。 */ setWholeRegion(vertical_region?: [min_alt: number, max_alt: number]): void; /** * 経度方向について全領域に設定します(経度方向の値のみ更新されます)。 * Empty 時にこの関数が呼ばれた際に、緯度が 0 になるため混乱を防ぐため非公開とする。 * この関数を使う場合は latitude も指定すること(標高はデフォルト値0が代入されても良いと思われる)。 */ private _setWholeLongitudeRegion; /** * 共通領域が存在するかを判定します。 */ intersects(region: GeoRegion | GeoRegion.RegionData2D | GeoRegion.RegionData3D): boolean; /** * Pointを追加 * - 条件 this._min_lon < this._max_lon

* - 条件 this._max_lon - this._min_lon <= 360

* * @param lon 地理空間位置 longitude * @param lat 地理空間位置 latitude * @param alt 地理空間位置 altitude */ private _add; /** * base_lon より右となる最小の longitude を算出 * * @param base_lon 基準となるlongitude * @param lon 確認したいlongitude * @return 最小longitude */ private _calcRightPosition; /** * GeoPointを追加 * * @param point 地理空間位置 */ addPoint(point: GeoPoint): void; /** * GeoPointを追加 * * @param points 地理空間位置 */ addPoints(...points: GeoPoint[]): void; /** * PointArrayを追加 * * @param pointsArray 地理空間位置Array */ addPointsAsArray(pointsArray: number[] | Float64Array): void; /** * GeoRegionを結合 * * @param region 地理空間Region */ merge(region: GeoRegion): void; /** * Region内の任意点の取得 * - center ( 0.5, 0.5 ) * - east ( 1, 0.5 ) * - west ( 0, 0.5 ) * - north ( 0.5, 1 ) * - south ( 0.5, 0 ) * - northEast ( 1, 1 ) * - southWest ( 0, 0 ) * * @param lon_pos longitude位置割合 * @param lat_pos latitude位置割合 * @param alt_pos anlitude位置割合 * @return GeoPoint */ getPoint(lon_pos: number, lat_pos: number, alt_pos?: number): GeoPoint | null; /** * SouthWestのGeopointを返却 * * @return 南西(min)のGeoPoint */ getSouthWest(): GeoPoint | null; /** * NorthEastのGeopointを返却 * * @return 北東(max)のGeoPoint */ getNorthEast(): GeoPoint | null; /** * 中心位置のGeopointを返却 * * @return 中心(center)のGeoPoint */ getCenter(): GeoPoint | null; /** * RegionのLongitude方向 の地表面距離を算出 * * @return Longitude方向の地表面距離 */ getLongitudeDistance(): number | null; /** * RegionのLatitude方向 の地表面距離を算出 * * @return Latitude方向の地表面距離 */ getLatitudeDistance(): number | null; } declare namespace GeoRegion { type RegionData2D = [west: number, south: number, east: number, north: number]; type RegionData3D = [west: number, south: number, min_alt: number, east: number, north: number, max_alt: number]; } export default GeoRegion; //# sourceMappingURL=GeoRegion.d.ts.map