GIS

Why Greenland Looks Huge on Web Maps: The Web Mercator Projection Explained

Have you ever looked at Google Maps and noticed that Greenland appears absolutely enormous—almost as large as the entire continent of Africa? Yet if you check the actual numbers, something doesn’t add up. Greenland covers approximately 2.17 million km², while Africa spans a staggering 30.37 million km². That means Africa is roughly 14 times larger […]

Why Greenland Looks Huge on Web Maps: The Web Mercator Projection Explained Read More »

Building an OpenStreetMap Renderer from Scratch

Understanding Web Mercator, tiles, pixels, and map math by implementing your own OSM renderer in pure JavaScript. Introduction Most developers use libraries like Leaflet, OpenLayers, or Mapbox GL to render maps. These libraries hide a huge amount of mathematics and geodesy behind a simple API. But what actually happens when you: In this article, we

Building an OpenStreetMap Renderer from Scratch Read More »

Finding the Best Vertical Path in a Grid (with Jumps and Weights)

In many grid-based problems, you need to choose exactly one column in each row to form a path.But not all columns are equal — some cells are better (think “free road”), others are worse (think “toll road”), and some are blocked. In our example: Our goal: Step 1: Understanding “jumps” A jump happens when you

Finding the Best Vertical Path in a Grid (with Jumps and Weights) Read More »

Integrating MapLibre GL with VueJS: Animating a Helicopter Along a Line – Part 2

In Part 1, we explored how to integrate MapLibre GL with Vue.js to render a 3D globe and prepare the foundation for WebGL-based custom layers using Three.js. In this follow-up post, we’ll take things further by animating a 3D helicopter model along a predefined route — combining geospatial precision with 3D animation inside a modern

Integrating MapLibre GL with VueJS: Animating a Helicopter Along a Line – Part 2 Read More »

Integrating MapLibre GL with VueJS: Creating a 3D Globe in Vue App – Part 1

Vue.js is one of the most popular JavaScript frameworks for building user interfaces. It’s known for its simplicity, flexibility, and progressive nature, making it an excellent choice for both small prototypes and large-scale applications. In this tutorial, we’ll combine Vue.js with MapLibre GL, an open-source alternative to Mapbox GL, to create a stunning 3D globe

Integrating MapLibre GL with VueJS: Creating a 3D Globe in Vue App – Part 1 Read More »

Developing probability distribution function of a given geometry

In real-world scenarios like drone delivery, robotics navigation, or sensor error modeling, we often deal with uncertainty. Even if a system is designed to land at a target point, small errors due to wind, GPS inaccuracies, or mechanical drift can cause deviations. To quantify these uncertainties and make predictions, we use probability distributions. Specifically, a

Developing probability distribution function of a given geometry Read More »

Building Georeferenced Datasets from HDF5 Files with h5py, xarray, and Rasterio

Introduction HDF5 (.h5) files are widely used in scientific computing, particularly for storing large-scale datasets from remote sensing missions, climate models, and other geospatial applications. These files are self-describing, meaning they store both the data and metadata (e.g., spatial extent, resolution, units, etc.) in a hierarchical structure. However, working with HDF5 files can be challenging

Building Georeferenced Datasets from HDF5 Files with h5py, xarray, and Rasterio Read More »

Clustering London Accidents Data Using Fuzzy C-Means

Introduction Understanding patterns in accident data is crucial for urban planning, traffic management, and public safety. Clustering is a powerful technique that helps in identifying accident-prone areas by grouping locations with similar characteristics. In this tutorial, we will use Fuzzy C-Means (FCM) clustering to analyze London accident data over 36 months, identifying high-density clusters and

Clustering London Accidents Data Using Fuzzy C-Means Read More »

How to Compare DSMs in Python: Analyze Surface Elevation Changes and Generate Heat Maps

Introduction Digital Surface Models (DSMs) represent the Earth’s surface, including all features such as buildings, trees, and other objects above the ground. They are widely used in geospatial analysis for applications like urban planning, flood modeling, and vegetation monitoring. By comparing two DSMs from different time periods, we can detect changes in surface elevation caused

How to Compare DSMs in Python: Analyze Surface Elevation Changes and Generate Heat Maps Read More »

File System vs SQLite as a TileStore: Which is Better for Your Application?

In modern applications, especially those involving geographic information systems (GIS), mapping services, or image processing pipelines, tile-based storage plays a critical role. Tiles are small, pre-rendered chunks of data—often images or spatial data—that are used to efficiently display large datasets, such as maps or high-resolution images. For example, when you zoom in on Google Maps,

File System vs SQLite as a TileStore: Which is Better for Your Application? Read More »