@sumrakx

Как получить размер слоя в метрах?

Всем привет. Есть слой в системе координат L.CRS.Simple на карте. Слой необходимо как-то изменить в метрах
[если подсчитать размер слоя по ширине получаеться 14900 км что ну очень много]
. То есть допустим есть известные данные сколько метров должна быть ширина и высота
"Width": 0.008863744, "Height": 0.008372224
, в метрах. Так же известен размер пикселя в метрах
6.4e-8
. Я могу как-то использовать это для расчета?

Пытался использовать bounds для привязки слоя к необходимой широте и долготе, но выводит только маленький кусочек карты. Нужно ли тут вообще использовать bounds или тут нужно использовать что-то другое?
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
RomanDillerNsk
@RomanDillerNsk
JavaScript
sumrakx, сначала нужно систему координат поменять. Если вы используете подложку например гугла, и на нее накладываете слой с картинкой, например imageOverlay, то у этого слоя можно получить:

let one = tile.getBounds()._northEast;
        let two = tile.getBounds()._southWest;


Это будут координаты углов - северо-запад, и юго-восток, нехитрым способом получите, например северо-восток, а потом можно сделать например вот так:

getWidthAndHeight(southWest, southEast, northEast) { // получаем длины вертикальной и горизонтальной линии

		this.points = [

			new L.LatLng(southWest[0], southWest[1]),
			new L.LatLng(southEast[0], southEast[1]),
			new L.LatLng(northEast[0], northEast[1])			

		];

		this.data.width = +(this.points[0].distanceTo(this.points[1])).toFixed(0);
		this.data.height = +(this.points[1].distanceTo(this.points[2])).toFixed(0);

	}


высота и ширина в метрах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы