html5 canvas: сервер или клиент быстро преобразует широту в значения пикселей - PullRequest
1 голос
/ 16 июля 2010

Я работаю над некоторыми картами и анимациями, используя элемент холста html5 (пример , видимый здесь .) Я хотел бы иметь возможность эффективно генерировать пиксельные строки строк (x1, y1, x2, y2) в идеале от PostGIS, исходя из геометрии холста. То есть в псевдогойсоне:

"Coordinates":"[[-122.0, 35.0], [-121.0, 36.0]]"

может выводиться в случае, если функция передала параметр ширины холста 100px:

"Pixels":"[[30, 40],[50,60]]"

Я хотел бы в конечном итоге включить URL-адреса, такие как:

www.example.com/canvas_size:200/box_width:3-miles/center_point:lon|lat

поэтому я предполагаю, что это должно быть сделано динамически. Как другие люди занимались такими вещами? Мне пришло в голову, что, возможно, следует рассматривать весь мир как холст размером 20 000 000 пикселей, сохранять предварительно преобразованные данные в пиксельной форме, а затем просто компенсировать их арифметикой на стороне клиента. Любые предложения приветствуются, в том числе подходы далеко от моих первых мыслей. Если кто-то знает, как это делается в Картахене или как это делается, был бы признателен за указатель на библиотеку или одну или две функции.

1 Ответ

2 голосов
/ 12 октября 2010

Попробуйте этот код, где пиксели будут адаптироваться к высоте и ширине холста:

function getPoint(latitude, longitude, canvas_width, canvas_height) {
            var obj = {};
            obj.x = (latitude * canvas_height / 180.0) + (canvas_height / 2);
            obj.y = (longitude * canvas_width / 360.0) + (canvas_width / 2);
            return obj;
        }
...