polymaps i poly… wielokąty

9

Ostatnio grałem w Bing Maps + Polymaps.

Stało się oczywiste, że Bing jest jedynym zasobem mapującym dostępnym dla Polymaps, który obejmuje zdjęcia satelitarne . Czy to prawda?

Próbuję narysować na mapie wiele wielokątów o różnych rozmiarach i wypełnić je różnymi kolorami w zależności od tego, co reprezentują. Ponadto chcę, aby każdy z tych wielokątów był klikalny.

Rozumiem, że aby załadować dane geograficzne do mapy za pomocą Polymaps, możesz użyć .features () lub .url () jako część obiektu geoJSON.

Mam .features () działające, ale przy użyciu tej funkcji dane wielokątów muszą zostać osadzone w samym pliku javascript - jak w:

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"}
    }

        ]));

Chcę, aby te dane faktycznie pochodziły z bazy danych i nie leżały statycznie w samym javascript - co oznacza, że ​​powinienem zamiast tego użyć metody .url () - prawda? A jeśli użyję metody .url (), muszę przekazać prawidłowy szablon adresu URL, który zwraca geoJSON ... Jak to zrobić z własnymi prywatnymi danymi? Znam PHP i mySQL - czy zamiast tego muszę używać systemu przestrzennej bazy danych?

W jaki sposób wpasowuje się w to serwer map, taki jak MapServer, GeoServer i inne? Czy nie mogę skonfigurować skryptu PHP do odczytywania tych szablonów ze zmiennej $ _GET, przeszukiwania bazy danych i zwracania prawidłowego ciągu geoJSON?

Naprawdę potrzebuję trochę inspiracji, kilku wskazówek, które pozwolą mi wyruszyć w drogę i zabić niektóre wątpliwości, które mam. Przekopałem się po wymianie stosów i przeglądałem wszystko, od serwerów map, do geo-przestrzennych baz danych - nazywasz to, pewnie o tym czytałem, ale walczę ze sobą.

Długie pytanie, ale kiedy te rzeczy zostaną wyjaśnione, powinienem być w znacznie lepszej sytuacji.


Możemy usunąć polimapy z równania, jeśli istnieją substytuty.

Podsumowując, chcę pobrać dużą liczbę wielokątów z bazy danych (PostGIS?) Wszystkich różnych kształtów, rozmiarów, kolorów i folii i narysować je na mapie. Zasadniczo to jest to! Polymaps ma grafikę wektorową + pomyślałem, że zdobycie tego w podróży byłoby trywialne, biorąc pod uwagę powyższy kod ... możemy go zrzucić, jeśli masz inne pomysły. Jakie jest najlepsze rozwiązanie? Moim jedynym wymaganiem biznesowym jest włączenie zdjęć satelitarnych ... Co oznacza, że ​​współpracujemy z Bing lub Google.

Jordan Arseno
źródło

Odpowiedzi:

8

Jeśli mówisz o GeoJSON, możesz użyć dowolnej bazy danych i serwera zaplecza, o ile chcesz:

1) Oczekuje otrzymania adresów URL w stylu TMS lub /{zoom}/{x-coord}/{y-coord}.json i może przekonwertować Z / X / Y w obwiednię.

(Spójrz na coś takiego jak Tilestache (.org), jeśli chcesz / potrzebujesz zobaczyć matematykę zaangażowaną w to.)

2) Zwraca GeoJSON.

W przypadku stylizacji i dodawania interaktywnych bitów do wyników danych należy zdefiniować funkcję „load” przy użyciu metody on () warstwy. Na przykład:

var l = org.polymaps.geoJson ();
l.url („http://example.com/tiles/{Z}/{X}/{Y}.json”);
l.on („load”, function (e) {...});

Witryna Polymaps ma wiele dobrej dokumentacji i przykładowego kodu, ale dołączyłem także slajdy i przykładowy kod z warsztatów Polymaps, które niedawno:

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

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

Twoje zdrowie

użytkownik2016
źródło
Dziękuję Aaron, zamieszczone linki są naprawdę niezbędne. Pliki pobrałem do późniejszego przejrzenia, będę o nich mówił, gdy będę na etapie interaktywności. Nie jestem pewien, czy Tilestache jest czymś, czego potrzebuję, ponieważ Bing zajmuje się rzeczywistym kafelkami, nie? Niestandardowe dane, które będę wyświetlać, to dane wielokątów, a nie jakiekolwiek obrazy w formacie .png, .jpg itp. Czy jest szansa, że ​​uda mi się zdobyć szczyt w ./flickr.json? Brakujący link. Pozdrawiam i jeszcze raz dziękuję.
Jordan Arseno
Znalazłem to w katalogu głównym warsztatu / 005-data /, dzięki!
Jordan Arseno
2

Ok, więc oto oferta - ten post na blogu

Oczyszczono WSZYSTKO. Jest to obowiązkowa lektura dla każdego, kto gra z Polymaps. Znalazłem to przez Henry na Reddit

Aaron wspomniał o użyciu TileStache i rzeczywiście ... To jest klucz, po prostu nie widziałem, jak - Powyższy post na blogu jest bardzo pouczający w korzystaniu z TileStache. Wielka wygrana.

Jordan Arseno
źródło
Zauważyłeś, że chciałeś klikać każdy element, jak to osiągnąłeś? Mam uruchomioną mapę, ale jestem oparty o ścianę, aby umożliwić klikanie elementów na mapie.
cześć Erik, jeśli pobierzesz i wyodrębnisz wtyczkę polymaps na swój serwer sieciowy, możesz uzyskać doskonały przykład na: localhost / polymaps / przyklad / tipsy / tipsy.html - Sprawdź źródło tego faceta. Prawdę mówiąc, wprowadziłem ten projekt mapowania w tymczasowy tryb przerwy i nie osiągnąłem jeszcze klikalnych punktów danych, ale właśnie od tego bym zaczął. Wszystkiego najlepszego!
Jordan Arseno,
@JordanArsenault link „ten post na blogu” już nie działa - czy zdarzyło Ci się pobrać informacje? Dzięki
Stephen Lead
hej Stephen, rzeczywiście, post na blogu jest już wyłączony i nie mam pobranej kopii. Jednak twórcę goalfinch można znaleźć tutaj: linkedin.com/in/hanskuder ... Proszę, jeśli znajdziesz treść, daj mi znać, a ja naprawię linki - lub możesz edytować ten post :)
Jordan Arseno,