SINED GmbH
Software Development Company

  • PolygonLib

    A library for efficient storing great amount (>10 million) of 2D polygons in RAM and quick operations on them. The product is especially optimized for operations on large polygon sets.
    C++, STL, COM, ATL, MFC
  • GIS Framework

    A framework for developing custom GIS components (extensions) that can be used in both desktop and Web applications.
    .NET Framework 2.0/3.5/4.0, COM,
    C#, HTML, Java Script,
    ArcGIS 9.x/10
  • GeoFES-Web

    Migration of GeoFES to the Web while retaining the existing GUI and the ability to run on the desktop (ArcMap).
    .NET Framework 3.5/4.0, C#, COM,
    ArcGIS 9.x/10 (ArcObjects, ArcGIS Server, ArcGIS API for WPF, ArcGIS Desktop)
  • WISYS-Web

    Migration of WISYS explorers to the Web while retaining the existing GUI and the ability to run on the desktop (ArcMap).
    .NET Framework 2.0, C#, COM,
    HTML, Java Script,
    ArcGIS 9.x (ArcObjects, ArcGIS Server Web ADF for .NET)
  • WISYS Explorers

    Powerful tools for displaying and analyzing the WISYS (Water Information System) data in ArcMap.
    .NET Framework 2.0, C#, COM,
    ArcGIS 8.x/9.x/10 (ArcObjects, ArcSDE, ArcGIS Desktop)
  • FDAT

    An ArcMap extension for assessment of flood damage.
    .NET Framework 2.0, C#, COM,
    ArcGIS 9.3 (ArcObjects, ArcGIS Desktop)
  • LVS

    A land management system with an integrated GIS.
    Java (Java Beans, JAI, Swing), dbSwing, Oracle
  • JScribe Software
    Development Kit

    An integrated development environment for JScribe solutions.
    C++, MFC, Win32 API, JavaScript,
    Xtreme Toolkit Pro for Visual C++ MFC
  • eFF

    Complex system providing financing calculation for all DaimlerChrysler products in Germany and other European countries.
    Java (EJB, JSP, Servlet, JDBC),
    JavaScript, XML, XSLT,
    Oracle, WebSphere
  • V&B Online Planer

    V&B Online Planer is an application for creating bathroom interiors based on recent 3D technologies.
    Adobe Flash, DHTML, HTML, CSS, VRML

  • DHI-WASY GmbH
    "Since 1999 we successfully cooperate with your company on the development of GIS software and would like hereby to highlight high level of expertise, creativity and diligence of your team. ..."
  • Deutsche Bank AG
    "We cooperate with your company since 1998. During this time we were able to convince us of the high quality of your software products, which is above all due to the good expertise of your employees. ..."
  • Use our PolygonLib for quick operations on 2D polygons and large polygon sets in your software (CAD, GIS, modeling systems, graphics editors, etc.).
  • We offer a wide range of professional and cost-efficient outsourcing of software development.
  • Leverage our innovative experience and know-how in developing custom GIS components that can be used in both desktop and Web applications.
PolygonLib - Polygon Clipping Library
Overview

PolygonLib is a software library for quick clipping operations on 2D polygons and polygon sets. It has been especially optimized for efficient storing great amount (> 10 million) of polygons in RAM and operations on large polygon sets.

The product consists of:
  • A portable C++ library with much optimized performance and memory utilization.
  • A COM library that provides COM wrappers for objects of the C++ library. The wrappers are obtained from pools and only for objects referenced by the client, thus minimizing the COM overhead.

The library can be used in various kinds of applications (CAD, GIS, modeling systems, graphics editors, etc.) written in C++, C#, Pascal, VB and other languages allowing use of COM. It is already used in the FEFLOW modeling system and the FDAT project. The product is most suitable for use in GIS software, as it uses spatial indices and has been optimized for polygons with common boundaries (see the performance test results below).

Main Features
  • A polygon can have several disjoint areas and holes.
  • Automatic splitting of self-intersecting boundaries.
  • The node based model of polygons (no duplicated vertices) is maintained automatically thus reducing the size of the used memory.
  • Spatial queries (for polygons, edges and nodes) that are optimized per built-in spatial indices (B-tree for nodes and R-tree for polygons) that are maintained automatically.
  • Clipping operations on polygons:
    • Boolean operations (intersection, union, subtraction) on polygons and polygon sets.
    • Join of two polygon sets: union, whose result is represented by maximal count of not overlapping polygons (the overlaps and the results of their subtraction from other polygons).
    • Union of a polygon set (see the second screenshot).
    • Split of a polygon with a polyline.
  • Buffering (inflating/deflating) of a polygon by a distance.
  • The numerical robustness (avoiding extraneous vertices) of the operations is achieved without inserting intersection points into original polygons.
Main Competitive Advantages

  • Much optimized memory utilization (see the test results below)
  • Built-in spatial indices
  • Much optimized performance of Boolean operations on polygons with large number of vertices (see the test results below)
  • Very optimized Boolean operations on polygon sets (see the test results below)
  • High-quality API

Performance Comparison with 2 well known Polygon Clipping Libraries

We have compared the performance and memory utilization of the COM version of PolygonLib with those of 2 well known polygon clipping libraries. The testing was performed on a PC with Intel Core 2 (2 GHz) CPU and 2 GB of RAM under Windows XP. The results are listed in the following table (the best results are marked bold in the table).

Library Memory use, MB Duration of operations on polygons depending on total number of vertices, ms Operations on polygon sets, s
15000 geog. areas Mesh of 199000
triangles
Few intersections Many intersections (common boundary) Small sets1 Large sets2
100 103 104 105 100 103 104 105
PolygonLib  18,3 17,4 0,21 2,0 11 92 0,22 2,3 25 300 1,2 21
PolyBoolean,
C++
29,0 44,8 0,74 8,5 53 560 0,35 5,3 44 390 7,4 250
GPC, COM 43,2 57,0 0,23 3,7 91 1800 0,07 1,3 25 1200 19* 550*

1 A mesh of 42000 triangles and a set of 2100 geographical areas.
2 A mesh of 199000 triangles and a set of 15000 geographical areas.
* A polygon set can be defined in GPC only as a polygon with many boundaries.

The polygons used in the testing are contained in the archive of the evaluation version of the product (see below).

Downloads

You can download the evaluation version of PolygonLib here:

The archive contains:
  • A Windows application for testing main possibilities of the C++ library. It allows loading polygons and polygon sets from .shp files, their visualization and operations on them (see the screenshots above).
  • Test polygon data as .shp files.
  • API of the both libraries and short descriptions with class diagrams and code samples.
You can download also a .NET library for accessing shapefiles and quick geometric operations on them:
Please note that the library requires the PolygonLib COM library. I.e. you should purchase the PolygonLib COM library in order to use this .NET library.

Purchase

Library License for single development computer,
Euro
License for unlimited number of development computers,
Euro
PolygonLib C++ Library 250 700
PolygonLib COM Library 300 850
PolygonLib C++ and COM Libraries 350 1000

The prices include 30 days support.

If you have any questions regarding PolygonLib or would like to order it, please contact us at sales@sined.de.
© 1997-2013 SINED GmbH. All rights reserved.