Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add map components documentation #97

Merged
merged 35 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
5d25591
docs: add map component documentation (WIP)
shimoncohen Sep 27, 2024
150f6d3
docs: add vector map component features
shimoncohen Oct 9, 2024
80f5f51
Merge branch 'master' of github.com:MapColonies/developer-portal into…
shimoncohen Oct 10, 2024
43b8877
docs: add knowledgebase sidebar
shimoncohen Oct 10, 2024
dba78b4
docs: add knowledgebase sidebar
shimoncohen Oct 10, 2024
343ce10
Merge branch 'add-map-component-documentation' of github.com:MapColon…
shimoncohen Oct 10, 2024
2542170
chore: remove FAQ deom knowledgebase
shimoncohen Oct 10, 2024
49a9567
fix: links to terms
shimoncohen Oct 11, 2024
9fe36d8
Update docs/KnowledgeBase/MapViewers/README.md
shimoncohen Oct 11, 2024
176e6e4
Update docs/KnowledgeBase/MapViewers/README.md
shimoncohen Oct 11, 2024
6c86d4b
Update docs/KnowledgeBase/MapViewers/README.md
shimoncohen Oct 11, 2024
694db46
docs: add a basic explanation about map viewers
shimoncohen Oct 11, 2024
e6fd90e
Merge branch 'add-map-component-documentation' of github.com:MapColon…
shimoncohen Oct 11, 2024
fabeb34
chore: add newlines at the end of files
shimoncohen Oct 13, 2024
f4bd84b
Merge branch 'add-map-component-documentation' of github.com:MapColon…
shimoncohen Oct 13, 2024
b7069a6
docs(map-components): fix EsriJS to ArcGIS JS SDK
shimoncohen Oct 13, 2024
d1f51dd
Update docs/KnowledgeBase/MapViewers/map-components.md
shimoncohen Oct 13, 2024
67adb0c
docs(map-components): fix supported raster data types table
shimoncohen Oct 13, 2024
fa2fbf4
Merge branch 'add-map-component-documentation' of github.com:MapColon…
shimoncohen Oct 13, 2024
89649ea
docs(map-components): move common map viewers to map viewers page
shimoncohen Oct 13, 2024
00832e2
refactor: rename map components feature page
shimoncohen Oct 13, 2024
1523ba8
docs: add knowledge base to more links in footer
shimoncohen Oct 13, 2024
48d0ba9
docs: make features formatting identical
shimoncohen Oct 14, 2024
39d0c64
docs: fix missing column in vector table
shimoncohen Oct 14, 2024
9f4f2ef
docs: remove terrain sub title under dem
shimoncohen Oct 14, 2024
b0af347
docs(map-components): add more raster features categories
shimoncohen Oct 16, 2024
8f3dd7e
docs(map-components): explain what image bands raster feature means
shimoncohen Oct 16, 2024
c833919
docs(map-components): minor changes
shimoncohen Oct 16, 2024
1f20040
docs: fix broken link
shimoncohen Oct 16, 2024
302b0b9
docs: leaflet supports vector tiles with plugins
shimoncohen Oct 30, 2024
9868cb7
docs(map components): add banners for projections and coordinate systems
shimoncohen Oct 30, 2024
c76f66c
docs(map components): add information about OGC Tiles API
shimoncohen Oct 30, 2024
371f9f8
docs: add warning for supported features
shimoncohen Nov 18, 2024
c5a2909
Merge branch 'master' of github.com:MapColonies/developer-portal into…
shimoncohen Nov 21, 2024
73a7f60
docs(map viewers): fix projection table
shimoncohen Nov 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions docs/KnowledgeBase/MapViewers/README.md
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Swap between what is map compontent and whining about so many

Copy link
Contributor Author

@shimoncohen shimoncohen Oct 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Swapped.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add short summary of the common map viewers

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
id: map-viewers-overview
slug: map-viewers-overview
title: Map viewers
sidebar_position: 1
tags:
- map-viewers
- viewers
- overview
---

There are so many map viewers out there, how do you choose the best one for your needs?
Here we attempt to help you make this decision.

Disclaimer:
Everything written in this knowledge base is based on our research of selected well known map viewers. We do not attempt to recommend one as the best, but give you all the information we believe you need in order to make a better decision based on your use case.
Some of the viewers may be incompatible with some of our data or services and will require additional adjustments in order to consume them (for some it may not be possible at all).

So lets get started!

## What is a map viewer / component?

A map viewer is a visual component to help us display `geographic` data such as raster, vector, 3D and DEM. It does all of the heavy-lifting in fetching, calculating and displaying the data correctly.

There are many features that a map viewer could implement, please read more about the different libraries and features [here](/docs/KnowledgeBase/MapViewers/map-components.md).
3 changes: 3 additions & 0 deletions docs/KnowledgeBase/MapViewers/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"position": 2
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

N
E
W
L
I
N
E

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A
D
D
E
D
!

134 changes: 134 additions & 0 deletions docs/KnowledgeBase/MapViewers/map-components.md
netanelC marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change this map to be Comparison

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried it out and I think that adding a TOC in the page isn't relevant.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made the change with comparison.

Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
id: map-viewers-features
slug: map-viewers-features
title: Map viewers Features
sidebar_position: 2
tags:
- map-viewers
---

In this page we list some features that you may be interested in and show which map viewers support them.

## Map viewers reviewed in this page
shimoncohen marked this conversation as resolved.
Show resolved Hide resolved

Cesium - [Docs](https://cesium.com/learn/cesiumjs-learn/), [Playground](https://sandcastle.cesium.com/)

Leaflet - [Docs](https://leafletjs.com/reference.html), [Examples](https://leafletjs.com/examples.html), [Playground](https://codesandbox.io/s/leaflet-playground-8riog)

OpenLayers - [Docs](https://openlayers.org/en/latest/apidoc/), [Examples](https://openlayers.org/en/latest/examples/), [Playground](https://codesandbox.io/examples/package/openlayers)

EsriJS - [Docs](https://developers.arcgis.com/javascript/latest/), [Examples](https://developers.arcgis.com/javascript/latest/sample-code/), [Playground](https://developers.arcgis.com/javascript/3/samples/playground/)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arcgis sdk not esrijs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.


iTowns - [Docs](https://www.itowns-project.org/), [Examples](http://www.itowns-project.org/itowns/examples/index.html)

Mapbox - [Docs](https://docs.mapbox.com/mapbox-gl-js/guides/), [Examples](https://docs.mapbox.com/mapbox-gl-js/example/), [Playground](https://docs.mapbox.com/playground/)

deck.gl - [Docs](https://deck.gl/docs), [Examples](https://deck.gl/examples)

Maplibre-gl-js - [Docs](https://maplibre.org/maplibre-gl-js/docs/API/), [Examples](https://maplibre.org/maplibre-gl-js/docs/examples/)

## Projections

If you don't know what a `projection` is, please read more [here](/docs/KnowledgeBase/terms#mapping), or on [wikipedia 🌐](https://en.wikipedia.org/wiki/Map_projection).

| **Viewer** | **EPGS:4326** | **EPSG:3857** | **Supported projections** | **Can reproject** | **Notes** |
| ----------- | ----------- | ----------- | ----------- | ----------- |
| Cesium | ✅ | ✅ | [Projections](https://cesium.com/learn/cesiumjs/ref-doc/MapProjection.html) | ✅ | |
| Leaflet | ✅ | ✅ | [Projections](https://leafletjs.com/reference.html#projection) | ❌ | |
| OpenLayers | ✅ | ✅ | [Projections](https://openlayers.org/en/latest/apidoc/module-ol_proj_Projection-Projection.html) | ✅ | Supports all EPSG |
| EsriJS | ✅ | ✅ | [Projections](https://pro.arcgis.com/en/pro-app/latest/help/mapping/properties/list-of-supported-map-projections.htm) | ✅ | Supports all EPSG |
| iTowns | ✅ | ❌ | [Projections](https://www.itowns-project.org/itowns/docs/tutorials/Fundamentals.html) | | |
| Mapbox v1 | ❌ | ✅ | [Projections](https://docs.mapbox.com/mapbox-gl-js/guides/projections/) | | |
| Mapbox v2 | ➖ Not tested yet go to projection https://docs.mapbox.com/mapbox-gl-js/api/map/ | ✅ | [Projections](https://docs.mapbox.com/mapbox-gl-js/guides/projections/) | ❌ | |
| deck.gl | ❌ | ✅ | [Projections](https://deck.gl/docs/developer-guide/views) | | |
| Maplibre-gl-js | ❌ | ✅ | | | |

## Raster

### Supported data types and protocols

| **Viewer** | **WMS** | **Can read WMS capabilities** | **WMTS** | **Can read WMTS capabilities** | **Tile Layer** | **GeoTiff** | **COG** |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

parse

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean?

| ----------- | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- |
| Cesium | ✅ | ❌ | ✅ | ❌ | ✅ | | |
| Leaflet | ✅ | ❌ | ✅ | ➖ Possible with package or TileLayer Hack | ✅ | | |
| OpenLayers | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

| EsriJS | ✅ | | ✅ | ✅ | | |
| iTowns | ✅ | | ✅ | ❌ | | |
| Mapbox v1 | ✅ | | | | | |
| Mapbox v2 | ✅ | | | | | |
| deck.gl | ✅ | | ➖ With package or TileLayer Hack | | | |
| Maplibre-gl-js | ✅ | | ➖ Through templating | | | |

### Features

| **Viewer** | **Bounds** | **Image Bands** | **Features** |
| ----------- | ----------- | ----------- | ----------- |
| Cesium | ✅ (By defining the layer's rectangle) | ➖ Supports opacity (Alpha) | ✅ GPUable |
| Leaflet | ❌ | ➖ Supports opacity (Alpha) | ✅ GPUable (only via CSS animations) |
| OpenLayers | ✅ (BBOX extent) | ✅ | ✅ Preload tiles <br/> ✅ GPUable |
| EsriJS | ✅ (BBOX extent) | ➖ Supports opacity (Alpha) | |
| iTowns | | ❌ | ✅ Immersive view (Street view) <br/> ✅ GPUable |
| Mapbox v1 | | | ✅ GPUable |
| Mapbox v2 | | | ✅ GPUable |
| deck.gl | | | ✅ GPUable |
| Maplibre-gl-js | ✅ (Array of numbers) | ➖ Supports opacity (Alpha) | ✅ GPUable |

## 3D

| **Viewer** | **3D Tiles** | **I3S** | **Point cloud** | **Features** |
| ----------- | ----------- | ----------- | ----------- | ----------- |
| Cesium | ✅ | ✅ | ✅ | - Control sun and atmosphere<br/>- Custom lightings |
| Leaflet | ❌ | ❌ | ❌ | |
| OpenLayers | ❌ | ❌ | ❌ | |
| EsriJS | ❌ | ✅ | ✅ | Custom lightings |
| iTowns | ✅ | ❌ | ✅ | Sun simulation |
| Mapbox v1 | ❌ | ❌ | ❌ | |
| Mapbox v2 | ❌ | ❌ | ❌ | |
| deck.gl | ✅ | ✅ | ✅ | Custom lightings |
| Maplibre-gl-js | | | | |

## DEM

### Terrain

| **Viewer** | **QMesh** | **Raster DEM** | **Skyline terrain** |
| ----------- | ----------- | ----------- | ----------- |
| Cesium | ✅ | ❌ | ✅ (With plugin) |
| Leaflet | ❌ | ❌ | |
| OpenLayers | ❌ | ❌ | |
| EsriJS | ❌ | ➖ (ESRI format) | |
| iTowns | ❌ | ✅ | |
| Mapbox v1 | ❌ | | |
| Mapbox v2 | ❌ | ✅ | |
| deck.gl | ❌ | ✅ | |
| Maplibre-gl-js | | ✅ | |

## Vector

### Supported data types and protocols

| **Viewer** | **WFS** | **GeoJSON** | **Features** | **Drawing** |
| ----------- | ----------- | ----------- | ----------- |
| Cesium | ❌ No native support but feasible | ✅ | ✅ | ✅ |
| Leaflet | ❌ No native support but feasible | ✅ | ✅ 2D<br/>❌ 3D | ✅ |
| OpenLayers | ✅ | ✅ | ✅ 2D<br/>❌ 3D<br/>✅ OpenLayers symbology<br/>✅ Mapbox symbology adapter | ✅ With complex symbology |
| EsriJS | ✅ | ✅ | | |
| iTowns | ✅ | ✅ | ✅ 2D<br/>✅ 2.5D<br/>❌ 3 | ✅ Simple symbolog |
| Mapbox v1 | | ✅ | ✅ 2D<br/>✅ 2.5D<br/>❌ 3 | ✅ With complex symbolog |
| Mapbox v2 | | ✅ | ✅ 2D<br/>✅ 2.5D<br/>❌ 3 | ✅ With complex symbolog |
| deck.gl | ❌ | ✅ | | |
| Maplibre-gl-js | | | | |

### Vector Tiles

| **Viewer** | **Query** | **Symbology** | **OGC Vector Tiles** |
| ----------- | ----------- | ----------- | ----------- |
| Cesium | ❌ | ❌ | ❌ |
| Leaflet | ❌ | | ❌ |
| OpenLayers | ✅ | ❌ | ✅ |
| EsriJS | ✅ | ✅ | ❌ |
| iTowns | ✅ | ❌ | ❌ |
| Mapbox v1 | ✅ | ✅ But for v1 | ❌ |
| Mapbox v2 | ✅ | ✅ | ❌ |
| deck.gl | ✅ | ❌ | ❌ |
| Maplibre-gl-js | | ✅ | |
8 changes: 8 additions & 0 deletions docs/KnowledgeBase/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"label": "Knowledge Base",
"position": 1,
"link": {
"type": "generated-index",
"description": "MapColonies Knowledge Base"
}
}
File renamed without changes.
2 changes: 1 addition & 1 deletion docs/MapColonies/Raster/services/export.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ for more details view:
- **https://www.sqlite.org/index.html**

Our specification consists of the following:
- [Terms & Abbreviations](/docs/MapColonies/terms)
- [Terms & Abbreviations](/docs/KnowledgeBase/terms)
- [Tiling scheme](/docs/MapColonies/Raster/overview/#raster-tiling-scheme-in-detail) (World CRS84 TileMatrixSet)
- file extension: ".gpkg"

Expand Down
2 changes: 1 addition & 1 deletion docs/MapColonies/openstreetmap/osm-carto/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ For more information check [Raster step by step guide](/docs/MapColonies/Raster/

## What did we do
As this stylesheet is an open-source, we had to make a few minor changes compared to the original one.
- We changed the stylesheet projection from Web Mercator to WGS84. See [mapping terms](/docs/MapColonies/terms#mapping).
- We changed the stylesheet projection from Web Mercator to WGS84. See [mapping terms](/docs/KnowledgeBase/terms#mapping).
- We modified the database insertion script to prefer names in Hebrew and English when possible.
- We imported data from the Natural Earth dataset in places where we didn't import OSM data.

Expand Down
6 changes: 6 additions & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,12 @@ const config = {
position: 'left',
label: 'OGC',
},
{
type: 'docSidebar',
sidebarId: 'knowledgeBaseSidebar',
position: 'left',
label: 'Knowledge base',
},
],
},
footer: {
Expand Down
1 change: 1 addition & 0 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const sidebars = {
// By default, Docusaurus generates a sidebar from the docs folder structure
ogcSidebar: [{type: 'autogenerated', dirName: 'ogc'}],
docSidebar: [{ type: 'autogenerated', dirName: 'MapColonies'}],
knowledgeBaseSidebar: [{ type: 'autogenerated', dirName: 'KnowledgeBase'}],
gettingStartedSidebar: [
{
type: 'category',
Expand Down
Loading