For this year’s ESRI International User Conference we offered to compile new maps for the pocket agendas that are distributed to all attendees. This quickly mushroomed into a project that included the compilation of a number of additional maps for a mix of media. Print maps included 3.5” by 6” page maps showing multiple floor levels of the three buildings used for the conference. We then created A size (8.5” by 11”) versions of these, as well as maps at this size for two special events held during the conference. We also compiled a map of nearby restaurants offering discounts that was posted on the Web in PDF format so it could be downloaded and printed.We then began work on a Web map application that allowed users to find rooms and route between them. This was mashed up onto the world topographic map that is available on ArcGIS Online. The Web map application included scale ranges from ~1:18,000 to ~1:1,000, with interior building views at ~1:4,000, ~1:2,000 and ~1:1000 for each of the floor levels. Additionally, a 3D interior building model was created for the convention center, and an iPhone application for routing and room finding was developed in conjunction with our work.This rich set of maps in such diverse formats provided an excellent learning opportunity for us. In this presentation, we will share some of the lessons we learned about the data compilation, routing application development, Web map application creation, 3D building model construction, and more.
Spectacle, showy, extravagant, vaudevillian, exciting, awe-inspiring, excessive – an extravaganza!
The layers were also made available on arcgis.com and so were easily accessible on the iPhone via the ArcGIS application.
You may have seen the app developed for the 2008 UC. Impressive functionality, but not very usable or beautiful. We wanted to create something that was both usable and beautiful.
We laid out the functionality for our application as follows:
I’ll give a quick demo of the app, then explain a bit more how we made it.
Under the hood, the app consumes 8 map services, 1 for each floor of the UC, and 1 each for labels, topobasemap, basemap additions, and a minimal locator map. For the routing functionality, we built a GP service on top of a cartographic-quality 3d network dataset. The room-finding functionality was built into the client itself.
The old network, routed to the center of rooms
Here you can see a bit better what the network actually looks like. I connected every possible path between doors using nice curved paths. Our routing engine is unique in that it finds the optimal starting and end doors for a set of rooms, then routes between them. To create the network, we digitized hallway centerlines (or other better paths along hallways), then used the advanced editing tools in ArcGIS (endpoint arc and/or fillet) to add curves where appropriate. Curve radius was dependent on the available width of the hallway and other connected paths.
Input: Room IDsOutput: Best route between those rooms, including doorway optimization, route infoUses VBA in-memory network traversal layer hackAny failed route crashes the servicePython script to output RoomID file for reading by the app (impossible to send bad inputs to the service)OD Cost matrix to check network traversability (no routes will fail)
We wrote a python script to automate the network checking process. The script takes two inputs, a feature class (doors) and a network dataset. It then computes all possible routes between the input features (doors) along the specified network using an Origin Destination cost matrix and summary statistics. I can answer more questions about these details later if there’s interest. If any orphaned nodes (doors) are found, the script adds a “Valid_Node” field to indicate which nodes are disconnected. The user can then symbolize or select by this attribute to find and fix any problematic nodes.