You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+27-25Lines changed: 27 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
-
# IndoorFeature API
2
-
3
-
IndoorFeature api is a RESTful api implementation of the **OGC IndoorGML 2.0** standard, designed to align with **OGC API - Features** standards. This api extends the pygeoapi framework to provide specialized service layers for indoor environments.
1
+
# API-IndoorFeatures
4
2
3
+
API - IndoorFeatures is a RESTful api implementation of the **OGC IndoorGML 2.0** standard, designed to align with **OGC API - Features** standards. This api extends the pygeoapi framework to provide specialized service layers for indoor environments.
4
+
- We are working on `branch_for_indoorAPI`[branch](https://github.com/STEMLab/API_IndoorFeatures/tree/branch_for_indoorAPI).
5
5
6
6
### Naming
7
7
8
-
This API is referred to as the **IndoorFeature API** because it implements
9
-
the IndoorGML conceptual model, including spatial subdivision, topology,
8
+
This API is referred to as the **API-IndoorFeatures** because it implements
9
+
the IndoorGML 2.0 conceptual model, including spatial subdivision, topology,
10
10
layering, and duality relationships.
11
11
12
12
All resources are exchanged using **IndoorJSON**, which serves as the
@@ -18,22 +18,18 @@ concrete JSON encoding of IndoorGML concepts.
18
18
19
19
This project is a extension of
20
20
[pygeoapi](https://pygeoapi.io), designed to provide a RESTful API for IndoorGML 2.0 standard.
21
-
### Key Accomplishments
22
-
***OGC Standards Alignment:** Successfully mapped IndoorGML 2.0 Indoorfeature to the OGC API - Features core.
23
-
***Dual-Space Logic:** Full implementation of Primal Space and Dual Space connectivity via. Poincare's Duality.
24
-
***Advanced Navigation:** Custom service endpoints for Shortest Path (Dijkstra) and Topological N-Hop analysis.
25
-
***Engineering Precision:** Native support for **SRID 0** (Cartesian Plane) for building-scale accuracy.
21
+
26
22
27
23
---
28
24
29
25
## 🛠 Technical Pedigree
30
26
31
27
### Built on [pygeoapi](https://pygeoapi.io)
32
-
This engine is built upon a specialized fork of **pygeoapi**, a Python server implementation of the OGC API suite of standards.
33
-
***Standardized Access:** Provides RESTful endpoints using OpenAPI, GeoJSON, and HTML.
34
-
***Extended Core:** We have customized the `api/indoorgml.py` core and developed custom providers to handle the unique hierarchy of `IndoorFeatures`.
35
-
***PostgreSQL/PostGIS:** Optimized schema for spatial bounding and geometric queries.
36
-
***pgRouting:**Dynamic graph traversal without the overhead of static topology creation.
28
+
This engine is built upon a specialized fork of **pygeoapi 0.22.0**, a Python server implementation of the OGC API suite of standards.
29
+
***Standardized Access:** Provides RESTful endpoints using OpenAPI, JSON, and HTML.
30
+
***Extended Core:** We have customized the `api/indoorgml.py` core and developed custom providers `provider/postgresql_indoordb.py`to handle the unique hierarchy structure of `IndoorFeatures`.
31
+
***PostgreSQL/PostGIS:** Optimized schema of indoor DB for efficient query and geometric functions.
32
+
***pgRouting:**Routing the optimal path in the graph(DualSpace).
37
33
***Dockerized:** Fully containerized environment for immediate deployment.
38
34
39
35
---
@@ -43,9 +39,12 @@ This engine is built upon a specialized fork of **pygeoapi**, a Python server im
43
39
| Category | Endpoint | Description |
44
40
| :--- | :--- | :--- |
45
41
|**Core**|`/collections/{collection_id}/items/{feature_id}`| Standard OGC resource discovery and Feature access. |
46
-
|**IndoorFeature**|`.../layers/{layer_id}/...`| Specialized access to IndoorJSON components (Thematic layers). |
47
-
|**Navigation**|`...{layer_id}/routing`| Shortest path calculation powered by pgRouting.|
48
-
|**Spatial**|`/geoquery`| Advanced spatial filtering via WKT-form 2D geometries. |
42
+
|**IndoorFeature**|`.../layers/{layer_id}/`| Specialized access to IndoorJSON `ThematicLayer`. |
43
+
|**IndoorFeature**|`.../interlayerconnections/{connection_id}/`| Specialized access to IndoorJSON `interLayerConnection`. |
44
+
|**IndoorFeature**|`.../primal/{member_id}/...`| Specialized access to IndoorJSON primal space components (`cellSpace` and `cellBoundary`). |
45
+
|**IndoorFeature**|`.../dual/{member_id}/...`| Specialized access to IndoorJSON dual space components (`node` and `edge`). |
46
+
|**Services**|`...{layer_id}/routing`| Shortest path calculation powered by pgRouting.|
47
+
|**Services**|`/geoquery`| Advanced spatial filtering via WKT-form 2D geometries. |
49
48
50
49
💡 Tip: For a full list of over 20+ endpoints, including detailed parameter schemas and CRUD operations, please refer to our interactive documentation at:
51
50
🔗 Swagger UI: `/openapi`.
@@ -55,24 +54,27 @@ This engine is built upon a specialized fork of **pygeoapi**, a Python server im
55
54
## 📥 Installation & Setup
56
55
### 1. Prerequisites
57
56
* Docker & Docker Compose (For PostGIS/pgRouting)
58
-
* Python 3.10+ (For pygeoapi)
57
+
* Python 3.10+ (For pygeoapi 0.22.0)
59
58
60
59
### 2. Environment Startup
61
60
We recommend using a Python virtual environment to manage dependencies and avoid conflicts with system-level packages.
0 commit comments