Создание карты раскрашенных стран с использованием статистики страны
Я хочу создать изображение в формате PNG (или GIF) с геополитической картой стран, в которой цвет каждой страны установлен в соответствии со статистикой некоторых стран (например, в "США" есть n, в "Канаде" есть m и т. Д.).
Нечто похожее на LogToMap, но нет необходимости генерировать его динамически и / или быть интерактивным. Источник данных - внешний файл.
3 ответа
Просто потому, что я думаю, что вы, вероятно, имеете дело с данными типа журнала, я, вероятно, пойду с R и, вероятно, ggplot2
библиотека.
Эти два ресурса должны помочь вам начать:
ggplot2
тренировки (прокрутите вниз до "Набор данных игроков")- Карты с ggplot2
Конечно, есть также QGIS и GRASS GIS в полномасштабной области ГИС с открытым исходным кодом. Я не принимаю во внимание ArcMap от ESRI, основываясь только на стоимости.
Предупреждение: Google Map Charts не распознает ВСЕ страны из упомянутого списка ISO, поэтому его полезность будет зависеть от того, для каких стран вы хотите отобразить данные. Я не нашел однозначного списка, который ему не нравится, но я работаю над ним по минутам на основе фиктивных данных (залил базу данных записью для КАЖДОЙ страны в списке ISO и отправил ее в API несколько за один раз, чтобы проверить, какие из них не используются).
Наконец-то я воспользовался онлайновой картой Chart из Google Chart Tools / Image Charts (иначе Chart API). Вы генерируете URL как этот (разделенный для лучшей читаемости):
- http://chart.apis.google.com/chart? cht = map & chs = 400x242 & chld = KH | JP | MN | IR | SA | KR | TR | NP | JO | AE | TH | PH | HK | MY | CN | KG | OM | VN | LK | ID | TW | KP | LB | PK | SG | IN | IL | SY | BD & chd = t: 2,85,1,3,4,3,16,1,1,2,18,14,8,6,70,1, 1,9,2,16,15,1,1,3,14,109,42,1,1 & chds = 1,109 & chco = CCCCCC, FF0000,000000
что приводит к следующему изображению:
Часть данных URL была сгенерирована с использованием скрипта Perl, который использовал country2code
подпрограмма из http://p3rl.org/Locale::Country для преобразования из названий стран в коды ISO 3166-1-alpha-2, необходимые для API Map Chart.
Существует также визуализация: географическая карта из Google Chart Tools / Interactive Charts (также известный как API визуализации), где вы пишете JavaScript для создания интерактивной Flash-карты (SWF).