OSM + leaflet
Добавлено: 12 ноя 2019, 14:09
Добрый день!
Подскажите пожалуйста как можно реализовать :
нужно от заданной точки нарисовать сектор излучения, в Yandex картах я это реализовал, но сейчас т.к. сделали платным api, нельзя искать адреса на созданной карте.
Хочу перейти на OpenStreetMaps, использую для данных mysql, реализовано на php и javascript
var1 и var2 это координаты точки на карте(широта, долгота), var3 это азимут, q1 это расстояние излучения
Получается здесь мы берем координаты, если азимут пришел берем его, если нет - то считаем его нулём, -60,50,40,30,20,10,0,+10,+20,+30,+40,+50,+60 и т.д. это отклонение каждой точки
т.е. всего 3 сектора получается по 120 градусов каждый (всего 360)
Подскажите пожалуйста как можно реализовать :
нужно от заданной точки нарисовать сектор излучения, в Yandex картах я это реализовал, но сейчас т.к. сделали платным api, нельзя искать адреса на созданной карте.
Хочу перейти на OpenStreetMaps, использую для данных mysql, реализовано на php и javascript
Код: Выделить всё
Point1 = coordSystem.solveDirectProblem([<?php echo $_POST["var1"]; ?>, <?php echo $_POST["var2"]; ?>], [Math.cos((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-60)*Math.PI/180), Math.sin((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-60)*Math.PI/180)], <?php echo $q1;?>);
Point2 = coordSystem.solveDirectProblem([<?php echo $_POST["var1"]; ?>, <?php echo $_POST["var2"]; ?>], [Math.cos((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-50)*Math.PI/180), Math.sin((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-50)*Math.PI/180)], <?php echo $q1;?>);
Point3 = coordSystem.solveDirectProblem([<?php echo $_POST["var1"]; ?>, <?php echo $_POST["var2"]; ?>], [Math.cos((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-40)*Math.PI/180), Math.sin((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-40)*Math.PI/180)], <?php echo $q1;?>);
Point4 = coordSystem.solveDirectProblem([<?php echo $_POST["var1"]; ?>, <?php echo $_POST["var2"]; ?>], [Math.cos((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-30)*Math.PI/180), Math.sin((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-30)*Math.PI/180)], <?php echo $q1;?>);
Point5 = coordSystem.solveDirectProblem([<?php echo $_POST["var1"]; ?>, <?php echo $_POST["var2"]; ?>], [Math.cos((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-20)*Math.PI/180), Math.sin((<?php if (empty($_POST["var3"])) { echo 0;} else { echo $_POST["var3"];};?>-20)*Math.PI/180)], <?php echo $q1;?>);
Получается здесь мы берем координаты, если азимут пришел берем его, если нет - то считаем его нулём, -60,50,40,30,20,10,0,+10,+20,+30,+40,+50,+60 и т.д. это отклонение каждой точки
т.е. всего 3 сектора получается по 120 градусов каждый (всего 360)