Skip to content

Instantly share code, notes, and snippets.

@also
Created December 27, 2011 19:29
Show Gist options
  • Save also/1524874 to your computer and use it in GitHub Desktop.
Save also/1524874 to your computer and use it in GitHub Desktop.
// scala -cp /Users/ryan/Downloads/commons-jxpath-1.3/commons-jxpath-1.3.jar:/Users/ryan/Downloads/miglayout-4.0.jar:/Users/ryan/Downloads/geotools-8.0-M4/\*:/Users/ryan/Downloads/jscience-4.3/jscience.jar:/Users/ryan/work/vendor/jts-1.12/lib/jts-1.12.jar show_shapefile.scala ~/Downloads/tl_2009_us_county/tl_2009_us_county.shp
import scala.collection.JavaConversions._
import java.awt.image.BufferedImage
import java.awt.Color
import java.awt.Rectangle
import java.awt.RenderingHints
import java.io.File
import java.util.HashMap
import javax.imageio.ImageIO
import org.geotools.data.FileDataStoreFinder
import org.geotools.map.FeatureLayer
import org.geotools.map.MapContent
import org.geotools.renderer.lite.StreamingRenderer
import org.geotools.styling.SLD
import org.geotools.swing.JMapFrame
val width = 800
val height = 600
val dataStore = FileDataStoreFinder.getDataStore(new File(args(0)))
val featureSource = dataStore.getFeatureSource
val map = new MapContent
map.setTitle(args(0))
val style = SLD.createSimpleStyle(featureSource.getSchema)
val layer = new FeatureLayer(featureSource, style)
map.addLayer(layer)
//JMapFrame.showMap(map)
def renderStatic() {
var paintArea = new Rectangle(width, height)
var mapArea = map.getMaxBounds
var renderer = new StreamingRenderer
renderer.setMapContent(map)
val hints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)
renderer.setJava2DHints(hints)
val rendererParams = new HashMap[String, Any]
rendererParams.put("optimizedDataLoadingEnabled", true)
renderer.setRendererHints(rendererParams)
val bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB)
val graphics = bufferedImage.createGraphics
graphics.setColor(Color.white)
graphics.fillRect(0, 0, width, height)
renderer.paint(graphics, paintArea, mapArea)
ImageIO.write(bufferedImage, "png", new File(args(0) + ".png"))
}
renderStatic()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment