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 October, 2007

Forcing a User to Login When Loading a Geoworkspace with an Oracle Connection

Posted by jeffhobbs on October 19, 2007

For those have connected to an MGE connection using an Oracle database, you’ll recognize this screenshot:

This comes up whenever you open/close a connection or open a geoworkspace. Personally, even though the MGE connection to an Oracle database is read-only, I think this is a valuable option. On a side note, on some machines you can save the user name and password into the ODBC DNS setup and this will eliminate the need for entering a password at this dialog. This can be done my just embedding the password with the user name like this:

user/password

Anyhow, I’ve always been surprised that Intergraph doesn’t force something similar for an Oracle Object Model connection…ESPECIALLY since this connection can be read/write! For those that don’t use Oracle with GeoMedia, by default GeoMedia will save the password (hidden) in the .gws. As a result, whenever you load the .gws, GeoMedia will connect to the Oracle database with the user name and password saved in the .gws. Yes, this is convenient. However, it’s not ideal from a security standpoint. Especially if you actually use unique logins in Oracle where User A may only have read/write to TABLE A while User B may have read-only to TABLE A. To be honest, even from a non-security standpoint, it’s still a bad idea. It’s fairly easy to make a mistake when you’re not paying attention or not expecting to be able to do something to the data.

So, there is a workaround to force a similar type of login restriction. This can be found in the "Working with GeoMedia Professional" PDF in Appendix B, page B-2. However I’ll post it here as well:

By default, GeoMedia stores the Oracle connection password in the GeoWorkspace. This is meant as a convenience and allows users to open existing GeoWorkspaces containing Oracle connections without having to re-enter connection passwords. However, this is a drawback to those users wanting higher levels of security. The option to turn off password persistence is in the registry:
HKEY_LOCAL_MACHINE\SOFTWARE\GDO\Oracle Object Read-Only\1.0\Store Password
HKEY_LOCAL_MACHINE\SOFTWARE\GDO\Oracle Object Read-Write\1.0\Store Password
The default setting is 1, which means that connection passwords will be stored. To force the user to enter a password for each Oracle connection, change the (default) setting to 0.
Password persistence is not an issue if you are using Windows Domain authentication for your connections.

When you set these registry entries, you get the following dialog when you open a .gws, or close/open the connection:

You notice that it just sets the password to a single asterisk. Usability-wise, it’s not as easy as the MGE dialog, but it’s not bad.

It’s interesting to note that you have the option to not save the password for the Oracle Object Model Read-Only data server, the Oracle Object Model Read-Write data server, or both. I would heavily recommend setting it for read-write. If you’re not concerned with other people having read-only access to your data, you can keep GeoMedia saving the user’s password for read-only connections. Incidentally, this is what I prefer.

Now, since I’m not a big fan of editing the registry manually, I wrote a small executable using AutoIt – a FANTASTIC piece of freeware that allows you to script many different mundane Windows tasks and save the scripts off as standalone executables. I’ve uploaded my registry modification script (both source and executable). You can download it from the left hand side of the screen or from here. The script will force the login screen for read-write connections but will store read-only connections. You can modify the source quite easily (just reference my comments in the script) if you’d like to force the login screen both both read-write and also read-only.

Posted in GeoMedia, Intergraph, Oracle Database | Leave a Comment »

Logging the Oracle Data Server

Posted by jeffhobbs on October 17, 2007

Not sure how many are aware pf GeoMedia’s Oracle Data Server logging functionality. This is great if you ever have a problem writing to an Oracle database.

To get GeoMedia to log everything it does with the Oracle database, do the following:

  1. Close your connection to the Oracle database (or quit GeoMedia)
  2. Create a file named “GOracle.log” in c:\temp (minus the quotes)
    NOTE – The file MUST be in c:\temp and MUST have the correct file name
  3. Open the Oracle connection (or restart GeoMedia and connect to your Oracle database)
  4. Start interacting with the Oracle database

You’ll notice that from that point forward EVERYTHING you do to the Oracle database is very verbosely logged. You can then go into the log file and review it for errors. Most of the time the error is easy to find and you can pull the information from the log to feed to Google or Intergraph support.

A couple of notes:

  1. The log file can get very big, very fast. In fact, after only a few minutes of logging, I’ve seen the file grow to well over 10mb in size! So, make sure to move the file from the c:\temp folder or delete it altogether. If you don’t, any interaction you have in GeoMedia with the Oracle database WILL be logged. This could obviously cause a space issue on your hard drive after a while.
  2. If you’re looking to write your own Oracle Locator/Spatial spatial query, this logging functionality can be an excellent first step. You can create the log file and then run a native query (Analysis > Native Query) inside of GeoMedia. For those that haven’t used the Native Query command, it’s basically a GUI for the Oracle Locator operators.
    So, I created a native query asking Oracle (as opposed to the spatial query operators inside of GeoMedia) to identify all of the stations that fall within a pressure zone named “Cox Zone”. Since this was an Oracle query, GeoMedia created the query, but logged all of the interaction between GeoMedia and the database. Copying directly from the log:

    select a.ROWID,a.GDO_GEOMETRY from SJWC_MIG.PRESSURE_ZONE b,SJWC_MIG.STATION a where PRESSURE_ZONE_NAME = ‘Cox Zone’ and mdsys.sdo_relate(a.GDO_GEOMETRY,b.GDO_GEOMETRY,’mask=ANYINTERACT querytype=window’) = ‘TRUE’

    All in all, I find this logging tool to be extremely useful. Especially when you’re working with a data model as opposed to a bunch of independent tables in a schema. It helps you understand just what GeoMedia is doing and why Oracle doesn’t like it. You can download my log from this session using this link or the link to the left. Although it’s boring, it might help add some context to this entry. You will also see the spatial query embedded in the log on a few different occasions.

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

Creating a Hyperlink from a Point in GeoMedia to Windows Live Search

Posted by jeffhobbs on October 15, 2007

For the "long-term readers", I posted an entry on Creating a Hyperlink to Google Maps in GeoMedia a few months ago. Well, Chris Matus sent me an example of linking to Microsoft’s Virtual Earth environment. I’ve modified it slightly to work against the US Sample dataset. This demonstration is using the "USSampleData.gws" geoworkspace. I’ve simply created a functional attribute on the HighwayInterchange feature class (although not terribly useful, it still demonstrates the functionality).

‘http://maps.live.com/default.aspx?v=2&cp=’+
ROUND(Y(CENTERPOINT(Input.Geometry), TrueMeas, Degree), 6)+’~'+ROUND(X(CENTERPOINT(Input.Geometry), TrueMeas, Degree), 6)+’&style=h&lvl=17&tilt=-90&dir=0&alt=-1000&sp=Point.’+Y(CENTERPOINT(Input.Geometry), TrueMeas, Degree)+’_'+X(CENTERPOINT(Input.Geometry), TrueMeas, Degree)+’_'+Input.ID+”

In Chris’ case, he was using an area feature named "building". That’s why you’re seeing the CENTERPOINT function being used. Additionally Chris is creating a bounding box (also known as a minimum bounding rectangle). That’s why you’re seeing two lat/long pairs. Past those points, he’s using the same logic I used in my Google Maps posting to calculate the latitude and longitude.

So, the ‘http://maps.live.com/default.aspx? is simply calling Microsoft Live. Then he has some parameters he’s calling:

  • V=2
  • Style=h
  • Lvl=17
  • Tilt=-90
  • Dir=0
  • Alt=-10000
  • Sp=Point

Instead of describing the parameters here, I’ll point you to the Microsoft Live help (which by the way, is fantastic). In the help you can search for the different parameters and you should be able to find what they mean and other options quite simply. For instance, Style is actually the map style. Valid arguments here are:

r=Road

a=Aerial

h=Hybrid

o=Birdseye

Just by changing the style I can go from a:

Road Style

http://maps.live.com/default.aspx?v=2&cp=37.604184~-97.310918&style=r&lvl=17&tilt=-90&dir=0&alt=-1000&sp=Point.37.6041843206049_-97.3109183034338_46

to a Hybrid Style (aerial and lines)

http://maps.live.com/default.aspx?v=2&cp=37.604184~-97.310918&style=h&lvl=17&tilt=-90&dir=0&alt=-1000&sp=Point.37.6041843206049_-97.3109183034338_46

As a whole, I really like the Microsoft Live Search Maps application. It’s extremely functional and really offers a lot of nice bells and whistles. In fact, you can even get into 3D rendering of your map. As a whole, it’s a nice and welcome alternative to Google Maps and I’d highly recommend you play with it.

One last note – Chris made a great point when he mentioned that he’s using the functional attribute for a GeoMedia WebMap Publisher application. Since he’s doing that, he actually URL encoding his functional attribute to ensure it works correctly on a web site. So, in the example he gave me, he substituted all "&" with "%26". I changed it back for this demonstration. However if looking to feed this though a web application like GeoMedia WebMap as opposed to GeoMedia/Pro, it would be best to URL encode the function.

Posted in Functional Attributes, GeoMedia, Intergraph | Leave a Comment »

Random Thought

Posted by jeffhobbs on October 10, 2007

Before going further, I want to be sure to prefix this with the simple statement that I have heard nothing to confirm my thoughts nor has anybody provided any information on the issue.

With that said…I often wonder what Intergraph’s plan is to address the local government sector in North America if not the entire world. Ever since the "great reorg or 2005", what was once a well established GIS division (Intergraph Mapping and Geospatial Solutions) has since been almost entirely ingested by Intergraph Public Safety. And what’s the benefit for Intergraph local government customers??? I can’t say I really know nor understand. If I’m a Public Safety customer I’ve got a great solution which much of Intergraph’s top talent working on products and solutions. Much of the same talent that was once working on IMGS products and solutions. If I’m an Intergraph Public Safety customer, the future is looking bright.

Now, if I’m an Intergraph local government customer, what does my future look like in the United States? I’ve got very few sales people and maybe even less pre-sales people. Furthermore, these pre-sales people are now concentrating on Utilities, Transportation, AND Local Government.

As I said in my first paragraph, although I have not spoken to anybody on the issue, it really seems like Intergraph has given up on local government customers in the United States. To be honest, with ESRI’s current dominance, I can completely understand why they’d leave the market. Not to mention when you compare the typical local government sale where a number above $200,000 is seen as seen as "a fantastic day’s work" while that same number would be "rather disappointing" when selling Intergraph Public Safety software and solutions.

This all brings me to a thought I’ve had over the last month or so. Autodesk is actively looking to expand their GIS presence. In fact I know of four people that have an Intergraph background and are now working for Autodesk. Two of the people are working as product managers for Autodesk’s GIS line of products. Although it’s a huge hypothetical (at least in my eyes), I’d love to see Intergraph sell the GeoMedia suite to Autodesk. Just imagine what could be done for the GeoMedia suite if it was being sold by a local government sales force the size of Autodesk’s! GeoMedia would receive exposure in the United States like it never has had in the past. Additionally Autodesk could leverage its current partnerships with different companies to develop new and exciting software and integrations with GeoMedia. We might begin to see many more non-ESRI "extensions" for 3rd party products and systems.

Now what’s in it for Autodesk? Intergraph has some very well developed products including GeoMedia Public Works Manager, GeoMedia Transaction Manager, GeoMedia Parcel Manager, GeoMedia Transportation Manager, GeoMedia Grid, GeoMedia Terrain, etc. Although I’m not extremely familiar with the Autodesk line of GIS products, so I can’t offer a strong comparison between the two lines; I will venture an educated guess that Intergraph’s GIS products listed above are more mature and offer more functionality than equivalent products on the Autodesk side. (Note: I didn’t mention GeoMedia WebMap in the list above – so please no comparisons to MapGuide Enterprise :-) ) Additionally, since Intergraph has really started to roll GeoMedia into its Public Safety line of products, Intergraph would need to enter into a long-term agreement with Autodesk to ensure support for Intergraph Public Safety software into the foreseeable future. This would ensure a strong revenue stream for Autodesk before selling a single copy to local government customers.

In the end, I will restate the fact again – I have had no one else even suggest this idea to me. So, please note that this is just my "random thought of the day".

One final note…although Autodesk to me seems like a logical choice, as I’m sure most of you are aware, Leica is also looking to expand their GIS presence. Although it appears as if they’re looking to expand their presence through their different purchases earlier this year (IONIC, ER Mapper, and Acquis), might they be interested in the GeoMedia suite as well? Doesn’t seem that far-fetched to me.

Posted in Intergraph | 13 Comments »

Playing with Colors

Posted by jeffhobbs on October 9, 2007

For those of you that use Bentley Microstation, did you know that you can load the native Microstation color table into GeoMedia? You’ve been able to do this since 5.2, but I don’t believe the functionality is that well known. This is great when you’re trying to match the colors in your GIS to what people see in CAD. I recently used this when we migrated our mapbook creation from Bentley’s I/PLOT functionality to GeoMedia’s Batch Plotting.

To load the color table:

1) Open the Legend Entry Properties dialog box by right-clicking on a legend entry or double-clicking on a legend entry

2) Single click on the color. This will bring up the default color palette unless you’ve changed it to bring up something else. Here click on the "Load" button.

3) When you push load, you have the option to load additional GeoMedia color palettes. This is great if you deal with different sets of color. However you can also select the "Files of type" section and change it to "Microstation Color Tables"

If you select the Microstation Color Tables, you should be able to select your native Microstation color table. Once this is loaded you should see the same colors you see in Microstation.

It’s interesting to note that you can also load InterPlot color libraries (.clb). I’ve never had to do this, but it’s nice to know the functionality is there….

Now for my pet peeve. They give you this great functionality and EVEN show you the number of the color. So, if they show you all of this information, why can’t you just type the number into the dialog somewhere?? This would be a great addition (and a change request that I’ve filed). This would be especially useful when you’re working off of a Microstation Pentable and you want to easy pull the number of the respective color out of the pentable and put it into GeoMedia. Much better than the current workflow where you basically click on the different color swatches until you find the color/number that you need.

Posted in GeoMedia, Intergraph | 5 Comments »

Playing with Functional Attributes

Posted by jeffhobbs on October 4, 2007

I was playing with the DOTDENSITY functional attribute today. Although it’s quite easy to use, I’m not sure how many people have ever actually used it.

It’s defined as "Returns a collection of points that are placed on that area". Basically, you can tell GeoMedia to place a number of dots on a polygon and these number of dots are designed to show density. The more dots, the greater the density. I’ve typically seen this done with populations. So, to make life simple and easy to share with my readers, I did a little playing with the US Sample data set. You can download my geoworkspace from here. The geoworkspace should work fine if you have the US Sample data set in c:\warehouses. If you’ve moved it, just be sure to change the location of the warehouse under Warehouse > Connections.

In short, I normalized the population by dividing the populations for Asians, Blacks, and Whites. I did this by dividing each population by 10,000. This functional attribute looked like ROUND(Input.WHPOP/10000, 0). This was done just to simply reduce the number of dots. After that, I created the functional attribute: DOTDENSITY(Input.Geometry, INT(Output.WHITE)). This simply takes the output from my previous functional attribute that divided the white population by 10,000 (Output.WHITE) and rounded it to the nearest whole number (INT function). After that I feed in the input geometry and the rounded Output.WHITE population into the DOTDENSITY function. The result is a point collection for each of the black, white, and asian populations.

You can take a look at my screenshots of California to see the results:

All of the dots:

White dot = White Population

Black dot = Black Population

Blue dot = Asian Population

White Population

Black Population

Asian Population

Posted in Functional Attributes, GeoMedia, Intergraph | 4 Comments »

Save and Load Customized Settings

Posted by jeffhobbs on October 1, 2007

I’ve been playing a little bit with the commands Tools > Save Customized Settings and Tools > Load Customized Settings. For those that have not played with the two commands, the basic idea is that you can customize the GeoMedia user interface using Tools > Customize. Once you have it the way you like it, you can use Tools > Save Customized Settings and that will save the interface to an XML file. You can then use Tools > Load Customized Settings to load this custom interface whenever you’d like.

Additionally, you can use the "custom" parameter as part of your GeoMedia shortcut to load the customized settings when you launch GeoMedia. In other words, if I go to Start > Run and type in GeoMedia, assuming your Windows path is setup correctly, this should launch GeoMedia. Now, if you type the following in the Run dialog: ‘GeoMedia.exe /custom “D:\xmlfiles\MySettings.xml”’ where D:\xmlfiles\MySettings.xml is replaced with a XML file with your customized settings, GeoMedia will launch and the customized settings will be set. Naturally, this could be rolled into a standard Windows shortcut that will launch your customized settings when you launch GeoMedia.

As a whole, if you like to have different GUI setups depending on the workflow e.g. "setup A" for digitizing, "setup B" map analysis, and "setup C" for plotting, this functionality should be quite useful. As all you would need to do is setup three distinct customized settings XML files and three corresponding GeoMedia shortcuts to launch your customized settings.

However, for me personally, I’d rather see you be able to save the settings on a geoworkspace by geoworkspace instance. This is something that you could do with ArcView 3.x and I believe you can even do with ArcGIS. This to me is much more beneficial as you can customize the GUI for "application A" that would involve data entry in one way and customize the GUI for "application B" that involves a lot of querying with another interface. Both would be triggered by the launching of a .gws as opposed to a GeoMedia shortcut. Of course another way to do this would be to be able to call GeoMedia, a customized settings XML file, and a .gws; all in one shortcut. However I haven’t been able to find a way to do this yet. If anybody has any ideas, please let me know.

Finally, one barrier to really making this useful is GeoMedia’s HORRIBLE handling of toolbar locations. To this day, I often have my toolbars jump around and move to different locations when I load GeoMedia. This has been a problem as long as I’ve used the software. Let me assure you, the customized settings command does NOTHING to solve this. Even if I save my settings with only one row of tools, when I load the settings, it’s very likely that the toolbars will not appear in the same one line of tools but will again appear in many different lines. I’m thinking you could probably get around this issue by creating one "master" toolbar with just the tools that you need. However if you’re going to use multiple toolbars, be prepared to have them "jump" around. This to me is really a showstopper.

Initial Toolbar:

Customized Toolbar:

When I saved the settings, there were no gaps between the various toolbars.

Posted in GeoMedia, Intergraph | 5 Comments »

BAAMA Proceedings

Posted by jeffhobbs on October 1, 2007

Not sure how many readers of this blog were able to attend the BAAMA educational meeting last week, but did want to post the slideshows here for those that are interested:

Posted in BAAMA | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.