Suite

Servir MBtiles avec le plugin Geoserver ?

Servir MBtiles avec le plugin Geoserver ?


Je crée une carte Web et j'espère ajouter quelques couches de fond de carte/raster. J'utiliserai une pile qui inclut GeoServer, ce qui convient aux données vectorielles, mais j'aimerais également servir les nouvelles couches de fond de carte via GeoServer, et j'ai du mal à trouver le meilleur moyen de le faire. J'aimerais utiliser des fichiers .mbtiles que je crée avec TileMill, car ils sont beaux et faciles à styliser. Le but est de créer un WMS à partir de ces tuiles.

J'ai ajouté le plug-in MBTiles à mon installation GeoServer 2.6.1 sur une instance Amazon EC2 et transféré le fichier .mbtiles dans le répertoire de données GeoServer. Cependant, lorsque je vais ajouter le nouveau magasin de données MBTiles, il semble créer un magasin de données, mais lorsque j'essaie de créer une nouvelle couche à l'aide de ce magasin de données, l'interface ne répond pas. C'est comme si GeoServer ne reconnaissait pas correctement le magasin de données MBTiles.

Je suis très nouveau dans ce domaine, donc il me manque probablement quelque chose, mais j'ai lu beaucoup de documentation et je ne peux pas le comprendre.


Pour résumer la discussion :

  • Lors de l'ajout d'extensions (y compris les modules communautaires) à GeoServer, il est très important d'utiliser la version de l'extension qui correspond à la version de GeoServer. N'utilisez pas une version antérieure ou ultérieure, même s'il y a un lien dans la documentation qui suggère d'utiliser des versions « nocturnes » d'une extension sur un GeoServer stable/publié.

  • La version du fichier zip de l'extension doit contenir les dépendances requises pour ce module. Vous devez installer tout cela (à moins, bien sûr, que vous ayez déjà installé la dépendance, par exemple en installant une autre extension qui avait certaines des mêmes dépendances).

  • Il existe quelques cas particuliers, où une extension nécessite une autre extension. Un exemple est que le module communautaire GeoPackage nécessite l'extension WPS. Vous devriez vérifier la documentation du module que vous installez au cas où il y aurait des cas particuliers comme celui-ci.

La distinction entre les extensions et les modules communautaires concerne vraiment la façon dont elles sont prises en charge et ne suggère pas des interfaces différentes ou d'autres différences techniques. L'installation suit les mêmes règles.


Il y a plusieurs façons de faire ça.

Une option consiste à utiliser une ancienne application Web Azure avec l'archive Web GeoServer (fichier WAR).

Pour ce faire, téléchargez la version d'archive Web de GeoServer. Créez ensuite une application web dans le portail Azure. Dans les paramètres de l'application, vous devez spécifier Java version 8 et une version Tomcat supérieure à 7.0.65. Ensuite, tout ce que vous avez à faire est de ftp le fichier GeoServer WAR dans /site/wwwroot/webapps .

Une fois que vous avez fait cela, vous devriez pouvoir accéder à GeoServer en visitant votre application Web avec le chemin /geoserver ajouté à l'url. Mais soyez patient, le démarrage initial est lent et peut prendre quelques minutes.

Une autre option consiste à déployer une image de conteneur. J'ai fini par en créer un moi-même qui est conçu pour être utilisé dans une application Web Azure.


Rendez-vous importants

CODE DE COURSDATE DE DÉBUTDATE DE FINDATE LIMITE D'INSCRIPTION.COT DU COURS
(Par participant)
Cliquez pour appliquer.
GISWM126 avril 202130 avril 202121 avril 2021400 USDS'inscrire
GISWM110 mai 202114 mai 20215 mai 2021400 USDS'inscrire
GISWM124 mai 202128 mai 202119 mai 2021400 USDS'inscrire
GISWM114 juin 202118 juin 20219 juin 2021400 USDS'inscrire
GISWM119 juillet 202123 juillet 202114 juillet 2021400 USDS'inscrire
GISWM116 août 202120 août 202111 août 2021400 USDS'inscrire
GISWM120 septembre 202124 septembre 202115 septembre 2021400 USDS'inscrire
GISWM118 octobre 202122 octobre 202113 octobre 2021400 USDS'inscrire
GISWM18 novembre 202112 novembre 20213 novembre 2021400 USDS'inscrire
GISWM129 novembre 20213 décembre 202125 novembre 2021300 USDS'inscrire
GISWM117 janvier 202221 janvier 202211 janvier 2022300 USDS'inscrire

Les cartes Web sont des cartes en ligne créées avec QGIS qui offrent un moyen de travailler et d'interagir avec le contenu géographique organisé en couches. Ils sont partagés dans toute votre organisation et au-delà sur le Web et sur les smartphones et les tablettes. Chaque carte contient un fond de carte de référence ainsi qu'un ensemble de couches de données supplémentaires, ainsi que des outils qui fonctionnent sur ces couches. Les outils peuvent faire des choses simples, comme ouvrir une fenêtre contextuelle lorsque vous cliquez sur la carte, ou des choses plus complexes, comme effectuer une analyse spatiale.

Dans ce cours, vous apprendrez à amener vos cartes et données sur Internet et à créer rapidement des cartes Web avec les plugins QGIS.

Aperçu du contenu du cours

Introduction aux récapitulatifs SIG

  • Qu'est-ce que le SIG ?
  • Que pouvez-vous faire avec le SIG
  • Réfléchissez à des façons d'appliquer le SIG
  • Quelles sont les résolutions ?
  • Types de résolutions
  • Traitement d'image numérique
  • Installation de plugins pour la cartographie Web.
  • Travailler avec des couches de spatialite.
  • Travailler avec des Geopackages et numériser.Création de différents types de données pour la cartographie Web.
  • Création de cartes de sélection et de valeur en cascade dans QGIS.
  • Jointures de table (travail avec des données non spatiales), échelle de carte et projections cartographiques
  • Requête spatiale (par emplacement et attribut), étiquetage et symbologie des données (gradué, symboles proportionnels)
  • Création de graphiques (graphiques à barres, camemberts, histogrammes) et de cartes thermiques pour la carte Web.
  • Introduction aux jeux de données spatiales, aux ajustements spatiaux, à la topologie et aux vérifications d'erreurs.
  • Collecte de données pour les cartes Web Kobocollect
  • Génération de MBtiles XYZ pour le service hors ligne.
  • Aperçu des services Web OGC (OWS) WebMap Service (WMS), Web Feature Service (WFS), Web Coverage service (WCS)
  • Serveurs Web, Géoserveur et Serveurs cartographiques
  • Paramétrage de l'API et saisie des couches.
  • Visionneuse de carte.
  • Geonodes et Geo network Opensource.
  • Services de traitement Web OpenGIS (WPS)
  • Publication de cartes Web en ligne.

Participants cibles

Débutants, spécialistes WASH, experts M& E, santé publique, gestionnaire de programme, étudiants, ingénieurs, enseignants, passionnés de cartographie Web, développeurs Web

Compétences suggérées

Expérience avec un logiciel basé sur Windows pour la gestion et la navigation de base des fichiers.

QGIS Version 3X,Géoserveur,Serveur de cartes

Une fois le cours terminé avec succès, tous les participants recevront un certificat sans frais supplémentaires.


Tuiles vectorielles : la prochaine génération de cartes tuilées

Bien que les jeux de tuiles rastérisées dont nous avons parlé dans cette leçon soient capables de fournir de belles cartes dans un format relativement rapide, ils peuvent être difficiles à mettre à jour et nécessitent d'énormes quantités de ressources informatiques à grande échelle. Pour contourner ces défis, un format de stockage de données appelé « tuiles vectorielles » a gagné en popularité au cours des dernières années. Mapbox a dirigé les efforts de développement sur les tuiles vectorielles et a partagé une spécification de tuiles vectorielles sous une licence Creative Commons.

Les tuiles vectorielles sont exactement ce que vous devinez : elles stockent des morceaux de données vectorielles au lieu de stocker une image de carte. L'idée derrière les tuiles vectorielles est qu'il est plus efficace de séparer le style des données des coordonnées et des attributs des données. Le client peut utiliser un ensemble prédéfini de règles de style pour dessiner des tuiles de coordonnées vectorielles brutes et de données d'attributs envoyées par le serveur. Cela permet le restylage des données à la volée, ce qui est une autre limitation sérieuse des tuiles rastérisées. Pensez-y : si vous souhaitez changer la teinte de vert utilisée pour dessiner des parcs avec vos tuiles rastérisées, vous devez reconstruire chaque tuile contenant un parc. Si vous voulez faire la même chose avec des tuiles vectorielles, il vous suffit de mettre à jour vos instructions de style à un seul endroit et les tuiles elles-mêmes restent les mêmes. D'autres opérations d'affichage telles que la rotation de la carte deviennent également plus faciles à mettre en œuvre avec des tuiles vectorielles.

Les tuiles vectorielles sont conçues pour être petites sur le disque et utilisent un certain nombre d'approches d'optimisation conçues pour réduire la quantité de caractères nécessaires pour stocker les données géographiques et les attributs, dont certains sont décrits dans cette vidéo par l'ingénieur Mapbox Dane Springmeyer. Il présente également un produit appelé Mapbox Studio qui fonctionne uniquement avec des tuiles vectorielles et est promu par Mapbox en remplacement de Tile Mill. Le format de fichier .mbtiles, qui stockait à l'origine les tuiles rastérisées, ne stocke désormais que les tuiles vectorielles lorsqu'elles sont exportées depuis Mapbox Studio.

En réalité, il existe encore des cas d'utilisation pour les formats de tuiles vectorielles et rastérisées, bien qu'il soit probable qu'un certain nombre d'organisations verront à l'avenir des avantages en termes de performances à reconstruire certains de leurs jeux de tuiles pixellisées à l'origine en tant que tuiles vectorielles. C'est d'autant plus probable que les progiciels commerciaux populaires tels qu'ArcGIS introduisent des outils pour travailler avec la spécification de tuile vectorielle Mapbox, une décision stratégique annoncée par Esri dans un article de blog de 2015. Du côté open source, GeoServer a ajouté la prise en charge des tuiles vectorielles dans la version 2.14, comme détaillé dans ces instructions.

Les clients open source reconnaissent également la résistance des tuiles vectorielles, illustrée par le format de couche VectorTile intégré à OpenLayers 3 et la prise en charge des plug-ins pour les tuiles vectorielles Mapbox dans Leaflet. Au moment d'écrire ces lignes, QGIS ne prend pas en charge nativement l'affichage des tuiles vectorielles, bien qu'il existe un plugin relativement nouveau à cet effet.


RGeo est une bibliothèque de données géospatiales pour Ruby. RGeo est un composant clé pour l'écriture d'applications géolocalisées dans le langage de programmation Ruby. À la base se trouve une implémentation de la spécification de fonctionnalités simples OGC standard de l'industrie, qui fournit des représentations de données d'objets géométriques tels que des points, des lignes et des polygones, ainsi qu'un ensemble d'opérations d'analyse géométrique. Cela le rend idéal pour la modélisation des données de géolocalisation. Il prend également en charge une suite de modules complémentaires optionnels qui fournissent divers services liés à la géolocalisation.

Nous avions besoin d'un système raster SIG pour d'énormes jeux de données raster dans GeoServer. Voici quelques outils pour créer un système raster multi-résolution homogène qui peut prendre en charge une variété de formats, de projections, etc., puis créez les tuiles d'arrière-plan. Légèrement plus grand que MrSID.


Joyeux Noël à tous chez Geothread

Une fois de plus, nous nous préparons à terminer l'année ici à l'Université de Cranfield. Avant de signer, nous vous laissons quelque chose qui est devenu un peu une tradition avec l'équipe Geothread au cours des deux dernières années, notre carte Twitter de Noël. L'année dernière, nous avons cartographié la propagation de la joie festive à travers le pays, selon les utilisateurs de Twitter. Une fois de plus, nous avons collecté un échantillon de 60 000 tweets géoréférencés mentionnant le mot Noël, ainsi qu'une poignée d'autres mots-clés associés. Ceux-ci ont été regroupés par comté, puis normalisés par rapport à un échantillon aléatoire de tweets pris plus tôt dans l'année pour éliminer les effets de la densité de population.

En comparant avec la même carte l'année dernière, il est clair qu'il existe plusieurs zones qui sont cohérentes dans leur anticipation de la saison des fêtes du centre du Pays de Galles et du Yorkshire du Nord en particulier. Anglesey et Conwy dans le nord du Pays de Galles semblent certainement être enthousiasmés par les choses cette année, tandis que Cumbria et les Highlands écossais ne semblent pas ressentir le même enthousiasme qu'il y a 12 mois.


Toutes nos excuses à tous ceux que nous avons manqués en Irlande. Malheureusement, l'échantillon aléatoire de tweets que nous avons utilisé pour la normalisation n'incluait pas la couverture de toutes les îles britanniques, c'est pourquoi il y a quelques trous dans la carte finale.

En prime cette année, nous avons inclus une carte interactive des données brutes collectées sur Twitter, que vous pouvez explorer ci-dessous.

Joyeux Noël et bonne année à tous chez Geothread !


Joyeux Noël à tous chez Geothread

Une fois de plus, nous nous préparons à terminer l'année ici à l'Université de Cranfield. Avant de signer, nous vous laisserons avec quelque chose qui est devenu un peu une tradition avec l'équipe Geothread au cours des deux dernières années, notre carte Twitter de Noël. L'année dernière, nous avons cartographié la propagation de la joie festive à travers le pays, selon les utilisateurs de Twitter. Une fois de plus, nous avons collecté un échantillon de 60 000 tweets géoréférencés mentionnant le mot Noël, ainsi qu'une poignée d'autres mots-clés associés. Ceux-ci ont été regroupés par comté, puis normalisés par rapport à un échantillon aléatoire de tweets pris plus tôt dans l'année pour éliminer les effets de la densité de population.

En comparant avec la même carte l'année dernière, il est clair qu'il existe plusieurs zones qui sont cohérentes dans leur anticipation de la saison des fêtes dans le centre du Pays de Galles et dans le Yorkshire du Nord en particulier. Anglesey et Conwy dans le nord du Pays de Galles semblent certainement être enthousiasmés par les choses cette année, tandis que Cumbria et les Highlands écossais ne semblent pas ressentir le même enthousiasme qu'il y a 12 mois.


Toutes nos excuses à tous ceux que nous avons manqués en Irlande. Malheureusement, l'échantillon aléatoire de tweets que nous avons utilisé pour la normalisation n'incluait pas la couverture de toutes les îles britanniques, c'est pourquoi il y a quelques trous dans la carte finale.

En prime cette année, nous avons inclus une carte interactive des données brutes collectées sur Twitter, que vous pouvez explorer ci-dessous.

Joyeux Noël et bonne année à tous chez Geothread !


地 図 タ イ ル に つ い て

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

Web上には当時は無かったため、主に2つの方法が開発されていきます。
一つはMapserverやGeoserverに代表される地図配信サーバを使う方法で、もう一つは地図タイルを使うという方法です。
な お, 地 図 配 信 サ ー バ は 地 図 タ イ ル を 使 う た め の バ ッ ク エ ン ド と し て 動 か す こ と も 多 く あ り ま す.
地 図 配 信 サ ー バ は 実 際 に デ ー タ を 配 信 す る 技術 で, 地 図 タ イ ル は ク ラ イ ア ン ト 側 に 近 い 技術 と な り ま す.

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

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

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

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

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

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

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

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

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

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

で, 一番 や っ か い な 存在 が 日本 測 地 系 と い う 存在 で す.
日本測地系というか旧日本測地系(Tokyo 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て書かれたページにたどり着くことができ、Exportationの項目から各ツールで取り込めるプログラムの断片を取得することができます。
proj4.defsは単にこのサイトから引っ張ってきただけのものというのがわかります。
ちなみにEPSGコードは管理してる団体を指していますが、コード自体はSRID (Identifiant du système de référence spatiale)というものになります。

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

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

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

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

    • zoom 0 : 2 0 * 2 0 = 1 * 1 = 1 tuile
    • zoom 1: 2 1 * 2 1 = 2 * 2 = 4 tuiles
    • zoom 2: 2 2 * 2 2 = 4 * 4 = 16 tuiles
    • zoom 3: 2 3 * 2 3 = 8 * 8 = 64 tuiles
    • zoom n : 2 n * 2 n
    • zoom 18 : 2 18 * 2 18 = 262 144 * 262 144 = 68 719 476 736 tuiles

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

    さて、次はProjection Web Mecator (EPSG:3857) についてです。
    これはGoogle Maps由来のメルカトル図法を定義しているものです。
    0/0/0.png を見せましたが、このファイルを良く見てください。
    ぱ っ と 見 て わ か り づ ら い の で す が, 「南極 点 と 北極 点 あ た り が 無 い」 ん で す.
    Web系企業っていうことでなんと南北の 85.051129 から先をぶった切るということをやってしまっています。
    元 々 メ ル カ ト ル 図 法 自 体 赤道 か ら 離 れ て い く と ド ン ド ン 面積 が 広 く な っ て し ま う 性質 が あ る の で す が, こ の よ う に ぶ っ た 切 る 事 で 「ど う せ い ら ね ー だ ろ」 っ て い う と こ ろ を 大胆 に 省 い て し ま っ た わ け で す.
    完全 に 実 用 主義 と い う わ け で す.
    EPSGコードが出てきています。
    EPSGコードでは座標以外にも定義が可能で、epsg.ioのUnitéという項目を見るとどういうものを指してるかがわかります。
    EPSG:4612はdegré (fournisseur pour définir la représentation)というUnitéで、EPSG:3857はmètre(=mètre:メートル)というUnitéを指しています。
    なお、このメートルがなんなのかあんまよくわかってないのですが、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 (service de tuile de carte)とWMTS (service de tuile de carte Web)です。
    両 者 の 決定 的 な 違 い は 座標 の 扱 い 方 で す.
    具体 的 に は 次 の 図 を 見 て く だ さ い.

    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のタイルを使いたい -> API Mapbox GL JS
    4. Mapboxのタイルを使うのに他の仕組みも取りれないといけない -> Mapbox.js + Leaflet.jsのプラグイン
    5. ゲームタイル -> Leaflet.js / OpenLayers
    6. その他 -> とりあえず Leaflet.js から始めてみる

    API Mapbox GL JS のサンプルを作ってみましょう。
    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に、tilesの中にzxyタイルのエントリポイントを書いています。
    //zoom, x座標, y座標に変換されます。
    couchesのところに使うレイヤーを指定します。
    レ イ ヤ ー は 複数 書 く こ と も で き, ア プ リ ケ ー シ ョ ン 側 の コ ー ド か ら ど の レ イ ヤ ー を 出 す か な ど が コ ン ト ロ ー ル で き る と い う 仕 組 み で す.

    iOSですが、状況は地獄です。
    そもそも、iPhoneでは初期の頃からRoute-Meというライブラリがあった(というか僕も使ってた)のですが、見ての通りまず開発が止まってしまい、代わりにALPSTEIN Tourismusのfork(Alpstein fork)が比較的動いていたところにMapbox社がそれをfourcheしてMapbox iOS SDKとして開発をしました。
    そのため、Alpsteinは開発終了と自分たち𰛯orkではなくMapbox SDK iOSを代̈&#FりにO x3066くれとアナウンスを出します。
    ところが、今度はMapbox社の方が全く新しいmapbox-gl-nativeを作り、現在はこちらがMapbox iOS SDKとしてリリースされてしまったため、古いMapbox iOS SDKの開発がほぼ息絶えました。
    いちおうMapbox iOS SDK Legacyはま𰘌ocoaPodsにあるのでいちおうギリギリ使えるかもしれませんが、すでにobsolèteだし、そもそも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. プ ロ グ ラ ム を 書 く.

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

    地 図 タ イ ル を 作 る

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

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

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

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

    @から始まる変数で描画時の色を使い回したり、ズームレベルによるセレクタなどによってズームレベル15以上でなければ描画しないという表現がされています。
    #bâtimentsはレイヤーのIDを指しています。
    レイヤーはproject.mmlというTilemillのプロジェクトファイルに書かれていてます。
    JSON形式で書かれています。
    bâtimentsの設定は次のように書かれています。

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

    fonctionnalitéの検索条件がmapnik xmlのFiltre
    実 際 に 変 換 後 の フ ァ イ ル を 見 て み ま し ょ う.

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

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

    Ajouter un calqueを押してレイヤーを追加します。
    Source de donnéesでParcourirボタンを押して最初なのでcoastl_jpn.shpというファイルを追加します。
    SRSの指定でWGS84を選択します。
    Enregistrerを押すと日本の海岸線が描画されます。

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

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

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

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

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

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

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

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

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

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


    Créez votre propre site web avec une carte interactive

    Bonjour, j'ai un plan pour mener un projet d'été. J'aime créer mon propre site Web avec une carte interactive montrant mes propres données. Ce serait amusant d'utiliser le géoserveur, PostGIS, le dépliant et certaines cartes de fond comme une carte des rues ouverte.

    La documentation pour configurer tous ces composants, je suis sûr de la trouver à plusieurs endroits. Mais je n'ai jamais créé de site Web auparavant, encore moins un site Web qui prend en charge la tenue d'une carte interactive affichant mes propres données postGIS.

    Où est-ce que je commence? De quoi ai-je besoin? Le moyen est-il simplement d'obtenir une URL sur WordPress et de commencer à configurer ma configuration ? Quels fournisseurs de sites Web sont la norme de facto pour les sites Web de petite taille prenant en charge les données SIG ?

    Quelqu'un l'a-t-il fait lui-même ? Pourriez-vous peut-être partager votre site Web, votre configuration et les leçons apprises.

    Je n'irais pas immédiatement sur un serveur externe pour commencer votre projet personnel. Vous pouvez facilement héberger un serveur Web sur votre propre PC.

    Le moyen le plus simple de servir des sites Web statiques consiste à utiliser la bibliothèque Python http. Il suffit de cd dans le répertoire de votre projet qui contient les fichiers html etc et d'exécuter python -m http.server . Cela démarrera un serveur Web exécuté sur localhost:8000 .

    Il se peut que vous ayez besoin de PHP pour votre projet. Si c'est le cas, vous pouvez utiliser le serveur de développement PHP.

    Peut-être aussi commencer par un simple didacticiel de développement Web comme ceux de W3schools ou MDN afin que vous connaissiez les bases de HTML, CSS et JavaScript et comment le Web fonctionne.

    Si vous sentez que votre projet est terminé et que vous souhaitez le montrer au monde, envisagez peut-être de l'héberger sur un serveur (comme AWS) et d'obtenir un domaine pour celui-ci.

    Cool, merci pour l'idée. Serait-il possible de le déployer facilement sur un serveur externe ultérieurement ? Que diriez-vous d'appliquer des modules comme Django, flask et brochure ?

    Une chose que vous pouvez vérifier est Django. Il existe depuis longtemps et a beaucoup de support et de documentation là-bas. Django est idéal pour créer des sites Web de base sans une tonne de complexité et vous pouvez héberger librement un petit site sur Heroku sans avoir besoin d'une carte de crédit. Le niveau gratuit Heroku comprend également une petite base de données PostgreSQL qui peut être étendue avec PostGIS.

    Pour ajouter à cela, Django s'intègre également de manière transparente à PostGIS de manière native via ses modules GeoDjango, qui vous permettront d'interagir avec les données spatiales via l'ORM de Django.

    Pour la cartographie Web, Leaflet s'associerait bien avec cette pile, et si vous le souhaitez, vous pouvez intégrer quelque chose comme Vue.js pour aider à créer l'interface utilisateur et ajouter une meilleure interactivité aux modèles Django's.

    Bien sûr, ce n'est qu'une des nombreuses façons de créer un site de nos jours, mais je pense que Django est idéal pour les personnes qui commencent leur voyage de développement Web.

    Merci pour le tuyau! C'est un peu ce que j'ai l'intention de faire, en essayant simplement de déterminer la partie hébergement en termes de laquelle est la meilleure/la plus facile/la moins chère pour les SIG. Je vais vérifier heroku !

    Pour l'hébergement, je recommanderais Digital Ocean.

    C'est un serveur simple que vous pouvez faire avec ce que vous voulez. Et ça commence à 5$/mois. Il vous permet de tout configurer, ce qui est une excellente expérience d'apprentissage.

    Leurs tutos sont super aussi. Passe par l'installation de PostgreSQL + PostGIS par exemple PostGIS : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postgis-on-ubuntu-14-04

    Si vous utilisez un code de parrainage, vous obtenez 100 $ à utiliser sur 60 jours. Donc 2 mois gratuits à 5$ par mois :

    Oui, j'ai déjà lu sur l'océan numérique et que cela fonctionne bien avec le SIG. Est-il livré avec tout ce dont j'ai besoin ? J'ai entendu des gens parler d'acheter un domaine et de l'héberger à deux endroits différents ?

    Comme d'autres l'ont dit, vous pourrez peut-être vous en sortir avec des fichiers de données statiques chargés dans Leaflet.

    Si vous souhaitez exécuter un serveur Web principal, vous pouvez utiliser Python Flask pour gérer les demandes et utiliser les bibliothèques SQLAlchemy/GeoAlchemy pour s'interfacer avec Postgres/PostGIS.

    L'été dernier, j'ai commencé à travailler sur mon propre site Web de portefeuille/projets SIG qui utilise un back-end Flask actuellement hébergé sur AWS Elastic Beanstalk, qui se connecte à Postgres sur AWS RDS. AWS propose une offre gratuite d'un an, ce qui est pratique pour créer des éléments lorsque vous êtes prêt à héberger sur le Web.

    Vous pouvez visiter le site Web ici et tout le code source est sur mon GitHub ici. Je suis moi-même très débutant mais je pourrais peut-être répondre à vos questions si vous en avez.

    Waouh ! Cela avait l'air parfait ! Bon travail! Je vais certainement vérifier votre configuration en parallèle de la mienne. Et super merci de partager votre GitHub ! Je serai en contact si des questions surgissent, merci!

    Si vous voulez servir les données vous-même, vous aurez besoin d'un back-end. Le back-end interagira avec la base de données et servira les données selon vos besoins. J'ai récemment essayé python à cette fin. J'ai utilisé Flask comme framework et SQLAlchemy pour me connecter à la base de données. De plus, vous devrez peut-être utiliser la géo-alchimie pour utiliser des objets géographiques.

    Pour le front-end, je n'ai pas utilisé Leaflat à la place, j'ai utilisé la bibliothèque javascript OpenLayers pour gérer les objets géographiques dans le navigateur. La bibliothèque OL fournit de nombreux exemples pour utiliser les appels API et créer des couches telles que l'exemple OSM. Vous voudrez peut-être essayer des choses comme webpack, babel, en fonction de la profondeur à laquelle vous souhaitez vous familiariser avec les outils de développement frontaux.

    Ce qui m'amène à mon point suivant, au lieu d'héberger et de servir les données vous-même, vous pouvez utiliser l'API OSM Overpass. OSM contient des tonnes de données géographiques que vous pouvez utiliser sur votre projet, telles que les limites administratives, les points d'intérêt, les routes, etc. Vous pouvez l'utiliser sans backend, ce qui pourrait vraiment aider à ralentir les choses. Après avoir terminé votre seul projet frontal, vous pouvez le mettre sur les pages Github. Vous pouvez créer votre site Web en ligne sans avoir à payer pour des services grâce à cela !

    Mais, si vous êtes déterminé à créer un back-end pour vos données, vous pouvez essayer d'utiliser AWS. C'est très populaire mais je ne l'ai jamais essayé auparavant. Ou utilisez tout autre service pour héberger votre serveur privé virtuel.

    Dans le et il y a des tonnes de façons différentes de faire ce que vous voulez. Et il existe des tonnes d'outils différents pour les faire. J'ai parlé des choses que je connais. J'espère que cela pourra aider.

    Il ne contient pas toutes les fonctionnalités que vous avez mentionnées, mais ce tutoriel est un bon début : http://jonathansoma.com/tutorials/webapps/

    Ce projet représente un investissement en temps et en efforts assez important, mais ce sera une compétence formidable (et de plus en plus nécessaire, IMO) à ajouter à votre boîte à outils !

    Cool, je vais certainement le vérifier! Merci pour le tuto !

    Mais je n'ai jamais créé de site Web avant [. ] Où est-ce que je commence?

    Sur https://developer.mozilla.org/en-US/docs/Learn . Il semble que bien maîtriser les bases du HTML et du HTTP vous fera du bien.

    Vous devriez jeter un œil sur Geonode. Ce serait parfait pour votre projet, je pense

    Cool, je ne connaissais pas Geonode, je vais certainement le vérifier! Merci!

    Commencez avec le dossier des tuiles vectorielles pbf et geojson, aucune base de données côté serveur ou MapServer/GeoServer n'est requis. Utilisez OpenLayer ou Leaflet ou Mapbox GL JS.

    Cela peut être hébergé gratuitement sur les pages GitHub ou sur n'importe quel serveur Web statique.

    Vous pouvez peut-être utiliser le plugin QGIS2WEB pour QGIS et modifier le code qu'il génère.

    Alternativement, utilisez tileserver.php avec mbtiles pour servir vos tuiles vectorielles et vos tuiles raster.

    Si vous utilisez la base de données principale POSTGIS, vous pouvez vous associer à crunchydata pg_tileserv ou KOOPjs pour fournir des tuiles vectorielles dynamiques à partir de la base de données.

    R et Shiny étaient assez faciles à apprendre avec une très petite expérience de codage. Vous pouvez utiliser le dépliant et les poseurs de carreaux gratuits habituels. Il y a tellement de tutoriels et d'informations sur tout avec des exemples à peu près coupés et collés tant que vous avez une idée générale. Vous pouvez ensuite l'héberger sur le serveur shiny pour une page. J'ai construit une carte de base traçant des données avec plusieurs filtres de données réactifs.

    J'ai eu une idée très similaire cet hiver et j'ai réussi à mettre en place celle-ci. Je suis encore assez débutant en programmation

    Base de données PostGIS, PHP pour lier la base de données et le front-end, brochure pour la cartographie, serveur Apache. Je n'ai utilisé aucun framework, bien que vous puissiez facilement substituer PHP à Python et Flask comme quelqu'un l'a suggéré.

    Avant de commencer à créer cette application Web, j'avais une connaissance très basique de Python et de Javascript. Donc à peu près tout était très nouveau pour moi. Il m'a fallu 3 à 4 mois pour l'assembler (j'y ai principalement travaillé le week-end et certains jours en milieu de semaine après le travail).

    Si vous êtes un débutant complet, je vous recommanderais de suivre un cours Udemy juste pour commencer. Cela peut être assez écrasant de tout découvrir par vous-même. Des tas de bibliothèques et de choses que vous devez configurer, mais si vous vous lancez complètement en solo, vous n'auriez pas la moindre idée de ce qui vous manque et pourquoi certaines choses doivent être mises en place. Je sais que je ne serais pas capable de le faire sans un cours qui est sûr. J'ai suivi celui-ci. Ce n'est pas parfait, mais il vous donnera tout ce dont vous avez besoin pour faire avancer les choses. Une grande partie de mon application (liée ci-dessus) est basée sur ce cours. Cela vous donne une solide compréhension de la façon dont tout est lié afin que vous puissiez le développer vous-même.

    J'ai utilisé DigitalOcean pour le déploiement (5 $/mois pour l'hébergement, même si vous pouvez certainement aller moins cher). Le déploiement était assez effrayant pour moi pour être honnête. Bien que ce soit un processus beaucoup plus facile, mais lorsque vous le faites une fois, vous serez assez à l'aise pour le faire la 2e, la 3e et la 100e fois.

    Leçons apprises (en tant que débutant complet) : avant de commencer, vous pensez que ce sera assez facile et rapide, puis vous commencez et réalisez qu'il y a BEAUCOUP de choses que vous ne saviez pas que vous devrez faire. Là encore, lorsque vous avez terminé et que vous regardez en arrière, cela semble à nouveau être un projet simple et direct.

    Faites-le définitivement et respectez-le (j'ai eu un obstacle majeur - il m'a fallu environ un mois pour le comprendre et quelques petits qui ont été résolus en quelques jours). C'est immensément gratifiant !


    Est-il facile d'utiliser QGIS pour créer une carte interactive en ligne ?

    J'aime créer mon premier site Web et une caractéristique clé de celui-ci sera une carte interactive. Vous devriez pouvoir zoomer, faire défiler, cliquer sur une entité pour afficher des informations dans un panneau sur le côté de la carte, sélectionner les entités à afficher sur la carte, etc.

    Ma première question est où puis-je savoir comment utiliser QGIS pour le faire ? J'ai examiné QGIS2web il y a environ un an, mais je me souviens avoir rencontré des problèmes techniques presque immédiatement et je me souviens vaguement d'un problème qui aurait pu être lié à la compatibilité avec les nouvelles versions de QGIS. Les gens utilisent-ils encore QGIS2web ? Y a-t-il de meilleures options ?

    Ma deuxième question est si j'utilise une plate-forme de création de site Web telle que wordpress, mais que je dois réellement approfondir le code html pour faire quelque chose de fantaisie comme créer une carte interactive, est-ce que cela peut toujours être géré? Je ne connais pas la première chose à propos de la création d'une page Web, mais certaines de ces choses entraînent des frais d'abonnement, je ne veux donc pas payer pour un service qui, d'une part, simplifie les choses pour moi, mais ne me permettra pas moi pour personnaliser diverses parties d'un site Web.


    Voir la vidéo: Generating XYZ tilesMBTiles in QGIS # Lesson 28 of 29 # QGIS Tutorial.