полімапи та полі… багатокутники


9

Я нещодавно грав з Bing Maps + 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?

Мені справді просто потрібне трохи натхнення, кілька покажчиків, щоб навести мене на шлях і вбити деякі сумніви, які у мене є. Я виявив, що просто копаю навколо stackexchange і гуглю все, від серверів карт, до геопросторових баз даних - ви називаєте це, я, мабуть, читав про це, але я намагаюся скласти шматки.

Довгомоє запитання, але як тільки ці речі будуть з'ясовані, я повинен опинитися в набагато кращому становищі.


Ми можемо видалити полімапи з рівняння, якщо є замінники.

Підсумовуючи, я хочу взяти з бази даних (PostGIS?) Велику кількість полігонів різної форми, розміру, кольору та прозорості та скласти їх на карті. Це по суті це! У полімапах є векторна графіка + я думав, що це отримати в дорозі було б тривіально з огляду на вищезазначений код ... ми можемо це заблокувати, якщо у вас є інші ідеї. Що є кращим рішенням? Моя єдина ділова вимога - ввімкнути супутникові знімки ... Що означає, що ми працюємо з Bing або Google.

Відповіді:


8

Якщо ви говорите про GeoJSON, ви можете використовувати будь-який тип баз даних і сервер, який ви хочете, якщо вам потрібно:

1) Очікує отримання URL-адрес стилю TMS або /{zoom}/{x-coord}/{y-coord}.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-дані /, дякую!
Ардано Ардано

2

Гаразд, ось ось угода - Цей блог

Очищено ВСЕ. Це обов'язково для читання для всіх, хто грає з Polymaps. Я знайшов це через Генрі на Reddit

Аарон згадав про використання TileStache і справді ... Це ключ, я просто не бачив, як - вищевказаний пост в блозі досить інформативний при використанні TileStache. Великий виграш.


Ви зазначали, що хочете натискати кожен елемент, як ви це зробили? У мене працює карта, але я стояв біля стіни, щоб зробити елементи, які можна натискати на карті.

привіт Еріку, якщо ви завантажите та витягнете плагін полімап на свій веб-сервер, тоді ви можете отримати ідеальний приклад за адресою: localhost / polymaps / example / tipsy / tipsy.html - Перевірте джерело цього хлопця. Правду кажучи, я перевів цей проект картографування у режим тимчасового перерви і ще не досягнув точок даних, які можна натискати, але саме з цього я б почав. Все найкраще!
Йордан Арсено

@JordanArsenault посилання "це повідомлення в блозі" більше не працює - чи траплялось вам завантажувати інформацію? Спасибі
Стівен Ведучий

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