Skip to content

astine/Shapely

Repository files navigation

Shapely

Shapely is a small minimal Java library for querying ESRI shapefiles. It's not a full shapefile, editing and manipulation tool and it's intended purpose is merely to see whether a given point is with a given shape. I wrote it with the intent of computing the timezones for a given IP address using the tz_world shape files.

Usage

Usage is simple. Include the jar and import the class ShapeFile.

import net.theatticlight.Shapely.ShapeFile;

Then you can load a shapefile and query it for info:

ShapeFile shapeFile = new ShapeFile("/path/to/shapefile/base/"); 
List<Object> value = shapeFile.getInfoAtPoint(new Record.Vect(x,y), "field name");
System.out.println(value.get(0));

Swing App

If run as an application with a base path and a field name as arguments, the ShapeFile class will run a simple swing application which will display a map of the entire shapefile. This application is meant primarily for sanity checks.

Limitations

Shapely is not a full shapefile processing library. GeoTools is a better choice if you need a complete shapefile API. Shapely is only meant for read only queries against extant shapefiles.

In addition, these limitations apply:

  • Shapely currently does not support more than two dimensions.
  • Shapely might not work correctly on little endian systems.
  • Shapely only reads the .shp .shx .dbf and .qix files associated with a given shapefile

Author/Contact The author of the code is Andrew Stine. He can be reached at stine dot drew at theatticlight dot net or at his website.

About

Minimal shapefile query library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages