Using Floor Plans for Indoor Mapping
Many Fulcrum users are working indoors, conducting facility inspections of inside spaces. Within large facilities there may be multiple floors and hundreds of rooms to visit to inspect equipment, perform quality checks of plumbing and electrical, or observe the quality of build-outs for future repairs. Even though these types of work happen indoors without access to accurate GPS signals, you can still use Fulcrum’s mapping capabilities to geolocate your data on a reference background.
Beginning with an image file of your floor plan, you can use QGIS (the free GIS tool) to “rubbersheet” your image to add the spatial reference. To get started, you need a couple of things first:
- QGIS installed
- OpenLayers plugin
- Georeferencer plugin
- An image file of your floor plan, preferably high resolution
Both of the required plugins can be installed from within QGIS by opening Plugins > Manage and Install, then browsing to the appropriate ones.
Using the Georeferencer
In order to rubbersheet an unreferenced image, you’ll first need something to reference against. Under the Web > OpenLayers menu, you can add online base maps from OpenStreetMap, Bing, Google, and more. Add one of your choice that has imagery of your area, with high enough resolution to clearly see the building. After finding the area on the map, open the georeferencer to start the process. Select Add Raster and browse out to your image to load it into QGIS.
The objective here is to create “control points” to match points on your floor plan image to their relative positions on the map layer. Corners of buildings work well, or some other unique elements that are easily identifiable in the satellite imagery. Select Add Point in the georeferencer tools, then pick your first corner. You’ll get a window to select the matching spatial coordinates for your selected point, and selecting “from map canvas” will switch to your map window, where you’ll need to click on the appropriate corner. Add 5 or 6 more points just like that for different spots on your floor plan. You want to have a good spread of points to get the best result when processing the final referenced image.
When you’re ready to process the output and finish the rubbersheeting process, select the Transformation Settings option in the toolbar and set all the proper parameters for the converted output image. We’ll use the GeoTIFF format, along with the following settings:
Once you’re ready, click the Start georeferencing button and QGIS will start generating your image. When finished, you can add your GeoTIFF into QGIS, where you’ll see that it’s now georeferenced properly.
Building an Offline Layer
With this GeoTIFF produced, we can now produce offline layers with it in Fulcrum to make available on mobile devices for field data collection. If you have TileMill installed (it’s free), with a couple steps you can output an offline map file you can use for this purpose.
Create a new TileMill project with the default data added for reference. Add a new file layer and browse out to the GeoTIFF that QGIS created in the earlier steps. Give your layer a name, then “Save & Style” it so it shows in your map project right away. You’ll have to zoom in pretty tight on the right area to find your floor plan because the scale is so large. You may also want to add some scaling parameters in the styles to make it render nice and clear:
Once you’re happy with the look, export the project as MBTiles, making sure to check the parameters so you have all the right zoom levels for good experience on the mobile client. You want to have enough lower zooms (12 or 13) so that it’s visible while zoomed out farther, and also enough high zooms so your field users can get in tight to position data on top of the proper locations.
With my MBTiles map created and uploaded as a layer inside my Fulcrum account, it’s now available to my field users to download to their iOS or Android devices for field inspections. With the layer enabled on the mobile client, they can move room to room within the building doing inspection collection, and use the layer to set locations accurately.
Check out these additional links for help in georeferencing images: