Custom MKOverlayView line width
I have a custom MKOverlayView, which draws a simple line. In
drawMapRect: I am setting
CGContextSetLineWidth(context, 30); This looks fine when completely zoomed in, but when you zoom out, the line becomes more and more thin. The MKOverlayView reference says that it automatically scales to the map’s zoom level. How can I force it to draw the same width no matter what my zoom level? I notice that MKPolylineView (and MKPolygonView) do this correctly… you can see the line’s width resize whenever you zoom to adjust to keep the same width. How can I do this in my overlayView?
Solutions Collect From Internet About “Custom MKOverlayView line width”
It’s not clear which result you want. Do you want the line width to remain the same regardless of the zoom or do you want the line to be same width as the roads that the map view draws regardless of zoom level?
To keep the line width somewhat constant no matter what, try dividing by zoomScale:
To keep the line the same width as the roads, use MKRoadWidthAtZoomScale:
You could also apply an additional scaling to the road width if you wanted:
- When to use instance variables and when to use properties
- objective c renderInContext crash on background thread
- How to Make JSON from Array of Struct in Swift 3?
- Set Landscape Orientation for iPad Only NOT iPhone
- iOS : Load image from plist file
- UIViewController do not rotate to landscape
- Can a standard accessory view be in a different position within a UITableViewCell?
- Airplay from iPad – a separate UIView to display on Apple TV
- Whatsapp integration and openURL issue in iOS 10
- Make an existing project a framework iOS
- UITableView bouncing back to the top of a section when calling reloadRowsAtIndexPaths
- Opening the Settings app from another app
- How to call different Storyboards via Swift for iOS?
- How to cluster custom icons markers in GoogleMaps for iOS
- iOS App Ready for sale status but not appearing in the store