Листовка choropleth map - цвета многоугольника связаны с таблицей?

Я новичок в использовании Leaflet после того, как сделал несколько интерактивных карт хороплет с помощью Mapbox TileMill. Если я добавлю настраиваемый слой многоугольника с помощью geoJSON, могу ли я обозначить (то есть цвет) многоугольники на основе значений в связанной электронной таблице? Я пытаюсь найти способ создать интерактивный чороплет, который можно автоматически обновлять текущими данными, просто внося изменения в электронную таблицу (например, документ Google), а не добавляя новый слой geoJSON. Спасибо за помощь!


person Eli Kern    schedule 02.02.2014    source источник


Ответы (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
comment
Спасибо! Отличный ответ, я с нетерпением жду возможности попробовать это. - person Eli Kern; 08.02.2014

Похоже, у вас может быть два разных вопроса, и, поскольку я не могу комментировать, чтобы попросить разъяснений, вот ответы на оба:

  1. Если вы имеете в виду обновление цветов в Tilemill, то (заголовок вашего вопроса не должен относиться к Leaflet, и) есть довольно хороший рабочий процесс здесь для использования электронной таблицы Google в качестве источника данных Tilemill. К сожалению, цвета заливки не являются свойствами, управляемыми данными, поэтому вам все равно придется назначать цвета условно в CartoCSS.
  2. 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
comment
Большое спасибо! Второй ответ - это то, что я искал, прошу прощения за отсутствие ясности, поскольку я все еще новичок в Leaflet (и JavaScript в целом). Я с нетерпением жду ваших предложений. - person Eli Kern; 08.02.2014