Indoor Navigation with Google - ios

I am looking into creating an ARKit wayfinding application based on this open source project: https://github.com/ashislaha/Route-Direction-in-AR
I have downloaded and compiled this code (changing the mode from 'driving' to 'walking') and have placed the point inside of a building that is supported by Google's indoor maps. All the levels are mapped out in Google, yet this application does not go indoors; even when 'walking' is selected, it still only sticks to roads and stops navigating at the door to my building.
My goal is to have the wayfinding indoors, using Google Maps indoor view, and have the overview_polyline give the overview of the route, all indoors, from one place in the building to another.
I was looking at GMSIndoorDisplay, but there seemed to be a lack of documentation surrounding it. Is this similar to what I'm looking for, or what would you guys recommend? Thanks!

Related

Is it possible to create IndoorMaps like airports from Apple with IMDF?

Im quite confused about creating an IndoorMap for our company to display it on iPad's.
Regarding to the new IndoorMaps-Program from Apple I thought I found the perfect solution. Nice examples are shown at some airports in the official Maps App.
But the more I dig deeper into this topic, I understand less and less.
At airport indoor maps, provided by Apple directly, the max. zoom level is nearly disabled. You can zoom insanely deep into the indoor map (close to 5m). When I am creating a map with MapKit I can zoom not even close enough to a building, to fill it fullscreen. Is it even possible to get that zoom level as a private developer?
In the documentation about IMDF-files they mentioned, that as an private developer,
you will need to create IMDF yourselves. The good news is there are a number of third party platforms and tools that can make creating and updating IMDF easier. See section on third party platforms below.
So I studied these third party platforms and noticed, that I can only create IMDF, when I am using it together with their provided software and map-SDK's. So I would make me dependent to another platform and SDK, which isn't in my interest. I didn't found anything about one platform/software to simply convert some floor plans to IMDF. Where is the trick? Am I thinking to complicated?
The most confusing part of IMDF is: What is IMDF exactly? Third party platforms advertise it with the new file for indoor maps. Apple on the other hand, mentioned that
IMDF is a data model that is used to describe an indoor space. IMDF is output as a set of GeoJSON files.
So is it a file or a format? Would it be enough to get a tool to create GeoJSON-files?
Maybe somebody got a little bit experience with this topic and can get me some hints for my questions or can even suggest another simpler and better solution to display indoor maps for example warehouses.
The Indoor Mapping Data Format is Apple's way of modeling how to map indoor spaces. An IMDF archive is one manifest.json file with many .geojson files which are tightly related to the id property in some of the GeoJSON.
See the IMDF Sandbox link to get a sample IMDF archive from Apple
If you are building indoor maps for your example warehouse, and you want to stay independent of other parties, then you need to create your own GeoJSON. You would use the IMDF Sandbox from Apple to validate and/or report any issues you may have with your IMDF archive.
You mentioned a few links above, let me summarize your links plus a couple of others that we used to learn development of our IMDF solution.
Indoor Mapping Data Format — https://register.apple.com/resources/imdf/
Introducing the Indoor Maps Program - https://developer.apple.com/videos/play/wwdc2019/245
Video 245 from WWDC 2019 describes the IMDF Sandbox — https://register.apple.com/indoor/imdf-sandbox
Because building and understanding IMDF can be a bit more complicated, there is the IMDF Sandbox, a tool for visualization, archive inspection, editing and experimentation with an IMDF archive.
Adding Indoor Maps to your App and Website — https://developer.apple.com/videos/play/wwdc2019/241
Video 241 from WWDC 2019 gives sample MapKit & MapKit JS projects
Displaying an Indoor Map — https://developer.apple.com/documentation/mapkit/displaying_an_indoor_map
Displaying Indoor Maps with MapKit JS — https://developer.apple.com/documentation/mapkitjs/mapkit/displaying_indoor_maps_with_mapkit_js
I apologize that this was downvoted by someone, it's likely that someone deemed it not a programming question. I thought it a worthwhile question enough to answer.
To answer your questions:
What is IMDF exactly?
See https://register.apple.com/resources/imdf/Reference/#archives
Datasets MUST be delivered as ZIP compressed archives
Archives MUST contain a Manifest object supplied in a dedicated file named manifest.json
Features MUST be packaged as homogenous GeoJSON FeatureCollections
Is it possible to create IndoorMaps like airports from Apple with IMDF?
Yes, See the IMDF Sandbox link above, as they have an example of Victoria YYJ International Airport
Is it even possible to get that zoom level as a private developer?
Zoom level or MKMapView.CameraZoomRange would have to be determined empirically.
If you are familiar with GIS solutions, ESRI has a own indoor mapping template using which you can create Indoor maps and then export them into IMDF format.
The process should be:
Map you components and path using the ArcGIS Pro of ESRI and store them in a geodatabase.
Getting Started with ArcGIS Indoor Maps
Complete you map test the paths and openings using navigation tool to make sure everything is perfect.
Export the existing geodatabase into IMDF format using the Generate Unit Openings tool.
Export Indoor Maps data to IMDF

AR Google Tango Project

I'd like to know how to create a target for architectural large scale AR on a real site.In other words, I need that Google superimposed my 3d model on a specific place.
I have tried Google tango Area Learning tutorials (https://developers.google.com/tango/apis/unity/unity-codelab-area-learning), but after showing the message WALK AROUND TO RELOCALIZE the tablet does nothing, although I walk around to detect the real space, then after few minutes the message Unity project has stopped appears on the Google Tango tablet screen.
Could ADF file used instead of relocalizing the environment?
I've detected some interior scenes by Tango explorer and saved them,but I'm not able to use them for environment recognition purpose
I work on Unity and Google Tango tablet.
Thank you in advance for your response.
For anyone else facing this problem - the likely cause is not having a recent ADF file already on the device.
You need to first create a Area Description file (ADF) by scanning, and then you can separately Localise to that ADF - so you cannot "use an ADF instead of relocalising."
The tutorial you link above needs you to have separately created an ADF for your location - it simply chooses the most recent one you have.
You can use the Area Learning example to create your ADFs, and try localising to them. It also shows superimposing 3D models.
Also, look at the augmented reality one to see how to have objects load already in a specific place.

Offline Map for Private Property with Navigation in iOS

I have an idea of building offline Map for my University Campus (its covering almost 3-4 miles). Like new students or guests can navigate to various blocks in campus. Student can see himself/herself marked on map at current location & can chose destination from pre-defined list of places and application will navigate them.
I have explored alot like maptiles can help me in showing maps. But is there any other efficient way of showing campus map ? And I have no idea how will I navigate user (since being a private property area is out of reach of Google's Maps (or some other) API).
Any suggestions will be helpful. :)
EDITED
Here is Google Map link to my place.
I am studying ArcGIS from last few days, learned to create its 'geodatabase' using 'ArcGIS for Desktop' for rendering offline maps on iPhone.
However, now my concern is how to Navigate user.
And I will welcome any suggestion/idea for accomplishing it using any different approach.
You can achieve that with MapBox.
MapBox is an alternative to GoogleMaps and supports offline maps.
Mapbox iOS SDK
There are three methods available to the Mapbox iOS SDK
for offline maps. With cache-based methods, the RMTileCache for an
RMMapView can be configured to keep map tiles around based on their
count or based on their age in the cache.
Caching based on previous user interaction
Tiles are automatically cached once they are downloaded for display
based on the user’s panning and zooming of the map. For example, if a
user views the map, then zooms out, then zooms back in later when
offline, the original tiles will be present in cache and will display
without need for a network connection.
Proactive background caching for certain map regions
Using RMTileCache and the RMTileCacheBackgroundDelegate protocol, the
developer can enable the user to download a certain bounding box and
zoom range in the background in advance of actually displaying them on
screen. Callbacks trigger, allowing the developer to report progress
to the user or even to cancel a download in progress.
Tiles that already exist in cache will be skipped over during this
background download instead of re-downloaded.
MBTiles prepackaged tiles
Using the MBTiles format for map tile storage, developers can build
apps that read the tiles straight out of the MBTiles file and do not
ever need a network connection. Since MBTiles is an open format, files
can be created manually or with TileMill, as well as many other
applications and utilities such as mbutil.
You need the last one (i.e. MBTiles prepackaged tiles).
Source: https://www.mapbox.com/help/ios-offline/
If you go the OpenStreetMap way (map your property directly in OpenStreeMap) then you can also use the Scout SDK.
It's OSM based and provides full support for offline maps, offline routing & TBT navigation. If you properly connect the road segments then the SDK will be able to create car, bike & pedestrian routes on your data.
While not free, the Scout SDK has a free tier that might be large enough for your particular needs (if not you'll move to a "pay-as-you" model)

Custom map navigation (turn by turn) in ios

I want to implement navigation map for drivers in my iOS app and know two different ways to do this:
Use URL scheme to open Apple Maps app.
Implement this feature inside my app.
The first case is not an option for me, so I decide to select a second. As I can see from Apple documentation, there are no such standard API. For now I can receive array of routes between source and destination points via MKDirectionsResponse object; also I can draw some route on my map. So the next step is to provide turn-by-turn navigation from source point to destination point according to the route and some following requirements:
Displaying next turns.
The navigation should be voice-guided.
The navigation should be on a 3d map.
The map should rotate in the direction of driving as you drive.
Should display ETA to final destination (the end point).
I thinks that all this features (may be, except item 2) can be reached by the way of using location and map services provided by CoreLocation and MapKit frameworks. But I'm ready to use third-party free / paid services. All that I found:
atlasct
navigenie
cloudmade
I can't find some references to source codes / SDK's (even limited demo if they are paid) for items 1 and 3. Item 2 also doesn't offer some demo SDK so I can't learn and evaluate Navigenie services quality.
So my question: does you know some third-party libs / frameworks / SDK's that can help me to resolve my problem? Does you know any solution to voice-guided navigation? Know you smth about wroted above instruments or may be you think that I must implement all features from the beggining?
Thanks!

Is the Map Rails Kit worth the money?

http://railskits.com/map/
Would you like to launch your own
google map mashup? Need a way to
easily get data onto a map, but don’t
want to have to dig through piles of
poorly documented Google Maps
javascript code?
The Map Rails Kit allows you to deploy
a map mashup instantly. It extracts
all the Google Maps implementation
details, organizes all the
customizations into an easy to use
config file, and reimplements the map
controls, bubbles, and markers so your
app looks unique.
Populating your map with markers
consists of working with a few simple
ActiveRecord models so it’s amazingly
easy to get started. Create marker
records with titles, bubble content,
and location. If you specify just an
address to your markers, your markers
will be automatically geocoded for
you. You can even add tens of
thousands of markers to your maps
easily, and they’ll dynamically load
onto the map only when they are
currently in view as your users
navigate the map.
The Kit includes all the usability
polish that your users would expect in
a commercial map mashup. Their current
map settings are always saved via
session so when they come back to the
page later on, they’re right where
they left off before. For new
visitors, we support hooking into an
ip2location service in order to
initialize their current position. So
they immediately see their current
spot on the map, and can begin
interacting with it.
This Kit was authored by Jacques
Crocker.
This is kind of subjective, but I don't find the Google Maps API nearly as daunting as the blurb makes it out to be. I don't think I'd pay half a grand for an API to the Maps API — especially since you can buy a whole book on the topic for like $15 even if you find Google's docs lacking.
This guy doesn't even make it clear what it is he's selling. He makes the features of using the google maps API with Rails sound more difficult than entire feature set of Google maps itself.
There are plenty of other plugins and/or gems available that do more or less the same thing with slightly more effort involved and the book of course (possibly more than one at this point).
If you want a turnkey solution for stacks of money, .NET or some more commercial platform will have more options. I would avoid using this guys solutions out of selfishness, if he does well they'll be others with more colorful marketing making such grand solutions. After which Google will be clogged with them and we'll have to wade through dozens of such spectacular offerings to find the better, albeit less polished (less advertised) open source versions.
Are there any good googlemaps plugins for rails?

Resources