Mehr

Bereitstellung von MBTiles mit Geoserver-Plugin?


Ich erstelle eine Webkarte und hoffe, einige eigene Grundkarten-/Raster-Layer hinzufügen zu können. Ich werde einen Stack verwenden, der GeoServer enthält, was für Vektordaten in Ordnung ist, aber ich möchte die neuen Grundkarten-Layer auch über GeoServer bereitstellen, und ich habe Probleme, den besten Weg dafür zu finden. Ich würde gerne .mbtiles-Dateien verwenden, die ich mit TileMill erstelle, weil sie gut aussehen und einfach zu stylen sind. Ziel ist es, aus diesen Kacheln ein WMS zu erstellen.

Ich habe das MBTiles-Plugin zu meiner GeoServer 2.6.1-Installation auf einer Amazon EC2-Instance hinzugefügt und die .mbtiles-Datei in das GeoServer-Datenverzeichnis übertragen. Wenn ich jedoch den neuen MBTiles-Datenspeicher hinzufüge, scheint er einen Datenspeicher zu erstellen, aber wenn ich versuche, einen neuen Layer mit diesem Datenspeicher zu erstellen, reagiert die Schnittstelle nicht. Es ist, als ob GeoServer den MBTiles-Datenspeicher nicht richtig erkennt.

Ich bin sehr neu in diesem Bereich, daher vermisse ich wahrscheinlich etwas, aber ich habe viel Dokumentation gelesen und kann es nicht herausfinden.


Um die Diskussion zusammenzufassen:

  • Beim Hinzufügen von Erweiterungen (einschließlich Community-Modulen) zu GeoServer ist es sehr wichtig, die Version der Erweiterung zu verwenden, die dem Build von GeoServer entspricht. Verwenden Sie keine frühere oder neuere Version, auch wenn es einen Link in der Dokumentation gibt, der vorschlägt, "nächtliche" Builds einer Erweiterung auf einem stabilen / freigegebenen GeoServer zu verwenden.

  • Die ZIP-Dateiversion der Erweiterung sollte die erforderlichen Abhängigkeiten für dieses Modul enthalten. Sie müssen alle diese installieren (es sei denn, Sie haben die Abhängigkeit bereits installiert, z. B. durch die Installation einer anderen Erweiterung, die einige der gleichen Abhängigkeiten hatte).

  • Es gibt einige Sonderfälle, in denen eine Nebenstelle eine andere Nebenstelle erfordert. Ein Beispiel ist, dass das GeoPackage-Community-Modul die WPS-Erweiterung erfordert. Sie sollten die Dokumentation für das Modul, das Sie installieren, überprüfen, falls es spezielle Fälle wie diesen gibt.

Die Unterscheidung zwischen Erweiterungen und Community-Modulen hängt wirklich davon ab, wie sie unterstützt werden, und deutet nicht auf unterschiedliche Schnittstellen oder andere technische Unterschiede hin. Die Installation folgt den gleichen Regeln.


Es gibt ein paar Möglichkeiten, dies zu tun.

Eine Möglichkeit besteht darin, eine einfache alte Azure-Webanwendung mit dem GeoServer-Webarchiv (WAR-Datei) zu verwenden.

Laden Sie dazu die Webarchivversion von GeoServer herunter. Erstellen Sie dann eine Web-App im Azure-Portal. Unter Anwendungseinstellungen müssen Sie Java Version 8 und eine Tomcat-Version über 7.0.65 angeben. Dann müssen Sie nur noch die WAR-Datei des GeoServers per FTP nach /site/wwwroot/webapps .

Sobald Sie dies getan haben, sollten Sie in der Lage sein, auf GeoServer zuzugreifen, indem Sie Ihre Web-App mit dem an die URL angehängten Pfad /geoserver besuchen. Aber seien Sie geduldig, die Erstinbetriebnahme ist langsam und kann einige Minuten dauern.

Eine andere Möglichkeit besteht darin, ein Container-Image bereitzustellen. Am Ende habe ich selbst eine erstellt, die auf die Verwendung in einer Azure-Web-App zugeschnitten ist.


Wichtige Daten

KURSCODEANFANGSDATUMENDTERMINANMELDEFRIST DATUM.KURSKOSTEN
(Pro Teilnehmer)
Klicken Sie auf Anwenden.
GISWM126. April 202130. April 202121. April 2021400 USDRegistrieren
GISWM110. Mai 202114. Mai 20215. Mai 2021400 USDRegistrieren
GISWM124. Mai 202128. Mai 202119. Mai 2021400 USDRegistrieren
GISWM114. Juni 202118. Juni 20219. Juni 2021400 USDRegistrieren
GISWM119. Juli 202123. Juli 202114. Juli 2021400 USDRegistrieren
GISWM116. August 202120. August 202111. August 2021400 USDRegistrieren
GISWM120. September 202124. September 202115. September 2021400 USDRegistrieren
GISWM118. Oktober 202122. Oktober 202113. Oktober 2021400 USDRegistrieren
GISWM18. November 202112. November 20213. November 2021400 USDRegistrieren
GISWM129. November 20213. Dezember 202125. November 2021300 USDRegistrieren
GISWM117. Januar 202221. Januar 202211. Januar 2022300 USDRegistrieren

Webkarten sind mit QGIS erstellte Online-Karten, die eine Möglichkeit bieten, mit geografischen Inhalten, die als Ebenen organisiert sind, zu arbeiten und zu interagieren. Sie werden in Ihrem Unternehmen und darüber hinaus im Web sowie auf Smartphones und Tablets geteilt. Jede Karte enthält eine Referenzgrundkarte sowie eine Reihe zusätzlicher Daten-Layer sowie Werkzeuge, die mit diesen Layern arbeiten. Die Werkzeuge können einfache Aufgaben ausführen, beispielsweise ein Popup-Fenster öffnen, wenn Sie auf die Karte klicken, oder komplexere Aufgaben, beispielsweise die Durchführung einer räumlichen Analyse.

In diesem Kurs lernen Sie, wie Sie Ihre Karten und Daten ins Internet bringen und mit QGIS-Plugins schnell Webkarten erstellen.

Übersicht über die Kursinhalte

Einführung in GIS-Zusammenfassungen

  • Was ist GIS?
  • Was können Sie mit GIS tun?
  • Überlegen Sie, wie Sie GIS anwenden können
  • Was sind die Auflösungen?
  • Arten von Auflösungen
  • Digitale Bildverarbeitung
  • Installieren von Plugins für Webmapping.
  • Arbeiten mit Spatialite-Ebenen.
  • Arbeiten mit Geopaketen und Digitalisieren.Erstellung verschiedener Datentypen für das Webmapping.
  • Erstellen von kaskadierenden Auswahl- und Wertkarten in QGIS.
  • Tabellenverknüpfungen (Arbeiten mit nicht räumlichen Daten), Kartenmaßstab und Kartenprojektionen
  • Räumliche Abfrage (nach Standort und Attribut), Beschriftung und Datensymbologie (abgestuft, proportionale Symbole)
  • Erstellen von Diagrammen (Balkendiagramme, Tortendiagramme, Histogramme) und Heatmaps für die Webkarte.
  • Einführung in räumliche Datensätze, räumliche Anpassungen, Topologie- und Fehlerprüfungen.
  • Datensammlung für Webkarten Kobocollect
  • Generieren von XYZ-MBtiles für den Offline-Dienst.
  • Übersicht über OGC Web Services (OWS) WebMap Service (WMS), Web Feature Service (WFS), Web Coverage Service (WCS)
  • Webserver, Geoserver und Kartenserver
  • API einrichten und Layer eingeben.
  • Kartenbetrachter.
  • Geonodes und Geo-Netzwerk Opensource.
  • OpenGIS-Webverarbeitungsdienste (WPS)
  • Webmaps online veröffentlichen.

Zielteilnehmer

Neulinge, WASH-Spezialisten, M & E-Experten, öffentliche Gesundheit, Programmmanager, Studenten, Ingenieure, Lehrer, Webmapping-Enthusiasten, Webentwickler

Vorgeschlagene Fähigkeiten

Erfahrung mit Windows-basierter Software für grundlegende Dateiverwaltung und Browsing.

QGIS Version 3X,Geoserver,Kartenserver

Nach erfolgreichem Abschluss des Kurses wird allen Teilnehmern ohne zusätzliche Kosten ein Zertifikat ausgestellt.


Vektorkacheln: die nächste Generation gekachelter Karten

Obwohl die gerasterten Kachelsätze, die wir in dieser Lektion besprochen haben, in der Lage sind, ansprechende Karten in einem relativ schnellen Format zu liefern, können sie umständlich zu aktualisieren sein und sie erfordern enorme Rechenressourcen bei großen Kartenmaßstäben. Um diese Herausforderungen zu umgehen, hat in den letzten Jahren ein Datenspeicherformat namens "Vektorkacheln" an Popularität gewonnen. Mapbox hat die Entwicklung von Vektorkacheln geleitet und eine Spezifikation für Vektorkacheln unter einer Creative Commons-Lizenz freigegeben.

Vektorkacheln sind genau das, was Sie vermuten würden: Sie speichern Teile von Vektordaten, anstatt ein Kartenbild zu speichern. Die Idee hinter Vektorkacheln ist, dass es effizienter ist, das Datenstyling von den Datenkoordinaten und -attributen zu trennen. Der Client kann einen vordefinierten Satz von Stilregeln verwenden, um Kacheln von rohen Vektorkoordinaten- und Attributdaten zu zeichnen, die vom Server gesendet werden. Dies ermöglicht die schnelle Neugestaltung von Daten, was eine weitere schwerwiegende Einschränkung von gerasterten Kacheln darstellt. Denken Sie darüber nach: Wenn Sie mit Ihren gerasterten Plättchen den Grünton ändern möchten, mit dem Sie Parks zeichnen, müssen Sie jedes Plättchen mit einem Park neu bauen. Wenn Sie dasselbe mit Vektorkacheln tun möchten, aktualisieren Sie einfach Ihre Styling-Anweisungen an einer Stelle und die Kacheln selbst bleiben gleich. Auch andere Anzeigeoperationen wie das Drehen der Karte lassen sich mit Vektorkacheln einfacher implementieren.

Vektorkacheln sind so konzipiert, dass sie auf der Festplatte klein sind und verwenden eine Reihe von Optimierungsansätzen, um die Anzahl der Zeichen zu reduzieren, die zum Speichern der geografischen Daten und Attribute erforderlich sind. Einige davon werden in diesem Video von Mapbox-Ingenieur Dane Springmeyer beschrieben. Er stellt auch ein Produkt namens Mapbox Studio vor, das nur mit Vektorkacheln funktioniert und von Mapbox als Ersatz für Tile Mill beworben wird. Das .mbtiles-Dateiformat, in dem ursprünglich gerasterte Kacheln gespeichert wurden, speichert jetzt beim Exportieren aus Mapbox Studio nur Vektorkacheln.

Tatsächlich gibt es weiterhin Anwendungsfälle für Vektor- und gerasterte Kachelformate, obwohl es wahrscheinlich ist, dass eine Reihe von Unternehmen in Zukunft Leistungsvorteile durch die Neuerstellung einiger ihrer ursprünglich gerasterten Kachelsätze als Vektorkacheln sehen werden. Dies ist umso wahrscheinlicher, da beliebte kommerzielle Softwarepakete wie ArcGIS Werkzeuge für die Arbeit mit der Mapbox-Vektorkachelspezifikation einführen, eine strategische Entscheidung, die Esri in einem Blogbeitrag aus dem Jahr 2015 bekannt gab. Auf der Open-Source-Seite hat GeoServer in Version 2.14 die Unterstützung für Vektorkacheln hinzugefügt, wie in dieser Anleitung beschrieben.

Open-Source-Kunden erkennen auch die Ausdauer von Vektorkacheln, was durch das in OpenLayers 3 integrierte VectorTile-Layer-Format und die Plugin-Unterstützung für Mapbox-Vektorkacheln in Leaflet veranschaulicht wird. Zum Zeitpunkt dieses Schreibens unterstützt QGIS nicht nativ die Anzeige von Vektorkacheln, obwohl es für diesen Zweck ein relativ neues Plugin gibt.


RGeo ist eine Geodatenbibliothek für Ruby. RGeo ist eine Schlüsselkomponente zum Schreiben von standortbezogenen Anwendungen in der Programmiersprache Ruby. Kernstück ist eine Implementierung des Industriestandards OGC Simple Features Specification, die Datendarstellungen von geometrischen Objekten wie Punkten, Linien und Polygonen zusammen mit einer Reihe von geometrischen Analyseoperationen bereitstellt. Dies macht es ideal für die Modellierung von Geolocation-Daten. Es unterstützt auch eine Reihe optionaler Zusatzmodule, die verschiedene standortbezogene Dienste bereitstellen.

Wir benötigten ein GIS-Rastersystem für riesige Rasterdatensätze in GeoServer. Hier sind einige Werkzeuge, um ein nahtloses gekacheltes Rastersystem mit mehreren Auflösungen zu erstellen, das eine Vielzahl von Formaten, Projektionen usw. aufnehmen kann, und dann die Back-End-Kacheln erstellen. Etwas größer als MrSID.


Frohe Weihnachten von allen bei Gethread

Wieder einmal bereiten wir uns hier an der Cranfield University auf den Jahresabschluss vor. Bevor wir uns abmelden, lassen wir Sie mit etwas zurück, das mit dem Gethread-Team in den letzten Jahren zu einer Tradition geworden ist, unserer Weihnachts-Twitter-Karte. Letztes Jahr haben wir laut Twitter-Nutzern die Verbreitung von festlicher Stimmung im ganzen Land kartiert. Wir haben wieder einmal eine Stichprobe von 60.000 georeferenzierten Tweets gesammelt, in denen das Wort Weihnachten zusammen mit einer Handvoll anderer verwandter Schlüsselwörter erwähnt wird. Diese wurden nach Landkreisen gruppiert und dann mit einer zufälligen Stichprobe von Tweets, die zu Beginn des Jahres aufgenommen wurden, normalisiert, um die Auswirkungen der Bevölkerungsdichte zu eliminieren.

Im Vergleich mit der gleichen Karte im letzten Jahr ist klar, dass es mehrere Gebiete gibt, die in ihrer Vorfreude auf die Weihnachtszeit insbesondere Zentralwales und North Yorkshire konsistent sind. Anglesey und Conwy in Nordwales scheinen dieses Jahr sicherlich begeistert zu sein, während Cumbria und die schottischen Highlands nicht mehr die gleiche Begeisterung verspüren wie vor 12 Monaten.


Entschuldigung an alle, die wir in Irland verpasst haben. Leider deckte die Zufallsstichprobe von Tweets, die wir für die Normalisierung verwendet haben, nicht alle britischen Inseln ab, weshalb die endgültige Karte einige Lücken aufweist.

Als Bonus haben wir dieses Jahr eine interaktive Karte der von Twitter gesammelten Rohdaten hinzugefügt, die Sie unten erkunden können.

Frohe Weihnachten und einen guten Rutsch ins neue Jahr wünscht Geothread!


Frohe Weihnachten von allen bei Gethread

Wieder einmal bereiten wir uns hier an der Cranfield University auf den Jahresabschluss vor. Bevor wir uns abmelden, lassen wir Sie mit etwas zurück, das mit dem Gethread-Team in den letzten Jahren zu einer Tradition geworden ist, unserer Weihnachts-Twitter-Karte. Letztes Jahr haben wir laut Twitter-Nutzern die Verbreitung von festlicher Stimmung im ganzen Land kartiert. Wir haben wieder einmal eine Stichprobe von 60.000 georeferenzierten Tweets gesammelt, in denen das Wort Weihnachten zusammen mit einer Handvoll anderer verwandter Schlüsselwörter erwähnt wird. Diese wurden nach Landkreisen gruppiert und dann mit einer zufälligen Stichprobe von Tweets, die zu Beginn des Jahres aufgenommen wurden, normalisiert, um die Auswirkungen der Bevölkerungsdichte zu eliminieren.

Im Vergleich mit der gleichen Karte im letzten Jahr ist klar, dass es mehrere Gebiete gibt, die in ihrer Vorfreude auf die Weihnachtszeit insbesondere Zentralwales und North Yorkshire konsistent sind. Anglesey und Conwy in Nordwales scheinen dieses Jahr sicherlich begeistert zu sein, während Cumbria und die schottischen Highlands nicht mehr die gleiche Begeisterung verspüren wie vor 12 Monaten.


Entschuldigung an alle, die wir in Irland verpasst haben. Leider deckte die Zufallsstichprobe von Tweets, die wir für die Normalisierung verwendet haben, nicht alle britischen Inseln ab, weshalb die endgültige Karte einige Lücken aufweist.

Als Bonus haben wir dieses Jahr eine interaktive Karte der von Twitter gesammelten Rohdaten hinzugefügt, die Sie unten erkunden können.

Frohe Weihnachten und einen guten Rutsch ins neue Jahr wünscht Geothread!


地 図 タ イ ル に つ い て

当時は地図データをレンタリングする有償のライブラリを組み込んで地図の表示などはその上で行い、そこにZugriffGISを作成していました。
こ こ で ポ イ ン ト と な る の は 地 図 デ ー タ と 対 応 す る ラ イ ブ ラ リ は セ ッ ト に な っ て い た の で, そ の ラ イ ブ ラ リ で 対 応 し て い な い フ ァ イ ル は 変 換 し て 取 り 込 め る よ う に す る な ど, 地 図 デ ー タ 自 体 の 調整 を 別 途 や っ て い な い とい け な い と い う 状態 で す.
僕のアルバイト時代の最後の仕事はこの地図データを変換するプログラムをPythonで書いてpy2exeで動かせるようにしたものにVisual BasicでGUIを作って使いやすく提供するというものでした(なお、最終日に)

しかしながら、先ほど書いたようにライブラリをクライアントに組み込むような技術はWeb
一つはKartenserverやGeoserverに代表される地図配信サーバを使う方法で、もう一つは地図タイルを使うという方法です。
な お, 地 図 配 信 サ ー バ は 地 図 タ イ ル を 使 う た め の バ ッ ク エ ン ド と し て 動 か す こ と も 多 く あ り ま す.
地 図 配 信 サ ー バ は 実 際 に デ ー タ を 配 信 す る 技術 で, 地 図 タ イ ル は ク ラ イ ア ン ト 側 に 近 い 技術 と な り ま す.

地 図 配 信 サ ー バ と デ ー タ ソ ー ス

デ ー タ ソ ー ス と な る も の は 地 図 座標 が 入 っ て い る デ ー タ と な り ま す.
ESRI Shapefile (GeoJSON)
現在一般的にWebで使われているベクタファイルのSVGはコンピュータ上の座標(左上を0,0としたもの)に基づいたものですが、地図で使われるベクタファイルの座標は測地系に基づいた座標 と な り ま す.
ざっくりと言うと緯度経度(Breitengrad, Längengrad)で表現されるもので、コンピュータの座標(x, y)とは違う概念に基づきます。

GeoTiffファイルです。
GeoTiffはその名前の通りTIFFファイルをベースとしたものですが、こちらはピクセルに対して測地系に基づいた座標が割り当てられているファイルとなります。
また、GeoTiffファイルはTIFFファイルの特性を使って、バンドごとにデータを格納することができます。
ピ ク セ ル ご と に デ ー タ を 格納 す る の で よ く メ ッ シ ュ デ ー タ と い う 表現 を し た り し ま す.

データソースはPostgreSQLのようなデータベースを指しています。
単純に緯度経度とデータだけが基づいたようなデータから、Geographie型に基づくデータを格納するものもあります。
例えばPostgreSQLのErweiterungとして提供されているPostGISではGeometrieとGeographieが型として追加され、それらを操作する関数が多く提供されています。
Geometrieはコンピュータなどの座標を指し、Geographieは測地系に基づく座標のデータを指します。
Geometrieでは「x: 35, y: 50の点から半径20ピクセル以内のデータを取ってくる」というようなクエリを出しますが、Geographieでは「緯度: 35.613056, : 140.113889 (JR千葉駅)の点200メートル以内のデータを取ってくる」というようなクエリになります。
なお、Geographieでは測地系が考慮されていて、今の座標は世界測地系(WGS84)に基づいたものとしています。

今まで扱ったデータソースはいずれも測地系に基づいたものであり、測地系に基づいたデータを「空間データ」と言い、また空間データだけでは検索が難しいので同時に「空間インデックス(räumlicher Index)」と い う も の が 作 ら れ ま す.
余談ですが、Geometrie型はコンピュータなどの座標と同じとなりますが同じく空間インデックスを持つように作る事もでき、またライブラリでサポートするときにシンプルな座標系(測地系と言うと変)として扱うこと(あとで実例がでてきます)。

さ て, 地 図 配 信 サ ー バ は こ れ ら 座標 が 入 っ た も の ​​を 取 り 込 み, ク ラ イ ア ン ト の 要求 に 合 わ せ て 処理 を 行 っ て フ ァ イ ル を 出力 し ま す.
例えばPNG画像で取得する場合は「左上を35.613056,140.113889右下を35.522778,140.310806までの地図データを取ってきてデザインを適応して縦横400ピクセルのPNG画像にして出力してください」という要求を出しま す.
PNG画像をもらうことになります。

な お, 正方形 の 画像 だ と 縮 尺 が お か し く な る じ ゃ な い か と 思 わ れ る と 思 い ま す が, 縮 尺 と い う 概念 は あ く ま で 自 分 が 慣 れ て る 地 図 の イ メ ー ジ で し か 無 い で す.
例 え ば 町 内 会 の 掲 示 板 に 貼 り だ さ れ て る 手書 き の 地 図 な ん か は 縮 尺 は 適当 だ け ど ち ゃ ん と 地 図 と し て は 成立 し て い ま す.
また、メルカトル図法を元にしたOpenStreetMapやGoogle Mapsで南極を見てみればこんなに横に平べったくなるはずはないというのがわかります。
な の で 地 図 配 信 サ ー バ へ の 要求 次第 で は こ の よ う な ズ レ は 当然 発 生 し ま す.
そもそも地球は楕円球(Ellipsoid)ですし。

や や こ し い 測 地 系 と 座標 変 換

(あー、別に月とかにもあるんだけどな)での位置を緯度経度(と標高)を座標で表すための系の示すものです。
系 っ て い う の は シ ス テ ム っ て い う の が 良 い ら し い の だ け ど, 個人 的 に は ル ー ル っ て 言 っ た ほ う が し っ く り き て る.
細かい所はややこしいのでwikipediaの測地系を参考にして欲しい。

2000(JGD2000)というものを指しています。
あ れ, 世界 な の に 日本 だ.
OK」っていうものです。
WGS84と比べても誤差は少ないし、そもそも日本島国だし基本的には問題ない。
実際のところWebアプリが現在Geo Location APIでGPSの情報を使っている、つまりWGS84でデータが降ってくるんだけど、現実にそこで差がわからん程度なので細かいことは気にするなっていう話です。
ま ぁ, 測量 す る 人 は 絶 対 世界 測 地 系 使 わ な い と い け な い と い う こ と は 覚 え て お い て く だ さ い.
法律 だ も ん.

で, 一番 や っ か い な 存在 が 日本 測 地 系 と い う 存在 で す.
日本測地系というか旧日本測地系(Tokio Datum)っていうのが良いのだろうけど、日本測地系2000のことを世界測地系って言ってしまってるのでだいたい話してるレベルや書類レベルでも日本測地系 っ て い う と 旧 日本 測 地 系 を 指 す と い う 暗 黙 の 了解 み た い な の が あ っ た り し ま す.
2002年より前は実際に測量で使われていたり、古いシステムが日本測地系だけであったりして、座標データを渡されてしばらく立ってから「あーそのデータ日本測 地 系 で す わ ー, そ れ し か 作 っ て な い の で 」み た い な 会 社 が 未 だ に あ り ま す.
事前 に 言 え よ ク ソ が, お っ と.
し か も や や こ し い こ と に 「地 図 系 じ ゃ な い で か い 会 社」 と か で こ う い う ケ ー ス あ る の で 気 を つ け た ほ う が い い.
ちなみに誤差はかなり出て、試しに日本測地系の千葉駅の座標をそのまま変換しないものと、世界測地系への変換後のデータを作ってみたところ使えないぐ&# x3089い誤差が出てるのがわかります。
WGS84に変換をしましょう。

PROJ.4というものです。
C言語で書かれているライブラリですが、非常に多くの言語のバインディングがある上、Proj4jsという名前でJavascriptに移植もされています。
Javascriptでの日本測地系から世界測地系へ変換は以下のコードで実現できます。

proj4.defsで変換式を登録していますが、ここではEPSGコードというものを指定しています。
EPSG (European Petroleum Survey Group)
(雑)。
EPSGコードが分かればそのデータベースからproj4や他のアプリケーションで使うパラメータを取得することができるっていうのが大雑把な仕組みです。
データベースとしては現在はepsg.ioがよく使われていて、例えば旧日本測地系(Tokyo Datum)はEPSG:4301というコードが割り当てられているのでepsg.ioで4301と調べれば雑にTokyo&# x3063て書かれたページにたどり着くことができ、Exportの項目から各ツールで取り込めるプログラムの断片を取得することができます。
proj4.defsは単にこのサイトから引っ張ってきただけのものというのがわかります。
ちなみにEPSGコードは管理してる団体を指していますが、コード自体はSRID (Spatial Reference System Identifier)というものになります。

で, 地 図 タ イ ル っ て な ん な の

先 ほ ど の 地 図 配 信 サ ー バ で は あ く ま で 「こ う い う 条件 の 地 図 を 画像 デ ー タ と し て く れ」 と い う も の で し た.
し か し な が ら 地 図 配 信 サ ー バ 側 で キ ャ ッ シ ュ を し て い て も, 範 囲 が 異 な れ ば 画像 は 再度 作 り 直 し と な っ て し ま い ま す.
そ の た め に 生 ま れ た の が 地 図 タ イ ル と い う 概念 で す.

地 図 タ イ ル と は そ の 名 の 通 り 地 図 を タ イ ル 状 に 並 べ て 配置 す る と い う 技術 で す.
1995〜1996年ぐらいには日本ではすでにありました。
ただし、現在とは違いJavascriptでどうこうみたいなものではなかったと思われます。
そ し て, そ の 実 装 が で き た 翌年 に と あ る 日本 の 会 社 が 地 図 タ イ ル 自 体 に 特許 を 取 っ て し ま っ た た め, 日本 の 多 く の 企業 で 実 装 が で き な く な っ て し ま い ま す.
ちなみにGoogle Mapsなんかも出てきた当時から当然その特許に抵触してるんですが、特にそれで揉め事は起きていません。
とてもWebっぽい話なんですが、特許を取った会社は現在はW3Cのメンバーになっていて、そのおかげで「技術特許による訴えを禁じられてる」というイカした事案が発生しています。
なお、最初に実装してた人たちは「この会社のせいで日本のWeb地図は10年は遅れた!」とビール呑みながら語っていたりしてなおさら地図業界の闇深さを感じるものです。
こ れ か ら 具体 的 な 話 を 書 い て い き ま す が, ぜ ひ 地 図 タ イ ル の 進化 を 感 じ な が ら 闇 深 さ を 思 い 出 し さ わ や か な 気 分 に な っ て い た だ き た い で す.

  • (正方形)に分割されています。
    • 多くの実装では256pxの正方形が使われています(ちなみにNetzhautディスプレイ向けに512pxで出すっていう事案もあります)。
    • この仕組みをzxy-Kachelと呼びます。ただし、後述しますが単にリクエストが z/x/y となっているからというわけではないです。

    • Zoom 0: 2 0 * 2 0 = 1 * 1 = 1 Kachel
    • Zoom 1: 2 1 * 2 1 = 2 * 2 = 4 Kacheln
    • Zoom 2: 2 2 * 2 2 = 4 * 4 = 16 Kacheln
    • Zoom 3: 2 3 * 2 3 = 8 * 8 = 64 Kacheln
    • Zoom n: 2 n * 2 n
    • Zoom 18: 2 18 * 2 18 = 262.144 * 262.144 = 68.719.476.736 Kacheln

    ちなみにたしかズームレベル22ぐらいまでいくと、日本では(ディスプレイの解像度次第ですが)ほぼ原寸大になるらしいです。
    inode数で死ぬっていうやつが迫ってきますので、それなりに工夫は必要ですし、その問題を解決したものもあ と で 解説 を し ま す間 に あ わ ん か っ た.
    ま ぁ, 個人 で タ イ ル を 作 る と き は 非常 に 範 囲 が 狭 か っ た り し ま す の で, あ ん ま り 問題 に な っ た り し な い っ て い う 現 実 が あ り ま す.

    さて、次はWeb Mecator-Projektion (EPSG:3857) についてです。
    これはGoogle Maps由来のメルカトル図法を定義しているものです。
    0/0/0.png を見せましたが、このファイルを良く見てください。
    ぱ っ と 見 て わ か り づ ら い の で す が 「南極 点 と 北極 点 あ た り が 無 い」 ん で す.
    地図関係は精度がどうとかいう話にこだわりを持つケースが多いのですが、さすがWeb 85.051129 から先をぶった切るということをやってしまっています。
    元 々 メ ル カ ト ル 図 法 自 体 赤道 か ら 離 れ て い く と ド ン ド ン 面積 が 広 く な っ て し ま う 性質 が あ る の で す が, こ の よ う に ぶ っ た 切 る 事 で 「ど う せ い ら ね ー だ ろ」 っ て い う と こ ろ を 大胆 に 省 い て し ま っ た わ け で す.
    完全 に 実 用 主義 と い う わ け で す.
    EPSGコードが出てきています。
    EPSGコードでは座標以外にも定義が可能で、epsg.ioのEinheitという項目を見るとどういうものを指してるかがわかります。
    例えばEPSG:4612はGrad (Lieferant zur Definition der Darstellung)というEinheitで、EPSG:3857はMeter(=Meter:メートル)というEinheitを指しています。
    なお、このメートルがなんなのかあんまよくわかってないのですが、gdaltransform(GDALで提供されてる座標変換ツール。たぶんGDAL->OGR->Proj4っていう流れでやってると思う。proj4jsとかでコード書く)で調べるとメートルっぽい距離が出てくるので、どこかを原点にした距離がでてくるっぽい。

    (おい
    EPSG:900913というのがありました。
    それ以外にもOpenLayers:900913とかOSGEO:900913とかいろいろあってややこしいのですが、900913という文字を良く見ればわかります。
    Googleをもじった数字です。
    で、みんなで900913っていう文字をつかってやっていたんですが、EPSGコードしてちゃんと管理されるようになり、最初はEPSG:3785となったんですが名称とか変わったりして最終的にEPSG: 3857に落ち着いたっていう感じです。
    た ま に こ う い う お 遊 び っ ぽ い こ と も 出 て き た り し ま す.
    い や, コ レ 以外 し ら ね ー け ど.

    これでJavascriptでぐりぐり動かせる地図ができるようになったかわかったと思います。
    画面 に 表示 す る べ き タ イ ル だ け を 取得 し て 表示 を し て, マ ウ ス で ド ラ ッ グ を し た ら 表示 範 囲 が 変 わ る の で 必要 な タ イ ル だ け を 取得 し て, マ ウ ス や コ ン ト ロ ー ラ で ズ ー ム レ ベ ル を 変 え れ ば ア ク セ ス す る フ ァ イ ル の ト ッ プ レ ベ ルと探すファイルのX座標Y座標もズームアップするなら倍の位置になったりと、非常にブラウザで処理しやすいURLがわかるのです。
    (OpenStreetMap, 地理院地図など)の仕組みです。
    (あ、Google Mapsはベクトルタイルになってからどうやってるか知らんです)

    X軸Y軸の原点が左上から計算されていることです。
    コ ン ピ ュ ー タ 使 っ て い た ら 一般 的 か も し れ ま せ ん が, そ ん な 話 が 地 図 に 通用 す る は ず は あ り ま せ ん.
    な ぜ で し ょ う.

    (-180, -90) 〜 (180, 90) の範囲です。
    つ ま り コ ン ピ ュ ー タ の 座標 と は 逆 な ん で す.
    厄 介 で す ね!

    そ の 厄 介 さ は タ イ ル の 仕 様 に も 現 れ て い ま す.
    ま ず, タ イ ル の 仕 様 に は 2 つ 「有名 な も の」 が あ り ま す.
    それがTMS (Kachelkartendienst)とWMTS (Webkartenkacheldienst)です。
    両 者 の 決定 的 な 違 い は 座標 の 扱 い 方 で す.
    具体 的 に は 次 の 図 を 見 て く だ さ い.

    TMSは原点を左下にもっていきます。
    つ ま り 数学 っ ぽ い 座標 で す.
    WMTSはコンピュータ座標のように定義されています。
    OpenStreetMap WMTSを採用してるんだ!!!!ってなことにはなっていません。
    WMTSは別の意味で厄介なのは、別にタイルのURLや細かいパラメータを定義したXMLファイル(!)を置いて、それから参照しましょうという仕様になっています。
    その上、WMTSではHTTP KVP(いわゆるhoge.cgi?a=bみたいなの)とか、なんとSOAP(ぎゃー)で配信するものとかもあったりして、使用自体が恐ろしくカオス。
    なのでWMTSでっていうといろいろ厄介な概念を打ち込まれてしまいます。
    一方TMSはこちらもXMLファイル(!)を置くっていう仕様があるもののタイル自体のアクセスはRESTful。
    でも座標が.

    ということで考えだされたのがいろいろ無視して、TMSのRESTfulなところだけ採用してかつY座標を逆にするという発想です。
    そしてこの発想でやっていったところほぼ問題が起きなくなり、最終的に現在のzxy tile(ちょっと前までxyz tileっていう人が多かった)が主流になってしまったという感じです。
    簡単にまとめますと、以下のとおりです。

    というわけで今回僕が話すものはコレです。
    実はmbtilesやCesiumの quantized-mesh-1.0 terrain format がTMSを使っていますが、面倒なので割愛します。

    地図タイルを使うライブラリ

    今回の目的は地図タイルを作る所まで行きたいので、当然それを使うライブラリについて知らないといけません。
    ここからはそのライブラリについてお話します。
    なお、みんなが大好きGoogle Maps APIとかでもたぶん使えると思いますが、僕が全く興味ないので丸ごと割愛します。
    というかOSSのライブラリだけしか扱いません(キリッ

    OpenLayersは古くからあるJavascriptライブラリでかつ、非常に巨大なライブラリでzxyタイルはもちろん、他にも多くの地図APIを標準でサポートするほか、Google Maps APIを叩くことでOpenLayersの使い方でGoogle Mapsが使えるという変な実装まで含まれています。
    いわゆるフルスタックライブラリという位置づけですが、APIがとにかく多いので今は初心者にはあまりおすすめできないかも(あくまで個人の感想です)。
    なお、長い間OpenLayers 2系が使われていましたが、設計の古かったため全面的に書き直しが行われ、現在はOpenLayers 3がメインになっていて、WebGLが使えたりとかわりとモダンな実装になってきています。
    また、GeoDjangoで採用されていたライブラリとしても有名です。

    Leaflet.jsは現在最も主流と思われるJavascriptライブラリです。
    実装がとてもシンプルでかつ動作が速いため急速に普及しました。
    基本的な機能を実装している変わりに、サポートしてない機能はプラグインを使う必要があります。
    プラグインは結構バージョンごとの依存性が強いため、比較的注意が必要ですが、基本的なWeb地図であればLeaflet.jsだけで十分な機能があるので一番最初に触ってみることをおすすめします。

    Mapbox.jsはLeaflet.jsを拡張してMapbox社のサービスを使いやすくしたライブラリです。
    Leaflet.jsの機能がそのまま使えるため平たく言うとMapboxというサービスに依存して無ければ特に必要ないですが、現在地図配信の有料サービスとしては最大手ぐらいの位置づけにいるので注意が必要です。
    ただ、そろそろ次に話すMapbox GL JS APIの方に移行していくだろうという雰囲気があります。

    Mapbox GL JS APIは現在Mapbox社が進めているMapbox Vector Tileに対応したJavascriptライブラリです。
    Mapbox Vector Tileについては今回は(もう眠いので)割愛しますが、通常のzxyタイルももちろん使えます(というか、Mapbox Vector Tileもzxyタイルなのでややこしいのですが. )。
    また、他のJavascriptライブラリと決定的に違う点は読み込むタイルの設定をStyleとして定義します。
    このStyleについては後述しますが、平たく言うとWeb Mecator Projection及びWGS84(EPSG:4326)以外まともに使えないと思われます。
    そのため、要件によっては採用ができない可能性があります。
    ただし、StyleファイルはMapbox iOS SDK及びMapbox Android SDKと共通なので非常に大きいメリットもあります。

    Cesiumは上記までとはまったく違い、いわゆるGoogle EarthのようなものをWebGLで実装したJavascriptライブラリです。
    なので、そもそもの表現方法が違います。
    ただし、zxyタイルも使うことができるので、作りたいサービスによっては重要な選択肢の一つとなります。

    1. 昔からある地図仕様とかのサポートが必要 ->OpenLayers / PluginがあればLeaflet.js
    2. 3DのUIが欲しい -> Cäsium以外まったく使ってない上にスマートフォンのネイティブアプリと読み込むタイルの設定を共通化したい -> Mapbox GL JS API
    3. Mapboxのタイルを使いたい -> Mapbox GL JS API
    4. Mapboxのタイルを使うのに他の仕組みも取りれないといけない -> Mapbox.js + Leaflet.jsのプラグイン
    5. ゲームタイル -> Leaflet.js / OpenLayers
    6. その他 -> とりあえず Leaflet.js から始めてみる

    では、今回の例になかった Mapbox GL JS-API のサンプルを作ってみましょう。
    例のごとくサンプルはJS Binにアップしています。
    なお、このサンプルは地理院タイルを使わず、OpenStreetMapのタイルを使っています。
    何故かと言うと地理院タイルは「まだ」HTTPSでの配信をしていないため、JS Binで実行すると混在したコンテンツとして扱われてしまうので、HTTPSをサポートしてるOpenStreetMapのタイルサーバを使いました。

    ざっくりと解説すると、まずはMapbox GL JS API𰛮xampleをまるごとパクって、今回はMapbox社のサービスにアクセスしないので mapboxgl.accessToken の設定を削除します。
    次にstyleを設定しますが、このjson自体はgistにあります。

    jsonの中身をざっくり説明します。
    sourceというプロパティで取り込むレイヤーを設定しているのですが、ここでは"osm"というidを作って、typeをrasterに、kachelnの中にzxyタイルのエントリポイントを書いています。
    //Zoom, x座標, y座標に変換されます。
    そしてSchichtenのところに使うレイヤーを指定します。
    レ イ ヤ ー は 複数 書 く こ と も で き, ア プ リ ケ ー シ ョ ン 側 の コ ー ド か ら ど の レ イ ヤ ー を 出 す か な ど が コ ン ト ロ ー ル で き る と い う 仕 組 み で す.

    iOSですが、状況は地獄です。
    そもそも、iPhoneでは初期の頃からRoute-Meというライブラリがあった(というか僕も使ってた)のですが、見ての通りまず開発が止まってしまい、代わりにALPSTEIN Tourismusのgabel(Alpsteingabel)が比較的動いていたところにMapbox社がそれをforkしてMapbox iOS SDKとして開発をしました。
    そのため、Alpsteinは開発終了と自分たち𰛯orkではなくMapbox iOS SDKを代わり񳁫 x3066くれとアナウンスを出します。
    ところが、今度はMapbox社の方が全く新しいmapbox-gl-nativeを作り、現在はこちらがMapbox iOS SDKとしてリリースされてしまったため、古いMapbox iOS SDKの開発がほぼ息絶えました。
    いちおうMapbox iOS SDK Legacyはま𰘌ocoaPodsにあるのでいちおうギリギリ使えるかもしれませんが、すでにveraltetだし、そもそもCocoaPodsにあるのとgithubにあるpodspecでsourceのURL違うしいろんな意味で地獄 っ ぽ さ が あ り ま す.
    なので、iOSでは現在ではmapbox-gl-nativeベースのMapbox iOS SDKを使った方が無難です。

    一方、AndroidはOSMDroidという長年使われているらしいライブラリがあります。
    OSMDroidは触ったことがないのでよくわからないのです。
    たぶん、使い方のドキュメントが4日前にアップデートされてるので使えるはずです。
    また、iOSと同様にMapbox Android SDKというmapbox-gl-nativeによるライブラリが提供されていますが、こっちもMapbox Android SDK Legacyという実装があってややこしいことになっています。
    iOSよりはマシかと思います。

    1. 適当 に プ ロ ジ ェ ク ト を 作成.
    2. Mapbox AndroidSDK gradle の解説にそって app/build.gradle を編集。
    3. AndroidManifest.xml
    4. Activity_main.xml MapView を追加する。このときmapbox:accesstokenを"pk."という文字を入れておく。
    5. プ ロ グ ラ ム を 書 く.

    やっかいなのはAktivitätにあるMapbox:Zugriffstokenです。
    Mapbox Android SDK Legacyの方はAccesstoken自体は抜いても問題なかったのですが、新しいMapbox Android SDKでは起動時にチェックをしてく& #x308Bのです。
    ただし、チェックの仕方が先頭の文字が"pk."か"sk."かって違いだけなので、"pk."という文字を入れておけばOKです。
    というか、これなぜかMapbox Android SDKのみにチェックが入ってるっぽくて、iOSの実装とかこういうチェックが無いという謎な感じになってる。

    地 図 タ イ ル を 作 る

    地 図 タ イ ル の 作 り 方 は い ろ い ろ あ り ま す が, 静 的 な フ ァ イ ル を 作成 す る か, ま た は サ ー バ と し て 動作 さ せ る の か に よ っ て も 方法 が 違 い ま す.
    OSSベースの地図タイルの作成には共通点があります。
    なお、こっから先は僕がMapServer及びGeoServerについて知らないのでそれらに関する話は全く無いのに注意してください。

    mapnikはさまざまなデータソースから綺麗な地図画像を作るためのプログラムです。
    GDAL/OGRで読み込めるものを指します。
    GDAL/OGRは多くの地図データをサポートしたライブラリです。
    GDALはGeoTIFFに代表されるラスタファイルを、OGRはShapefileやGeoJSONに代表されるベクタファイルを処理するプログラムで、GDAL/OGRは一つのパッケージで提供されていて、かつGDALを使ってラスタファイルを処理OGRの関数を使ったりと相互補完の関係にあったりします。
    OGRはProj4を使っていて、これらのライブラリはすべて相互補完の関係にあるような状態です。
    FOSS4Gです。

    mapnikの基本的にはMapnik-Konfigurations-XMLを用いてレンタリングを行います。
    こ の フ ァ イ ル に は レ イ ヤ ー や デ ー タ ソ ー ス, 描画 す る た め の ス タ イ ル な ど レ ン タ リ ン グ に 必要 な 情報 を す べ て 含 み ま す.
    描画をするためのスタイルはSymbolizerというもので、例えばLineSymbolizerなら地図データ上のLineをどのような太さや色で表現するかというを決定し、PointSymbolizerなら地図データ上のPointに対して画像を貼り付け(郵便局のマークを追加するとか)。

    では、CartoCSSとは何者なのでしょうか?
    その名の通り、スタイル情報をCSSのような形で書くことができる仕組みで、Mapbox社によって開発された概念であり、またTilemillというソフトで使われています。
    CSSと違う点は、セレクタのネストが可能であったりスタイルを重ねるためのsymbolizerという仕組みがあること、変数が利用可能であること、さらに地図タイルに特化した仕様のためセレクタにズームレベルが使えると い う 点 が 大 き く 違 い ま す.

    @から始まる変数で描画時の色を使い回したり、ズームレベルによるセレクタなどによってズームレベル15以上でなければ描画しないという表現がされています。
    また、上記の例では#GebäudeはレイヤーのIDを指しています。
    レイヤーはproject.mmlというTilemill
    JSON
    例えばGebäudeの設定は次のように書かれています。

    そして先ほどみていたCartoCSSファイルのうちセレクタに相当するものうち、 Zoom によるセレクタがmapnik XMLの MaxScaleDenominator などの表示可能なズームを示すパラメータになります。
    CartoCSSには以下のように地図データそのものに対する条件によるセレクタもあります。

    この場合はFunktionの検索条件がmapnik xmlのFilterというものになります。
    実 際 に 変 換 後 の フ ァ イ ル を 見 て み ま し ょ う.

    今回使うのは地球地図日本のデータです。
    2015年公開のデータの全レイヤ(gm-jpn-all_u_2_1)をダウンロードして展開します。
    次にFliesenmühleを起動して、新しいプロジェクトを作成します。
    プ ロ ジ ェ ク ト を 作成 す る と 最初 に レ イ ヤ ー が 一 つ あ る の で す が, 邪魔 な の で 左下 の レ イ ヤ ー ボ タ ン を 押 し て レ イ ヤ ー 一 覧 か ら 削除 し て, さ ら に ス タ イ ル も 一旦 消 し て し ま し ま す.
    こ こ で 保存 す る と ま っ さ ら な 地 図 に な り ま す.

    こ の 段 階 で ア イ コ ン セ ッ ト を 入手 し て お き ま し ょ う.
    MapboxはMakiというアイコンセットを作成しているので、このサイトからMaki.zipのリンクをクリックして、ダウンロードしたzipファイルを展開します。
    次に、TilemillのDateien und Verzeichnisseの記述を参考にTilemillのProjektディレクトリを探します。
    その中に先ほど作ったプロジェクトのフォルダが入って中にはいって Bilder というディレクトリを作成します。
    次に、Maki.zipのなかのsrcフォルダにあるファイルを全て Bilder の中にコピーします。
    これで url(images/airport-24.svg) のようなCSSのURL指定で参照することができます。

    次にレイヤー一覧にあるEbene hinzufügenを押してレイヤーを追加します。
    DatenquelleでDurchsuchenボタンを押して最初なのでcoastl_jpn.shpというファイルを追加します。
    SRSの指定でWGS84を選択します。
    これでSpeichernを押すと日本の海岸線が描画されます。

    細 か い デ ザ イ ン の 内容 に つ い て は 割愛 し ま す.
    最後 に プ ロ ジ ェ ク ト の 範 囲 を 指定 し ま す.
    右上 の 設定 ア イ コ ン を 押 す と 範 囲 を 指定 す る 画面 に な り ま す.
    まず日本の位置でズームレベル4ぐらいまで拡大したあとにUmschaltenを押しながらドラッグをして範囲を設定します。
    次に今設定した範囲内をクリックしてMitteの位置を範囲の中に収まるようにします。
    Zoomのスライドを動かして0〜12ぐらいにします。

    mapnik-XMLに反映されるので必ず行ってください。
    こ れ で 地 図 の デ ザ イ ン が 完了 し ま し た.

    1. TilemillのExport機能をつかってmbtilesを出力してそれをmb-utilsを使って各画像を取り出す
    2. Tilemillのproject.mmlファイルをmapnik XMLに変換して別のプログラムから出力する

    mapnik-XMLを作成しましょう。
    Tilemillのproject.mmlからmapnik XMLを作成するにはcartoというプログラムを使います。
    ま ず コ ン ソ ー ル か ら 以下 の よ う に し て イ ン ス ト ー ル を し ま す.

    npmとか書いてますが、これはnode.jsのパッケージマネージャーです。
    npm自体を調べてください。
    cartoコマンドが使えるようになります。

    Mühlsteinというプログラムをインストールをします。
    これは比較的新しいmapnikがDatenquellentypという属性が追加されてたのですが、Tilemillは開発版でないとこのオプションをサポートしていないためmapnikがエラーを吐いてしまいます。
    Mühlsteinはそういう差を吸収してくれるプログラムなのですが、これがやっかいなことにnode.jsが新しいとnode-srsのインストールでコケます(いちおうプルリクは出しておきました)。
    も し,

    次にproject.mmlをmapnik XMLに変換します。
    変 換 方法 は 以下 の よ う に し ま す.

    lオプションはMühlsteinを使うというものです。
    mapnik XMLができあがるので興味がある人はproject.mml及びstyle.mssとの内容を比較してみるとよいでしょう。

    tesseraを使います。
    tileliveのモジュールを追加するだけでお手軽にタイルサーバが立ち上げられるプログラムです。
    mapnik-XMLを使うので、以下のようにインストールをします。

    と い う わ け で 今 回 は こ こ ま で で す.
    Mapbox-Vektorkachelを作るところまでやりたかったんだけど、さすがに眠いので諦めます。
    ま た, 後 日 ~


    Erstellen Sie Ihre eigene Website mit einer interaktiven Karte

    Hallo, ich habe vor, ein Sommerprojekt durchzuführen. Ich möchte meine eigene Website mit einer interaktiven Karte erstellen, die meine eigenen Daten zeigt. Es würde Spaß machen, Geoserver, PostGIS, Faltblätter und einige Hintergrundkarten wie offene Straßenkarten zu verwenden.

    Die Dokumentation zur Konfiguration all dieser Komponenten finde ich sicher an mehreren Stellen. Aber ich habe noch nie eine Website erstellt, geschweige denn eine, die das Halten einer interaktiven Karte mit meinen eigenen postGIS-Daten unterstützt.

    Wo soll ich anfangen? Was brauche ich? Ist der Weg, nur eine URL bei WordPress zu erhalten und mit der Konfiguration meines Setups zu beginnen? Welche Website-Anbieter sind defacto Standard für kleine Websites, die GIS-Daten unterstützen?

    Hat das jemand selbst gemacht? Könnten Sie vielleicht Ihre Website, Ihr Setup und Ihre gewonnenen Erkenntnisse teilen?

    Ich würde nicht sofort zu einem externen Server gehen, um mit Ihrem persönlichen Projekt zu beginnen. Sie können ganz einfach einen Webserver auf Ihrem eigenen PC hosten.

    Der einfachste Weg, um statische Websites bereitzustellen, ist die Verwendung der Python-http-Bibliothek. Legen Sie einfach eine CD in Ihr Projektverzeichnis, das die HTML-Dateien usw. enthält, und führen Sie python -m http.server aus. Dadurch wird ein Webserver gestartet, der auf localhost:8000 läuft.

    Es könnte sein, dass Sie PHP für Ihr Projekt benötigen. In diesem Fall können Sie den PHP-Entwicklungsserver verwenden.

    Vielleicht beginnen Sie auch einfach mit einem einfachen Webentwicklungs-Tutorial wie denen auf W3schools oder MDN, damit Sie die Grundlagen von HTML, CSS und JavaScript kennen und wissen, wie das Web funktioniert.

    Wenn Sie das Gefühl haben, dass Ihr Projekt abgeschlossen ist und Sie es der Welt zeigen möchten, sollten Sie es vielleicht auf einem Server (wie AWS) hosten und eine Domain dafür besorgen.

    Cool, danke für die Idee. Wäre es machbar, es später einfach auf einem externen Server bereitzustellen? Wie wäre es mit Modulen wie Django, Flask und Faltblatt?

    Eine Sache, die Sie sich ansehen könnten, ist Django. Es gibt es schon lange und es gibt viel Unterstützung und Dokumentation. Django eignet sich hervorragend, um einfache Websites ohne viel Komplexität zu erstellen, und Sie können eine kleine Website auf Heroku frei hosten, ohne eine Kreditkarte zu benötigen. Die kostenlose Heroku-Stufe enthält auch eine kleine PostgreSQL-Datenbank, die mit PostGIS erweitert werden kann.

    Darüber hinaus lässt sich Django über seine GeoDjango-Module nahtlos in PostGIS integrieren, sodass Sie über Djangos ORM mit Geodaten interagieren können.

    Für Webmapping würde Leaflet gut zu diesem Stack passen, und wenn Sie Lust dazu haben, können Sie etwas wie Vue.js integrieren, um die Benutzeroberfläche zu erweitern und den Vorlagen von Django eine bessere Interaktivität hinzuzufügen.

    Natürlich ist dies heutzutage nur eine von vielen Möglichkeiten, eine Site zu erstellen, aber ich denke, Django ist großartig für Leute, die ihre Webdev-Reise beginnen.

    Danke für den Tipp! Das ist nett, was ich vorhabe, nur zu versuchen, den Hosting-Teil herauszufinden, welcher für GIS am besten/einfachsten/billigsten ist. Werde Heroku ausprobieren!

    Für das Hosting würde ich Digital Ocean empfehlen.

    Das ist ein einfacher Server, den Sie tun können, was Sie wollen. Und es beginnt bei $5/Monat. Sie können alles einrichten, was eine hervorragende Lernerfahrung ist.

    Ihre Tutorials sind auch großartig. Führt die Installation von PostgreSQL + PostGIS durch, zum Beispiel PostGIS: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postgis-on-ubuntu-14-04

    Wenn Sie einen Empfehlungscode verwenden, erhalten Sie 100 US-Dollar für die Nutzung über 60 Tage. Also 2 kostenlose Monate für 5 $ pro Monat:

    Ja, ich habe bereits über den digitalen Ozean gelesen und dass er gut mit GIS funktioniert. Ist alles verpackt, was ich brauche? Ich habe gehört, dass Leute davon sprechen, eine Domain zu kaufen und sie an zwei verschiedenen Orten zu hosten?

    Wie andere gesagt haben, können Sie möglicherweise mit statischen Datendateien davonkommen, die in Leaflet geladen werden.

    Wenn Sie daran interessiert sind, einen Back-End-Webserver auszuführen, können Sie Python Flask verwenden, um Anfragen zu verarbeiten, und die SQLAlchemy/GeoAlchemy-Bibliotheken verwenden, um eine Schnittstelle zu Postgres/PostGIS herzustellen.

    Im vergangenen Sommer habe ich mit der Arbeit an meiner eigenen GIS-Portfolio-/Projekt-Website begonnen, die ein Flask-Back-End verwendet, das derzeit auf AWS Elastic Beanstalk gehostet wird und eine Verbindung zu Postgres auf AWS RDS herstellt. AWS hat eine einjährige kostenlose Stufe, die sich gut eignet, um Dinge aufzubauen, wenn Sie bereit sind, im Web zu hosten.

    Sie können die Website hier besuchen und den gesamten Quellcode finden Sie hier auf meinem GitHub. Ich bin selbst ein Anfänger, aber ich kann vielleicht Fragen beantworten, wenn Sie welche haben.

    Wau! Das sah perfekt aus! Gut gemacht! Ich werde dein Setup auf jeden Fall parallel zu meinem überprüfen. Und super danke, dass du GitHub geteilt hast! Ich melde mich bei Fragen, danke!

    Wenn Sie die Daten selbst bereitstellen möchten, benötigen Sie ein Backend. Das Back-End interagiert mit der Datenbank und stellt die Daten nach Bedarf bereit. Zu diesem Zweck habe ich kürzlich Python ausprobiert. Ich habe Flask als Framework und SQLAlchemy verwendet, um eine Verbindung zur Datenbank herzustellen. Möglicherweise müssen Sie auch Geo-Alchemie verwenden, um Geo-Objekte zu verwenden.

    Für das Frontend habe ich nicht leaflat verwendet, sondern die OpenLayers-Javascript-Bibliothek verwendet, um Geo-Objekte im Browser zu verwalten. Die OL-Bibliothek bietet viele Beispiele für die Verwendung von API-Aufrufen und das Erstellen von Ebenen wie dem OSM-Beispiel. Vielleicht möchten Sie Dinge wie Webpack oder Babel ausprobieren, je nachdem, wie tief Sie in Front-End-Entwicklungstools stecken möchten.

    Was mich zu meinem nächsten Punkt bringt, anstatt die Daten selbst zu hosten und bereitzustellen, können Sie die OSM Overpass API verwenden. OSM verfügt über jede Menge Geodaten, die Sie für Ihr Projekt verwenden können, z. B. Verwaltungsgrenzen, Sehenswürdigkeiten, Straßen usw. Sie können es ohne Backend verwenden, was wirklich helfen kann, die Dinge langsamer zu machen. Nachdem Sie Ihr einziges Frontend-Projekt abgeschlossen haben, können Sie es auf Github Pages stellen. Dadurch können Sie Ihre Website online erstellen, ohne für Dienstleistungen bezahlen zu müssen!

    Wenn Sie jedoch entschlossen sind, ein Back-End für Ihre Daten zu erstellen, können Sie AWS verwenden. Es ist sehr beliebt, aber ich habe es noch nie ausprobiert. Oder verwenden Sie andere Dienste, um Ihren Virtual Private Server zu hosten.

    Im und gibt es unzählige Möglichkeiten, das zu tun, was Sie wollen. Und es gibt unzählige verschiedene Tools, um sie zu tun. Ich habe über Dinge gesprochen, die mir bekannt sind. Ich hoffe, das hilft.

    Es enthält nicht alle von Ihnen erwähnten Funktionen, aber dieses Tutorial ist ein guter Anfang: http://jonathansoma.com/tutorials/webapps/

    Dieses Projekt ist eine ziemlich große Zeit- und Arbeitsinvestition, aber es wird eine großartige (und zunehmend notwendige, IMO) Fähigkeit sein, die Sie Ihrem Toolkit hinzufügen können!

    Cool, werde es auf jeden Fall ausprobieren! Danke für die Anleitung!

    Aber ich habe noch nie eine Website erstellt [. ] Wo soll ich anfangen?

    Unter https://developer.mozilla.org/en-US/docs/Learn. Es hört sich so an, als würde es Ihnen gut tun, sich mit den Grundlagen von HTML und HTTP vertraut zu machen.

    Sie sollten sich Geonode anschauen. Es wäre perfekt für dein Projekt, denke ich

    Cool, kannte Geonode noch nicht, werde es auf jeden Fall ausprobieren! Vielen Dank!

    Beginnen Sie mit einem Ordner mit pbf-Vektorkacheln und geojson, keine serverseitige Datenbank oder MapServer/GeoServer erforderlich. Verwenden Sie OpenLayer oder Leaflet oder Mapbox GL JS.

    Dies kann kostenlos auf GitHub-Seiten oder jedem statischen Webserver gehostet werden.

    Sie können möglicherweise das QGIS2WEB-Plugin für QGIS verwenden und den ausgegebenen Code ändern.

    Alternativ können Sie tileserver.php mit mbtiles verwenden, um Ihre Vektorkacheln und Rasterkacheln bereitzustellen.

    Wenn Sie die Back-End-Datenbank POSTGIS verwenden, können Sie mit crunchydata pg_tileserv oder KOOPjs koppeln, um dynamische Vektorkacheln aus der Datenbank zu liefern.

    R und Shiny waren mit sehr wenig Programmiererfahrung ziemlich einfach zu erlernen. Sie können das Prospektpaket und die üblichen kostenlosen Fliesenleger verwenden. Es gibt so viele Tutorials und Informationen zu allem mit so ziemlich vielen Cut-n-Paste-Beispielen, solange Sie die allgemeine Idee verstehen. Sie können es dann auf dem Shiny-Server für eine Seite hosten. Ich habe eine grundlegende Kartendarstellung mit mehreren reaktiven Datenfiltern erstellt.

    Ich hatte diesen Winter eine ganz ähnliche Idee und habe es geschafft, diese zusammenzustellen. Ich bin noch ziemlicher Anfänger was das Programmieren angeht

    PostGIS db, PHP zur Verknüpfung von Datenbank und Frontend, Broschüre zum Mapping, Apache-Server. Ich habe kein Framework verwendet, obwohl Sie Python und Flask problemlos durch PHP ersetzen könnten, wie jemand vorgeschlagen hat.

    Bevor ich mit dem Erstellen dieser Web-App begann, hatte ich sehr grundlegende Kenntnisse in Python und Javascript. So ziemlich alles war sehr neu für mich. Ich habe 3-4 Monate gebraucht, um es zusammenzustellen (ich habe hauptsächlich an den Wochenenden und an einigen Wochentagen nach der Arbeit daran gearbeitet).

    Wenn Sie ein absoluter Anfänger sind, würde ich Ihnen empfehlen, einen Udemy-Kurs zu belegen, um die Dinge zu beginnen. Es kann ziemlich überwältigend sein, alles selbst herauszufinden. Viele Bibliotheken und Dinge, die Sie einrichten müssen, aber wenn Sie komplett alleine unterwegs sind, haben Sie keine Ahnung, was Ihnen fehlt und warum bestimmte Dinge eingerichtet werden müssen. Ich weiß, dass ich es ohne einen Kurs, der sicher ist, nicht schaffen würde. Ich bin diesem gefolgt. Es ist nicht perfekt, aber es gibt Ihnen alles, was Sie brauchen, um die Dinge in Gang zu bringen. Ein großer Teil meiner App (oben verlinkt) basiert auf diesem Kurs. Es gibt Ihnen ein solides Verständnis dafür, wie alles miteinander verbunden ist, sodass Sie es selbst erweitern können.

    Ich habe DigitalOcean für die Bereitstellung verwendet (5 $ / Monat für das Hosting, obwohl Sie definitiv billiger gehen können). Die Bereitstellung war für mich ehrlich gesagt ziemlich beängstigend. Dies wäre zwar viel einfacher, aber wenn Sie es einmal tun, werden Sie es beim zweiten, dritten und 100. Mal ziemlich bequem machen.

    Gelernte Lektionen (als kompletter Anfänger): Bevor Sie beginnen, denken Sie, dass es ganz einfach und schnell gehen wird, dann beginnen Sie und stellen fest, dass es viele Dinge gibt, von denen Sie nicht wussten, dass Sie sie tun müssen. Andererseits, wenn Sie fertig sind und zurückblicken, scheint es wieder ein einfaches und unkompliziertes Projekt zu sein.

    Mach es auf jeden Fall und bleib dabei (ich hatte eine große Hürde - ich brauchte ungefähr einen Monat, um es herauszufinden und ein paar kleine, die innerhalb weniger Tage gelöst wurden). Es lohnt sich ungemein!


    Wie einfach ist es, mit QGIS eine interaktive Online-Karte zu erstellen?

    Ich möchte meine erste Website erstellen und ein Hauptmerkmal davon wird eine interaktive Karte sein. Sie sollten in der Lage sein, heranzuzoomen, zu scrollen, auf eine Funktion zu klicken, um Informationen in einem Fenster neben der Karte anzuzeigen, auszuwählen, welche Funktionen auf der Karte angezeigt werden sollen usw.

    Meine erste Frage ist, wo kann ich herausfinden, wie man QGIS dazu verwendet? Ich habe mir QGIS2web vor etwa einem Jahr angesehen, erinnere mich aber daran, dass ich fast sofort auf technische Probleme gestoßen bin und erinnere mich vage an ein Problem, das möglicherweise mit der Kompatibilität mit neueren Versionen von QGIS zu tun hatte. Verwenden die Leute noch QGIS2web? Gibt es bessere Möglichkeiten?

    Meine zweite Frage ist, ob ich eine Website-Erstellungsplattform wie WordPress verwende, aber tatsächlich in den HTML-Code eintauchen muss, um etwas Ausgefallenes wie das Erstellen einer interaktiven Karte zu erstellen, kann das immer noch verwaltet werden? Ich weiß nicht, wie man eine Webseite erstellt, aber einige dieser Dinge sind mit Abonnementkosten verbunden, daher möchte ich nicht für einen Dienst bezahlen, der einerseits die Dinge für mich vereinfacht, aber andererseits nicht zulässt Ich kann verschiedene Teile einer Website anpassen.


    Schau das Video: 3 WEB Client (Oktober 2021).