Polymaps & Poly… Polygone


9

Ich habe kürzlich mit Bing Maps + Polymaps gespielt.

Es hat sich gezeigt, dass Bing ist die einzige Mapping Ressource zur Verfügung zu Polymaps, der folgendes beinhaltet Satellitenbilder . Ist das wahr?

Ich versuche, viele Polygone unterschiedlicher Größe auf einer Karte zu zeichnen und sie je nach Darstellung mit unterschiedlichen Farben zu füllen. Außerdem möchte ich, dass jedes dieser Polygone anklickbar ist.

Ich verstehe, dass Sie zum Laden von geografischen Daten auf eine Karte mit Polymaps entweder .features () oder .url () als Teil des geoJSON-Objekts verwenden.

Ich habe .features () arbeiten, aber mit dieser Funktion müssen die Polygondaten in die Javascript-Datei selbst eingebettet werden - wie in:

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

        ]));

Ich möchte, dass diese Daten tatsächlich aus einer Datenbank stammen und nicht statisch im Javascript selbst liegen - was mir sagt, dass ich stattdessen die .url () -Methode verwenden soll - richtig? Und wenn ich die .url () -Methode verwende, muss ich eine gültige URL-Vorlage übergeben, die geoJSON zurückgibt ... Wie gehe ich mit meinen eigenen privaten Daten vor? Ich bin mit PHP und mySQL vertraut. Muss ich stattdessen ein räumliches Datenbanksystem verwenden?

Und wie passt ein Kartenserver wie MapServer, GeoServer und andere dazu? Konnte ich kein PHP-Skript einrichten, um diese Vorlagen aus der Variablen $ _GET zu lesen, eine Datenbank abzufragen und die richtige geoJSON-Zeichenfolge zurückzugeben?

Ich brauche wirklich nur etwas Inspiration, ein paar Hinweise, um mich auf den Weg zu machen und einige der Zweifel zu beseitigen, die ich habe. Ich habe mich nur in der Stapelbörse umgesehen und alles gegoogelt, von Kartenservern bis hin zu Geodatenbanken - Sie nennen es, ich habe wahrscheinlich darüber gelesen, aber ich habe Mühe, die Teile zusammenzusetzen.

Langwierige Frage, aber sobald diese Dinge geklärt sind, sollte ich in einer viel besseren Position sein.


Wir können Polymaps aus der Gleichung entfernen, wenn es Substitute gibt.

Zusammenfassend möchte ich eine große Anzahl von Polygonen aus einer Datenbank (PostGIS?) Mit allen verschiedenen Formen, Größen, Farben und Transparenzen aufnehmen und auf einer Karte darstellen. Das ist es im Wesentlichen! Polymaps hat Vektorgrafiken + Ich dachte, dies für unterwegs zu machen, wäre angesichts des obigen Codes trivial ... wir können es verschrotten, wenn Sie andere Ideen haben. Was ist die beste Lösung? Meine einzige geschäftliche Anforderung ist, dass Satellitenbilder aktiviert sind ... Das heißt, wir arbeiten mit Bing oder Google zusammen.

Antworten:


8

Wenn Sie über GeoJSON sprechen, können Sie jede Art von Datenbank und Backend-Server verwenden, solange Sie möchten:

1) Erwartet den Empfang von TMS- oder /{zoom gesteckt / -xx-coord-//my-coord-jews.json-Voll URLs und kann Z / X / Y in einen Begrenzungsrahmen konvertieren.

(Schauen Sie sich etwas wie Tilestache (.org) an, wenn Sie die Mathematik sehen möchten / müssen, die damit verbunden ist.)

2) Gibt GeoJSON zurück.

Zum Stylen und Hinzufügen interaktiver Bits zu den Datenergebnissen möchten Sie eine "Lade" -Funktion mithilfe der on () -Methode der Ebene definieren. Beispielsweise:

var l = org.polymaps.geoJson ();
l.url ("http://example.com/tiles/{Z}/{X}/{Y}.json");
l.on ("Laden", Funktion (e) {...});

Die Polymaps-Site enthält viele gute Dokumentationen und Beispielcodes, aber ich habe auch die Folien und den Beispielcode aus einem Polymaps-Workshop aufgenommen, den ich kürzlich durchgeführt habe:

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

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

Prost


Vielen Dank Aaron, die Links, die Sie gepostet haben, sind wirklich unverzichtbar. Ich habe die Dateien zur späteren Überprüfung heruntergeladen. Ich werde auf sie verweisen, wenn ich mich in der Interaktivitätsphase befinde. Ich bin mir nicht sicher, ob Tilestache etwas ist, das ich benötige, da die eigentlichen Kacheln von Bing gepflegt werden, oder? Die benutzerdefinierten Daten, die ich bereitstellen werde, sind Polygondaten, keine .png-, .jpg- usw. Bilder. Gibt es eine Chance, dass ich bei ./flickr.json einen Höhepunkt erreichen könnte? Fehlender Link. Prost und nochmals vielen Dank.
Jordan Arseno

Ich habe es in der Wurzel des Workshops / 005-data / gefunden, danke!
Jordan Arseno

2

Ok, hier ist der Deal - Dieser Blog-Beitrag

Alles aufgeräumt. Es ist ein Muss für jeden, der mit Polymaps spielt. Ich habe es über Henry auf Reddit gefunden

Aaron erwähnte die Verwendung von TileStache und in der Tat ... Das ist der Schlüssel, ich habe nur nicht gesehen, wie - Der obige Blog-Beitrag ist ziemlich informativ bei der Verwendung von TileStache. Großer Gewinn.


Sie haben festgestellt, dass jedes Element anklickbar sein soll. Wie haben Sie das erreicht? Ich habe meine Karte am Laufen, aber ich stehe vor einer Wand, wenn es darum geht, Elemente in der Karte anklickbar zu machen.

Hallo Erik, wenn du das Polymaps-Plugin herunterlädst und auf deinen Webserver extrahierst, kannst du auf ein perfektes Beispiel zugreifen: localhost / polymaps / examples / tipsy / tipsy.html - Überprüfe die Quelle dieses Typen. Um ehrlich zu sein, ich habe dieses Mapping-Projekt in den temporären Pausenmodus versetzt und noch keine anklickbaren Datenpunkte erreicht, aber genau hier würde ich beginnen. Alles Gute!
Jordan Arseno

@JordanArsenault Der Link "Dieser Blog-Beitrag" funktioniert nicht mehr - haben Sie die Informationen heruntergeladen? Vielen Dank
Stephen Lead

Hey Stephen, in der Tat, der Blog-Beitrag ist jetzt nicht mehr verfügbar und ich habe keine heruntergeladene Kopie. Den Schöpfer von Goalfinch finden Sie jedoch hier: linkedin.com/in/hanskuder ... Wenn Sie den Inhalt finden, lassen Sie es mich wissen und ich werde die Links reparieren - oder Sie können diesen Beitrag gerne bearbeiten :)
Jordan Arseno
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.