Построение на Javascript Canvas Lat Lng

#javascript #geolocation #latitude-longitude

#javascript #геолокация #широта-долгота

Вопрос:

Я хочу создать визуализацию данных, подобную этой:

введите описание изображения здесь

… но для всего земного шара. Размер холста будет произвольным, но его не нужно будет изменять с помощью браузера (я установлю ширину и высоту, прежде чем начну рисовать точки). Мне нужно найти способ преобразования координат широты и долготы в точки на холсте. Кто-нибудь знает, как это сделать?

Ответ №1:

Прежде всего, вам нужно выбрать проекцию. Затем вы можете использовать правильную формулу. Или вы можете просто использовать существующее решение, например, proj4js. Это JS-порт известной утилиты proj для работы с различными проекциями.

Я бы рекомендовал использовать проекцию Миллера для визуализации по всему земному шару. Вы можете найти формулы здесь.

Комментарии:

1. Вы можете отображать точки широты / широты на сфере, отображаемой в окне просмотра canvas, без необходимости проекции.

2. Я вас не понимаю. Что вы подразумеваете под «не требуется проекция». В любом случае вам нужны некоторые формулы для преобразования точек из полярных координат в 3d в координаты в декартовом 2d-пространстве.

3. Если вы визуализируете точки на сфере, а затем визуализируете эту 3D-сферу, вам не нужна проекция. Если вы визуализируете широту / ширину на плоской 2d-поверхности, вам нужна проекция. Да, вам нужно будет преобразовать широту / широту в декартову для отображения canvas graphis (см. Геодезические в ECEF). webglearth.org