|
Review GIS Component Mapping Software by George L. Rowe, P. E. For many years, as a hobby, I have been photographing historic bridges in California where I make my home. I decided to dedicate an area on my company''s website to share these wonderful structures with others. At first, I just listed the names of the bridges and created a link to the pages that held some photos. Almost immediately people surfing the "Bridge Gallery" began requesting directions to the bridges and other data such as the owner, year built, bridge type, and history. So to the web pages I added links to MapQuest locating the bridges on a map and other requested information. To keep track of this ever-growing project I turned to a database to store and organize my data. Then one day I received an email from a visitor pointing out the obvious. The "Bridge Gallery" needed a facelift. Instead of a list of the bridges the visitor believed that an interactive California map with the bridges located by symbols would be a much better way to navigate my growing list of bridges. I agreed with the visitor and a GIS project was born. To jump-start the project I came up with a short list of requirements for whatever software solution I selected:
Note: For a couple of good articles on XML and GML ( Geographic Markup Language ) see Ron Lake''s articles in the January Issue of this magazine. Once I outlined my requirements I did a web search and found many promising technologies. There is a whole slew of low cost and free GIS java applet technologies such as JShape by JShape Software (http://www.jshape.com), OpenMap by BBN Technologies (http://openmap.bbn.com), and ALOV Map (http://www.alov.org) by ALOV. I didn''t spend much time with these applications other then trying their online examples and reading some of the documentation. I must say I''m very impressed, for free your can get quite a bit of GIS functionality if your willing to forgo support and you have some time to figure these solutions out. For this project I just couldn''t afford much time. I had been planning my attack on this project for almost two months and it was time to deliver. Another concern was that although Java is my language of choice I tend to shy away from applets because most of my website''s visitors use Microsoft Explorer. With the ongoing battle for Internet dominance heating up between the two titans, Microsoft and Sun you never know when the nice folks at Microsoft will come up with a new way to keep java applets from working with their browser. With the Java applet option checked off my list for now I turned to Microsoft for a solution. The next group of software I looked at was the ActiveX components, which is the focus of this review. ActiveX also known as OLE, OCX, and COM components are just a few of the many abbreviations Bill Gates'' marketing department have come up with over the years for this technology. ActiveX components can be used within any environment that supports its standards. Microsoft''s Visual Basic, Visual C++, and Borland''s Delphi and Builder are just a few of the many developer''s environments that a capable of using ActiveX Controls. Oops-I just used the "d word (developer)" and I''ve probably scared off half of my audience (not a positive thing for a writer). For you none "d" people please wait before you turn to the next article - I have surprise for you. Most everybody out there has embedded a chart into Microsoft Excel right? Didn''t the process go something like this?
Well guess what? Microsoft Excel Chart is an ActiveX Control and using an ActiveX GIS component is just as easy as using the chart. In fact one of the controls I reviewed has examples of embedding a GIS application directly into Excel with just a little Visual Basic programming. Imagine not only using charts to visualize you company''s data, but also using geographic mapping incorporating geospatial data to analyze and visualize your data with little or no programming. Once again I turned to Internet for some research on available ActiveX components. I first looked to the big guys for a solution. Both ESRI and MapInfo have components, but MapInfo''s (http://www.mapinfo.com) MapX was not within my budget and ESRI''s (http://www.esri.com) MapObjects LT looked interesting, but lacked support for MapInfo Table files. One very positive note in regard to MapObjects LT is that it is the only component that I found that supported both Autodesk''s DWG and DXF and MicroStation''s DGN file format which is the CAD program of choice for most of the Transportation projects I work on. Also MapObjects LT was the only Company that I reviewed that included examples of using their components with both Microsoft and Borland development tools. GeoObjects 3.0 - Blue Marble Geographics GeoObjects 3.0 by Blue Marble Geographics of Gardiner, Maine is an inexpensive yet powerful set of COM components. The package comes with a Map Control for viewing maps and a separate Legend Control for visually defining map entities and attributes. You can download a free 14 day evaluation of GeoObjects 3.0 from Blue Marble''s website at the following address: http://www.bluemarblegeo.com/products.asp?ID=135&p=evaluate. The download web page includes two tutorials one using the components with Microsoft Visual Basic (VB) and other for Microsoft Visual C++. Of course I use Borland''s Delphi and Builder development and Blue Marble didn''t include an example for either of these of these products. Luckily, the tutorials have one cool HTML Internet example sitting all alone in single directory labeled "Internet" that is written in VBScript that clearly shows how to set properties, respond to user events, and call member functions. GeoObjects Map Control packs an incredible amount of functionality into its components, and they''re are very easy to use. But by far what sets this component apart from its competition is the fact that it supports all the major map file formats without translation, and a huge and growing list of image file formats. GIS Component Mapping Software Continued The Map Control can display MapInfo Tables, ESRI Shape files, Atlas GIS files, and AutoCAD DXF and DWG up to version 2000. This Control also reads point data from Microsoft Excel (XLS) and dBase IV (DBF) files. Besides vector graphics this Control can display images such as LizardTech MrSID, ERMapper ECW, GeoTiff, TIFF, JPEG, PNG, BSB/KAP Nautical Charts, ADRG/CADRG, BMP, Truevision Targa, and Paintbrush PCX. The only requirement for importing images is they must be geo-referenced using an ESRI World file, and both the image and World files must reside in the same directory. With this component''s ability to read so many different map formats, attentive readers are probably asking, how do you deal with the different map projections and coordinate systems? Well just sit back and relax--the folks at Blue Marble have figured it out for you. If you decide to use more then one map with different coordinate systems and projections the Map Control uses the map data defined first as the default and then re-projects all the other data based on this default. The incredible thing is that this is all done in the background. To give you an idea of how easy these components are to use I downloaded the evaluation copy and installed the components into Borland Builder. I created a new form and dropped the Map Control onto form. A right mouse click on the component brought up the property dialog box.
To show mapping in the Map Control you just define the map data you want to use in the Edit Box labeled Spatial Data Name. For this example I selected two MapInfo Table files but I could have just as easily selected ESRI Shape files or AutoCAD DWG or DXF files. Just for fun I decided to create a map viewer. I added an Edit Box and Combo Box to my form for users to select the map file data. With less then 10 lines of code and 15 minutes I had a very powerful map viewer - WOW!
Another useful and powerful feature of MapObjects is the thematic shading functionality. Any map feature such as points and polygons can be assigned a color or "shaded." The Control includes a binning algorithm that can sort data in your database by number, numerical range or character string. So for my project not only could I locate the historical bridges on the California map by symbol, but I could also change the color of the symbols based on some attribute of the bridge such as type, or age. Then with the Legend Control I could easily show a legend that defines the colors with respect to the bridge attribute. As far as database access the documentation states that the Map Control supports Microsoft''s Visual Basic data control, Microsoft''s remote data control, and PowerBuilder''s DataWindows. For my project, I''m not sure whether this product could incorporate my XML data files. In the worst case, if I decided to use this product I could transfer all my data to say Microsoft Access database-not a big deal. System Requirements Any developer''s platform that supports Microsoft''s Active X Controls. Costs
GeoObjects 3.0 Note: Other license options available, click here to go to company''s pricing page SylvanMaps/OCX-4 - Sylvan Ascent Inc SylvanMaps/OCX-4 by Sylvan Ascent Inc. of Taos, New Mexico is a set of ActiveX components that comes with a Map Control and Legend Control. According to Company''s documentation SylvanMaps/OCX-1.0 was released in April of 1995 and was the first ActiveX GIS control on the market. It goes on to say that this control at the time was unique in that it stored all of its spatial data in relational databases. A 45-day evaluation of SylvanMaps/OCX-4 is available on Sylvan Ascent''s website and can be found here: http://www.sylvanmaps.com/evaluationsoftware.htm. The evaluation includes components, documentation, and three examples. This control can access any database that has an ODBC or ADO/OLEDB driver. What this means is that your data can be stored in Access, SQL Server, Oracle, IBM DB2, Sybase, Informix-- just to name a few of the many databases that have these driver types. SylvanMaps/OCX-4 takes a slightly different approach then other ActiveX controls that I looked at. The documentation mentions that USGS DLG, MapInfo MIF, ArcView SHP, AutoCAD DWG and DXF files can be read directly without translation, but the method of choice for the folks at Sylvan Ascent is to translate all data into an ordinary relational database, with an open format that is well documented in the help. Once you have your data in the relational database you can then use the power of SQL to query, join and filter your data. For those of you comfortable with SQL commands you can see how powerful this approach can be, and for those not familiar with SQL and not willing to learn maybe another component would be more appropriate. But before you look elsewhere make sure you look at Microsoft Office examples. Yes, you read that correctly! These folks have shown how to use their controls with Word, Excel and Access. Take a look at the screen shot. Yes, that''s Excel. When you first place the Map Component onto the container, in this case an Excel Worksheet, the drawing surface will be blank except for the toolbar at the top and the status bar below. Notice that the status bar has the mouse tracking coordinates and map scale. Without doing any programming you already have "working" functionality. All you have to do now is connect to a database with mapping data. Once you connect to the database the map will appear and presto you have a working GIS application. If you press the Entity Information Tool, which is the depressed button with the red arrow and circle in the toolbar, the application will react to your mouse input. For example, if the user moves the mouse over a State, in our case Montana, a tool tip type label pops up. When the user mouse clicks on a State a message box appears with the name of the State and the average income. So how does this all work?
Take a look at the code. In less than 20 lines of simple code we have a fully functional GIS application working within Excel. Even for those SQL uninitiated the code probably doesn''t look too bad. You first connect to the database, then the query (SQL Select Command) returns a record set, and then you grab the "Income" Field from the record set. Not really brain surgery. This example also shows how events are propagated and then responded to by the programmer. When the Entity Information Tool has been pressed every user mouse event such as a mouse move, or mouse click is sent to the subroutine "SylvMap1_MapEntityInfo" along with the layer name and entity id. With this information you''re able to tell what Feature has been "selected", which gives you the programmer the opportunity to respond in any manner you see fit.
********************************************************************************
Private Sub SylvMap1_BeforeDrawMap(ByVal DrawMapType As Integer)
********************************************************************************
Private Sub SylvMap1_MapEntityInfo(ByVal Layer As Integer, ByVal EntityID As Long) Once again there''s no apparent solution for my XML data for my "Bridge Gallery" project. I guess I''m just going to have to drop the XML format and place the data into an ordinary database. For my simple needs the Excel example shows off about all the functionality necessary to complete my project. System Requirements
Windows 95, 98, ME, Windows 2000 or Windows NT. Other required software is the Microsoft Data Access Components (MDAC) Version 2.5 or higher. Costs
SylvanMaps/OCX-4 Conclusion These components have a lot of functionality. In fact in this review we didn''t even scratch the surface, but that''s really the point of component software. Good components such as those that I reviewed should hide most of the programming complexities for a given problem. So with very little effort and programming expertise a component user should be able to do something useful. I think both of the SylvanMaps/OCX-4 and GeoObjects have met this goal, but don''t take my word for it. As I mentioned before both of these products can be downloaded for evaluation. Like any software purchase I strongly recommend going for a "test drive" before shelling out the money. So go for it! You''ll be pleasantly surprised at how easy and inexpensive adding GIS functionality to your applications really is. So which product am I going to use for my project? Either one of these components can easily handle my GIS project. Both products are reasonably priced, documented very well, flexible as far as data formats they handle, and come with some pretty good examples. But I still would like to find a solution that uses my existing XML data files. Lets just say I''m still looking. George L. Rowe, P.E. is the owner of Bridge Automation an Engineering Consulting and Software Company in Loomis, California. George can be contacted at rowe@bridgeautomation.com, or visit the Bridge Automation website at http://www.bridgeautomation.com. |
|
||||||||||||||
|
|||||||||||||||
|
|||||||||||||||