Sha256: 39e53c61c1a884b461f2cf3ec32fd34fc88eea5f326ac938a7540a3db6f4f721

Contents?: true

Size: 1.65 KB

Versions: 2

Compression:

Stored size: 1.65 KB

Contents

require 'neo4j/spatial/listener'
require 'neo4j/spatial/database'
require 'tempfile'

module Neo4j
  module Spatial
    class ImageExporter
      include Database
      def initialize(options={})
        default(options)
        database(options)
        @exporter = org.neo4j.gis.spatial.geotools.data.StyledImageExporter.new(@db.graph)
        @exporter.setExportDir(options[:dir])
        @exporter.setZoom(options[:zoom])
        @exporter.setOffset((options[:offset_x] || options[:offset]).to_f, (options[:offset_y] || options[:offset]).to_f)
        @exporter.setSize(options[:width], options[:height])
      end
      def default(options)
        options[:dir] ||= "target/export"
        options[:zoom] ||= 3.0
        options[:offset] ||= 0.0
        options[:width] ||= 600
        options[:height] ||= 400
      end
      def export(layer_name,options={})
        @layer_name = layer_name
        options[:path] ||= layer_name+'.png'
        if block_given?
          puts "block is given"
        end
        if options[:sld].nil?
          puts "SLD nil"
        end
        if options[:sld].nil? && block_given?
          Tempfile.open 'neo4j-spatial-sld' do |out|
            options[:sld] = out.path
            sld = Amanzi::SLD::Document.new layer_name
            yield sld
            out.puts sld.to_xml :tab => '  '
          end
        end
        options[:sld] ||= 'neo.sld.xml'
        puts "Exporting #{layer_name} to #{options[:path]} using style #{options[:sld]}"
        @exporter.saveLayerImage(layer_name, options[:sld], options[:path])
      end
      def format
        "PNG"
      end
      def to_s
        @layer_name || format
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
neo4j-spatial-0.0.2-java lib/neo4j/spatial/image.rb
neo4j-spatial-0.0.1-java lib/neo4j/spatial/image.rb