I am trying to implement something like Google's indoor maps feature, locally in my iOS app, using GroundOverlays. I could easily get the overlay part done by overlaying a .png image at some position in the map, using the API. I could also implement a custom floors switcher, just like Google's one, so it changes the floor overlay image. However, I still miss the ability to navigate in the native indoor maps. How can I define custom navigation paths in that region so when user navigates between two points inside it, the calculated path gets generated with respecting them?
Related
I have had a look at a bunch of different map APIs and all the ones I have found require you to display their logo
I have had a look on the IOS app store and there are loads of apps that display a map without any logo
Does anyone know how this is done?
I have noticed the Apple mapkit doesnt require a logo but that one doesnt allow you to customize the map much visually.
All that I have seen on the app store have a different design to what mapkit provides and no logo.
Apple's MapKit allows you to customize the map visually by using the class MKTileOverlay.
Basically what you have to do is init that class with the URL of a Tile server and then add the overlay to the map view.
let myOverlay = MKTileOverlay(URLTemplate: /*Tiles server URL*/)
myOverlay.canReplaceMapContent = true
self.mapView.addOverlay(myOverlay)
Here you can check some free tiles servers:
https://openmaptiles.org
https://wiki.openstreetmap.org/wiki/Tile_servers
I'm making a prototype app heavily based on maps. I'm trying to replicate the way Apple Maps on iOS10 works, where there is a fullscreen map in the background and different scenes appears as cards on top and the content/markers in the map updates accordingly. The map will display markers and polylines, depending on the active scene, similar to this.
I have trouble figuring out how the app needs to be structured so that the map is present and "fixed" between all scenes, but also updates based on which card is being displayed.
I have an MKMapView with an MKOverlay on top, I'm wondering if its possible to have road names, place names, places of interest and everything like that, that comes by default with Apple Maps, can be displayed above my MKMapView so I don't have to add all this information manually as annotations. I know this is possible with the Google Maps API on Android so wasn't sure if I could do this with Apple Maps.
I've added an image that shows iOS versus Android to show what I am envisioning:
So, I've found a solution to this issue. If you're using the addOverlay: method in MKMapView, you can use:
[self.myMapView addOverlay:customOverlay level:MKOverlayLevelAboveRoads];
MKOverlayLevelAboveRoads means place labels including shields and point of interest icons are shown above your overlay.
MKOverlayLevelAboveLabels means your overlay will appear on top of everything (which i believe is the default based on my experiences).
How can I make these buildings respond to touch using the Google Map SDK? The points that define the edges of the building are clearly defined, so how can I access this data to determine if a touch has been made inside vs outside of the building.
You cannot do it directly, else you can create GMSOverlay around the area you want an action then can use the Google MapView delegate function
mapView:didTapOverlay:
(I'm not a iOS dev, just need to know it for a concept) is it possible to have a navigation system the same like the maps app have it whitout leaving the my own map-app that uses the google maps inside. And will it be possible to use the turnbyturn navigation in iOS6 and the new Vector map inside of my own map-app?
You will have to use the official Maps app for turn-by-turn. You can draw paths on the MKMapView but would need to supply your own data.