Data Formats

Using GIS Data

GIS data is the cornerstone of any map and ThinkGeo has support for the most popular data formats. You can even integrate your own custom data formats. GIS data sources are usually first separated by the type of data: vector or raster. Vector data is represented by sets of coordinates that make up either points, lines, or polygons and are commonly paired with column style data. By contrast, raster data is associated with images and typically stored in formats similar to JPEG.

Data sources are further subdivided by their storage and retrieval mechanism, such a file or database. Many popular databases have support for GIS data and are an attractive choice for users familiar with SQL. At the same time, databases typically require a separate installation and require maintenance. In the cases where a database is not a good fit, there are a number of file formats that do the same job, such as shapefiles. ThinkGeo supports many of the most popular formats and allow you to pick the right one for your application.

In recent years, using web services have also become popular and is also supported within ThinkGeo. In this case, one of the storage systems above is setup as service and accessed by the client via HTTP. These are useful in cases where your application needs data from a third party or your application is outside of a LAN and you want your service to be accessible by many different types of clients.

 
Map of various data points sourced from a postgres database

Database Formats

We support many popular database formats, and we can quickly support new ones, as well. Database formats are great for storing data that is frequently updated, large, or needs to be shared from a central location.

Sample Code

WPF | Winforms | Xamarin | WebAPI | Blazor*

 

Postgres / PostGIS

PostgreSQL is one of the most popular open source databases and has great GIS spatial support with its PostGIS extension.

SQL Server

Microsoft’s premier database has good spatial support and it’s a great choice for storing your GIS data in the .NET ecosystem.

Oracle

Oracle’s database is an enterprise level system with good spatial support. If you already have Oracle, it’s a great platform for GIS.

Map of Frisco park areas sourced from a shapefile

Vector File Formats

Vector file formats make it easy to package data, ship to users, or access from standalone computers. They are typically a single file or group of files that store GIS features and column data. While some formats are very simple, there are also ones that support embedded databases, such as File Geodatabase or SQLite, giving you the ability to store multiple feature types all in one file.

Sample Code

WPF | Winforms | Xamarin | WebAPI | Blazor

 

Shapefile

Shapefiles are an open and popular GIS file format which stores points, lines, or polygons and include column data as a set of files.

File GeoDatabase

File Geodatabase is a proprietary single file database system developed by ESRI and can store multiple layers with column data.

CSV / TSV

Delimited files are often used as an exchange and tech neutral file format. In GIS, they are typically used to hold point coordinates and column data.

 

GeoJSON

GeoJSON is an open standard format for encoding GIS data in JSON which makes it easy to encode and decode on various platforms and programming languages.

MBTiles

MBTiles is a file format that focuses on tile sets of GIS data, which cut up geometric data into smaller tiles. Due to this, the format is optimal for rendering but not for analysis.

TAB

TAB is a proprietary file format designed by MapInfo that holds GIS data along with styling information.

 

Tobin Data

Tobin Data is primarily used in the oil and gas industry that provides detailed GIS information for well, survey, and leasing data.

TinyGeo

TinyGeo is a proprietary file format developed by ThinkGeo which focuses on storing GIS data with the smallest footprint while still being optimized for rendering.

CAD

CAD is used by architects, engineers and designers. ThinkGeo had full support for rendering georeferenced data from .dwg and .dfx files.

 

SQLite

SQLite is an embedded relational database with GIS data support. Since it can store multiple tables worth of data in single file, it’s a great choice for distributing your application’s data.

Nautical Charts

Nautical charts display important coastal and nautical data along with precise styles that are provided by coastal authority standards in the S-57 or S-52 formats.

GPX

GPX is an XML file format for storing GIS waypoints, routes, and tracks. It is a popular format with handheld GPS units and is designed to be an exchange format.

Image taken from a satellite geometrically overlayed on top of a map

Raster Formats

Raster data typically store satellite and other aerial imagery with embedded coordinates and allows them to interact with vector data. Mixing raster images and precision vector data can give your users a better understanding of your maps.

GIS raster formats are many times larger than traditional images and employ a technique of tiling or creating strips inside the image file. These tiles or strips are described in the image header and allow GIS software to quickly read only the sections of the image where the user is currently viewing. This keeps memory usage down and draws quickly for users as they are not accessing the entire file.

To prevent loss of resolution when users zoom in, many of the file formats embed multiple levels of imagery in the same file. To save disk space, vendors have created clever methods of compressing these files by comparing different levels and removing redundancies.

Sample Code

WPF | Winforms | Xamarin | WebAPI | Blazor

 

GeoTIFF

GeoTIFF is a superset of the TIFF image standard and incorporates GIS coordinates as well as supporting tiles and strips. It’s mainly used as a master format since it’s lossless. Most users convert it to formats better at saving space and faster rendering.

ECW

ECW is one of the most used raster formats in GIS because it supports high levels of compression and fast rendering. The format is propitiatory and has a fee for compressing data, but the decompression library is free.

MrSid

MrSid is a popular format for storing large amounts of compressed raster data at high render speeds. It is propitiatory and does have a fee for compressing your data, but the decompression library is free.

 

JPEG2000

JPEG2000 is a popular open compression format for compressing large datasets for fast retrieval and low memory overhead. While the specification is open, there is currently not a good free compressor.

GIF / BMP / PNG

These are the standard image file formats most are familiar with. You will need a seperate world file to specify the image’s coordinates to make them useful with vector data and are not designed for large areas.

Map displaying weather temperatures sourced from NOAA weather web service

Web Services

Web services provide a way of accessing data stored in a variety of formats. They leverage web standards, such as HTTP, that allow various platforms and languages to access data in a universal way. Typically, web services allow users to access subsets of larger datasets that are stored in either flat files or back-end databases.

There are many different vendors and they offer vector, raster, and other data services, such as routing and geocoding. Many of the providers charge based on usage or have a flat fee with usage limits. In most cases, you will need to signup for these services, and they will provide you with user credentials that you will need to embed in your software in order to authenticate with them.

Alternatively, you can host your own data using web services if your customers are not on a LAN or you need to have a unified security model above and beyond what databases provide.

Sample Code

WPF | Winforms | Xamarin | WebAPI | Blazor*

 

 ThinkGeo Maps

ThinkGeo provides a full set of mapping services from base maps to geocoding, routing, and many others. Pricing is reasonable and offers fixed pricing with some usage limits. You have liberal usage rights to the images and resulting services.

Google Maps

Google Maps is the largest provider of GIS maps and services and charges per transaction fee their usage. Their fee structure changes periodically and there are usage rights with the images consumed by customers.

Bing Maps

Bing Maps is one of the larger providers of maps and services. it has a transaction based pricing model and does have restrictions on how you can use the maps served.

 

Open Street Maps

Open Street Maps is more of an open repository for world GIS data. While it does provide an API, it is restricted to non-commercial, low volume usage. OSM is the main provider for ThinkGeo’s mapping data.

NOAA Weather

NOAA provides a host of services related to weather such as station temperatures, weather warnings, and precipitation maps. While the data is in a hard to use format, we provide easy to use layers that interface with it.

WMS & WFS

WMS (Web Map Service) and WFS (Web Feature Service) are open standards for serving images and features. We support both standards for integrating data into your map.

 

MapBox Tiles

MapBox is a large player in the GIS map serving space and offers mapping tiles that are charged based on usage. They allow you to customize the style of the data and provide the tiles in vector format for rendering on the client.

USGS DEM

The USGS publishes digital elevation models which are evenly spaced elevation data. This is used to visually render precision elevation data.

 
Nautical charts of Florida's southern tip

Integrating Custom Data

ThinkGeo makes it easy to integrate custom data formats though its extensibility model. Simply inherit from the FeatureSource class and override just a few methods. This allows you to bring your own data format or implement support for data sources we do not yet support.

Additionally, we are always interested in integrating new and popular formats in our tools. If there is a data format out there that you would like us to support, just let us know!

We also make it easy to integrate custom query logic for your datasets. For example, if your data has an optimal way to query features inside a bounding box, you can override the GetAllFeatures method and the rest of the class will benefit from it. We have worked hard to ensure that you only need to implement just a few methods and the rest just works.

Sample Code

WPF | Winforms | Xamarin | WebAPI | Blazor*

 * Feature available, but no specific sample.

<<

>>