HoloLens is an mixed reality visor manufactured by Microsoft. This github repo contains source code for an experimental HoloLens mapping application developed by Esri's Prototype Lab. The code is intended to be used within a Unity project in conjunction with Microsoft Visual Studio for deployment and packaging.
The app constructs Unity terrains at runtime from imagery and elevation sourced dynamically from ArcGIS Online. The app listens for preset commands to map various locations around the world. The app will also display the physical address of a user defined location (i.e. reverse-geocoding).
Instructions how to build, deploy and configure the application are described below.
Firstly it is strong recommended that the reader become familiar with the resources available on Microsoft's Mixed Reality web portal. The site contains a wealth of information about HoloLens hardware, tutorials and forums.
As discussed here the following applications are required to rebuild the HoloLens sample.
Download the HoloLens Terrain Viewer from github as a single zip file as pictured below.
Before extracting the downloaded zip file, right click and open the properties page. Check unblock and then ok. This will ensure that the computer will not unintentionally block some of the extracted files.
Start the Unity application, click New to specify a name for the new project and then click Create Project.
Drag the contents of the extracted zip file's Assets folder to the Assets panel in the Unity application.
The dropped files include the Microsoft's open sourced HoloToolkit and a few scripts authored by the Prototype Lab in the EsriToolkit folder and a pre-authored Scene.
When prompted to select an output folder, create a new project sub-folder called App. Highlight the newly created folder, click Select Folder.
You are now ready to:
For detailed instructions on all three of these please visit Microsoft - Mixed Reality Development - Using Visual Studio.
As demonstrated in this video, voice commands are used to navigate to locations around the world. At each location a terrain map is built and displayed. These locations and commands are preset in file called Place.cs.
In the following snippet, the Place class contains two preset locations, the Hoover Dam and Mount Everest. A user would view the Hoover Dam by speaking "show hoover dam". Ideally, to improve speech recognition reliability, place names should contain multiple words and syllables.
The Level property denotes the AGOL zoom level. For most locations a zoom level of 9 or 10 is recommended, however due to higher resolution elevation in the United States the zoom level can be as high as 11 or 12.
namespace Esri.PrototypeLab.HoloLens.Unity {
public class Place {
public string Name { get; set; }
public Coordinate Location { get; set; }
public int Level { get; set; }
public static Place[] PresetPlaces {
get {
return new Place[] {
new Place() {
Name = "hoover dam",
Location = new Coordinate() {
Longitude = -114.737778f,
Latitude = 36.015556f
},
Level = 12
},
new Place() {
Name = "mount everest",
Location = new Coordinate() {
Longitude = 86.925278f,
Latitude = 27.988056f
},
Level = 10
}
};
}
}
}
}
Find a bug or want to request a new feature? Please let us know by submitting an issue.
Anyone and everyone is welcome to contribute.
Copyright 2014 Esri
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
A copy of the license is available in the repository's license.txt file.