OSM + leaflet

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
AgentSmith
Новоприбывший
Сообщения: 5
Зарегистрирован: 11 ноя 2019, 11:06
Репутация: 0
Откуда: Красноярск

OSM + leaflet

Сообщение AgentSmith » 12 ноя 2019, 14:09

Добрый день!
Подскажите пожалуйста как можно реализовать :
нужно от заданной точки нарисовать сектор излучения, в 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;?>);
var1 и var2 это координаты точки на карте(широта, долгота), var3 это азимут, q1 это расстояние излучения
Получается здесь мы берем координаты, если азимут пришел берем его, если нет - то считаем его нулём, -60,50,40,30,20,10,0,+10,+20,+30,+40,+50,+60 и т.д. это отклонение каждой точки
т.е. всего 3 сектора получается по 120 градусов каждый (всего 360)
Вложения
2.jpeg
2.jpeg (149.56 КБ) 5318 просмотров
1.jpeg
1.jpeg (148.66 КБ) 5319 просмотров
1.jpeg
1.jpeg (148.66 КБ) 5322 просмотра
Последний раз редактировалось AgentSmith 12 ноя 2019, 14:13, всего редактировалось 2 раза.

AgentSmith
Новоприбывший
Сообщения: 5
Зарегистрирован: 11 ноя 2019, 11:06
Репутация: 0
Откуда: Красноярск

Re: OSM + leaflet

Сообщение AgentSmith » 12 ноя 2019, 14:10

берем расстояние и накладываем на карту.
3.jpeg
3.jpeg (171.49 КБ) 5321 просмотр
Как это реализовать в OSM + leaflet?
Точку поставил на карту, а как сектор нарисовать не пойму
html.png
html.png (66.11 КБ) 5321 просмотр
Я ещё чайник, так что не критикуйте сильно :)

trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: OSM + leaflet

Сообщение trir » 12 ноя 2019, 14:13

а как ты расстояние считаешь? код выложи

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: OSM + leaflet

Сообщение freeExec » 12 ноя 2019, 14:58

На Яндексе как рисовал?

AgentSmith
Новоприбывший
Сообщения: 5
Зарегистрирован: 11 ноя 2019, 11:06
Репутация: 0
Откуда: Красноярск

Re: OSM + leaflet

Сообщение AgentSmith » 12 ноя 2019, 15:04

trir писал(а):
12 ноя 2019, 14:13
а как ты расстояние считаешь? код выложи
Расстояние у меня задается вручную, по умолчанию 2000 метров. Код блокирует сайт, не дает отправить, пишет что похоже на спам, поэтому скриншотом выложил

trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: OSM + leaflet

Сообщение trir » 12 ноя 2019, 15:13

Код блокирует сайт, не дает отправить
приложи архив

AgentSmith
Новоприбывший
Сообщения: 5
Зарегистрирован: 11 ноя 2019, 11:06
Репутация: 0
Откуда: Красноярск

Re: OSM + leaflet

Сообщение AgentSmith » 12 ноя 2019, 15:36

приложи архив
yandex.php это соответственно яндекс карты, osm.php это то что я пытаюсь в openstreetmap сделать
php.rar
(5.09 КБ) 352 скачивания

trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: OSM + leaflet

Сообщение trir » 13 ноя 2019, 09:30

рисуй полигон, что бы расстояния превратить в координаты нужно решить геодезическую задачу, можно написать свою или использовать готовую реализацию:
https://github.com/proj4js/proj4js
https://github.com/mapbox/leaflet-geodesy
https://github.com/chrisveness/geodesy

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя