Комментарии 40
Мне нравится.
-3
Спасибо за статью, очень познавательно.
-1
Библиотека потрясающая. Что вытворяет с её помощью сам Майк, можно посмотреть здесь. Там не обычные примеры, а полноценные работы для The New York Times.
+3
Ага, уровень работ Майка это к чему нужно стремиться. У Jason Davies тоже есть интересные работы. Ну вообще наиболее интересные примеры Майк собирает в галерею.
+3
Круто, совсем недавно такое было невозможно.
0
к сожалению найти геокодер вроде этого gpsvisualizer.com/geocoder, чтобы он понимал русский язык- я не смог (может кто знает?)
Пользовался API Google Maps, регистрироваться не надо.
Пример: gdeteplee.ru/
Получение данных внизу файла gdeteplee.ru/js/script.js?0.1.9, объект Map, аттрибут Map.vr.geocoder. В методе Map.add() как раз получаю координаты по адресу.
Все что нужно, это подключить js файл:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
+1
Это понятно, но я имел ввиду уже готовый сервис, причём с пакетной обработкой данных, а то что API Google/Yandex Maps такую возможность предоставляют, при наличии прямых рук, я догадывался =).
0
Вы вон сколько вещей сделали, написать пару INPUTов с парой строчек JavaScript навряд ли сильно Вас затруднит =)
0
к сожалению найти геокодер вроде этого gpsvisualizer.com/geocoder, чтобы он понимал русский язык- я не смог (может кто знает?), а лезть в API Яндекс.Карт не хотелось, тем более что список маленький. Хорошо бы они сами колдунчик такой сделали, ну да ладно, отвлекся я.
Можно было использовать Nominatim . Понимает русские адреса, также умеет отдавать границы регионов в svg (kml, geojson, wkt), что сильно упростило бы задачу. Пример
0
чур тапками не кидаться, что такое getjson?
0
geojson же. The GeoJSON Format Specification
0
Тег <acronym> без расшифровки — зло.
+2
А я-то на нем минуту мышку держал.
0
А это интересно, ведь расшифровка была, сейчас заменил на аналогичный
<abbr>
в соответствии с HTML5 — теперь всё работает. Надо бы донести как-то информацию об этой фиче до НЛО. Видимо никто особо не заморачивается на столько, чтоб аббревиатуры расшифровывать =)0
«Пицца против Суши» на карте России — bl.ocks.org/SLR436/5693283
0
А зачем динамически отрисовывать карту каждый раз из JSON’а? Почему не сохранить в SVG и раскрашивать по необходимости в стилях?
0
Вы можете сохранить SVG и раскрашивать его с помощью CSS, или вообще руками в Inkscape, если вам так угодно. Все (или почти все) SVG карты нашей страны на wkimedia сделаны именно таким образом. Если вы откроете код некоторых, то увидите какой там зоопарк и ужаснётесь. Именно поэтому здесь я показал как сделать то, что Вам нужно, а не разбираться почему часть карты отрисована через
<path>
, другая через <polygon>
, третья ещё как-то. Это раз. Во-вторых динамическая отрисовка позволяет менять масштаб, вид проекции и много ещё чего. Но конечно же всё зависит от задач, стоящих перед вами, и вы вольны выбирать удобные вам методы.0
не пробовали сделать карту с динамическим разделением имеющихся данных с помощью d3.quantsize или что-то подобное? (как вот в этом примере — bl.ocks.org/mbostock/4060606).
я пробовал тоже построить такую карту для российских данных (рабочий пример вот — bl.ocks.org/quantviews/raw/ed7a710a4e81cf7a910e/), там используется модифицированная легенда тоже на основе одного из примеров Майка
я пробовал тоже построить такую карту для российских данных (рабочий пример вот — bl.ocks.org/quantviews/raw/ed7a710a4e81cf7a910e/), там используется модифицированная легенда тоже на основе одного из примеров Майка
0
Quantize не пробовал, думаю это целесообразно при большом количестве пороговых значений, хотя кому как нравится. Легенда у вас выглядит классно. И поделитесь пожалуйста неужатым GeoJSON'ом раз у вас есть границы Ингушетии.
0
я хотел сделать сделать шаблон для быстрого отрисовывания любых данных — как раз в статистических целях. Для публикации, конечно, надежнее скорретировать границы руками, в пользу более «круглых» значений.
Вот несжатый GeoJSON (26 мб) — drive.google.com/folderview?id=0BwmSbblXaJ73OGdKS3ZUYU9UeU0&usp=sharing
Исходный shp я также брал с gis-lab.info, но там были немного другие файлы (разные файлы для федеральных округов/ субъектов РФ/ муниципальных образований). Проблем с кодировками вроде тоже не возникло.
Вот несжатый GeoJSON (26 мб) — drive.google.com/folderview?id=0BwmSbblXaJ73OGdKS3ZUYU9UeU0&usp=sharing
Исходный shp я также брал с gis-lab.info, но там были немного другие файлы (разные файлы для федеральных округов/ субъектов РФ/ муниципальных образований). Проблем с кодировками вроде тоже не возникло.
0
Спасибо за файл, а по поводу шаблона, что-то путное выйдет только в случае одинаковой структуры данных, иначе не вижу смысла. Например, регулярный отчёт какой-нибудь. В остальных случаях проще переписать пару строк простого кода, чем копаться в сложном, добавляя «ещё один», не предусмотренный ранее вариант. Для всевозможных чартов есть вот такая надстройка над d3: nvd3.
0
согласен, что для типовых графиков лучше использовать готовые надстройки над d3. в данном случае речь как раз идет о карте РФ и разных данных по субъектам РФ от Росстата. Сейчас карты для рабочего анализа я обычно рисую в R.
0
я с Shiny эксперементировал и сделал некоторые рабочие приложения по интерактивной визуализации данных больших датасетов, но в локальном режиме, для собственных нужд. Сейчас RStudio в рамках бета-тестирования дает возможность публиковать приложения Shiny на их серверах бесплатно, но сам еще не пробовал работу c RStudio Server.
Я хотел написать статьи по R для хабра, так как похоже, многим эта тема интересна — но так как не ит-шник, то чувствую неуверенно, что могу сморозить какую-нибудь глупость. Надо это преодолеть :) кое-что публикую в блоге (http://quantviews.blogspot.ru/), включая коды анализа, но описания там не-технические (кое-что про статистику ДТП, меня эта тема тоже интересует).
Кстати, еще один интересный развивающийся проект — rCharts дает возможность публиковать интерактивные графики на основе надстроек d3 (polyscharts, nvd3, morris и другие) прямо из R. Он еще в процессе разработки, но в рабочем состоянии.
Я хотел написать статьи по R для хабра, так как похоже, многим эта тема интересна — но так как не ит-шник, то чувствую неуверенно, что могу сморозить какую-нибудь глупость. Надо это преодолеть :) кое-что публикую в блоге (http://quantviews.blogspot.ru/), включая коды анализа, но описания там не-технические (кое-что про статистику ДТП, меня эта тема тоже интересует).
Кстати, еще один интересный развивающийся проект — rCharts дает возможность публиковать интерактивные графики на основе надстроек d3 (polyscharts, nvd3, morris и другие) прямо из R. Он еще в процессе разработки, но в рабочем состоянии.
0
и при построении карты на этих данных, наверно, имеет смысл их пронормировать на население или количество зарегестрированных ТС. Иначе получается, что данные отражают разницу в регионах, а не в показателях смертности
0
Всё ок, но про шифровку я ничего не понял) Какие еще болгарские кодировки… ну да ладно.
Есть пара штук, которые возможно будут полезны:
Генерализованные слои границ субъектов РФ: gis-lab.info/qa/rusbounds-rosreestr-gen.html
Границы административно-территориального деления РФ из OpenStreetMap: gis-lab.info/qa/osm-adm.html
Есть пара штук, которые возможно будут полезны:
Генерализованные слои границ субъектов РФ: gis-lab.info/qa/rusbounds-rosreestr-gen.html
Границы административно-территориального деления РФ из OpenStreetMap: gis-lab.info/qa/osm-adm.html
0
Про шифровку я тоже до сих пор не понимаю, что это было, пользовался вот этой картой Albers-Siberia. А за ссылки спасибо, да и вообще спасибо за ту работу, что ведётся сообществом GIS-Lab.
0
А теперь самый интересный вопрос: а можно ли наложить эту карту на Google Maps с прозрачностью? Тогда получится просто шикарная система!
0
Вот пример использования Google Maps вместе с D3: Google Maps + D3.
0
Только полез искать в интернете TopoJSON для российских регионов — наткнулся на вашу статью. Спасибо большое!
0
Большое спасибо за статью…
Более точные данные можн взять в 2гис
api.2gis.ru/doc/geo/search/
Идейки )
Можн же например наложить эти данные на растровую карту… например на историческую
retromap.ru/
Там все карты режутся на тайтлы и накладываются допслоем на гуглмепс
Более точные данные можн взять в 2гис
api.2gis.ru/doc/geo/search/
Идейки )
Можн же например наложить эти данные на растровую карту… например на историческую
retromap.ru/
Там все карты режутся на тайтлы и накладываются допслоем на гуглмепс
0
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за руководство.
Для подстройки размера карты под размер окна браузера поменял расчёт ширины и высоты:
И расчёт масштабирования (scale):
И тег h1 убрал, чтобы он не сокращал полезную площадь document.body (при наличии тега и текущем способе расчёта ширины/высоты появлялся скролинг).
Для подстройки размера карты под размер окна браузера поменял расчёт ширины и высоты:
//Сначала зададим размеры нашей SVG карты.
var zoom = document.body.clientWidth / 960.0;
var width = Math.round(zoom * 960),
height = Math.round(zoom * 500);
И расчёт масштабирования (scale):
//Зададим параметры проецирования (вспоминаем/смотрим Albers_Siberia.prj из начала статьи):
var projection = d3.geo.albers()
.rotate([-105, 0])
.center([-10, 65])
.parallels([52, 64])
.scale(Math.round(3.0 * document.body.clientWidth / 4.0))
.translate([width / 2, height / 2]);
И тег h1 убрал, чтобы он не сокращал полезную площадь document.body (при наличии тега и текущем способе расчёта ширины/высоты появлялся скролинг).
0
Для расчёта масштабирования (scale) лучше использовать не магические константы, а, так называемый, bounding box. Правда для этого необходимы данные по внешним границам.
0.95 здесь означает, что карта будет занимать 95% холста.
var b = path.bounds(d),
scale = 0.95 / Math.max((b[1][0] - b[0][0]) / mapWidth, (b[1][1] - b[0][1]) / mapHeight);
0.95 здесь означает, что карта будет занимать 95% холста.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Интерактивная SVG картограмма с помощью d3.js