Ich arbeite an einer Anwendung, die GeoJSON in die OpenLayers-Karte rendert.
Die Idee ist, keine PNG-Bilder von externen Diensten (OSM oder Bing) herunterzuladen, sondern Geoinformationen in der GeoJSON-Datei zu haben und diese in Echtzeit zu rendern. Aus meiner Forschung scheint diese Technologie genannt zu werden 'vector tile'
. Ich habe mir einige der Websites der Jungs angesehen, wie
http://openstreetmap.us/~migurski/vector-datasource/
und
http://mike.teczno.com/notes/postgreslessness-mapnik-vectiles.html (dasselbe Kerl).
Seine Arbeit scheint das zu sein, was ich erreichen möchte, aber ich verstehe nicht wirklich, wie es funktioniert.
Nach meinem Verständnis ruft ein Client, da ich OpenLayers verwende, Kartendaten im GeoJSON-Format ab und überträgt sie mit dem GeoJSON-Parser von OpenLayers in Vektoren. Aber es sind nur die Begriffe, die in dieser Technologie verwendet werden, die ich nicht verstehe.
In seinem Blog beschrieb er, dass es einen Server geben wird, der Daten bereitstellt, die als 'MapNik Vector Tile'
Format bezeichnet werden. Was ist der Unterschied zwischen Vektorkachel und GeoJSON? bedeutet es einfach gekacheltes GeoJSON, das dem Begrenzungsrahmen entspricht? Oder ist es ein neuer Bildtyp?
Wenn Sie sich sein Beispiel ansehen, können Sie beobachten, dass die Beschriftungen auf Straßen mit den Strichen der Straßen ausgerichtet sind. Ich habe versucht, dasselbe auf OpenLayers zu tun, indem ich den Renderer-Code in OpenLayers geändert habe, aber ich kann nur Beschriftungen drehen, aber nicht dazu bringen, sie entlang der Straßen zu biegen (z. B. wenn Straßen Ecken haben, zeigt die Karte Beschriftungen in L-Form an. * * + sehr gut gerendert!
Es sieht so aus, als ob Mike (der Autor des Blogs) neben OpenLayers eine andere Karte verwendet, aber ich kann nicht herausfinden, wie er es gemacht hat. Es gibt so viele Fragen zu stellen, aber ich möchte die oben genannten zuerst verstehen.
quelle
Antworten:
Die Idee, Vektordaten anstelle von Bildern zu übertragen und auf der Clientseite zu rendern, ist nicht neu. Es gibt bereits viele Tools / Projekte, die dies tun. Siehe zum Beispiel dieses Plugin mit Faltblatt , Polymap und auch das Cartagen-Projekt . OpenLayer-Entwickler versuchen, es in der (lang erwarteten) Version 3.0 einzuführen . Jede dieser Initiativen verwendet ein eigenes Vektor-Kachel-Format (einschließlich des Mapnik-Formats) - ein Standard sollte sicherlich in Zukunft entstehen.
Wenn Sie sich für die Prinzipien und relevante Literatur interessieren, sollten Sie sich dieses hervorragende Papier ansehen (ja, ich mache Eigenwerbung :-):
Gaffuri, J., 2012. Auf dem Weg zum Web-Mapping mit Vektordaten. In: Xiao, N., Kwan, M.-P., Goodchild, MF, Shekhar, S. (Hrsg.), Geographic Information Science. Vol. 7478 von Lecture Notes in Computer Science. Springer Berlin Heidelberg, Berlin, Heidelberg, Kap. 7, S. 87-101.
Eine kostenlose Version des Papiers finden Sie hier . Um es zusammenzufassen: Effizientes Vektor-Web-Mapping = intelligentes Format für Daten und Stile + zoomabhängige Verallgemeinerung + (Kacheln ODER räumliche Indizierung). Ein Anwendungsfall ist hier sichtbar .
quelle
Soweit ich weiß, wird das Vektor-Kachelformat verwendet, um einen Kachel-Renderer wie Mapnik oder TileMill zu füttern, anstatt eine Datenbank wie postgresql zu verwenden.
Die Geometrien werden von einer Web-Client-App wie OpenLayers noch nicht in Echtzeit gerendert, aber es ist ein interessantes Forschungsgebiet :-)
quelle