Создание векторных плиток для карт

14

Ладно, скорее всего, мне плохо, что я не добрался до WhereCamp5280 и не обратился напрямую к фанатам FortiusOne, но каков процесс создания «плиток» GeoJSON для использования в Polymaps?

Пример Population на polymaps.org отмечает, что данные для демонстрации работают в Google AppEngine, и намекает на «скручивание собственных» векторных плиток, но я не могу найти больше информации ...

У кого-нибудь есть понимание, которым они могут поделиться?

Благодарность!

Дэйв Боуман
источник

Ответы:

12

TileStache определенно сделает это, особенно провайдер PostGeoJSON в коллекции дополнительных провайдеров . Основное различие между этим и тем, что мы сделали для примеров Polymaps, заключается в обрезании полигонов - после просмотра того, насколько большой Аляска может получить при более высоких уровнях масштабирования, мы обрезали все функции в примерах Polymaps, чтобы сократить время загрузки и так далее. Мы также разместили их в AppSpot, чтобы можно было добавить заголовок Access-Control-Allow-Origin для междоменных разрешений.

PostGeoJSON не выходит из коробки, но, как сказано в документации, я буду рад продолжить разработку кода, если будет интерес!

Обновление. Похоже, что начиная с Tilestache 1.9.0, поставщик вектора выглядит более предпочтительным, чем поставщик PostGeoJSON .

Михал Мигурски
источник
2
Смотрите комментарий ниже: я обновил провайдера PostGeoJSON, чтобы он был более дружественным к Polymaps
Михал Мигурски
4

Я определенно задавался вопросом об этом сам, поскольку это то, что я хочу использовать в Tile5 (http://tile5.org/). Я видел, как Майк Босток (который работал со Stamen над созданием Polymaps) отвечал через Twitter на эту тему раньше, и вот ссылка:

http://twitter.com/#!/mbostock/status/27659816563

Определенно хотел бы найти хорошее автономное решение проблемы. Несколько продуктов, которые выглядят как шаги в правильном направлении:

  • Tilestache (http://tilestache.org/)
  • Geocouch (https://github.com/vmx/couchdb)

Буду с интересом наблюдать за этим вопросом.

Ура,

Дэймон.

Дэймон Уэльман
источник
По-видимому, я могу только прокомментировать свой собственный ответ: /
Деймон Уэльман
@Michal - Определенно хотелось бы увидеть отсечение, добавленное в TileStache - есть ли возможность, чтобы оно обрабатывало также параметр обратного вызова? Я знаю, что JSONP не всем по вкусу, но я думаю, что здесь было бы очень полезно ...
Дэймон Уэльман,
Я определенно могу добавить отсечение в TileStache - внесу его в список! Менее уверены в обратном вызове, главным образом потому, что результаты должны быть полностью кэшируемыми, а обратные вызовы нарушают это Может быть, я сделаю специальный, за исключением JSON, потому что это такая общая необходимость ...
Михал Мигурски
Хороший момент повторного кэширования на фронте JSONP. JSONP все еще должен быть вполне кэшируемым, учитывая обратные вызовы в URL-карте непосредственно к обертке функции в выходных данных. Это определенно вызвало бы переполнение кэша, хотя это было бы болью. Я думаю, что я мог бы раскошелиться на Github и сыграть (если позволит время) :)
Дэймон Уэльман,
Хорошо, я добавил обрезку в качестве опции в TileStache: tilestache.org/doc/…
Михал Мигурски
2

Вы можете использовать ogr2ogr для создания статического файла GeoJSON для обслуживания , но, похоже, на данный момент вам приходится писать свои собственные веб-сервисы, если вы хотите включить отсечение или любую другую динамическую функцию URL (уровень масштабирования и т. Д.) и я не знаю ни одного инструмента листов, который бы создавал кэш листов для набора данных, но, опять же, это было бы довольно легко сделать с помощью пакетного процесса и различных -clip*опций ogr2ogr . Хотя для векторных данных это, по-видимому, не имеет смысла, поскольку при наложении друг на друга полигоны разбиваются на части по частям, вам, вероятно, будет лучше с помощью ограничивающего поиска по рамкам.

Джейсон Шайрер
источник
2

Дэйв - Кажется, здесь есть пробел, чтобы заполнить. Было бы неплохо иметь хороший автономный резчик плиток json (и хорошо для тех, кто не использует плиточный стакан). Посмотрите на модуль Python Bloch (через М. Мигурского): https://github.com/migurski/Bloch (подумайте mapshaper.org в командной строке и на python).

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

Крис


источник