3 Replies Latest reply on Oct 18, 2011 11:05 AM by Tomi Salmi

    GeoRaptor 3.0 for SQL Developer 3.0 and 2.1 has now been released

    Simon Greener

      I am pleased to announce that, after 5 months of development and testing, a new release of GeoRaptor for SQL Developer 2.1 and 3.0 is now available.

      GeoRaptor for SQL Developer 3 is available via the SQL Developer Update centre. GeoRaptor 3 for SQL Developer 2.1 is being made available
      via a download fro the GeoRaptor website.

      No release notes have been compiled as the principal developer (oops, that's me!) is currently busy doing real work for a change (another 3 weeks), earning a living
      and keeping the wolves at bay. More extensive notes (with images) will be compiled when I get back. (Unless anyone is offering! See next.)

      We are still looking for people to:

      1. Provide translations of the English dialog menus etc.
      2. Write more extensive user documentation. If you use a particular part of GeoRaptor a lot and think
      you have found out all its functionality and quirks, contact us and offer to write a few pages of
      documentation on it. (Open Office or Microsoft Word is fine.) Easiest way to do this is to simply
      make screen captures and annotate with text.
      3. Conduct beta testing.

      Here are the things that are in the new release.
      New functionality:
      Overhaul of Validation Functionality.
      1. User can specify own validation SELECT SQL as long as it returns three required columns. The SQL is thus totally editable.
      2. Validation update code now allows user to associate a PL/SQL function with an error number which is applied in the UPDATE SQL.
      3. UPDATE SQL can use WHERE clause of validation SELECT SQL (1) to update specific errors.
         NOTE: The generated UPDATE statement can be manually edited. It is NEVER run by GeoRaptor. To run any UPDATE, copy the statement
         to the clipboard and run in an appropriate SQL Worksheet session within SQL Developer.
      4. Main validation table allows:
         a. Sorting (click on column header) and 
         b. Filtering.
         c. Copying to Clipboard via right mouse click sub menu of:
            - Geometry's SDO_ELEM_INFO array constructor.
            - SDO_GEOMETRY constructor
            - Error + validation string.
         d. Access to Draw/Zoom functions which were previously buttons.
         e. Added a new right mouse click menu "Show Feature's Individual Errors" that gathers up all the errors 
            it can process - along with the ring / element that is host to the error (if it can) - and displays 
            them in the Attribute/Geometry tabs at the bottom of the Map Window (where "Identify" places its results). 
            The power of this will be evident to all those who have wanted a way of stepping through errors in a geometry.
         f. Selected rows can now be deleted (select rows: press <DELETE> key or right mouse click>Delete).
         g. Table now has only one primary key column, and has a separate error column holding the actual error code. 
         h. Right mouse click men added to table menu to display description of error in the new column (drawn from Oracle documentation)
         i. Optimisations added to improve performance for large error lists.
      5. Functionality now has its own validation layer that is automatically added to the correct view. 
         Access to layer properties via button on validation dialog or via normal right mouse click in view/layer tree.
      Improved Rendering Options.
      1. Linestring colour can now be random or drawn from column in database (as per Fill and Point colouring)
      2. Marking of SDO_GEOMETRY objects overhauled.
         - Ability to mark or LABEL vertices/points of all SDO_GEOMETRY types with coordinate identifier and 
           option {X,Y} location. Access is via Labelling tab in layer>properties. Thus, coordinate 25 of a linestring
           could be shown as: <25> or {x,y} or <25> {x,y}
         - There is a nice "stacked" option where the coordinate {x,y} can be written one line below the id.
         - For linestrings and polygons the <id> {x,y} label can be oriented to the angle between the vectors or 
           edges that come in, and go out of, a vertex. Access is via "Orient" tick box in Labelling tab.
         - Uses Tools>Preferences>GeoRaptor>Visualisation>SDO_ORDINATE_ARRAY bracket around x,y string.
      3. Start point of linestring/polygon and all other vertices can be marked with user selectable point marker
         rather than previously fixed markers.
      4. Can now set a NULL point marker by selecting "None" for point marker style pulldown menu.
      5. Positioning of the arrow for linestring/polygons has extra options:
         * NONE
         * START    - All segments of a line have the arrow positioned at the start
         * MIDDLE   - All segments of a line have the arrow positioning in the middle.
         * END      - All segments of a line have the arrow positioning in the END.
         * END_ONLY - Only the last segment has an arrow and at its end.
      1. A new graphic ScaleBar option has been added for the map of each view.
         For geographic/geodetic SRIDs distances are currently shown in meters;
         For all SRIDs an attempt is made to "adapt" the scaleBar units depending
         on the zoom level. So, if you zoom right in you might get the distance shown
         as mm, and as you zoom out, cm/m/km as appropriate.
      2. As the scaleBar is drawn, a 1:<DEMONINATOR> style MapScale value is written 
         to the map's right most status bar element.
      3. ScaleBar and MapScale can be turned off/on in View>Properties right mouse 
         click menu.
      Export Capabilities.
      1. The ability to export a selection from a result set table (ie result of 
         executing ad-hoc SQL SELECT statement to GML, KML, SHP/TAB (TAB file 
         adds TAB file "wrapper" over SHP) has been added.
      2. Ability to export table/view/materialised view to GML, KML, SHP/TAB also 
         added. If no attributes are selected when exporting to a SHP/TAB file, GeoRaptor
         automatically adds a field that holds a unique row number.
      3. When exporting to KML:
         * one can optionally export attributes.
         * Web sensitive characters < > & etc for KML export are replaced with &gt; &lt; &amp; etc.
         * If a column in the SELECTION or table/view/Mview equals "name" then its value is
           written to the KML tag <name> and not to the list of associated attributes.
           - Similarly for "description" -> <description> AND "styleUrl" -> <styleUrl>
      4. When exporting to GML one can optionally export attributes in FME or OGR "flavour".
      5. Exporting Measured SDO_GEOMETRY objects to SHP not supported until missing functionality
         in GeoTools is corrected (working with GeoTools community to fix). 
      6. Writing PRJ and MapInfo CoordSys is done by pasting a string into appropriate export dialog box.
         Last value pasted is remembered between sessions which is useful for users who work with a single SRID.
      7. Export directory is remembered between sessions in case a user uses a standard export directory.
      8. Result sets containing MDSYS.SDO_POINT and/or MDSYS.VERTEX_TYPE can also be written to GML/KML/SHP/TAB.
         SELECT a.geom.sdo_point as point
           FROM (SELECT sdo_geometry(2002,null,sdo_point_type(1,2,null),sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,2,2)) as geom 
                   FROM DUAL) a;
         SELECT mdsys.vertex_type(a.x,a.y,a.z,a.w,a.v5,a.v6,a.v7,a.v8,a.v9,a.v10,a.v11,a.id) as vertex
           FROM TABLE(mdsys.sdo_util.getVertices(mdsys.sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,2,2)))) a;
      9. A dialog appears at the end of each export which details (eg total) what was exported when the exported recordset/table contains more 
         than on shape type. For example, if you export only points eg 2001/3001 from a table that also contains multipoints eg 2005/3005 then
         the number of points exported, and multipoints skipped will be displayed.
      10. SHP/TAB export is "transactional". If you set the commit interval to 100 then only 100 records are held in memory before writing.
          However, this does not currently apply to the associated DBASE records.
      11. SHP/TAB export supports dBase III, dBase III + Memo, dBase IV and dBase IV + Memo.
          Note: Memo allows text columns > 255 characters to be exported. Non-Memo formats do not and any varchar2 columns will be truncated
          to 255 chars. Some GIS packages support MEMO eg Manifold GIS, some do not.
      12. Note. GeoRaptor does not ensure that the SRID of SDO_GEOMETRY data exported to KML is in the correct Google Projection.
          Please read the Oracle documentation on how to project your data is this is necessary. An example is:
                 CODIGO as name,
                 NOME as description,
                 SDO_CS.TRANSFORM(shape,'USE_SPHERICAL',4055) as shape
            FROM MUB.REGIONAL;
      13. NOTE: The SHP exporter uses the Java Topology Suite (JTS) to convert from SDO_GEOMETRY to the ESRI Shape format. JTS does not handle 
          circular curves in SDO_GEOMETRY objects you must "stroke" them using sdo_util.arc_densify(). See the Oracle documentation on how
          to use this.
      1. Selection View - Measurement has been modified so that the final result only shows those geometry
         types that were actually measured.
      2. In Layer Properties the Miscellaneous tab has been removed because the only elements in it were the
         Geometry Output options which have now been replaced by the new GML/KML/etc export capabilities.
      3. Shapefile import's user entered tablename now checked for Oracle naming convention compliance.
      4. Identify based on SDO_NN has been removed from GeoRaptor given the myriad problems that it seems to create across versions
         and partitioned/non-partitioned tables. Instead SDO_WITHIN_DISTANCE is now used with the actual search distance (see circle
         in map display): everything within that distance is returned.
      5. Displaying/Not displaying embedded sdo_point in line/polygon (Jamie Keene), is now controlled by
         a preference.
      6. New View Menu options to switch all layers on/off
      7. Tools/Preferences/GeoRaptor layout has been improved.
      8. If Identify is called on a geometry a new right mouse click menu entry has been added called "Mark" which
         has two sub-menus called ID and ID(X,Y) that will add the labeling to the selected geometry independently of 
         what the layer is set to being.
      9. Two new methods for rendering an SDO_GEOMETRY object in a table or SQL recordset have been added: a) Show geometry as ICON
         and b) Show geometry as THUMBNAIL. When the latter is chosen, the actual geometry is shown in an image _inside_ the row/column cell it occupies.
         In addition, the existing textual methods for visualisation: WKT, KML, GML etc have been collected together with ICON and THUMBNAIL in a new
         right mouse click menu.
      10. Tables/Views/MViews without spatial indexes can now be added to a Spatial View. To stop large tables from killing rendering, a new preference
          has been added "Table Count Limit" (default 1,000) which controls how many geometry records can be displayed. A table without a spatial 
          index will have its layer name rendered in Italics and will write a warning message in red to the status bar for each redraw. Adding an index
          which the layer exists will be recognised by GeoRaptor during drawing and switch the layer across to normal rendering.
      Some Bug Fixes.
      * Error in manage metadata related to getting metadata across all schemas
      * Bug with no display of rowid in Identify results fixed;
      * Some fixes relating to where clause application in geometry validation.
      * Fixes bug with scrollbars on view/layer tree not working.
      * Problem with the spatial networks fixed. Actions for spatial networks can now only be done in the 
        schema of the current user, as it could happen that a user opens the tree for another schema that 
        has the same network as in the user's schema. Dropping a drops only the network of the current connected user.
      * Recordset "find sdo_geometry cell" code has been modified so that it now appears only if a suitable geometry object is
        in a recordset.  Please note that there is a bug in SQL Developer (2.1 and 3.0) that causes SQL Developer to not 
        register a change in selection from a single cell to a whole row when one left clicks at the left-most "row number"
        column that is not part of the SELECT statements user columns, as a short cut to selecting a whole row.  It appears
        that this is a SQL Developer bug so nothing can be done about it until it is fixed. To select a whole row, select all
        cells in the row.
      * Copy to clipboard of SDO_GEOMETRY with M and Z values forgot has extraneous "," at the end.
      * Column based colouring of markers fixed
      * Bunch of performance improvements.
      * Plus (happily) others that I can't remember!
      If you find any bugs register a bug report at our website.

      If you want to help with testing, contact us at our website.

      My thanks for help in this release to:

      1. John O'Toole
      2. Holger Labe
      3. Sandro Costa
      4. Marco Giana
      5. Luc van Linden
      6. Pieter Minnaar
      7. Warwick Wilson
      8. Jody Garnett (GeoTools bug issues)

      Finally, when at the Washington User Conference I explained the willingness of the GeoRaptor Team to work
      for some sort of integration of our "product" with the new Spatial extension that has just been released in SQL
      Developer 3.0. Nothing much has come of that initial contact and I hope more will come of it.

      In the end, it is you, the real users who should and will decide the way forward. If you have ideas, wishes etc,
      please contact the GeoRaptor team via our SourceForge website, or start a "wishlist" thread on this forum
      expressing ideas for future functionality and integration opportunities.


      Edited by: sgreener on Jun 12, 2011 2:15 PM
        • 1. Re: GeoRaptor 3.0 for SQL Developer 3.0 and 2.1 has now been released
          Thanks Simon, I'll have to go check it out.
          • 2. Re: GeoRaptor 3.0 for SQL Developer 3.0 and 2.1 has now been released

            it 's good job

            but i can see how to export a selection from a result set table

            i see export table with rigth click but nowhere to put where clause during the process

            could we imagine in next version that export Shape run in or like the SQL Developper unload function (multi tables), it will be great to generate all the shapes in one time with only where clause like '... where DISTRICT_ID = '01'.

            thanks for your job and your help

            Edited by: user1319348 on 12 sept. 2011 14:33
            • 3. Re: GeoRaptor 3.0 for SQL Developer 3.0 and 2.1 has now been released
              Tomi Salmi
              Thank you for this.

              I have been messing around with this last few days, and i really love the feature to pinpoint the validation errors on map.
              I has always been so annoying to try pinpoint these errors using some other GIS software while doing your sql.

              I have stumbled to few bugs:

              1. In "Validate geometry column" dialog checking option "Use DimInfo" actually still uses value entered in tolerance text box.
              I found this because in my language settings , is the decimal operators

              2. In "Validate geometry column" dialog textboxs showing sql, doesn't always show everything from long lines of text (clipping text from right)

              3. In "Validate geometry column" dialog the "Create Update SQL" has few bugs:
              - if you have selected multiple rows from results and check the "Use Selected Geometries" the generated IN-clause in SQL with have same rowid (rowid for first selected result) for all entries
              Also the other generated IN clause in WHERE-clause is missing separator if you select more than one corrective function

              4. "Validate geometry column" dialog stays annoyingly top most when using "Create Update SQL" dialog