Возможно ли, чтобы столбец стал гиперссылкой с помощью API Google Maps? - PullRequest
0 голосов
/ 13 марта 2012

Я использую Visualr http://googlevisualr.herokuapp.com/ с Rails и добился большого успеха в создании динамических диаграмм.Однако мне интересно, можно ли позволить пользователю щелкнуть столбец в «диаграмме столбца» и получить ссылку на страницу?Я рад узнать версию Java, если вы не знакомы с Visualr.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 04 декабря 2012

Теперь доступно!

Недавно было выпущено обновление по этой проблеме.Поэтому я хочу обновить эти вопросы и ответы.

Ресурсы:

Запрос на извлечение Github Google Visualr # 39
Google Visualr Github, выпуск № 36

Пример кода

xxx_controller.rb

@table = GoogleVisualr::Interactive::ColumnChart.new(g, options_g)
@table.add_listener("select", "function(e) {
                                 EventHandler(e, chart, data_table)
                               }")

А затем в файле JS, например, app / assets / javascripts / application.js :

function EventHandler(e, chart, data) {
var selection = chart.getSelection();
    if (selection.length > 0) {
        var row = selection[0].row;
        var department = data.getValue(row, 0);
        alert(department + " | " + row)
    }
}
0 голосов
/ 13 марта 2012

Google Charts (независимо от того, получаете ли вы доступ к ним напрямую или через гем-оболочку, например Visualr), являются простыми изображениями, поэтому прямой ответ - «Нет», по крайней мере, не выполняя свою собственную работу. Чтобы добиться этого, вам нужно разместить свои прозрачные кликабельные ссылки (или элементы div или что-либо еще) над изображением, в нужном месте, чтобы соответствовать столбцам, которые Google генерирует на изображении.

Я бы подумал, что это будет сложно и подвержено ошибкам - на самом деле вам может быть проще просто сгенерировать столбцы в html и css, используя данные, которые вы ранее отправили в Google, чтобы установить высоту (в% ) из столбцов. Тогда каждый столбец будет отдельным HTML-элементом и может ссылаться на что угодно.

Итак, больше контроля = больше работы. Как обычно :)

...