В этой заметке я продолжу рассказывать Вам о совместном использовании Fusion Tables и Google Maps, начало смотрите заметку.
В Fusion Tables можно добавлять информацию о геометрии объектов и выводить ее на карту.
Для примера я подготовил kml-файл с районами Нижнего Новгорода.
Импортируем его в Fusion Tables.
При импорте возникает одна проблема, почему-то все названия по русски отображаются в виде знаков вопросов. Вы можете дать названия в kml-файле латинскими буквами или переименовать колонки после импорта геометрии.
После редактирования мы получим следующую таблицу
В колонке geometry храниться описание геометрии для каждого полигона.
Добавим в данную таблицу новую колонку, которая будет содержать данные по численности населения для каждого из районов.
Для этого выбираем в меню Edit пункт Add column.
Перед колонкой geometry добавим колонку Chislennost тип Number.
Добавляем наши данные (источник данных: Районы Нижнего Новгорода, численность населения на 1.01.2008).
В результате получаем следующую таблицу
Отобразим наши данные на карте Google, для этого выберем в меню Vizualize пункт Map.
Настроим шаблон для отображения информации в балуне, перейдя по ссылке Configure info window.
Выбираем тип шаблона Custom и вводим следующий код:
<strong>Район:</strong> {name}<br />
<strong>Число жителей:</strong> {Chislennost} тыс. человек
Щелкнув мышью по одному из полигонов мы увидим следушее
На основе данных о численности населения по районам Нижнего Новгорода можно построить тематическую карту — изменение цветового градиента в зависимости от численности.
Для этого нужно изменить стиль отображения, перейдя по ссылке Configure styles.
В открывшимся окне нужно выбрать Polygons — Fill color и перейти по ссылке Gradient.
Увидим окно следующего содержания
Здесь отмечаем пункт Show a gradient, выбираем колонку по данным из которой будет строиться градиентная заливка, вводим начальный и конечный параметр, также можно выбрать цвет заливки.
Нажимаем на кнопку Save и наблюдаем обновленную карту
Готовую карту можно встроить на свой сайт используя iframe или API Google Maps v3, предварительно изменив параметры ее видимости.
В предидущей заметке я показывал, как можно использовать SQL запросы для выборки меток из разных категорий таблицы.
Существует возможность использовать пространственные SQL запросы к таблицам Fusion Tables.
Какие это могут быть запросы?
Это могут быть следующие типы запросов:
- выбрать все объекты, которые находятся (или нет) в пределах определенного расстояния от заданной точки;
- выбрать все объекты, которые принадлежат (или не принадлежат) прямоугольнику, заданному двумя точками;
- найти заданное количество объектов от заданной точки.
Рассмотрим пример реализации каждого из запросов с использованием таблицы Medecina.
1. Пример — выводим все объекты из таблицы Medecina (id=308599), которые попадают в окружность заданного радиуса от центра карты.
Посмотреть пример в действии и его код
2. Пример — выводим все объекты из таблицы Medecina, которые попадают в прямоугольную область заданную координатами нижнего левого и верхнего правого угла.
Посмотреть пример в действии и его код
3. Пример — выводим ближайшие 25 объектов из таблицы Medecina.
Посмотреть пример в действии и его код
Дополнительную информацию по работе с Fusion Tables можно прочитать по данным адресам:
в твитере @GoogleFT
New Features in Google Geo — презнентация Mano Marks на GDD 2010 в Москве
Замечательно! Спасибо вам. Не подскажете как реализовать следующую функцию: в fusion tables есть следующая таблица:
№ ФИО Адрес Адрес2
как вычислить расстояние между колонками Адрес и Адрес2?
(В любом случае спасибо: благодаря вам я уже научился строить визуализацию этой таблицы на карте (не пришлось вручную вводить около 300 точек)
Подскажите, пожалуйста, «чайнику»… Вот в базе содержится информация: «Название области», «Население, чел». Необходимо еще подгружать какие-то параметры областей? Потому что при попытке отобразить области (с заливкой) показываются только точки, вместо закрашенного участка карты