4. География и геометрия

LngLat

Объект LngLat состоит из долготы и широты (в градусах). Эти координаты основаны на стандарте WGS84 (EPSG:4326). MMR GL использует порядок координат долготы и широты (в отличие от широты и долготы) в соответствии со спецификацией GeoJSON. Обратите внимание, что любой метод MMR GL, принимающий объект LngLat в качестве аргумента или опции, также может принимать массив из двух чисел и выполнять неявное преобразование. Этот гибкий тип документирован как LngLatLike.
src/geo/lng_lat.js

Параметры

lng:number  долгота в градусах

lat:number  широта в градусах

Пример:
var ll = new mmrgl.LngLat(-123.9749, 40.7736);
ll.lng; // = -123.9749

static Методы

Название
Описание
convert(input)

Преобразует массив из двух чисел или объект со свойствами lng и lat или lon и lat в объект LngLat.

Если передается объект LngLat, функция возвращает его без изменений.

Параметры:
input:LngLatLike м
ассив из двух чисел или объект для преобразования, или объект LngLat для возврата.

Пример:
var arr = [-73.9749, 40.7736];
var ll = mmrgl.LngLat.convert(arr);
ll;   // = LngLat {lng: -73.9749, lat: 40.7736}

instance Методы

Название
Описание
distanceTo(lngLat)

Возвращает приблизительное расстояние между парой координат в метрах, используя формулу Хаверсина (из R. W. Sinnott, «Добродетели Хаверсина», Sky and Telescope, vol. 68, no. 2, 1984, p. 159)

Параметры:
lngLat:LngLat 
координаты для вычисления расстояния до цели

Пример:
var newYork = new mmrgl.LngLat(-74.0060, 40.7128);
var losAngeles = new mmrgl.LngLat(-118.2437, 34.0522);
newYork.distanceTo(losAngeles); // = 3935751.690893987, "истинное расстояние" с использованием несферического приближения составляет ~3966 км
toArray()

Возвращает координаты, представленные в виде массива из двух чисел.

Пример:
var ll = new mmrgl.LngLat(-73.9749, 40.7736);
ll.toArray(); // = [-73.9749, 40.7736]
toBounds(radius)

Возвращает LngLatBounds из координат, расширенных на заданный радиус. Возвращаемый LngLatBounds полностью содержит радиус.

Параметры:
radius:number 
(по умолчанию 0) Расстояние в метрах от координат для расширения границ.

Пример:
var ll = new mmrgl.LngLat(-73.9749, 40.7736);
ll.toBounds(100).toArray(); // = [[-73.97501862141328, 40.77351016847229], [-73.97478137858673, 40.77368983152771]]
toString()

Возвращает координаты, представленные в виде строки.

Пример:
var ll = new mmrgl.LngLat(-73.9749, 40.7736);
ll.toString(); // = "LngLat(-73.9749, 40.7736)"
wrap()

Возвращает новый объект LngLat, долгота которого обернута в диапазон (-180, 180).

Пример:
var ll = new mmrgl.LngLat(286.0251, 40.7736);
var wrapped = ll.wrap();
wrapped.lng; // = -73.9749

LngLatLike

LngLat может быть массивом из двух чисел (долгота и широта), или объектом со свойствами lng и lat или lon и lat.
src/geo/lng_lat.js

Пример:
var v1 = new mmrgl.LngLat(-122.420679, 37.772537);
var v2 = [-122.420679, 37.772537];
var v3 = {lon: -122.420679, lat: 37.772537};

LngLatBounds

Объект LngLatBounds представляет собой границу, определяемую ее юго-западной и северо-восточной точками в долготе и широте.

Если аргументы не предоставлены, создается граница со значением null.

Любой метод MMR GL, принимающий объект LngLatBounds в качестве аргумента или опции, также может принимать массив из двух LngLatLike конструкций и выполнять неявное преобразование. Этот гибкий тип задокументирован как LngLatBoundsLike.

src/geo/lng_lat_bounds.js

Параметры

sw:number  долгота в градусах

ne:number  широта в градусах

static Методы

Название
Описание
convert(input)

Преобразует массив в объект LngLatBounds.

Если передается объект LngLatBounds, функция возвращает его без изменений.

Внутренне функция вызывает LngLat#convert для преобразования массивов в значения LngLat.

Параметры:
input:LngLatBoundsLike 
Массив из двух координат для преобразования или объект LngLatBounds для возврата.

Пример:
var arr = [[-73.9876, 40.7661], [-73.9397, 40.8002]];
var llb = mmrgl.LngLatBounds.convert(arr);
llb;   // = LngLatBounds {_sw: LngLat {lng: -73.9876, lat: 40.7661}, _ne: LngLat {lng: -73.9397, lat: 40.8002}}

instance Методы

Название
Описание
contains(lnglat)

Проверьте, находится ли точка внутри ограничивающего прямоугольника.

Параметры:
lnglat:LngLatLike

Пример:
var llb = new mmrgl.LngLatBounds(
new mmrgl.LngLat(-73.9876, 40.7661),
new mmrgl.LngLat(-73.9397, 40.8002)
);
  
var ll = new mmrgl.LngLat(-73.9567, 40.7789);
  
console.log(llb.contains(ll)); // = true
extend(obj)

Расширьте границы, чтобы включить данный LngLatLike или LngLatBounds

Параметры:
obj:(LngLatLike | LngLatBoundsLike) 
объект для расширения

getCenter()

Возвращает географическую координату, равноудаленную от углов ограничивающего прямоугольника.

Пример:
var llb = new mmrgl.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getCenter(); // = LngLat {lng: -73.96365, lat: 40.78315}
getEast() Возвращает восточный край ограничивающего прямоугольника.
getNorth() Возвращает северный край ограничивающего прямоугольника.
getNorthEast() Возвращает северо-восточный угол ограничивающего прямоугольника.
getNorthWest() Возвращает северо-западный угол ограничивающего прямоугольника.
getSouth() Возвращает южный край ограничивающего прямоугольника.
getSouthEast() Возвращает юго-восточный угол ограничивающего прямоугольника.
getSouthWest() Возвращает юго-западный угол ограничивающего прямоугольника.
getWest() Возвращает западный край ограничивающего прямоугольника.
isEmpty() Проверьте, является ли ограничивающая рамка пустой/нулевой.
setNorthEast(ne)

Установите северо-восточный угол ограничивающего прямоугольника.

Параметры:
ne:LngLatLike у
становите северо-восточный угол ограничивающего прямоугольника

setSouthWest(sw)

Установите юго-западный угол ограничительной рамки

Параметры:
ne:LngLatLike о
бъект, описывающий юго-западный угол ограничивающего прямоугольник

toArray()

Возвращает ограничивающую рамку, представленную в виде массива.

Пример:
var llb = new mmrgl.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.toArray(); // = [[-73.9876, 40.7661], [-73.9397, 40.8002]]
toString()

Возвращает ограничивающую рамку, представленную в виде строки.

Пример:
var llb = new mmrgl.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.toString(); // = "LngLatBounds(LngLat(-73.9876, 40.7661), LngLat(-73.9397, 40.8002))"
Пример:
var sw = new mmrgl.LngLat(-73.9876, 40.7661);
var ne = new mmrgl.LngLat(-73.9397, 40.8002);
var llb = new mmrgl.LngLatBounds(sw, ne);

LngLatBoundsLike

Объект LngLatBounds является массивом из LngLatLike объектов в порядке [sw, ne] или массив чисел в порядке [west, south, east, north].
src/geo/lng_lat_bounds.js

Пример:
var v1 = new mmrgl.LngLatBounds(
new mmrgl.LngLat(-73.9876, 40.7661),
new mmrgl.LngLat(-73.9397, 40.8002)
);
var v2 = new mmrgl.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002])
var v3 = [[-73.9876, 40.7661], [-73.9397, 40.8002]];

Point

Объект Point состоит из x и y, указывает расположение точки на карте 
src/ui/map.js

Пример:
var point = new mmrgl.Point(-77, 38);

PointLike

Объект Point или массив из двух чисел, представляющих координаты экрана x и y в пикселях.
src/ui/map.js

Пример:
var p1 = new mmrgl.Point(-77, 38); // a PointLike which is a Point
var p2 = [-77, 38]; // a PointLike which is an array of two numbers

MercatorCoordinate

MercatorCoordinate объект представляет собой трехмерное положение.

MercatorCoordinate использует веб-проекцию меркатора (EPSG:3857) с немного другими единицами измерения:

  • размер 1 единицы измерения  это ширина проецируемого мира (вместо "метра меркатора").
  • начало координат пространства находится в северо-западном углу, а не в середине.

Пример:

MercatorCoordinate(0, 0, 0) — это северо-западный угол мира меркатора, а MercatorCoordinate(1, 1, 0) - юго-восточный угол. Если вы знакомы с векторными тайлами, может быть полезно представить координатное пространство как тайл 0/0/0 с величиной/масштабом 1.

Z-размерность MercatorCoordinate является конформной. Куб в координатном пространстве меркатора будет отображаться как куб.
src/geo/mercator_coordinate.js

Параметры

x:number  позиция X

y:number  позиция Y

z:number  позиция Z

static Методы

Название
Описание
fromLngLat(lngLatLike, altitude)

Спроецируйте LngLat на MercatorCoordinate.

Параметры:
lngLatLike:LngLatLike 
Место для проекта.
altitude:number 
(по умолчанию 0) Высота в метрах позиции.

Пример:
var coord = mmrgl.MercatorCoordinate.fromLngLat({ lng: 0, lat: 0}, 0);
coord; // MercatorCoordinate(0.5, 0.5, 0)

instance Методы

Название
Описание
meterInMercatorCoordinateUnits()

Возвращает расстояние в 1 метр в MercatorCoordinate единицах на данной широте.

Для координат в реальных единицах измерения, использующих метры, это, естественно, обеспечивает масштаб для преобразования в MercatorCoordinate

toAltitude()

Возвращает высоту в метрах от координаты.

Пример:
var coord = new mmrgl.MercatorCoordinate(0, 0, 0.02);
coord.toAltitude(); // 6914.281956295339
toLngLat()

Возвращает LngLat для координаты.

Пример:
var coord = new mmrgl.MercatorCoordinate(0.5, 0.5, 0);
var lngLat = coord.toLngLat(); // LngLat(0, 0)
Пример:
var nullIsland = new mmrgl.MercatorCoordinate(0.5, 0.5, 0);

EdgeInsets

Объект EdgeInset представляет собой заполнение экрана, примененное к краям вьюпорта (viewport). Это смещает видимый центр или точку схода карты. Это полезно для добавления плавающих элементов пользовательского интерфейса поверх карты и смещения точки схода при изменении размера элементов пользовательского интерфейса.
src/geo/edge_insets.js

Параметры

top:number  по умолчанию 0

bottom:number  по умолчанию 0

left:number  по умолчанию 0

right:number  по умолчанию 0

static Методы

Название
Описание
getCenter(width, height)

Служебный метод, который вычисляет новый центр приложения или точку схода после применения вставок. В пикселях и с верхним левым значением (0.0) и +y вниз.

Параметры:
width:number ш
ирина карты в пикселях.
height: number в
ысота карты в пикселях.

interpolate(start, target, t)

Интерполирует вставку на месте. При этом сохраняется текущее значение вставки для любой вставки, отсутствующей в target.

Параметры:
start: (PaddingOptions | EdgeInsets) 
параметры отступов.
target:PaddingOptions 
параметры отступов для target.
t:number 
переменная интерполяции.

toJSON() Возвращает текущее состояние в виде json, что полезно, если вы хотите иметь представление вставки только для чтения.
Was this information helpful?