Add text under markers in mapbox ios - ios

I'm using Mapbox SDK in my iOS app (using Swift).
I want a label to show under every marker like this:
I couldn't find anywhere in the docs or on stackoverflow how I can achieve that. I tried to make the text a part of the marker image, but the text does not resize itself that way and things are a mess when markers are close (or when you zoom out).
Does anybody know how I can make that happen?

Right now, you'll want to do this at the GL style level using Mapbox Studio — not as dynamic annotations.
Doing it in the style allows labels to be recalculated and customized based on the surrounding data and map state, whereas annotations currently aren't as customizable.

Related

How to implement clickable info-bubble on tap of marker in HERE maps in iOS?

I have integrated HERE maps successfully in my iOS app, but now I am facing an issue in implementing info-bubble on tap of markers on HERE map.I have searched on HERE documentation for iOS SDK, but can't find anything relevant. There are many solutions for JS, but nothing for iOS.
This feature doesn't seem to exist on iOS and Android. In order to create a similar behaviour in iOS, you should use NMAMapOverlay instead and add your own subviews/styling to it.
The iOS SDK documentation states that NMAMapOverlay can be used to display custom UIView-based content at a fixed location on the map. (...) Then, give the overlay a NMAGeoCoordinates location and add it to a map. The overlay will automatically be repositioned on the screen as the map moves.
You can find more information about the best practices for the implementation here:
https://developer.here.com/documentation/ios-premium/3.15/api_reference_jazzy/Classes/NMAMapOverlay.html

Here Maps - iOS Premium- infoBubble

I am trying to display a popup above the marker when the marker is selected. But infoBubble functionality is not implemented in premium SDK.
Is there a workaround for this?
You should use MapOverlays instead: https://developer.here.com/documentation/ios-premium/api_reference_jazzy/Classes/NMAMapOverlay.html
Then add you implementation to the MapView via: https://developer.here.com/documentation/ios-premium/api_reference_jazzy/Classes/NMAMapView.html#%2Fc:objc(cs)NMAMapView(im)addMapOverlay:
The idea behind is, that you can use a normal UIView (very flexible, your own design, etc.) and stick it to a position on the map (and the mapview will keep it in place then).

Using MKMapView with a custom MKOverlay. Can the local attractions that come with Apple Maps by default appear above the overlay layer?

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).

MKMapView "Legal" Label necessary for custom maps?

I´m using MKMapView for displaying MKTileOverlays. The overlays are drawn by myself and i don't show any map data from Apple or Google. Do I need the "Legal" label on top of the map? I only use the MKMapView to display custom tiles and put some custom annotations on it. Do I really need the legal patch here? Will my app be rejected if I drop it?
The legal link is required by Apple and there is some possibility that your app will get rejected if you remove it by using private class i.e. (if you loop the subviews of the map for MKAttributedLabel and remove/hide it). Your case is a bit more challenging of their rules due to the usage of tiles, but on a previous project of mine, where I needed a small mapView and the link was appearing quite bad on that small area, I extended the bottom area of the map a bit so that link is obscured by the view in front of it. The app got published without a problem.

iOS Google Maps Api Tiled Overlays

My app currently is using the google maps api v2 for iOS. I would like to add custom tiled overlays, which I realize is not support by the api.
The first approach I took to this problem was to try to extend the GMSOverlay class but I later found that the drawLayer method was never being called.
Next, I tried having my custom class extend UIView and then add my class as a subview to the map view. I was able to use the GMSMapViewDelegate method didChangeCameraPosition to report camera updates back to my custom class so that the tiles could be redrawn. This mostly worked with a couple exceptions, first, only the initial set of tiles would load, and if you panned or zoomed from the initial X,Y,Z the map tiles would not update via the drawInRect method. The second problem was that my custom UIView was covering all the markers and their corresponding callouts after tapping.
My question is, does anyone having any experience adding custom tiles or subclassing the GMSOverlay class to add, for example, custom weather tiles over top of the google map?
Good news from the release notes of v. 1.3.0 of Google Maps SDK for iOS (released today):
Support for custom tile overlays (image-based) via GMSTileLayer.
See: https://developers.google.com/maps/documentation/ios/releases
Have you tried looking at this example?
https://github.com/mtigas/iOS-MapLayerDemo
It is based on the MKMapKit, not the Google-Map SDK. It supports tiles with zoom and is very easy to extend, and might point you in the right direction.
If you need to generate tiles for the map, you can use MapTiler
http://www.maptiler.org/
The Windows version of MapTiler gives more fine grained control of the tile generation.

Resources