summaryrefslogtreecommitdiff
path: root/platform/ios/demo/Examples/Swift/SourceCustomRasterExample.swift
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/demo/Examples/Swift/SourceCustomRasterExample.swift')
-rw-r--r--platform/ios/demo/Examples/Swift/SourceCustomRasterExample.swift50
1 files changed, 50 insertions, 0 deletions
diff --git a/platform/ios/demo/Examples/Swift/SourceCustomRasterExample.swift b/platform/ios/demo/Examples/Swift/SourceCustomRasterExample.swift
new file mode 100644
index 0000000000..fcac98c65e
--- /dev/null
+++ b/platform/ios/demo/Examples/Swift/SourceCustomRasterExample.swift
@@ -0,0 +1,50 @@
+import Mapbox
+
+@objc(SourceCustomRasterExample_Swift)
+
+class SourceCustomRasterExample_Swift: UIViewController, MGLMapViewDelegate {
+ var mapView: MGLMapView!
+ var rasterLayer: MGLRasterStyleLayer?
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ mapView = MGLMapView(frame: view.bounds)
+ mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
+
+ mapView.setCenter(CLLocationCoordinate2D(latitude: 45.5188, longitude: -122.6748), zoomLevel: 13, animated: false)
+
+ mapView.delegate = self
+
+ view.addSubview(mapView)
+
+ // Add a UISlider that will control the raster layer’s opacity.
+ addSlider()
+ }
+
+ func mapView(_ mapView: MGLMapView, didFinishLoading style: MGLStyle) {
+ // Add a new raster source and layer.
+ let source = MGLRasterSource(identifier: "stamen-watercolor", tileURLTemplates: ["https://stamen-tiles.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.jpg"], options: [ .tileSize: 256 ])
+ let rasterLayer = MGLRasterStyleLayer(identifier: "stamen-watercolor", source: source)
+
+ style.addSource(source)
+ style.addLayer(rasterLayer)
+
+ self.rasterLayer = rasterLayer
+ }
+
+ func updateLayerOpacity(_ sender: UISlider) {
+ rasterLayer?.rasterOpacity = MGLStyleValue(rawValue: NSNumber(value: sender.value))
+ }
+
+ func addSlider() {
+ let padding: CGFloat = 10
+ let slider = UISlider(frame: CGRect(x: padding, y: self.view.frame.size.height - 44 - 30, width: self.view.frame.size.width - padding * 2, height: 44))
+ slider.autoresizingMask = [.flexibleTopMargin, .flexibleLeftMargin, .flexibleRightMargin]
+ slider.minimumValue = 0
+ slider.maximumValue = 1
+ slider.value = 1
+ slider.addTarget(self, action: #selector(updateLayerOpacity), for: .valueChanged)
+ view.addSubview(slider)
+ }
+}