I already posted this question on the apple dev forum without any answer, so I try my luck here :
The ARkit is a great tool, I have my small app doing things, and it's fun !
but I wanted to try to migrate from ARWorldConfiguration to ARGeoTrackingConfiguration
and then we can see that this configuration is limited to a couples of USA cites only !
But I can't manage to figure Why and most importlantly if, in the near future, this will be expanded world wide ?
That's because ARGeoTrackingConfig doesn't use Google Maps. Apple runs its own LiDAR-equipped vehicles for digitizing cities to supply Apple Maps with all necessary information stored on Apple servers. That info contains precise GPS coordinates and Machine Learning mlmodel that visually recognises every pre-digitized location. And that specific info is indispensable when you're running ARKit's app with geo anchors.
At the moment only several US cities are available for seeding ARGeoAnchors. However, in 2021 some European and Asian cities will be available for ARKit's geo anchoring as well.
Look at this post to find out how to implement ARGeoTrackingConfig.
Related
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
I have map of my office room. I am trying to implement indoor mapping inside the office room for iOS. I watched the video from the WWDC2014 on Corelocation and indoor mapping. I also have the sample code from them. I am not sure what exactly they mean by "floor plan pixel". I have an image of the office and how can I use the following image to use as the floor plan pixel? I will really appreciate if somebody can guide me how to do or let me know if there are githubs or other resources are doing indoor mapping and tracking in iOS.
Thank you
You will need to apply for your venue to be mapped on Apple's Map Connect Website. You will have to declare that you are the manager for the venue, then instructions will follow. This will involve you providing blueprints for the venue to Apple, locations of Wi-Fi base stations and (possibly) iBeacons. You will have to use Apple's specific app (that you find in the Appstore) to map the venue. When all the process is done, you will be online: you should be able to see your venue in Apple maps and do whatever your need to do.
Having said that, Apple seems, still, focussed on venues that have at least one million visitors per year. If your venue is smaller you are stuck with iBeacons and your own implementation of a positioning / proximity algorithm. Take a look at Open Tagger, as an example in Swift, it will give you an idea of the task and hopefully a very good starting point.
https://github.com/PaoloLongato/open-tagger/tree/github-master
Using the sample code provided from WWDC, I've been trying to write a simple proof-of-concept app that performs indoor positioning in my office building. I have a floor plan image and replaced the standard image in the demo code. I've also done the requisite mapping of GPS coordinates to pixels for the two anchor points.
When I run the app in the simulator and specify static GPS coordinates, I see the position updated as expected in the simulator. When I run it on my phone, however, the experience isn't nearly as seamless as Apple advertised in the video. On my iPhone 5s, the positioning is all over the place, and rarely anywhere close to accurate. Even sitting next to a window with a clear line-of-sight to the sky I still get very inaccurate results.
I would assume that this might have something to do with our physical layout, WiFi topology, or other such parameters. However, I also noticed that Apple has a portal where you can register your facility for use with indoor positioning. Does this have something to do with the poor results in my app? I can't imagine how Apple would be able to help with such a scenario, but thought it might have something to do with it.
Are there other steps I should take to increase the accuracy of my app? Is there a way to leverage iBeacons for improved positioning indoors? I haven't found any documentation indicating so, but thought maybe someone here would know.
You're right, Apple has the portal available at https://mapsconnect.apple.com
At this portal you can add your venue and Apple will guide you on setting it up. However, your venue must have all of the following attributes:
Accessible to the general public
Annual visitors in excess of 1 million per year
Availability of complete, accurate, and scaled reference maps
Wi-Fi throughout the area
Associated app that's authorized by venue owner
If your venue has all the required attributes, then you also will need to answer these questions about your usage:
How are you planning to use indoor positioning? (Ads, Navigation, Delivering content)
How many venues would you like to enable with indoor positioning?
What type of venue do you have? (Airport, Hospital, Museum, Mall, Office)
What type of floor plans do you have? (CAD, BIM, GeoJSON, AI, PDF, PNG, etc)
Are the venues equipped with Wi-Fi and/or iBeacon?
Name of the largest venue
Address of the largest venue
Once you have completed the entire form and jumped through the last hoop, you will be brought to a page that confirms the details. Once done, it's all in their hands and they will contact you.
Indoor Positioning does not work well without addional devices like iBeacons.
There is no useable GPS receivement in buildings, the reflected signal is often far worse than 50m .
GPS might work indoors if it is a single floor building with a thin roof, but this is usually not the case in indoor buildings.
The only thing that works well, is to buy some iBeacons and mount them at various locations in the office.
You have to manage the location of that beacons: they only send you an id, and (maybe?) the distance to that iBeacon. (Please check wheter you get distance to beacon)
But ios LocationService will not use that iBeacons.
So either use iBeacons or forget your project. There is no well working solution for indoor positioning. Some use magnetic fields, there is even an App for that, but this needs measuring your whole office in detail.
Why don't you try with the indoor SDK which can be integrated in iOS applications. Also try to give the accuracy level appropriately when you use location framework API.
I am working on a mobile mapping application (currently iOS, eventually Android) - and I am struggling with how to best support reverse geocoding from lat/long to Country/State without using an online service.
Apple's reverse geocoding API depends on Google as the backend, and works great while connected. I could achieve similar functionality using the Open Street Maps project too, or any number of other web services.
What I really want however is to create a C library that I can call even when offline from within my application, passing in the GPS coordinates, and having it return the country and/or state at those coordinates. I do not need finer granularity than state-level, so the dataset is not huge.
I've seen examples of how to do this on a server, but never anything appropriate for a mobile device.
I've heard Spatialite might be a solution, but I am not sure how to get it working on iOS, and I wonder if it may be overkill for the problem.
What are some recommended techniques to accomplish this?
Radven
You will need to get the Shapefiles (lat/lng outline) of all the administrative entities (US states, countries, etc). There are a lot of public domain sources for these. For example, the NOAA has shapefiles for US states and territories you can download:
http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm
Once you got the shapefiles, you can use a shapefile reader to test if a lat/lng is within a shape. There are open source readers in C, just google. I seen stuff at sourceforge for shapefiles, but have not used these myself.
The Team at OpenGeoCode.Org
If you're looking for an approach based on a quadtree, try Yggdrasil. It generates a quadtree based on country polygon data. A Ruby example script can be found here.
I can suggest good written offline geocoding 3rd party library.
https://github.com/Alterplay/APOfflineReverseGeocoding
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?