многокарты и многоугольники


9

Я недавно играл с Bing Maps + Polymaps.

Стало очевидным, что Bing является единственным картографическим ресурсом, доступным для Polymaps, который включает спутниковые изображения . Это правда?

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

Я понимаю, что для загрузки географических данных на карту с помощью Polymaps вы должны использовать .features () или .url () как часть объекта geoJSON.

У меня работает .features (), но с помощью этой функции данные многоугольника должны быть встроены в сам файл javascript - как в:

map.add(po.geoJson()
        .features([
    {
      "geometry": {
        "coordinates": [[
[[-63.599925935268395,44.64018531837119],[-63.599789142608664,44.640219671024646],[-63.59973818063736,44.6401452402498],[-63.599877655506134,44.64010707058464],[-63.599925935268395,44.64018150140844]],

[[-63.59986692667008,44.639874235083376],[-63.59975695610047,44.63991431339196],[-63.599697947502136,44.63981507181532],[-63.5998159646988,44.639782627416906],[-63.59986424446105,44.6398723265918]]
        ]],
        "type": "MultiPolygon"
      },
      "type": "Feature",
      "id": "beat:05X",
      "properties": {"name": "05X"}
    }

        ]));

Я хочу, чтобы эти данные на самом деле поступали из базы данных, а не лежали статически в самом javascript - что говорит мне, что я должен использовать метод .url () вместо этого - правильно? И если я использую метод .url (), я должен передать действительный шаблон URL, который возвращает geoJSON ... Как мне поступить с моими личными данными? Я знаком с PHP и MySQL - должен ли я вместо этого использовать систему пространственной базы данных?

И как картографический сервер, такой как MapServer, GeoServer и другие, вписывается в это? Не могу ли я установить скрипт PHP для чтения этих шаблонов из переменной $ _GET, запроса к базе данных и возврата правильной строки geoJSON?

Мне действительно нужно немного вдохновения, несколько указателей, чтобы направить меня в путь и убить некоторые сомнения, которые у меня есть. Я поймал себя на том, что копаюсь в стеке и обыскиваю все от картографических серверов до гео-пространственных баз данных - вы называете это, я, наверное, читал об этом, но я изо всех сил собираю кусочки.

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


Мы можем удалить многокарты из уравнения, если есть заменители.

Итак, я собираюсь взять большое количество полигонов из базы данных (PostGIS?) Всех различных форм, размеров, цветов и прозрачностей и нанести их на карту. Это по сути это! У Polymaps есть векторная графика + Я думал, что получить это на ходу было бы тривиально, учитывая приведенный выше код ... мы можем отказаться от него, если у вас есть другие идеи. Что является лучшим решением? Единственное мое деловое требование - включить спутниковые изображения ... Это означает, что мы работаем с Bing или Google.

Ответы:


8

Если вы говорите о GeoJSON, вы можете использовать любой тип базы данных и сервер бэкэнда, если вы этого хотите:

1) Предполагает получение URL-адресов в стиле TMS или / enjz-coordcasts/ndomy-coord broadcast.json и может конвертировать Z / X / Y в ограничивающую рамку.

(Взгляните на что-то вроде Tilestache (.org), если вы хотите / должны увидеть, как в этом участвует математика.)

2) Возвращает GeoJSON.

Для стилизации и добавления интерактивных битов к результатам данных вы захотите определить функцию «загрузки», используя метод on () слоя. Например:

var l = org.polymaps.geoJson ();
l.url ( "http://example.com/tiles/{Z}/{X}/{Y}.json");
l.on («нагрузка», функция (e) {...});

На сайте Polymaps есть много хорошей документации и примеров кода, но я также включил слайды и пример кода из семинара Polymaps, который я провел недавно:

http://www.aaronland.info/talks/where2011/

http://www.aaronland.info/talks/where2011/workshop

ура


Спасибо, Аарон, ссылки, которые вы разместили, действительно необходимы. Я скачал файлы для последующего просмотра, я буду ссылаться на них, когда буду на стадии интерактивности. Я не уверен, что Tilestache - это то, что мне нужно, потому что Бинг следит за фактической плиткой, нет? Пользовательские данные, которые я буду обслуживать, - это полигональные данные, а не изображения .png, .jpg и т. Д. Есть ли шанс, что я смогу взять пик на ./flickr.json? Пропущенная ссылка. Приветствия и еще раз спасибо.
Джордан Арсено

Я нашел его в корне мастерской / 005-data /, спасибо!
Джордан Арсено

2

Итак, вот сделка - это сообщение в блоге

Очищено ВСЕ. Это должен прочитать каждый, кто играет с Polymaps. Я нашел это через Генри на Reddit

Аарон упомянул об использовании TileStache и действительно ... Это ключ, я просто не видел, как ... Вышеприведенный пост в блоге довольно информативен в использовании TileStache. Большая победа.


Вы отметили, что хотите, чтобы каждый элемент был кликабельным, как вы этого добились? Моя карта работает, но я прислонился к стене, чтобы сделать элементы кликабельными на карте.

привет, Эрик, если ты скачаешь и извлекаешь плагин polymaps на свой веб-сервер, ты можешь получить прекрасный пример по адресу: localhost / polymaps / examples / tipsy / tipsy.html - проверь источник этого парня. По правде говоря, я перевел этот картографический проект в режим временного перерыва и еще не достиг интерактивных точек данных, но именно с этого я и начну. Всего наилучшего!
Джордан Арсено

@JordanArsenault, ссылка "этот пост в блоге" больше не работает - вам довелось загрузить информацию? Спасибо
Стивен Лид

эй, Стивен, действительно, запись в блоге сейчас недоступна, и у меня нет загруженной копии. Однако, создатель цели можно найти здесь: linkedin.com/in/hanskuder ... Пожалуйста, если вы найдете контент, дайте мне знать, и я исправлю ссылки - или не стесняйтесь редактировать этот пост :)
Джордан Арсено
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.