Выбор карты
Первым делом необходимо выбрать карту, а точнее картографическую проекцию.
Картографические проекции - это математические способы изображения на плоскости поверхности земного эллипсоида или шара.
Проекции различают по характеру изображения:
- равноугольные,
- равновеликие,
- произвольные;
Цилиндрические |
Конические |
Азимутальные |
Поликонические |
Псевдоконические |
Псевдоцилиндрические: |
Преобразование координат
Если посмотреть на вышеприведенную схему, то видно, что величина долготы обратно-пропорциональна модулю значения широты. Т.е. при увеличении модуля широты уменьшается долгота. А величина широты, прямо-пропорциональна модулю её значению. Т.е. чем больше модуль значения, тем больше величина.
Из этого следует что у нас есть две пропорции, зависящие от значения широты.
- PLEN - Пропорция изменения величины долготы
- PDFE - Пропорция изменения величины широты
---------|--------|------- Latitude | PLEN | PDFE ---------|--------|------- 00 | 1.0000 | 0.0000 05 | 0.9986 | 0.0620 10 | 0.9954 | 0.1240 15 | 0.9900 | 0.1860 20 | 0.9822 | 0.2480 25 | 0.9730 | 0.3100 30 | 0.9600 | 0.3720 35 | 0.9427 | 0.4340 40 | 0.9216 | 0.4958 45 | 0.8962 | 0.5571 50 | 0.8679 | 0.6176 55 | 0.8350 | 0.6769 60 | 0.7986 | 0.7346 65 | 0.7597 | 0.7903 70 | 0.7186 | 0.8435 75 | 0.6732 | 0.8936 80 | 0.6213 | 0.9394 85 | 0.5722 | 0.9761 90 | 0.5322 | 1.000
ru.as3coder.map.projection.Robinson.as |
В конструктор экземпляра нужно передать ссылку на экземпляр карты Робинсона класса flash.display.DisplayObject. При инициализации автоматически заполнятся массивы с пропорциями, после чего будет доступен метод преобразования координат export c параметрами latitude и longitude, который вернет экземпляр класса flash.geom.Point с координатами для указанного в конструкторе экземпляра карты.
var robinson:Robinson = new Robinson(map_sprite); var point:Point = robinson.convert(55.7558, 37.6176);
География посетителей
В качестве примера я обещал привести географию посещения моего блога на карте мира.
Использованы данные на 11 марта 2010 года.
на самом деле лучшим вариантом было бы использование проекции Меркатора
ОтветитьУдалитьПроекция Меркатора имеет простейший алгоритм преобразования координат, поэтому она наиболее популярна :)
ОтветитьУдалитьспасибо, ценные обобщения
ОтветитьУдалитьхотя, меркаторская (цилиндрическая) проекция и удобнее и нагляднее ( имхо, канеш)
ps
ОтветитьУдалитья такую штуку(отмечать посетителей на глобусе), начинал делать, да бросил (не понятно мне кто откуда зашел и как это следить), но заготовка осталась http://silin.su/AS3/zod/update/bin
глянь, может сгодится на что
Спасибо :) Я тоже начинал делать 3D-глобус, но позже бросил в связи с низкой эффективностью. Оказалось, что гораздо удобнее смотреть данные на плоскости :) Для того, чтобы легко вести статистику посещений вашего сайта можно воспользоваться Google Analytics или Яндекс.Метрика
ОтветитьУдалитьА расскажите пожалуйста, каким сервисом вы пользуетесь, для получения города и его географических координат по IP адресу.
ОтветитьУдалитьЕсть отличный сервис Google Analytics. Там есть раздел "География посещений" с экспортом в .xml-файл. В полученном файле будет список городов с географическими координатами, из которых были зафиксированы посещения вашего сайта.
ОтветитьУдалитьЭх, я думал, подскажите какой-нибудь real-time сервис :(
ОтветитьУдалитьвсе равно спасибо.