Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Imposm3 | 619 | a year ago | 17 | October 11, 2021 | 64 | apache-2.0 | Go | |||
Imposm imports OpenStreetMap data into PostGIS | ||||||||||
Osm Tasking Manager2 | 428 | 5 years ago | 306 | other | JavaScript | |||||
Designed and built for Humanitarian OpenStreetMap Team collaborative emergency/disaster mapping, the OSM Tasking Manager 2.0 divides an area into individual squares that can be rapidly mapped by thousands of volunteers. | ||||||||||
Docker Osm | 234 | a year ago | 18 | gpl-2.0 | C | |||||
A docker compose project to setup an OSM PostGIS database with automatic updates from OSM periodically | ||||||||||
Osmexpress | 176 | 8 months ago | 3 | July 13, 2020 | 11 | bsd-2-clause | C++ | |||
Fast database file format for OpenStreetMap | ||||||||||
Healthsites | 134 | a month ago | 192 | other | JavaScript | |||||
Building an open data commons of health facility data with OpenStreetMap | ||||||||||
Openpoiservice | 122 | 2 years ago | 1 | August 07, 2018 | 23 | apache-2.0 | Python | |||
:round_pushpin: Openpoiservice is a flask application which hosts a highly customizable points of interest database derived from OpenStreetMap data. | ||||||||||
Geodesk | 117 | a month ago | 7 | March 24, 2023 | 61 | apache-2.0 | Java | |||
Fast and storage-efficient spatial database engine for OpenStreetMap data | ||||||||||
Imposm2 | 114 | 7 years ago | 21 | apache-2.0 | Python | |||||
Imports OpenStreetMap data into geo databases | ||||||||||
Linkedgeodata | 114 | a year ago | 16 | gpl-3.0 | Java | |||||
OpenStreetMap for the Semantic Web | ||||||||||
Osmcoastline | 100 | 4 months ago | 3 | gpl-3.0 | C++ | |||||
Extracts coastline data from OpenStreetMap planet file. |
GeoDesk is a fast and storage-efficient geospatial database for OpenStreetMap data.
Small storage footprint — GeoDesk's GOL files are only 20% to 50% larger than the original OSM data in PBF format — that's less than a tenth of the storage consumed by a traditional SQL-based database.
Fast queries — typically 50 times faster than SQL.
Fast to get started — Converting .osm.pbf
data to a GOL is 20 times faster than an import into an SQL database. Alternatively, download pre-made data tiles for just the regions you need and automatically assemble them into a GOL.
Intuitive API — No need for object-relational mapping; GeoDesk queries return Node
, Way
and Relation
objects. Quickly discover tags, way-nodes and relation members. Get a feature's Geometry
, measure its length/area.
Proper handling of relations — (Traditional geospatial databases deal with geometric shapes and require workarounds to support this unique and powerful aspect of OSM data.)
Seamless integration with the Java Topology Suite (JTS) for advanced geometric operations, such as buffer, union, simplify, convex and concave hulls, Voronoi diagrams, and much more.
Modest hardware requirements — If it can run a 64-bit JVM, it'll run GeoDesk.
Include this dependency in your project's pom.xml
:
<dependency>
<groupId>com.geodesk</groupId>
<artifactId>geodesk</artifactId>
<version>0.1.8</version>
</dependency>
Alternatively, to build the latest version from source:
git clone https://github.com/clarisma/geodesk.git
cd geodesk
mvn install
If you get weird exceptions during mvn install
, you should upgrade Maven to version 3.8.5 or above.
import com.geodesk.feature.*;
import com.geodesk.util.*;
public class PubsExample
{
public static void main(String[] args)
{
FeatureLibrary library = new FeatureLibrary( // 1
"example.gol", // 2
"https://data.geodesk.com/switzerland"); // 3
for(Feature pub: library // 4
.select("na[amenity=pub]") // 5
.in(Box.ofWSEN(8.53,47.36,8.55,47.38))) // 6
{
System.out.println(pub.stringValue("name")); // 7
}
library.close(); // 8
}
}
What's going on here?
We're opening a feature library ...
... with the file name example.gol
(If it doesn't exist, a blank one is created)
... and a URL from which data tiles will be downloaded.
We iterate through all the features ...
... that are pubs (GeoDesk query language — similar to MapCSS)
... in downtown Zurich (bounding box with West/South/East/North coordinates).
We print the name of each pub.
We close the library.
That's it, you've created your first GeoDesk application!
Find all movie theaters within 500 meters from a given point:
Features<?> movieTheaters = library
.select("na[amenity=cinema]")
.select(Filters.maxMetersFromLonLat(500, myLon, myLat));
Remember, OSM uses British English for its terminology.
Discover the bus routes that traverse a given street:
for(Relation route: street.parentRelations("[route=bus]"))
{
System.out.format("- %s from %s to %s",
route.stringValue("ref"),
route.stringValue("from"),
route.stringValue("To"));
}
Count the number of entrances of a building:
int numberOfEntrances = building.nodes("[entrance]").size();