Giter Club home page Giter Club logo

sldeditor / sldeditor Goto Github PK

View Code? Open in Web Editor NEW
147.0 15.0 32.0 74.98 MB

Java desktop application that allows the creation and editing of OGC Styled Layer Descriptors for use with GeoServer. See blog for more project information (https://robward-scisys.github.io).

License: GNU General Public License v3.0

Batchfile 0.03% Java 98.55% HTML 0.01% Scheme 1.05% Shell 0.13% Python 0.13% Makefile 0.01% Ruby 0.05% NSIS 0.04%
sld java-desktop-application geoserver symbols qgis ogc editor gui-application gis

sldeditor's Introduction

Build Status Code Quality Coverage Status License GitHub release Github All Releases

The SLD Editor is a Java desktop application developed by SCISYS that allows the creation and editing of OGC Styled Layer Descriptors interactively using a graphical user interface.

The aim of the project is to develop an application enabling the generation of SLD files, where a user has complete control over all aspects of the OGC SLD standard.

Main features include:

  • Vector (point, line and polygon) symbol editing

  • Raster symbol editing

  • Text symbol editing

  • Vector and raster legend image generation

  • Functions, filters, expressions, transformations all configurable via dialogs.

  • Inline feature support

  • GeoServer vendor options supported:

    • Labelling

    • WKT geometry

    • Windbarbs

    • extshapes://, qgis:// marker shapes

    • Polygon random fills

  • Integration with GeoServer

  • Map viewer

  • YSLD import and export facility

  • Tools to improve workflow, including batch updates of fonts and rule scales.

  • Ability to convert Esri MXD files to SLD files (requires separate licensed components not supplied as part of this project) Build instructions here

Release

A compiled single executable jar is available here, runs on macOS, Windows and Linux:

and can be started:

java -jar SLDEditor.jar

Due to the changes in Java, double clicking on the executable jar file does not work any more, specific OS installers/applications are available here:

MacOS

An installer is available here: SLDEditor DMG Installer

Windows

An installer is available here: SLDEditor Windows Installer

Ubuntu

A debian package installation has been created:

To add the Ubutnu PPA to your system

sudo add-apt-repository ppa:robward/sldeditorppa

sudo apt-get update

To install

sudo apt-get install sldeditor

Background

I’ve been developing the application for about 18 months as a side project. The idea started when SciSys did some consultancy work and put together a proposal for an organisation to migrate from an Esri system to an OpenLayers/GeoServer stack. When it came to migrating ~1250 layers we didn’t know what number to put down for symbol conversion to SLD. When you looked at the numbers this was a large percentage of the overall cost and something needed to be done to reduce it if we were going to be competitive in doing migrations to open source GIS systems.

One of our long standing large enterprise GIS systems required a change to an SLD symbol which we used QGIS to edit. It turned out there was a known bug that caused the change to be forgotten. I looked to fix it, I’m very familiar with C++ and Qt but found it difficult to debug and realised the SLD styling data model was not completely implemented.

I looked at using GeoTools because I knew it could parse SLD files and render them. Another big advantage is that it supports all the GeoServer vendor options, in particular the labelling. I got something simple working quite quickly and it went from there.

Ideally all this functionality should be in QGIS, but QGIS would have to be rewritten to use a C++ version of GeoTools to be able to render the GeoServer vendor options, which will not happen overnight. I know of people that would love this capability and understand the reluctance for yet another application. I think as long as GeoServer is so heavily used, a Java desktop SLD Editor application is acceptable.

There have been discussions about developing a web-front end for the application, a possibility. However not all GIS systems we deliver are web based and some customer networks do not allow web access or a web server to be deployed without going through a lot of hoops. A standalone desktop application ensures there is no dependency on any other infrastructure.

One of the aims of the application is to work in a connected/disconnected environment.

The project was presented at FOSS4G UK 2016

Project State

The application is nearing a version 1.0.

There are some further GeoServer vendor options yet to be implemented.

Further testing is needed to ensure the application is rock solid.

There will be some work needed to understand why some symbols don’t display. I’m thinking windbarbs where I believe I’m passing the correct data but the symbol is not rendered.

License

The SLD Editor licensed under the GPLv3.

This application is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Documentation

The project documentation exists in the GitHub project wiki.

sldeditor's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sldeditor's Issues

Problems installing on Windows

I'm trying to install on windows 7 using the build instructions. I have the jdk and maven parts sorted but when I run mvn clean install it seems to tick along ok and then sticks here:

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in com.sldeditor.test.unit.extension.filesystem.ExtensionFactoryTest
Running com.sldeditor.test.unit.extension.filesystem.file.FileSystemInputTest

Remove multiple field code, not used any more

Tried many ways of implementing function expressions including having multiple fields in the details panels, however not easy to maintain and found a better way. The code should be removed.

Code coverage results for integration tests being uploaded to Coveralls

The Jacoco maven plugin is generating code coverage results for unit and integration tests. When built on Travis the integration tests are run last and are being uploaded to Coveralls.io.

After adding more unit tests the code coverage is going down!

Need to update maven poms to only generate code coverage for unit tests.

Unable to open .sld and .sldeditor

Issue:
I am unable to open .sldeditor files or plain sld files.

How to reproduce:
Method 1:
Run SLDEditor.jar
click on File -> Open
Browse to a previously saved .sldeditor file and open it
The "file system manager" tree will select the file but no information will appear on the "symbol", "sld", "Map" or "Data Source" tabs to the right.

Method 2:
Run SLDEditor.jar
Click on SLD-> Open
Browse to a previously saved .sld file and open it
The "file system manager" tree will select the file but no information will appear on the "symbol", "sld", "Map" or "Data Source" tabs to the right.

Method 3:
Run SLDEditor.jar
Browse to a previously saved .sld or .sldeditor using the "file system manager" tree.
Click or double click on the file
Nothing happens

Environment:
Windows 10 pro and Oracle Java 1.8.0_91.
SLDEditor.jar release 0.2.0

ScaleUtilTest fails to due locale dependency

The build fails on a system with italian locale:

Results :

Failed tests: 
  ScaleUtilTest.testGetValue:46 expected:<1:123[,456,]789> but was:<1:123[.456.]789>

Tests run: 265, Failures: 1, Errors: 0, Skipped: 3

Incorrect external graphic field states

Found as a result of issue #7 when selecting 'External' for a point symbol to set a graphic image the enabled/disabled state of fields such as Gap and Initial Gap is not correct.

Integration tests occasionally failing

Getting the following happening when travis runs the integration tests:

java.lang.NullPointerException: null
at javax.swing.tree.DefaultTreeSelectionModel.resetRowSelection(DefaultTreeSelectionModel.java:774)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:291)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:188)
at javax.swing.JTree.setSelectionPath(JTree.java:1633)
at com.sldeditor.datasource.extension.filesystem.node.FileSystemNodeManager.getTreePath(FileSystemNodeManager.java:161)
at com.sldeditor.datasource.extension.filesystem.node.FileSystemNodeManager.showNodeInTree(FileSystemNodeManager.java:76)
at com.sldeditor.extension.filesystem.FileSystemExtension.setFolder(FileSystemExtension.java:339)
at com.sldeditor.extension.filesystem.FileSystemExtension.open(FileSystemExtension.java:440)
at com.sldeditor.SLDEditor.openFile(SLDEditor.java:626)
at com.sldeditor.test.SLDTestRunner.runTest(SLDTestRunner.java:248)

Build failures on ConsoleManagerTest (Java 8/Maven 3.3.9)

See below:

Failed tests: 
  ConsoleManagerTest.testExceptionClassOfQException:134 expected:<0> but was:<1>
  ConsoleManagerTest.testExceptionObjectException:150 expected:<0> but was:<1>
  ConsoleManagerTest.testInformation:118 expected:<0> but was:<1>

The individual stack traces are not interesting:

java.lang.AssertionError: expected:<0> but was:<1>
    at org.junit.Assert.fail(Assert.java:88)
    at org.junit.Assert.failNotEquals(Assert.java:834)
    at org.junit.Assert.assertEquals(Assert.java:645)
    at org.junit.Assert.assertEquals(Assert.java:631)
    at com.sldeditor.test.unit.common.console.ConsoleManagerTest.testExceptionClassOfQException(ConsoleManagerTest.java:134)

Environment:

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)
Java version: 1.8.0_66, vendor: Oracle Corporation

Reorganise project

The project needs to be simplified to split the SLD Editor application and import utility into separate code bases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.