Jeff Hobbs’ Intergraph and GIS Technology Blog

“A picture is only worth a thousand words. A map may be worth a thousand numbers. But a GIS is worth a thousand tables.”

Archive for September, 2007

Oracle Locator vs Oracle Spatial…Do you Know the Differences?

Posted by jeffhobbs on September 24, 2007

One of my favorite blogs is written by Simon Greener at www.spatialdbadvisor.com. He doesn’t post too often, but when he does, I really enjoy his content. I’d highly recommend you subscribe – especially if you use Oracle Locator and/or Oracle Spatial. His latest post is titled "Oracle Locator vs Oracle Spatial: A Reflection on Oracle Licensing of the SDO_GEOM Package" and discusses the differences between the free with any version of the Oracle database, Oracle Locator and the paid addition to Oracle Enterprise Edition only, Oracle Spatial.

He goes over licensing, what’s covered in both products, and even some great workarounds if you only have Oracle Locator but need Oracle Spatial functionality. He’s even got a number of code examples to help you implement these Oracle Spatial types of functions with ONLY Oracle Locator.

Finally, much like the free Oracle Object Model scripts and packages available on the Intergraph web site, Simon has his own free packages and code available for download on his site. I haven’t had a need for any of them yet, but definitely nice to know they’re available.

Posted in Oracle Database | 1 Comment »

Upcoming BAAMA Educational Meeting – September 27

Posted by jeffhobbs on September 20, 2007

Wanted to post the information for the upcoming Bay Area Automated Mapping Association (BAAMA) educational meeting. It’s set for Thursday, September 27 in Oakland, CA at the Metropolitan Transportation Commission (MTC) auditorium. The theme will be “GIS and CAD Integration”. You can take a look at the web site for all of the details.

Posted in BAAMA | Leave a Comment »

Is There Really Such a Thing as "Too Much of a Good Thing"

Posted by jeffhobbs on September 19, 2007

Last year the City of San Jose managed a LiDAR project covering the entire Santa Clara County. As part of the LiDAR deliverables, the City, County, and other agencies received 1 foot contours for the entire county valley floor and 5 foot contours for the remaining areas of the county. Let me tell you…that’s some data! One of the many deliverable formats was Microstation .dgn files. Initially I built a couple of CAD Schema Definition (.csd) files with the hope that I could view the data using spatial filters. However, even for a very small area, when I tried to load the .csd files, I received an “out of memory” error after a minute or so of processing. Not totally surprised as there are 232 total .dgn files totaling 8 gb of space and what I’m roughly guessing will be 11,500,000 records! So …needless to day, I’m not going to output this to Access.

After some playing, I’ve been able to so far get groups of 10 dgn files to work correctly inside of GeoMedia. Now I’m in the process of loading the data into my Oracle Locator database using the Schema Remodeler utility that comes with GeoMedia Fusion. I figure this will take a few days to change the .csd file each time and let the loading process.

After the contours are all loaded, I’d really like to be able to update the Z value (elevation) for each point facility (asset) in my system with the nearest elevation contour value. Then, moving forward, whenever I insert a new point asset into the GIS, I’d like a database trigger to fire that will update the elevation with the contour nearest the point.

Although I’m really not sure how well this is going to work out over time, I’ll be reporting my thoughts and what I’ve learned as the project evolves. I do have some code I thought I’d post here. This code is designed to utilize the nearest neighbor function inside of Oracle Locator and find the nearest feature to the street segment. Then the code updates the street segment with the primary key of the nearest feature. This sounds to be very similar to what I want to do with updating elevations. It will just need a little (hopefully …little) tweaking.

set serveroutput on size 1000000
declare
commit_cnt number := 0;
cursor c1 is select gdo_geometry, rowid from MY_SEGMENT;
MY_PRIMARY_KEY number;
begin
for r in c1 loop
select a.id into street_id
from MY_STREET a
where sdo_nn (a.gdo_geometry, r.gdo_geometry, ‘sdo_num_res=1′) = ‘TRUE’;

update MY_SEGMENT
set MY_PRIMARY_KEY = MY_STREET_ID
where rowid = r.rowid;

if (commit_cnt = 1000)
then
commit_cnt := 0;
commit;
DBMS_OUTPUT.PUT_LINE (’1000 Committed’);
else
commit_cnt := commit_cnt + 1;
end if;
end loop;
end;
/

Now, the last time I looked at this code (it was written five years ago), it was designed for 9,000 records. It will be interesting to see what it does with a table 25 times larger.

If it weren’t for the sheer size of data, I’d also try the GeoMedia 6.1 nearest neighbor aggregation command. However, knowing how fast GeoMedia 6.0 crashed, even if Intergraph has greatly improved memory management in 6.1, I still don’t expect it to be able to handle this huge aggregation task. So, I’ll most definitely do it with Oracle functions but I might try and see what GeoMedia 6.1 can do as well.

Posted in GeoMedia, Intergraph, Oracle Database | 2 Comments »

Some SQL For the Day

Posted by jeffhobbs on September 18, 2007

We maintain a column in the GIS that tracks the billing number for each facility (asset) we put into the ground. Although there are a large number of billing numbers (probably several thousand at this point), they should all follow the same pattern. To ensure there are any errors when entering them into the GIS, I wrote a check constraint. For those that aren’t familiar with check constraints in Oracle, they’re basically a step below referential integrity. They allow any value to be put into a column as long as the value meets the rules of the check constraint.

So in my case the billing number is a seven character number following this format "G6-0901". So here’s the constraint that I wrote:

REGEXP_LIKE (ECM_NUMBER,’[E][6-9]-[0][8-9][0-9][0-9]‘) OR REGEXP_LIKE (ECM_NUMBER,’[G][0-9]-[0][8-9][0-9][0-9]‘)

REGEXP_LIKE – This is a new function release in Oracle 10g. It allows you to use regular expressions in your SQL. In this case, I’m using an Oracle function "REGEXP_LIKE" which allows you to compare a known value against a regular expressiont.

ECM_NUMBER – This is simply the column name where the constraint resides. In other words, this is the name of the column that holds the billing number.

[E] – This ensures that the first character in the number is the letter "E"

[6-9] – This ensures that the second character in the number is a number 6, 7, 8, or 9

"-" – This ensures that the third character is a "dash"

[0] – This ensures the fourth character is a 0

[8-9] – This ensures the fifth character is a 8 or 9

[0-9] – This ensures that the sixth character is a 0 – 9

[0-9] – See above

Now I’ve also placed an OR statement in there providing two different formatting options. The rules are the same, but I’m just allowing for different formatting (e.g. starts with a "G" as opposed to an "E"), etc. I suppose I could have written it into one expression, it was just easier (in my eyes) to put it into two expressions.

Overall, I think it’s also pretty cool that really almost all of this is just regular expressions. So, if you’re familiar with regular expressions and their syntax, these types of constraints (and even MUCH more advanced queries) should be very "simple".

Posted in Oracle Database | Leave a Comment »

GeoMedia WebMap Enterprise – Part 4

Posted by jeffhobbs on September 17, 2007

Performance Enhancements

  • Server side caching
  • Client side caching

I’m all for anything that makes GeoMedia WebMap faster! This caching looks very promising. You can currently do some bare-bones caching in WebPub through one of the settings. However it doesn’t work when you enable dynamic resizing of the map to fit different resolutions and screen sizes. Since I almost always have that enabled, I can’t take advantage of the caching. Hopefully this setting doesn’t run into the same limitation.

Integration with External Applications

  • Web Services integration to external applications -
    Allows you to link the web client with other applications such as ERP systems or office applications like Microsoft Word or Excel
  • Uses the WCDI (Web Client Desktop Interface) Base Component -
    The WCDI Base Component is a configurable Java Applet that allows access to local resources on the client computer
  • Includes base WCDL connector of which custom interfaces can be built upon
  • WebMap Enterprise includes a WCDL connector for
    • Microsoft Word
    • Microsoft Excel
    • Notepad

In today’s GIS environment, integration is the name of the game. These integration options sound very cool. Not sure how easy/hard they’ll be to integrate using GWME as opposed to writing your own custom code (not that I could do that). It would be great if they’d provide some examples showcasing this type of functionality. If it’s straightforward enough, I can definitely see folks using this type of functionality.

 

In closing, GeoMedia WebMap Enterprise (according to the slide show I have, was due out in Q2 (ending in June). Surmising from the lack of information on the web site (at least what I can’t find) it doesn’t look like that date was met. Currently, I don’t own GeoMedia WebMap let alone GeoMedia WebMap Professional. However I’m trying to get a copy as part of next year’s budget. For what I need initially, WebMap Standard with WebPub will work fine. However, with time, I can definitely see GWME being enough of a reason to at least seriously look at upgrading to GeoMedia WebMap Professional. One thing to note however – it will be curious to see if Intergraph maintains the relatively high price for GeoMedia WebMap Professional (around $20,000 for a "small license" if I recall correctly). Although you’re getting a lot more functionality for that price, there are plenty of competitive internet map servers on the market today. Not to mention that two very good ones are free (UMN and MapGuide Open Source). Additionally, although you won’t get anywhere near the functionality of GeoMedia WebMap Professional in one of the free search engine mapping applications, you still get quite a bit of functionality…and again…free.

Posted in GeoMedia, Intergraph | Leave a Comment »

Changes in Google Earth Licensing Terms

Posted by jeffhobbs on September 13, 2007

Google recently changed the licensing agreement for Google Earth Free. In the past, their agreement has stated that the free version of Google Earth should NOT be installed on any business machine. Although many have ignored the restrictions in the past (after all, who really reads those things???), this was in fact a restriction. As a result, if you installed Google Earth on a machine at work (even if you were using it for personal use), you were in fact breaking the agreement.

With the latest release of Google Earth, Google has changed the agreement. From the new agreement:

1. USE OF SOFTWARE; RESTRICTIONS

Use of Software. For an individual end user, the Software is made available to and may be used by you only for your personal, non-commercial use according to these Terms of Service and the Software documentation. For a business entity user, the Software may be used by you and your employees for internal use according to these Terms of Service and the Software documentation (individual end users and business end users are collectively referred to as “You” herein).

Restrictions. You agree not to use the Software in connection with or in conjunction with a system in a vehicle that offers real-time route guidance or turn-by-turn maneuvers. You agree not to use the Software for any bulk printing or downloading of imagery, data or other content

Although I don’t have the old agreement to compare the wording, "business entity user" is definitely new. James Fee has an interesting entry about the change in agreement on his blog. There’s also an interesting post on the Google Earth Blog where I guess a person from the blog actually wrote to Google directly and received Google’s feedback on the change in the agreement.

Personally, I couldn’t be more excited. The world is already using Google Earth (as are many businesses). Additionally, more and more products are able to create KML. It’s really about time that anybody can (legally) view the KML with Google Earth at work. Now that it’s legal, I’m looking forward to trying out Justin Lokitz’s GeoServer/Google Earth tutorial in greater detail.

Posted in Uncategorized | Leave a Comment »

GeoMedia WebMap Enterprise – Part 3

Posted by jeffhobbs on September 12, 2007

Interactive and Persistent Legend

  • Display order of legend entries can be manipulated in the same fashion as GeoMedia (i.e. drag a legend entry up or down the list)
  • The user can modify the legend symbology on the client side and it will be saved for future sessions using the same map by the same user

I don’t find too many folks needing to rearrange the display order on the maps. So, I don’t personally think the legend re-ordeingr is that valuable. However I’m a real big fan of the persistent symbology as I can really imagine folks wanting to change colors that better suit their needs from the map and application. This is especially important when looking to print the output to a color printer or to PDF.

Support for Complex Data Models

Different types of relationships between different feature classes (tables) can be setup at the application level. This is great when you would like to interact with many different tables in a more logical and straightforward. manner. Here’s a picture of the overall administrator interface.

  • Parent/Child Relationships – Define a relationship between two features. Then, you have the option to examine all of the children that relate to the parent. In the two images below, you can see that in tab 1, the parent is "States". If you click on the state feature (in the example they’re using Maine), you can then receive a tab showing the 24 cities that are in Maine. The best part is that you can page through the attributes of each state (see the second screen shot).

    Here’s a picture of the administrator to setup the parent/child relationship

  • Free Relationships – The information on this is a little rough. However it looks as if you can really define any type of relationship you’d like regardless of how it appears in the database. I don’t have a good example off of the top of my head, but this looks to be what the dialog is illustrating.

  • Code List – The information on this is a little rough as well. However it looks like you can decode feature class (table) values to output the more verbose meanings in the application. In other words, if Code 01 were to decode to a main leak and Code 02 were to decode to a lateral leak, if the codes were stored in the database, they could be decoded by GWME and the verbose values (main leak and lateral leak) could be shown in the graphic’s property dialog box.

Personally, I tend to handle my data model at the database and create views, etc. if I need to produce more denormalized output. So, with that said, the bottom two bullets do not appear to be as useful to me. However, I can’t state enough that for those that prefer to remove themselves from the database (or don’t have permission), I can really see how the bottom two bullets could be of great use.

As for the top bullet (parent/child); I really think this is a great function. In fact, I’d love to see this in the core GeoMedia product. If I recall correctly, this functionality is available in GeoMedia Parcel Manager. But, it would be great (and probably should be) in the core product…eventually.

More tomorrow…

Posted in GeoMedia, Intergraph | Leave a Comment »

GeoMedia WebMap Enterprise – Part 2

Posted by jeffhobbs on September 11, 2007

Continuing from yesterday:

Data Creation and Maintenance

  • Create, Edit, Delete features from any writeable warehouse
  • Intelligent Snapping (snap to line or vertex)
  • Attribute maintenance that’s configurable at the individual attribute level

This is very cool. You can do attribute maintenance right now using GeoMedia WebMap Publisher. However you would need to write your own logic in a web page using something like .NET, ColdFusion, or PHP and then call the page using an on-click event inside of WebMap Publisher. Obviously, this is much more straightforward.

As far as the data capture and editing, you might be able to do something fairly easy with points, but lines and polygons I would imagine would be more challenging. Although you (obviously) aren’t going to get the level of tools and functionality you’d see in GeoMedia Professional, just being able to place simply geometries in an Oracle database to me is very exciting. In other words, I wouldn’t recommend maintaining your GPS-quality facility data using GWME, however I do think it’s quite possible to maintain a layer where snapping and topology are not key…I’m thinking something like CIP project locations would work well in this environment.

Until tomorrow…

Posted in GeoMedia, Intergraph | Leave a Comment »

Introducing GeoMedia WebMap Enterprise

Posted by jeffhobbs on September 10, 2007

Thanks to the few of you that provided suggestions. I will look to start incorporating some of the ideas into future blog entries. I did want to start a multi-part series on Intergraph’s new soon to be released (I’ve heard) expansion pack "GeoMedia WebMap Enterprise". For those that have used GeoMedia WebMap Professional for a number of years, this expansion pack should NOT be confused with the old name for GeoMedia WebMap Professional (which was GeoMedia WebMap Enterprise). This is a whole new (and free) product for those customers that own GeoMedia WebMap Professional.

Before I begin, it should be noted that I’m not sure if this product will keep its current name or if they will change it to something else. Once I hear more, I’ll post it on the blog.

Anyhow…GeoMedia WebMap Enterprise (GWME) is an extension to GeoMedia WebMap Publisher. However GWME has a prerequisite of GeoMedia WebMap Professional. GWME extends GeoMedia WebMap with the following functionality:

  • Role based user administration and access control
  • Web based data creation and maintenance
  • Interactive display control through a hierarchical legend (persisted between sessions)
  • Client and server Geocaching for improved performance
  • Navigation and display of complex relational data models
  • Integration with external applications.

Access Control

All functionality and data access is controlled by user login

Although a login can be very useful – especially when looking at some of the other features of GWME, it shouldn’t always be required (as it is with GWME). Additionally, I’m hoping that Intergraph will build an integration with Microsoft’s Active Directory as this seems like an obvious choice to centralize user permissions. The last thing I need for my users is to require them to remember another password.

User and Role Based Security

  • Create users and assign roles to the users (like you’d do in Microsoft Active Directory or Oracle
  • Feature level permission which allow you to control what users can edit geometry, what users can edit attributes, and what users simply have read-only privileges.

I’m extremely excited about providing the ability to edit geometry and attributes through GeoMedia WebMap on an internet/intranet site. In the past this has all needed to be customized. As a result, I can completely see the need for this type of security. However, my previous to comments still apply (not always needing to login and integration with Active Directory).

More tomorrow…

Posted in GeoMedia, Intergraph | 1 Comment »

Looking for Suggestions

Posted by jeffhobbs on September 6, 2007

I’ve been working on next year’s budget a lot lately. As a result, I haven’t had a lot of time to work with GIS. As my budget tasks wind down, I’m looking for some new things to cover here on http://jeffhobbs.net. Since I haven’t been doing a lot with GeoMedia in the last few weeks – at least not things that I haven’t already covered; I thought I ask you all what you think you’d like me to cover. So, if you can post some comments, I’ll see what I can cover over the next few weeks.

In part, I’m looking to get more into Oracle 11g and its new spatial components. So, for lack of other suggestions, I might head in that direction.

On a side note, recently purchased a book Yahoo Maps Mashups from Amazon.com as we’ve been looking at possibly jumping on the band wagon and seeing if a mashup might serve our sister company in Texas well. Anyway, I have an intern that’s been doing the majority of the leg work. She’s been working with the Yahoo Maps API in conjunction with GeoServer. Although I’m definitely not sure if anything will come out of the testing, the book is really very good for introducing you to Yahoo Maps development.

Will be off on Friday, but will checking the blog…looking for suggestions.

Until Monday….

Posted in Oracle Database, Uncategorized | 2 Comments »

Oracle Permission Issues

Posted by jeffhobbs on September 5, 2007

Started drawing lines today into an Oracle database and found something quite odd. The feature I’m tracing (lot lines) has read-only permission inside of the Oracle database. I’m trying to add new water mains to my database. In the water main feature class I have read/write permissions. When I go to place the main, if I snap directly on the lot line, I’m getting a permission error. It looks like GeoMedia thinks I’m trying to insert into lot lines as opposed to water mains. I’m getting the permission error as soon as I place my digitizing cursor on the lot line.

Has anybody else experienced this before?

Posted in GeoMedia, Intergraph, Oracle Database | 3 Comments »