Коллеги, доброго времени суток.
Итак задача: разбить полигон на равные сектора!
В продолжении темы
Как собрать массив из координат выделенной области... появился еще один вопрос. Большое спасибо товарищу
@serginhold за помощь и мое вразумение))))))))))
Итак! Строим карте на leaflet. На нем же выделяем область, рисуем самое простое прямоугольник - полигон, у нас есть углы его в координатах:
this.rectangle = L.rectangle(bounds, this.options).addTo(this.map); // строим прямоугольник - полигон
let coordsConners = this.rectangle.getLatLngs()[0]; // координаты углов
Далее мы получаем длины горизонтальной и вертикальной линий:
getLines(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.rectangleData.horizont = +(this.points[0].distanceTo(this.points[1])).toFixed(0);
this.rectangleData.vertical = +(this.points[1].distanceTo(this.points[2])).toFixed(0);
}
Тут по сути все просто, southWest, southEast, northEast мы берем из coordsConners. this.rectangleData.horizont и this.rectangleData.vertical это собственно длины линий в метрах. Итого, у нас есть координаты углов и длины линий.
Как предложил вчера, товарищ
@serginhold (еще раз спасибо), и потом, когда я перестал тупить, я сделал:
let x_min = coordsConners[1].lat;
let x_max = coordsConners[3].lat;
let y_min = coordsConners[1].lng;
let y_max = coordsConners[3].lng;
let x = 0;
let y = 0;
let count = 100;
for (let i = 0; i < count; i++) {
x = Math.random() * (x_max - x_min) + x_min;
y = Math.random() * (y_max - y_min) + y_min;
new L.marker([x, y]).addTo(this.map);
}
Просто рандомно ставим маркеры на карту. Это соответственно не верно. Потому что они ставятся рандомно. Необходимо разбить данный прямоугольник на равные части. И тут я прошу помощи, может кто сталкивался или просто подскажет. Есть длины и координаты, как разбить прямоугольник?
p.s. ну не разбить точнее, а просто нарисовать новые, маленькие. что бы высота и ширина у них были не более установленного из config числа метров.
Заранее благодарю.