overlay of shapefile on iOS apple maps (mapkit) - ios

We have a mapping application currently in the app store (https://itunes.apple.com/us/app/atlanta-fire/id825146524?ls=1&mt=8) and now we would like to add one or two overlays (the city limits, county limits, etc).
I have this GIS data available as a shape file and can also export as a pdf, png, svg, mbtiles and as a MapNik XML.
I do not want to override the native apple map (such as with Open Streets or MapBox), but just need to incorporate the shape file info.
Suggested strategies?

I've been working on something similar. There is a Shapefile C Library that I found
here:
Also there is a sample project that incorporates this into Mapkit here:

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

How to use custom offline map in iOS app

I'm developing an iPhone offline map application. I've illustrator map georeferenced (using mapublisher), have geodatabase (http://goo.gl/isw6IP) and parking data (shp/csv).
Requirements:
The map should Pan, Pinch & zoom.
Search addresses and parking (addresses have alternate names too) on map.
Routing/Navigate to parking/address.
GPS Positioning.
App will work offline without internet connection once installed.
Questions:
In which formate I should export the illustrator map, geodatabase & parking data to be used in a iOS app.
Which iOS offline maps SDK is recommened for above requirements.
Few iOS SDKs like Route-ME, MapBox, Alpstein, Altus, Skobbler, cloudmade, ArcGis iOS SDK, nutiteq etc are using OSM data or their own hosted MAP data but I want to use my own illustrator map and all data will be available local for offline use.
I've search alot but could not find any concreat solution. Few links in my research.
http://goo.gl/m9Lp1w
http://goo.gl/IMKF4p
http://goo.gl/gsrv5Q
http://goo.gl/J4Ne5y
https://goo.gl/1wP29H
Same question (similar to what I need) was asked long time ago but without any answer
http://goo.gl/knoA1C
1:
In my opinion, OpenStreetMap is the best one for all-around purposes such as the ones you mentionned: addresses, parkings, routing, maps.
You can answer all requirements with that format. Depending on your project, you may better transform your data in a specific format for each requirement.
2:
You'll probably have to use a few components to match all requirements :
The map should Pan, Pinch & zoom.
Any of the SDK listed will do it.
Search addresses and parking (addresses have alternate names too) on map.
You can query a local database then create markers.
Routing/Navigate to parking/address.
I would recommend GraphHopper
GPS Positioning.
It can be done manually using CLLocationManager. Create a marker (according to the chosen SDK) then update it's coordinates.
App will work offline without internet connection once installed.
That's the main requirement. You have to chose between vector and raster first, then pick the SDK. You'll probably have to make a few transformation here.

Maps OSM for iOS (xcode)

There is a project. Uses online and offline maps. Tiles from openstreetmap.org
Online map - used MapKit, over OSM tiles.
Offline maps- used MapBox, which is connected to the file * .mbtiles
The problem is the map display. The text on the card is not readable. (see screenshots).
Need Help- properly displaying tiles to read the text (both on the site openstreetmap.org)
thank you!
http://i11.pixs.ru/storage/8/0/1/imgojpeg_4171497_16720801.jpg
Can you check this please
http://wiki.openstreetmap.org/wiki/OSM_in_MapKit
And this topic (topic is in Russian, but it contains code) maybe it will be helpful for you.
http://habrahabr.ru/post/173837/

Map editor for indoor navigation

I would like to create indoor navigation app. But have some trouble with a floor plan.
And I need a good map(floor) editor maybe like ArcGis,JOSM.
Will be great if this editor can create database by map (door, windows, corridors,...).
I will integrate this map in iOS app.
Thanks!
I found solution. I had this floor plan in jpg.
My steps:
1)Convert your image through GDAL to Gtiff.
2)Create project in TileMill without globe.
3)Press on the button "Add new layer".
4)Choose destination to your gtiff file and type in SRS field "900913".
5)Save.
6)In the CSS set on the image layer raster-scaling:bilinear;
7)Zoom your map while you will see the map.
8)Export your project to MBTile.
9)Use MapBox SDK to integrate your MBTile.
For GDAL:
gdal_translate \
-of GTiff \
~/Downloads/Plateosaurus_big.jpg \
~/Downloads/Plateosaurus_big.tif
You are free to choose any vector GIS you like to use to create indoor floor plans. Thus, you need to develop an speficiation for your model, so that you can create rules for routers etc. Next you need to think about how to store them (shapefiles, PostGIS, ...) and how you want to create the final products (rendered maps, routing graphs, ...).
I'm not sure how you want to create/collect your floorplans (experts vs. VGI) but JOSM sounds like a good starting point, esp. as the OSM community has already some experience with indoor mapping: http://wiki.openstreetmap.org/wiki/Indoor
Hint 1: There seems to be currently no final solution to indoor geolocation with adequat resoluton for your usecase (indoor routing).
Hint 2: The indoor topic is only in use within a very small part of the OSM community. So expect some refuses/critics if you add such data to the global OSM database.
Hint 3: In some countries are floorplans also intellectual property, so copy&trace might be a copyright infridgement.
Although that's not what it was made for, you could check out indoo.rs. You can use the product without indoor localization, but indoor map creation and indoor navigation.

How to store openstreetmap data locally on an iphone

I'm working on a project for college and I'm having great difficulty with part of it.
Simply put, I am looking to do the following 5 things:
download the open street map data for my city
store that data locally on the phone's harddrive.
view that data in my iOS application as a map
place markers on the map.
draw paths along roads between those paths.
I have been working on this particular part of the project for a number of weeks and I'm getting nowhere with it. I haven't even been able to figure out how to store the map on the phone let alone view the map data. I've tried using the "Route-Me" library but cannot get it working (although it seems to be one of the best libraries for using openstreetmap data so I am looking to learn how to use it). I feel pretty goddamned defeated.
If anyone has accomplished any of the tasks I am trying to do could you please link me to tutorials/guides/videos that you have used.
I'm not looking for people to give me code or do the work for me, I want to learn how to do this, but if anyone can point me in the right direction of sites that I could learn off I would be very grateful.
Any advice or feedback would be much appreciated
Here's how I ended up solving the problem.
Since Tilemill doesn't natively read .osm/.o5m/.pbf files I used Osmosis to convert a .osm file into .shp files.
I then created a new project in Tilemill and added the particular .shp files I wanted as layers to the new project. It takes a little bit of tinkering to get the map to look like you want it to but it's very similar to css and pretty easy to pick up as you go.
Once I had the map looking the way I wanted it I exported it as a .mbtiles file. This takes a long time to make and the files can be very large depending on how detailed the tiles are. I did one map of Ireland with zoom levels between 7-14 inclusive and I did one map of just Dublin city with zoom levels of 11-17 inclusive. Even though the map of just the city of Dublin had much less tiles, they were both ~200MB in size.
I then found this tutorial online which explains how to store the .mbtiles file in you application and how to read it: http://martinsikora.com/creating-mbtiles-db-for-ios-mapbox-from-hi-res-map-image
Here are a few other links that I found useful:
http://www.kindle-maps.com/blog/using-tilemill-with-openstreetmap-data.html
http://mapbox.com/developers/mbtiles/
http://mapbox.com/mapbox-ios-sdk/api/
http://mapbox.com/developers/api/#static_api
http://support.mapbox.com/discussions
I hope this is useful to someone
I would suggest trying the MapBox iOS SDK. It is actually forked from the Route-Me library and will allow you to accomplish everything on your list.
A key point to remember is that you have another step in between downloading the OSM data and storing it locally on the iOS device, that is, generating the map tiles and storing them in some sort of database.
Here is an example iOS app using the MapBox SDK that has both online and offline map sources and is a good place to start.

Resources