Отображение: какой самый простой способ динамически изменить атрибут значения полигона на карте?

Я хотел бы отобразить результаты местных выборов на карте. У меня есть шейп-файлы для всех подразделений города, которые могут быть статическими, но я хотел бы динамически подставлять проценты голосов для каждого подразделения (зрители будут просматривать одного кандидата за раз).

Статический пример этого можно посмотреть по адресу http://elections.timwis.com/fusion. то, что я хочу, но этот пример предназначен для одного кандидата и является результатом слияния шейп-файлов с процентными данными с делением в качестве смежного ключа, что приводит к статическому источнику данных.

У меня есть большая таблица, заполненная результатами голосования. Я могу легко указать имя кандидата и получить проценты кандидатов для каждого подразделения. Затем я хочу подключить это к полигонам, чтобы изменить их цвет и содержимое их всплывающего окна.

Я не могу выполнить LEFT JOIN со сводными таблицами, поэтому я пытаюсь найти другой способ сделать это.

Я ищу простой способ сделать это, а не устанавливать весь стек postgres, geoserver и openlayers. Было бы здорово, если бы я мог подключить интерфейсную карту к серверу postgresql или что-то в этом роде. Я программист, но никогда раньше не работал с такими вещами, и у меня сжатые сроки.

Любые идеи?


person Tobias Fünke    schedule 03.12.2011    source источник


Ответы (1)


Из любопытства, почему вы не можете сделать LEFT JOIN в Fusion Tables? В ваших таблицах есть неправильные ключи? Или что-то другое?

Похоже, вам нужна карта с выпадающим меню, содержащим имена кандидатов. Когда кандидат выбран, градиент на карте изменяется, чтобы показать процент голосования за выбранного кандидата. Это точно?

Если это так, вы можете объединить свою таблицу результатов голосования с таблицей, содержащей границы регионов. Затем вы можете использовать слой Fusion Tables в Maps API и стили Fusion Tables, чтобы динамически стилизовать данные на основе фильтра. Демонстрацию функций динамического стиля можно найти здесь:

http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/dynamic_styling_template.html

Возможно, вам будет интересно увидеть эту страницу выборов, на которой есть результаты выборов различных кандидатов:

http://elecciones2011.hhba.info/

person Kathryn Hurley    schedule 07.12.2011
comment
Спасибо за ваш ответ! К сожалению, таблицы слияния не допускают JOIN в запросе (из всего, что я читал). Вы должны вручную объединять таблицы, а это значит, что у меня должна быть отдельная таблица для каждого кандидата. Если я неправильно понял ваше предложение? - person Tobias Fünke; 07.12.2011
comment
Я вижу, да, ты прав. Вы не можете выполнить соединение в запросе. Один из вариантов — объединить все данные-кандидаты в одну таблицу, объединить эту таблицу с границами, а затем использовать фильтры, чтобы выбрать кандидата для отображения на карте. Будет ли это работать с вашим набором данных? - person Kathryn Hurley; 07.12.2011
comment
Хм, но если в таблице A (таблица геометрии) есть, скажем, 1800 строк (по 1 на каждое деление, отмеченное столбцом division), а в таблице B (таблица комбинированных процентных результатов) 1800 строк на каждого кандидата (по одной на каждое деление, отмеченное также по столбцу division), как я могу объединить их, если для каждого division в таблице B есть несколько строк? - person Tobias Fünke; 08.12.2011
comment
Я написал сценарий, который берет 1800 строк делений и снова и снова вставляет их в таблицу для каждого кандидата, в результате чего получается 200 000 некоторых строк (с избыточными геоданными), подобно тому, что вы предложили. Кажется, это помогает, так как я могу запрашивать по кандидатам, но если я вытаскиваю слишком много делений одновременно, они не все отображаются, когда я уменьшаю масштаб. Пример здесь - person Tobias Fünke; 09.12.2011
comment
Как ни странно, они отображались нормально до того, как я их объединил, когда в таблице были только данные одного кандидата Те же данные здесь. Таким образом, отображение карты подразделений кандидата А отображается правильно, когда она из таблицы с только данными кандидата А, но когда она из огромной таблицы, где я запросил данные кандидата А, она не отображается должным образом. при уменьшении масштаба. Есть идеи, что случилось? - person Tobias Fünke; 09.12.2011