Tag Archives: GPS

Vehicle Commander Template updated and available for download

New Vehicle Commander Overview

The Vehicle Commander Template has been updated to version 10.1.1 and is now available for download from Arcgis.com. The Vehicle Commander application template is a model for developing an in-vehicle situational awareness application using ArcGIS Runtime 10.1.1 for Java. The … Continue reading

Posted in Defense | Tagged , , , , , , , , , , , , , , , , | 1 Comment

The Squad Leader Application Template is available for download

SquadLeaderApp_Overview

The Squad Leader app is a new ArcGIS app for Android smartphones and tablets.  It is designed to enhance situational awareness for platoon and squad-sized units during operations. The app allows a soldier to submit and read reports, drop virtual … Continue reading

Posted in Defense | Tagged , , , , , , , , , , , , , , , , , | 2 Comments

Vehicle Commander Template is available for download

Vehicle Commander Application parts

The Vehicle Commander Template is available for download from Arcgis.com.  The vehicle commander application template is a model for developing an in-vehicle situational awareness application using ArcGIS Runtime SDK 1.0 for Java. You can use the Vehicle Commander template to … Continue reading

Posted in Defense | Tagged , , , , , , , , , , , , , | 2 Comments

ArcGIS for Android 1.5 Released!

The Mobile Team is proud to announce the 1.5 release of the ArcGIS for Android application. It is available now on both the Google Play market and the Amazon App Store. ?

Key features for this release include:

  • Improved layer controls for managing dynamic map services, map notes and group layers
  • Support for secured services
  • Expanded device support (including the Kindle Fire)
  • Improved GPS auto-pan functionality
  • Stability improvements (sign in, mobile content server, more…) Continue reading
Posted in Mobile | Tagged , , , , , , , , , | 6 Comments

Esri GPS Base Station "gisa"

Esri has installed a permanent building mounted Global Positioning System/Global Navigation Satellite System (GPS/GNSS) base station in Redlands, California named “gisa”. GISA operates a Trimble NetR9, dual-frequency GPS/GNSS receiver with Zephyr Geodetic Model 2 antenna. The base station meets National Geodetic Survey Continuously Operating Reference Station (CORS) guidelines and is in the process of being incorporated into their national CORS network. Continue reading

Posted in Mobile | Tagged , , , , | Leave a comment

SAR Volunteers Receive Award for Excellence in Public Safety GIS.

Search and Rescue (SAR) and GIS is an award-winning combination!

Sierra Madre SAR volunteer received award on behalf of the SAR-GIS group

On November 3, 2011 a group of forward-thinking SAR volunteers and US National Park Rangers received

the prestigious Foundation Award for Excellence in Public Safety GIS from the National Alliance for Public Safety GIS Foundation.

This informal group was formed in Joshua Tree National Park in 2009 and has made incredible progress towards integrating GIS into missing person search operations (SAR-GIS). SAR-GIS has been used successfully on search operations in National Parks and Counties across the U.S. and Canada. You can join the SAR-GIS discussion group to find out more about the topic. Continue reading

Posted in Analysis & Geoprocessing, Local Government, Public Safety | Tagged , , , , , , , | 3 Comments

Geolocation HTML5

With the recent release of Internet Explorer 9 (IE9), I decided to create and test a sample application using the geolocation API in all four major browsers (Safari 5, Firefox 4, Chrome 10, and IE9) using HTML5 and JavaScript. Although there was some support for geolocation functionality prior to HTML5, there was no standardization.

How does it work?

The geolocation API is published through a geolocation object, which is a child object of the navigator object. If the object exists, geolocation services are available. Sounds simple, huh? As a matter fact, here is how to quickly test for geolocation:


if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition

}

else {

alert(“Geolocation not supported on your browser.”);

}

So what information is being sent when you visit an application with geolocation support? The browser will ask if you want to share your location; if the user allows the application to acquire your location, then the browser will send your computer’s IP address and a collection of information of your surrounding Wi-Fi access points to their default location service provider (e.g., Google Location Services, Microsoft Location Services). This information includes MAC address, SSID, age, (how long ago in milliseconds since the Wi-Fi node was detected), and signal strength of all the Wi-Fi access points around you.

The location service then checks this information against a database, finds the location of all the access points provided, and using triangulation, returns your location. If no Wi-Fi access points are in range, or your computer does not have Wi-Fi, it may only use your computer’s IP to get an approximate location. The accuracy of geolocation varies, and in some cases, it may not be able to provide a location at all. More importantly, you will see different results across browsers.

The first thing that came to my mind about these location services was how they know where all these access points are located. Do you remember those Google cars driving around collecting Street View data? Well that was one way. Another company collecting data is Skyhook, which also has drivers driving around collecting data. Another way data is collected is cross-referencing Wi-Fi data with mobile cell towers and GPS data available from smartphones.

Test Results

First of all, I used our ArcGIS API for JavaScript version 2.3, which is an early preview of our API and is only for testing purposes. The reason why I used this version is that it will support IE9, which was released in early March along with our 2.2 version. All of my tests were done with a hard connection; they were Wi-Fi enabled but not connected to a wireless network.

IE9

My first test was with IE9, which was pretty accurate. My office is a little more left to the edge of the building but this location works for me.

Firefox

My next test was with Firefox and still on the same row but slightly more to the right.


Chrome

Here is where it got interesting: using Chrome, it located me outside the building. Just a minute ago I used Firefox, which uses Google Location Services just like Chrome. I expected them to be identical in my location.

Safari

Last but not least, I used Safari, and if I am not mistaken, I think they use a different location service than the others. As you can see my location is still fairly close but not as accurate as IE9 or Firefox.

I had some of my colleagues test as well, who are located a couple of offices down the hall and they didn’t yield the same results as I did. In the image below I used our topographic map to show the detail of our campus location along with a blue dot representing my location. The geolocation marker is approximately 0.6 miles away. Since they did not receive the exact location as me, I decided to have them try it while connected to a wireless network. Below you can see they had better results when connected to a wireless network.

Hard Connection

Wireless Connection

In conclusion we learned the following:

  • Geolocation API works in all four browsers that support HTML5.
  • Location requests with Wi-Fi data are more accurate that those based on just an IP address alone.
  • Result will vary across browsers, users, and I am sure where location data is scarce.
  • The location becomes cached, which will improve the location services.

Although I did not touch upon mobile devices in this post, I did try this code with an iPhone and an iPad, and they both located me in the parking area of our building. I also tried testing it on my Motorola Droid x running Android 2.2 and Windows Phone Samsung, but they don’t have an HTML5 browser. However, once they do have full support for HTML5, it will be nice to write in HTML5 and JavaScript for mobile applications that can deliver features based on location services, for example, a map that can center based on where you actually are and display relevant data based on your surroundings.

Here is a geolocation sample that you can test for yourself, and if you have accurate or inaccurate results or discover something we didn’t, please feel free to share.

 

David Martinez

EDN Team

Posted in Developer | Tagged , , , , | 3 Comments

An easy way to add GPS data to ArcMap

So, you have a GPS and have been cruising around all day collecting waypoints and tracks which are now stored on your device. Suppose you’d like to get those into ArcMap for further work or analysis, how would you do that? An easy way is using ArcGIS Explorer Desktop.

The first step is to export your data to a GPX file using your GPS device (a format just about all of them support). Next, we’ll add the GPX file to Explorer by choosing Add, then GPS Data Files, as shown below:

Then choose what you want to add:

 

After making choices and clicking Add, we now have our GPX file displayed in ArcGIS Explorer Desktop with all the correct symbols.

Next, right-click the layer in contents and choose Share.

You can choose to share as either a layer package, KML, or Explorer map content file. We chose layer package since not only does ArcMap support LPKs, but the layer package also captures the symbols for display in ArcMap.

 

Start ArcMap, then drag and drop the layer package onto your map. Below we’ve also connected to the ArcGIS Online world imagery basemap which serves as our foundation for displaying the now-converted GPX file, just like we used in Explorer. Note that the symbols are exactly the same.

If you are interested in a live feed from a GPS device, you have another option. ArcMap enables you to create a direct connection to a GPS unit for live input. Right-click on the menu and look for the GPS toolbar:

And you can find out more about it in the ArcGIS Help (just search for GPS).

You can also learn more about importing GPS data files in ArcGIS Explorer Desktop by taking a look at the Add GPS Data Files Explorer help topic.

Posted in Uncategorized | Tagged , , , | Leave a comment

Adding GPS location to the Map

Windows Phone has a built-in API for retrieving the current location of the phone, and we can use this to place a marker on the phone.  The GeoCoordinateWatcher in the System.Device.dll is class to use for this. Basically you new up a new class, and use the PositionChanged event to listen for changes to the current location, speed and course.

var geowatcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High)
geowatcher.PositionChanged += watcher_PositionChanged;
geowatcher.Start();

In the event handler we can grab the latitude/longitude, project it to the map’s spatial reference and use the point to update a graphic in a graphics layer. Example:

private void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs e)
{
   GraphicsLayer gps = MyMap.Layers["gpsLayer"] as GraphicsLayer;
   if (gps == null) //First Time. Create layer
   {
      gps = new GraphicsLayer() { ID = gps };
      MyMap.Layers.Add(gps);
      Graphic g = new Graphic() { Symbol = new SimpleMarkerSymbol() };
      gps.Graphics.Add(g);
   }
   var coord = e.Position.Location;
   MapPoint p = new MapPoint(coord.Longitude, coord.Latitude);
   // Project point to Map's spatial reference, use ESRI.ArcGIS.Client.Projection.WebMercator or Geometry Service
   gps.Graphics[0].Geometry = p;
}

The GeoCoordinate object returned also contains information about Course, Speed and Accuracy. You can use these values to create an arrow that shows direction when speed is greater than 0, or display an “error circle” around the point using a Polygon to give the user an indication of the accuracy of the position.

We can create a new Layer Class that inherits from GraphicsLayer and encapsulates this. Below you can download an example of a GPS Layer that does exactly this, and implements the direction and error circle. The rest of this blog post talks about this layer.

To use the layer first add a reference to GpsLayer.dll included in the download as well as System.Device.dll. Second import the namespace in the page that contains the map:

xmlns:gps="clr-namespace:ESRI.ArcGIS.Samples;assembly=GpsLayer"

Next add the GPS layer to the map:

<esri:Map x:Name="MyMap" Loaded="MyMap_Loaded" >
	<esri:ArcGISTiledMapServiceLayer ID="BaseLayer"
              Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" />
	<gps:GpsLayer ID="gpsLayer"
              GeometryServiceUrl="http://sampleserver.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer" />
</esri:Map>

The layer has a geometry service url property to be able to project the point from WGS84 geographic coordinates to the map’s projection. If your map is already using WGS84 or is using the WebMercator projection, you do not need to set this since the projection is handled on the client.

When you run the app and zoom to your current location, you will see something like this:

The white triangle displays the course the phone is currently moving in, and the circle the accuracy of the measurement. As the GPS updates the location and error circle are smoothly animated. When the speed drops below 1m/s, the arrow automatically disappears. If you don’t like the symbols used, you can set your own MarkerSymbol for the location and fill symbol for the error circle. Example:

<gps:GpsLayer ID="gpsLayer">
	<gps:GpsLayer.LocationMarkerSymbol>
		<esriSymbols:SimpleMarkerSymbol />
	</gps:GpsLayer.LocationMarkerSymbol>
	<gps:GpsLayer.AccuracyCircleSymbol>
		<esriSymbols:SimpleFillSymbol Fill="#22FF4532" />
	</gps:GpsLayer.AccuracyCircleSymbol>
</gps:GpsLayer>

There’re two events on the layer that are useful: GeoCoordinateChanged and PositionChanged. GeoCoordinateChanged is fired when Layer.GeoCoordinate is updated. PositionChanged is fired when the point you see on the map has been projected and animated to the new location. By using these events we can automatically recenter the map, rotate the map based on the direction, or display information to the user about location, speed etc. The included sample application has a “Follow Me” option that enables auto-recenter and rotate.

GPS Simulation

If you are using the Windows Phone emulator, or you are inside and get poor GPS reception, testing a GPS layer is not really possible. The GpsLayer includes a GPS Simulator that is automatically used when you use the emulator. The included sample starts out at ESRI and moves west, constantly randomizing the distance travelled and course. If you need it to start it elsewhere, open the source for the GpsLayer and change the initial values used when constructing  the GeoCoordinateSimulator at line 100.

Download the sample

Morten Nielsen
Senior Software Engineer
Silverlight/WPF, Windows Phone

Posted in Web | Tagged , , , | 2 Comments

Patrol Data Capture template available for download

Patrol Data Capture templateThe ArcGIS Defense & Intelligence team and Helyx SIS Ltd. have posted the new Patrol Data Capture template for immediate download from Arcgis.com.  This desktop application template is designed to help you import and clean patrol tracks from a GPS into ArcGIS. This template assists in separating patrol tracks, removing duplicate points, and detecting and removing error spikes. It includes a sample GPX file and a toolbox with geoprocessing tools to help you work with the imported track data. The template also includes a “Getting Started with the Patrol Data Capture Template” guide to help you set up the template and a “Using the Patrol Data Capture Template” guide to walk you through exercises using the template.

Posted in Defense | Tagged , , , , , , , , | Leave a comment