#javascript #geolocation #latitude-longitude
#javascript #геолокация #широта-долгота
Вопрос:
Я хочу создать визуализацию данных, подобную этой:
… но для всего земного шара. Размер холста будет произвольным, но его не нужно будет изменять с помощью браузера (я установлю ширину и высоту, прежде чем начну рисовать точки). Мне нужно найти способ преобразования координат широты и долготы в точки на холсте. Кто-нибудь знает, как это сделать?
Ответ №1:
Прежде всего, вам нужно выбрать проекцию. Затем вы можете использовать правильную формулу. Или вы можете просто использовать существующее решение, например, proj4js. Это JS-порт известной утилиты proj для работы с различными проекциями.
Я бы рекомендовал использовать проекцию Миллера для визуализации по всему земному шару. Вы можете найти формулы здесь.
Комментарии:
1. Вы можете отображать точки широты / широты на сфере, отображаемой в окне просмотра canvas, без необходимости проекции.
2. Я вас не понимаю. Что вы подразумеваете под «не требуется проекция». В любом случае вам нужны некоторые формулы для преобразования точек из полярных координат в 3d в координаты в декартовом 2d-пространстве.
3. Если вы визуализируете точки на сфере, а затем визуализируете эту 3D-сферу, вам не нужна проекция. Если вы визуализируете широту / ширину на плоской 2d-поверхности, вам нужна проекция. Да, вам нужно будет преобразовать широту / широту в декартову для отображения canvas graphis (см. Геодезические в ECEF). webglearth.org