Skip to content

Instantly share code, notes, and snippets.

View ianturton's full-sized avatar
🏠
Working from home

Ian Turton ianturton

🏠
Working from home
View GitHub Profile
@ianturton
ianturton / Buffer
Last active January 30, 2021 16:38
Buffer a GeoTools Linestring, this code creates a new polygon at a specified distance around the provided line.
package com.ianturton.cookbook.operations;
import java.util.List;
import javax.measure.Measure;
import javax.measure.quantity.Length;
import javax.measure.unit.SI;
import org.geotools.data.DataUtilities;
import org.geotools.feature.SchemaException;
package com.ianturton.w3w;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
@ianturton
ianturton / WindingOrder.java
Last active November 6, 2015 11:26
Reorder polygons so you can import them into programs which don't understand Exterior + Interior rings.
package spike;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.geotools.data.DataUtilities;
import org.geotools.data.shapefile.shp.JTSUtilities;
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ianturton.cookbook</groupId>
<artifactId>modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.ianturton.cookbook</groupId>
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ianturton.cookbook</groupId>
<artifactId>modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Cookbook</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<geotools.version>15-SNAPSHOT</geotools.version>
package com.ianturton.cookbook.raster;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.geotools.coverage.GridSampleDimension;
import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.coverage.grid.io.AbstractGridCoverage2DReader;
@ianturton
ianturton / GenerateRandomData.java
Created July 20, 2016 12:11
A simple class to create random test data with GeoTools
package com.ianturton.cookbook.utilities;
import java.util.ArrayList;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
@ianturton
ianturton / CellTower.java
Last active October 27, 2021 11:23
GeoTools program to calculate a wedge shaped polygon 10 degrees wide given a lat,lon radius and azimuth.
package spike;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import org.geotools.referencing.GeodeticCalculator;
import org.geotools.referencing.crs.DefaultGeographicCRS;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
@ianturton
ianturton / install.sh
Last active September 4, 2017 11:59
Installing ZooWPS on Ubuntu
# install mandatory libs etc
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install curl
sudo apt-get autoremove
sudo apt-get install fastcgi
sudo apt-get install libfcgi libfcgi-dev
sudo apt-get install libapache2-mod-fastcgi
sudo apt-get install flex bison
sudo apt-get install libxml2 libxml2-dev
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<NamedLayer>
<Name>USA states population</Name>
<UserStyle>
<Name>population</Name>
<Title>Population in the United States</Title>
<Abstract>A sample filter that filters the United States into three