Я новичок в использовании Leaflet после того, как сделал несколько интерактивных карт хороплет с помощью Mapbox TileMill. Если я добавлю настраиваемый слой многоугольника с помощью geoJSON, могу ли я обозначить (то есть цвет) многоугольники на основе значений в связанной электронной таблице? Я пытаюсь найти способ создать интерактивный чороплет, который можно автоматически обновлять текущими данными, просто внося изменения в электронную таблицу (например, документ Google), а не добавляя новый слой geoJSON. Спасибо за помощь!
Листовка choropleth map - цвета многоугольника связаны с таблицей?
Ответы (2)
Вы можете запросить данные своей электронной таблицы Google как JSON, а затем проанализировать данные на стороне клиента, обновив данные внутри вашего geoJSON. Здесь можно найти дополнительную документацию через Google. Обычно вы вызываете электронную таблицу, передаете ее данные как JSON в функцию обратного вызова, а затем эта функция обновляет ваш geoJSON новыми значениями. Базовый API выглядит так, где фид - это тип фида (список или ячейка), который вам нужен, а ключ - это ключ вашей таблицы Google.
http://spreadsheets.google.com/feeds/feed/key/worksheet/public/basic?alt=json-in-script&callback=myFunc
person
geraldarthur
schedule
03.02.2014
Спасибо! Отличный ответ, я с нетерпением жду возможности попробовать это.
- person Eli Kern; 08.02.2014
Похоже, у вас может быть два разных вопроса, и, поскольку я не могу комментировать, чтобы попросить разъяснений, вот ответы на оба:
- Если вы имеете в виду обновление цветов в Tilemill, то (заголовок вашего вопроса не должен относиться к Leaflet, и) есть довольно хороший рабочий процесс здесь для использования электронной таблицы Google в качестве источника данных Tilemill. К сожалению, цвета заливки не являются свойствами, управляемыми данными, поэтому вам все равно придется назначать цвета условно в CartoCSS.
- If you're referring to updating a thematic layer in the Leaflet client, then there are two options:
- Write a script to populate this function and this line with values brought in from your google spreadsheet endpoint.
- Используйте CartoDB. Он делает практически все, о чем вы говорите, с живыми изменениями на карте буклета по мере обновления таблицы и стилей CartoCSS. Вы также можете синхронизировать таблицу CartoDB с таблицей Google.
person
Bill Morris
schedule
02.02.2014
Большое спасибо! Второй ответ - это то, что я искал, прошу прощения за отсутствие ясности, поскольку я все еще новичок в Leaflet (и JavaScript в целом). Я с нетерпением жду ваших предложений.
- person Eli Kern; 08.02.2014