NB: Edited earlier post with new link to script download site. Also, if you check the arcscripts site there is a flip book animator for the application that will iterate through georectified images in the order you set based on a timer, or manually (this allows you to move backward and forward), or you can click the image in the list to have it display. Allows you to set the transparency of the image so you can see the base layers beneath. Will post the live GPS feed task for ArcGIS explorer to ArcScripts in the coming weeks. Has support for Thales digital radios proprietary sentence. Hope some of you like it and can use it for your applications.Hey Guys,I'm a developer at ESRI and work on a product called ArcGIS Explorer. Its a free 3D mapping application you can download from the ESRI website. Now I don’t mean to plug ESRI here, but this application is free, and you have a clean entry point to add custom coding to it.At our developer summit back in April I presented and wrote a sample app that positions a 3D glyph (model) of the millenium falcon above Area 51. I added some code to predict where you will be in a straight line based on your current lat / long, alt, speed and bearing. Running the task you are able to change its speed, bearing, pitch and roll. I didn't add code to overcome gimle lock however.So, if you can provide the lat/long/alt and bearing, you will have an instant tracking solution for your UAV. The code for the sample is located here:http://arcscripts.esri.com/details.asp?dbid=15900and you can download ArcGIS Explorer from here.http://www.esri.com/software/arcgis/explorer/index.htmlI made the code as generic as I could, its written in C#, and all of the drawing is in OpenGL. Take a look at the code and you should easily spot where to plug in the coordinates.I've also written a live GPS task that we will release probably later this year (not source code however).Few snap shots from Visual StudioThis parses NMEA and shows you your position bearing etc. I’ve added the ability to track your movement which creates pushpins on the surface. The added pushpin content is what we call a result. A result when double clicked will show you a popup. A popup can contain anything from text, to a web ref, or a locale file on disk. Here you’ll see I am referencing a picture of a car.So, imagine not only your position being shown, but if you are taking stills, or capturing stills from a video stream, you could create a pushpin on the ground below your position, write the image to disk, then write the location and file name into the Popup’s description. Then as you see above you would have something that conveys a lot of information.Also, I’ve written a Geotagging task that will be available later this year. Sorry but I have no control over the release times, except for sample code. Geotagging will enable you to send the image to anyone with mapping software that can open geotagged images, and it will place them exactly where the coordinates tagged to the image specify.It would be interesting to hear from any of you interested in this, ideas, issues, let me know. Not knocking Google, I think its great (virtual earth rocks too), but a lot of this type of functionality you only get with the pro version I think.Edan Cain
Thank you very much for letting us in on this system.
As I mentioned earlier, I have been installing and supprting the forestry and survey labs for our college for many years now and have never realized the power and versatility of the ESRI software suite that we use.
Plus your description and tutorial, if you will, is impressively comprehensive and idea provoking.
Hey Chris, Sgt Ric,
you are free to download and use it and free to distribute it.
I'll answer both your questions reagrding modifying and what I meant by 'you have a clean entry point to add custom code to it'.
The only way we allow you to add code to the application is by using our SDK which you again are free to download use and distribute. This is the only entry point for a developer to add custom code. The SDK consists of just over 40 classes, we've made it very concise and easy to understand. You can only use managed code (VB .Net and C#) to write tasks using the SDK. Now you don't need a full version of Microsoft Visual Studio either, you can download and use their Express version for free and we support code written with it. You can find it here: http://www.microsoft.com/Express/
So that is what I mean by a clean entry point. You create a task and when you compile the code, the corresponding dll that is created will automatically be available inside of the application. When you create your task you get what we call an .nmf file. Its XML, thats all it is. Inside of this file is the location of the dll that will be created when you compile your code, this dll's location can be on disk, internet, whereever you decide to place it. So you can then share this nmf file with others. If the dll exists where you state in the nmf, and they have read access to that directory (folder), the task (dll) is then pulled and available inside the app. There's no setup you have to provide, just nice and clean.
You have all the power of .NET to use, i've created my entire base station showing all my gauges etc. Using any other .NET assembly within your implementation has one hiccup for the developer. Since now you need to reference another assembly dll within your code (like my gauges for example), you will need to place your task dll and the referenced dlls into one zip file (by the way the other ref dll will be copied to the bin file of your task). The nmf file I talked about will now need to point to the zip file rather than your task dll directly. This way, within the base code we check to see if its a zip file and pull out all of the files required to make your task work.
Chris if people like it I could do a better write up with screen shots.
We have loads of sample code that installs with the SDK, bascially coverying most of the things you can do. Another good thing is that all of the image tiles for any location you visit on the globe can be cached locally, so when out testing your UAV you still have all the base map data there and working. You don't need then to have an internet connection. You simply need to visit the area before hand.
So I guess you're thinking, what's in it for this guy, for ESRI right? Well we haven't really promoted it outside of our GIS community that well. Its been mainly adopted by government agencies, schools, GIS people right. The application can display all of their ESRI datatypes, shapefiles / geodatabases (geometry files) etc etc and consume services. It also supports KML. Geoprocessing (show me all the locations or attributes that meet a simple or complex query). Geoprocessing as an example could be used to analyse terrain cover for a forest for example. You want to build a fire watch tower, it needs to be with 500 ft of a road, not on a slope exceeding 20', south facing. Once areas a specified, how much land can each point see from that location (called a veiwshed). You have funding to build 4 towers, so you can then pick the 4 best locations.
So this is where the application starts to pay for itself. It adds value to their existing ESRI products, and perhaps encourages them to buy our server technology etc.
So getting back to general stuff of help to us here on DIYDrones. Ken Gordon shared a cool task he wrote (http://arcscripts.esri.com/details.asp?dbid=15488), enables the upload and download of stored tracklogs, routes and waypoints between ArcGIS Explorer and a connected Garmin or Magellan GPS device. You can create waypoints within arcgis explorer and upload them to your device. Not sure if he allows you to give it an altitude offset though.
In the app itself if you create route line, you can easily fly along it.
Sgt Ric, all the code I write I think "how could I use this with a UAV", or how could I use the SW for my UAV project. Even with ArcView, you can customized it, in fact it comes already coupled with a VBA (Visual Basic for applications). Exactly the same as the Office Suite. I wrote a whole automation application with it for a local government's parcel taxation and subdivision department 5 years ago that they are still using.
Hope this adequately answered your questions, added a little clarity.
Thanks for reading, hope I didn't ramble on too much.
At the college whare I work, our Forestry program and our survey programs have both been using ArcView and a couple other ESRI products for several years, and even though I have been supporting these labs, I never imagined the possible uses related to UAVs.
I am puzzled by the statement "you have a clean entry point to add custom coding to it",
This is not the terminalogy used in their licensing section, nor does it follow the general trend in commercial software licensing in general.
Sure the complete program is free to private users and colleges, etc., but traditionally alterations are in violation of their terms, so this is surprising.
Sweet! Very impressive work and thanks so much for sharing it. Could you explain the license agreement a bit? It's not GPL'd. Are people free to modify and distribute?
Comments
Thank you very much for letting us in on this system.
As I mentioned earlier, I have been installing and supprting the forestry and survey labs for our college for many years now and have never realized the power and versatility of the ESRI software suite that we use.
Plus your description and tutorial, if you will, is impressively comprehensive and idea provoking.
Thank you for the insight into this software.
you are free to download and use it and free to distribute it.
I'll answer both your questions reagrding modifying and what I meant by 'you have a clean entry point to add custom code to it'.
The only way we allow you to add code to the application is by using our SDK which you again are free to download use and distribute. This is the only entry point for a developer to add custom code. The SDK consists of just over 40 classes, we've made it very concise and easy to understand. You can only use managed code (VB .Net and C#) to write tasks using the SDK. Now you don't need a full version of Microsoft Visual Studio either, you can download and use their Express version for free and we support code written with it. You can find it here: http://www.microsoft.com/Express/
So that is what I mean by a clean entry point. You create a task and when you compile the code, the corresponding dll that is created will automatically be available inside of the application. When you create your task you get what we call an .nmf file. Its XML, thats all it is. Inside of this file is the location of the dll that will be created when you compile your code, this dll's location can be on disk, internet, whereever you decide to place it. So you can then share this nmf file with others. If the dll exists where you state in the nmf, and they have read access to that directory (folder), the task (dll) is then pulled and available inside the app. There's no setup you have to provide, just nice and clean.
You have all the power of .NET to use, i've created my entire base station showing all my gauges etc. Using any other .NET assembly within your implementation has one hiccup for the developer. Since now you need to reference another assembly dll within your code (like my gauges for example), you will need to place your task dll and the referenced dlls into one zip file (by the way the other ref dll will be copied to the bin file of your task). The nmf file I talked about will now need to point to the zip file rather than your task dll directly. This way, within the base code we check to see if its a zip file and pull out all of the files required to make your task work.
Chris if people like it I could do a better write up with screen shots.
We have loads of sample code that installs with the SDK, bascially coverying most of the things you can do. Another good thing is that all of the image tiles for any location you visit on the globe can be cached locally, so when out testing your UAV you still have all the base map data there and working. You don't need then to have an internet connection. You simply need to visit the area before hand.
So I guess you're thinking, what's in it for this guy, for ESRI right? Well we haven't really promoted it outside of our GIS community that well. Its been mainly adopted by government agencies, schools, GIS people right. The application can display all of their ESRI datatypes, shapefiles / geodatabases (geometry files) etc etc and consume services. It also supports KML. Geoprocessing (show me all the locations or attributes that meet a simple or complex query). Geoprocessing as an example could be used to analyse terrain cover for a forest for example. You want to build a fire watch tower, it needs to be with 500 ft of a road, not on a slope exceeding 20', south facing. Once areas a specified, how much land can each point see from that location (called a veiwshed). You have funding to build 4 towers, so you can then pick the 4 best locations.
So this is where the application starts to pay for itself. It adds value to their existing ESRI products, and perhaps encourages them to buy our server technology etc.
So getting back to general stuff of help to us here on DIYDrones. Ken Gordon shared a cool task he wrote (http://arcscripts.esri.com/details.asp?dbid=15488), enables the upload and download of stored tracklogs, routes and waypoints between ArcGIS Explorer and a connected Garmin or Magellan GPS device. You can create waypoints within arcgis explorer and upload them to your device. Not sure if he allows you to give it an altitude offset though.
In the app itself if you create route line, you can easily fly along it.
Sgt Ric, all the code I write I think "how could I use this with a UAV", or how could I use the SW for my UAV project. Even with ArcView, you can customized it, in fact it comes already coupled with a VBA (Visual Basic for applications). Exactly the same as the Office Suite. I wrote a whole automation application with it for a local government's parcel taxation and subdivision department 5 years ago that they are still using.
Hope this adequately answered your questions, added a little clarity.
Thanks for reading, hope I didn't ramble on too much.
Edan
I am puzzled by the statement "you have a clean entry point to add custom coding to it",
This is not the terminalogy used in their licensing section, nor does it follow the general trend in commercial software licensing in general.
Sure the complete program is free to private users and colleges, etc., but traditionally alterations are in violation of their terms, so this is surprising.
A potential boon to our hobby.