Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Реализация карты: как связать широту-долготу с координатной плоскостью? (https://javascript.ru/forum/misc/74636-realizaciya-karty-kak-svyazat-shirotu-dolgotu-s-koordinatnojj-ploskostyu.html)

NoobFindAnswer 25.07.2018 23:57

Реализация карты: как связать широту-долготу с координатной плоскостью?
 
Здравствуйте. У меня есть карта России(svg). Не знаю еще как точно буду реализовывать, возможно с помощью canvas'a. Но суть в том, что мне нужно отмечать на ней точки, имея входные данные широту и долготу. То есть у меня есть какие-то геокоординаты мне нужно пропустить их через какую-то функцию и получить их координаты xy для того, чтобы разместить эту точку на плоскости. Понимаю, что тут не все просто и возможно потребуется сервисы какие-то подключать. Я не знаю еще какие технологии буду использовать, поэтому если есть готовые решение, то подскажите. Либо же в какую сторону копать, может кто сталкивался с таким? Буду рад любому совету. Заранее спасибо

Alexandroppolus 26.07.2018 00:28

NoobFindAnswer,
может, просто использовать какие-нибудь карты? яндексовые, гугловые, 2gis, mapbox. ...
там по координатам просто маркеры ставить надо, только и всего.

Или у тебя там какая-то проекция, и надо на ней всё делать?

NoobFindAnswer 26.07.2018 01:05

Нет, не проекция. Вообще задача такова:
взять отдельно карту России и иметь возможность ставить на неё точки, при нажатии на которые всплывает окно с фото и данными. Обычные карты ведь не подлежат такой кастомизации? Да еще и дизайн самой карты нужен свой

NoobFindAnswer 26.07.2018 01:46

Для самого скрипта. Есть база, она обновляется периодически. Там лежит широта и долгота этих точек. При загрузке страницы они должны спроецироваться на эту карту, ну и обладать интерактивностью, которую я описал

NoobFindAnswer 26.07.2018 01:48

Вообще, суть даже не в том, что они делают, кто их ставит и как это выглядит. А в этом: как зная широту и долготу, мне верно разместить их на карте. Ну или если есть какие-то карты, которые имеют широкие возможности кастомизации, то тоже было бы неплохо

Alexandroppolus 26.07.2018 01:56

NoobFindAnswer,
То что ты описал - типовая задача карточных движков, о которых я говорил. Прям вот настолько типовая, что банальней не придумаешь.
Точки - это маркеры, по ним можно кликать, всплывают балуны с контентом... Для размещения маркера просто указываешь широту и долготу как есть.

MallSerg 26.07.2018 02:17

Это называется полярная система координат тынц

NoobFindAnswer 26.07.2018 02:21

Цитата:

Сообщение от Alexandroppolus (Сообщение 491006)
NoobFindAnswer,
То что ты описал - типовая задача карточных движков, о которых я говорил. Прям вот настолько типовая, что банальней не придумаешь.
Точки - это маркеры, по ним можно кликать, всплывают балуны с контентом... Для размещения маркера просто указываешь широту и долготу как есть.

Что-то я сейчас погуглил мануал движка яндекса, походу так и есть, спасибо) А отдельно карту страны там можно вытащить, не знаешь?

NoobFindAnswer 26.07.2018 02:40

Цитата:

Сообщение от Rise (Сообщение 491009)
Посмею предположить, что если узнать где-то реальные координаты (широта и долгота) четырех точек, соответствующих границам прямоугольника карты, конечно если карта не совсем примерная, то относительно их рассчитать местоположение маркера дело техники.

Допустим за 0, 0 можно взять по широте долготе двух крайних точек страны. Да, тогда это дело техники, если бы земля была сферическая я бы даже посидел бы, формулу повыводил(хотя такие есть явно, но ради интереса). Но она не такая, а карта должна быть очень точной.

NoobFindAnswer 26.07.2018 02:43

Цитата:

Сообщение от Rise (Сообщение 491009)
Широта и долгота на прямоугольной плоскости это оси y и x, или нет?

Типа того, но они изменяются по разному. Единичный отрезок широты имеет больший размер чем долготы(это я условно, на самом деле хз как на самом деле). Тут нужно проецировать, не все так просто

Alexandroppolus 26.07.2018 02:53

Цитата:

Сообщение от NoobFindAnswer
Единичный отрезок широты имеет больший размер чем долготы(это я условно, на самом деле хз как на самом деле). Тут нужно проецировать, не все так просто

Все проще некуда. Вблизи экватора отрезки одинаковы по длине, но чем ближе к полюсам, тем меньше круги-параллели, и как следствие, короче отрезки долготы. На широте 60 гр. отрезок долготы меньше в два раза. На глобусе это все можно легко увидеть.
(Сказано из предположения, что Земля - шар. По факту - немного сплющена)

NoobFindAnswer 26.07.2018 03:06

Цитата:

Сообщение от Alexandroppolus (Сообщение 491013)
Все проще некуда. Вблизи экватора отрезки одинаковы по длине, но чем ближе к полюсам, тем меньше круги-параллели, и как следствие, короче отрезки долготы. На широте 60 гр. отрезок долготы меньше в два раза. На глобусе это все можно легко увидеть.
(Сказано из предположения, что Земля - шар. По факту - немного сплющена)

В принципе да, немного математики и профит. Вернусь к этому, если не получится с движком яндекса. Просто сроки немножко горят, поэтому не хочу пойти по заведому не тому пути. Если не сложно я еще раз опишу задачу, можешь пожалуйста точно сказать, если я буду это делать на яндекс движке у меня получится все это или нет, боюсь время зря потратить. Мне нужно на сайт встроить карту только России. При загрузке страницы я на вход скрипту даю массив объектов примерно с такими свойствами: широта, долгота, фотография, описания. На выходе получаю карту(по дизайну настроенную мною), с точками(не яндексовскими маркерами, а моими кастомными точечками) при нажатии на которые всплывает окно с фоткой и описанием(теми самыми, которые я подал на вход). Я вот сейчас смотрю, не могу найти изменение внешнего вида, изменить мне надо сильно, к сожалению, вид яндекса совсем не формат. Может другой какой-то движок посоветуете или я просто плохо изучил? Заранее спасибо.

NoobFindAnswer 26.07.2018 03:08

Цитата:

Сообщение от Rise (Сообщение 491014)
Это как? Насколько мне известно там одинаковая единица измерения, в углах? Да хоть в попугаях, что это меняет? Вводные координаты маркеров будут в тех же попугаях. Перевести попугаи в пиксели и всё.

я про то, что если на экваторе идти строго на запад, то долгота увеличивается медленнее, чем если я буду около полюса топать строго на запад. у самого самого полюса я могу пройтись по всем меридианам, за минуту допустим. по экватору не получится такого фокуса. А на плоскости хоть у меня будет y=1000, хоть -1000, если я буду двигаться по прямой параллельной oX, то мой шаг будет одинаковый

Alexandroppolus 26.07.2018 16:05

Цитата:

Сообщение от NoobFindAnswer
На выходе получаю карту(по дизайну настроенную мною), с точками(не яндексовскими маркерами, а моими кастомными точечками)

некоторые карточные движки допускают произвольную стилизацию (например гугловские карты, вроде мапбокс, может ещё какие).
ну а точки (маркеры) стилизуются абсолютно во всех движках


Часовой пояс GMT +3, время: 02:36.