Thursday 19 December 2019

ArcGISServer / WebOffice - Reprojecting WMS service

It seems neither ArcGISServer nor VertiGIS WebOffice allow reprojecting a WMS service. However, that is what we needed as the WMS service provider from across the border did not want to add support for another coordinate system (epgs:2056) to its service. 

First option we looked into was MapProxy . It's relatively easy to install and to get a basic sample up and running. But it seems integration into IIS is not straightforward. I didn't bother to invest more time investigating this option any further. Fortunately, GeoServer also supports reprojecting WMS services - and surprisingly it was very easy to install and to get it to work. 

As we use VertiGIS WebOffice we have already Tomcat running. GeoServer installation is basically downloading the right file (Web-Archive), unzipping it and copying the resulting WAR file in to Tomcats WebApp folder and finally restarting Tomcat. Second step is to set up the WMS service - again straightforward as GeoServer comes with an easy to use and self-explaining web-interface.


Map project in epsg:2056, WMS service provided in epsg:25832 but reprojected by GeoServer

Monday 21 October 2019

Geonis form with SQL

I added the following SQL statement to a Geonis form

 <edit title="Objekt" width="150">  
 <select>  
 select name_nummer as name from u_ele_trasseeabschnitt where globalid = [REF_FEAT_GID]  
 union all  
 select name_nummer as name from u_ele_strangabschnitt where globalid = [REF_FEAT_GID]  
 union all  
 select name || ', ' || u_tplnr from ele_tragwerk where globalid = [REF_FEAT_GID]  
 union all  
 select name || ', ' || u_tplnr from ele_schacht where globalid = [REF_FEAT_GID]  
 </select>  
 </edit>       

but I didn't get any results. Turns out that one needs to use the CONCAT command instead:

 <edit title="Objekt" width="150">  
 <select>  
 select name_nummer from u_ele_trasseeabschnitt where globalid = [REF_FEAT_GID]  
 union all  
 select name_nummer from u_ele_strangabschnitt where globalid = [REF_FEAT_GID]  
 union all  
 select concat(name, concat(', ', u_tplnr)) as name_nummer from ele_tragwerk where globalid = [REF_FEAT_GID]  
 union all  
 select concat(name, concat(', ', u_tplnr)) as name_nummer from ele_schacht where globalid = [REF_FEAT_GID]                                     
 </select>  
 </edit>                 

Geonis 2017.0

Monday 7 October 2019

Geonis Interlis Export - ORA-24550: signal received: Unhandled exception: Code=e0434352 Flags=1

When exporting Interlis/LK Map FME just stopped working. Log file didn't contain any further information about the cause.

I had done an export successfully earlier with a project from the test database. Using the production database FME crashed.

The only difference I noticed was that the test project used an owner-connection to Oracle, the production project a editor-connection.

To get more information about the cause of the issue I ran the FME workbench in Windows command line - that's where I got the more detailed error message:



I don't really know what the error message is about. But when I run the export using the owner-connection it finishes successfully.

ArcMap 10.5.1, Geonis 2017.0, FME 2016, Oracle 11.2

Friday 4 October 2019

GEONIS DB UPDATE - Umlauts not importet correctly

To import german umlauts (and other special characters) correctly into Oracle using Geonis Db Update the following two requirements have to be fullfilled:

(1) first line of XML file needs to define correct encoding:
<?xml version="1.0" encoding="utf-8"?>

(2) XML file encoding itself needs to be UTF-8 BOM

















Geonis 2017

Monday 16 September 2019

ArcSDE Compress didn't compress

I inserted some data my means of SQL into a SDE managed table - or to be more precise into the SDE managed view belonging to the table.

I had done that before and so far it had worked without any issues. This time the compress operation didnt compress at least the table I had inserted rows. I ran compress a few times but to no avail. I restarted ArcGIS server but again it didnt change the result. Then I stopped ArcGIS server and killed all remaining connections to the Oracle schema and ran compress again. This time compress finished succesfully. Up to now I never had to kill all connections - so I assume there was something different this time.

ArcMap 10.5.1, Oracle 11.2.0.4

Monday 15 July 2019

ArcMap – Oracle LISTAGG results in empty column


When using LISTAGG recently in view definition I had the problem that the column content based on LISTAGG was not shown in ArcMap / ArcCatalog.

The LISTAGG command usage was like that:

cast(listagg(nachname || '; ' || vorname || ' / ') within group(order by nachname) as nvarchar2(500)) as eigentuemer_name,

The columns (nachname, vorname) I concatenated were of data type “nvarchar2”. My initial view definition did not specify the data type for the column – I added it later but it did not solve my problem.

In SQL Developer the content of the column was shown right from the start. To check how other applications behave I connected to the view using Excel and tried to import the data into a sheet. When I did that I got an ORA-01401 inserted value too large for column message. After bit of research I found the following discussion on SO.

It was mentioned that there might be an issue with the length of the right hand side of the concatenation operator when usung NVARCHAR. I changed the view definition to VARCHAR2 and also increased the size. Afterwards I could import the data into Excel – but in ArcMap the column was still empty.

The second hint on the page – applying to_char conversion - finally solved the issue:

...
cast(listagg(to_char(nachname) || '; ' || to_char(vorname) , ' / ') within group(order by nachname) as varchar2(4000)) as eigentuemer_name,
...

It’s a bit strange – other columns in the view based on NVARCHAR2 are shown in ArcMap. Only in connection with LISTAGG the problem occurs.

ArcMap 10.5.1, Oracle 11.2.0.4.0