I don’t have a lot of posts on Thwack, but I’m trying to fix that. This weekend I got my Orion Google Map resource working, and wanted to get your feedback. If you like it please let me know and I’ll package it for redistribution on your server.
You can see what it looks like here on the online demo:
http://oriondemo.solarwinds.com/Orion/SummaryView.aspx?viewid=157&AccountID=Guest&Password=Orion
Once upon a time I was a pretty good JavaScript developer, but it’s been a while and this was challenging. The real trick was getting multiple Google maps to work on the same page. Orion is really good at that, but none of the Google maps API examples have more than one map on a page and I knew users would expect the same thing from this resource. The Orion part was actually pretty easy.
The resource contains three major parts:
- A Google Maps key manager to allow you to use multiple keys to support different URL’s on the same machine
- The Orion resource files, images and JavaScript files that run the display
- An interactive editor.
The editor really is the secret sauce because it lets you graphically configure each map without needing to know anything about how Google maps work, for example the gory details of geocoded coordinates. You just get it looking the way you want, size, zoom, which controls to show and the type of the map, and the editor takes care of it for you. It even automatically generates a special query to limit the geographic extent of the selected nodes to the size of the map, while also letting you use the same filtering you use in node list resources. Creating a map of all non-"up" US Cisco routers took less than a minute.
Editor screenshots:
Map in Orion, click "Edit" to update as Admin, hover over a point for node detailsEditor, with dynamic updates
To make it work you must use the Custom Property editor to add the pre-defined Latitude and Longitude properties to the Nodes table. You can then either manually set them up (there’s a tool on the map editor that gives you the coordinates for cut-and-paste), or populate them any way you like. For example you could use a Custom Poller to get the data from GPS aware devices. The resource won't try to add nodes that don't have these values for performace.
I’m making a few final tweaks, so please check it out and let me know what you think.
Thanks,
Patrick