Commit Graph

482 Commits

Author SHA1 Message Date
Jason Wray
5cefa51511 [ios] Rename SMCalloutView and stop using submodule 2017-10-11 12:21:27 -07:00
Jason Wray
b7879d5a37 [ios] Update MGLUserLocation.heading for showsUserHeadingIndicator 2017-10-11 10:06:30 -07:00
Asheem Mamoowala
24bd336b88 [android][ios][macOS] Implement bindings for Map::cameraForGeometry. On macOS, also added -[MGLMapView setCamera: withDuration: animationTimingFunction: edgePadding: completionHandler:] for parity with iOS 2017-10-09 13:58:11 -07:00
Fabian Guerra Soto
f01588cac7 [ios, macos] Improve snap shotter documentation. (#10020)
* [ios, macos] Improve snap shotter documentation.

* [macos] Save snapshots in correct format

* [macos] Renamed snapshot item to Export Image

* [ios, macos] Clarify Snapshotter documentation.

* [ios] Fix snapshot scale

* [macOS] Fix snapshotter 4x scaling.

* [ios] Fix snapshotter final image scale.

* [ios, macos] Update snapshotter size documentation.

* [ios, macos] Throw an exception when the snapshotter has already started.

* [ios, macos] Add snapshotter header example.

* [ios, macos] Use one of the predefined Foundation's exception names.
2017-10-04 10:03:03 -04:00
Jason Wray
076af14b90 [ios] Undocument deprecated style class methods 2017-10-02 12:38:25 -07:00
Jason Wray
1326a21ddd [ios] Expose -showAttribution: publicly as an IBAction 2017-10-02 12:38:00 -07:00
Jason Wray
201b7d4811 [ios] Don't disable user tracking when selecting an annotation 2017-09-29 12:14:05 -04:00
Minh Nguyễn
093d9da6ef [ios] Define user dot constants in implementation file 2017-09-28 19:10:06 -07:00
Fabian Guerra
6d1fdf2ca3 Merge branch 'release-ios-v3.6.0-android-v5.1.0' into master.
# Conflicts:
#	circle.yml
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/gradle.properties
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
#	platform/android/dependencies.gradle
#	platform/default/mbgl/storage/offline_database.cpp
#	platform/ios/CHANGELOG.md
#	platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec
#	platform/ios/Mapbox-iOS-SDK-symbols.podspec
#	platform/ios/Mapbox-iOS-SDK.podspec
#	platform/ios/app/Main.storyboard
#	platform/ios/src/MGLMapView.mm
#	src/mbgl/programs/attributes.hpp
#	src/mbgl/renderer/painter_fill.cpp
#	src/mbgl/tile/geometry_tile.hpp
#	src/mbgl/tile/geometry_tile_worker.cpp
#	src/mbgl/tile/raster_tile.cpp
#	src/mbgl/tile/raster_tile.hpp
#	src/mbgl/tile/raster_tile_worker.cpp
#	test/tile/annotation_tile.test.cpp
#	test/tile/geojson_tile.test.cpp
#	test/tile/raster_tile.test.cpp
#	test/tile/vector_tile.test.cpp
2017-09-27 12:08:24 -04:00
Lauren Budorick
a9ddf5b7fd Preserve depth buffer between 3D layers + optimize render order (#9931)
Port of https://github.com/mapbox/mapbox-gl-js/pull/5101: adds a new render pass `Pass3D` before any other rendering wherein we render layers with 3D passes (fill-extrusion layers) to offscreen framebuffers, sharing a depth renderbuffer between those layers in order to render 3D space correctly. Those framebuffers are saved on the RenderLayers and copied back to the map during the translucent pass. Rendering to offscreen framebuffers before we do any clear + draw means we can avoid expensive framebuffer restores.
2017-09-21 14:26:48 -07:00
Jason Wray
9613582417 [ios] Be sure to get a BOOL value for nullable dict keys
Otherwise it errors with, "cannot initialize a variable of type 'BOOL' (aka 'signed char') with an rvalue of type 'id _Nullable'."

This doesn't seem like it should be necessary.
2017-09-15 19:00:32 -04:00
Jesse Bounds
a6224abc33 [ios] Use constraints to manage ornament view placement (again) (#9995)
This reverts the manual layout triggered by KVO approach in favor of a constraints based approach that the KVO method had previously replaced. Although the manual layout approach worked well in most cases and was cleaner in that it did not manipulate any containing views in the app space, using KVO on UIViewControllers has proven to be dangerous.

This also updates the gitshas for KIF and OHHTTPStubs to unbreak UI tests that verify these related changes are working.

This also adds an ornament constraint system for iOS 11+
2017-09-14 13:51:05 -07:00
Jordan Kiley
73c633e22b [ios] Ignore Smart Invert (#9876) 2017-09-13 11:09:49 -07:00
Jason Wray
59076c8300 [ios] Disable implicit animation of heading indicators
The update steps for the heading indicator are typically small, so animations tend to pile up and cause performance issues. Disabling actions is a slight regression when it comes to large steps (they're not animated now, where they previously were) and this should eventually be addressed.

Also consistently use provided API for disabling CATransaction actions.
2017-09-07 19:23:30 -04:00
Jason Wray
cb1309a253 [ios] Implicitly enable showsUserLocation when enabling the heading indicator 2017-09-07 19:23:30 -04:00
Jason Wray
63250baa4e [ios] Make user heading indicator property IBInspectable
Rename it to `showsHeading` to fit in the tiny label column of the utilities panel.
2017-09-07 19:23:29 -04:00
Jason Wray
e1ff826d20 [ios] Change user location heading filter to 1°
The default is 1.
2017-09-07 19:23:29 -04:00
Jason Wray
218c720e9e [ios] Add setShowsUserHeadingIndicator and validateUserHeadingUpdating 2017-09-07 19:23:29 -04:00
Jason Wray
99616e6627 [ios] Introduce MGLUserLocationHeadingIndicator protocol 2017-09-07 19:23:29 -04:00
Jason Wray
c35b1cd56b [ios] Set a heading indicator update threshold 2017-09-07 19:23:29 -04:00
Jason Wray
5db97ed96e [ios] Introduce MGLUserLocationHeadingArrowLayer class 2017-09-07 19:23:20 -04:00
Jason Wray
c6708442c9 [ios] Refactor user location heading indicator into its own class 2017-09-06 18:21:38 -04:00
Ivo van Dongen
b3b9ef5c6c [ios] snapshotter 2017-09-05 16:29:33 +03:00
Ivo van Dongen
6d47471767 [ios] extend ui image additions with init from premultiplied image 2017-09-05 16:29:33 +03:00
Jason Wray
87348234d1 [ios] Guard against nil user location when setting tracking mode 2017-08-30 17:28:14 -04:00
Fabian Guerra Soto
c8dc77f06f [ios, macos] Make minimumZoomLevel and maximumZoomLevel IBInspectable. (#9729)
* [ios, macos] Make minimumZoomLevel and maximumZoomLevel IBInspectable.

* [ios, macos] Update changelogs.
2017-08-30 16:25:57 -04:00
Ian Wagner
e78620c705 [ios] Set location to nil until the user's location is determined
The documentation for the `location` property states that "This property contains `nil` if the map view is not currently showing the user location or if the user’s location has not yet been determined." The iOS SDK presently returns a garbage value, which has some rather annoying consequences when the value should logically be nullable. This change should rectify the issue.

With _location no longer initialized to an invalid coordinate, trying to access `_location.coordinate` when `_location == nil` will return `0, 0`, which is a valid coordinate.
2017-08-28 16:41:55 -04:00
Fabian Guerra
acfe485302 Merge tag 'ios-v3.6.2' into master
# Conflicts:
#	cmake/core-files.cmake
#	include/mbgl/renderer/renderer_backend.hpp
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/IconManager.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java
#	platform/android/dependencies.gradle
#	platform/darwin/src/MGLStyle.mm
#	platform/ios/CHANGELOG.md
#	platform/ios/app/Info.plist
#	platform/ios/app/MBXViewController.m
#	platform/ios/ios.xcodeproj/project.pbxproj
#	platform/macos/CHANGELOG.md
#	src/mbgl/gl/attribute.cpp
#	src/mbgl/gl/attribute.hpp
#	src/mbgl/gl/context.hpp
#	src/mbgl/gl/types.hpp
#	src/mbgl/gl/value.cpp
#	src/mbgl/gl/value.hpp
#	src/mbgl/map/backend_scope.cpp
#	src/mbgl/programs/attributes.hpp
#	src/mbgl/programs/program.hpp
#	src/mbgl/programs/segment.cpp
#	src/mbgl/programs/segment.hpp
#	src/mbgl/programs/symbol_program.hpp
#	src/mbgl/programs/uniforms.hpp
#	src/mbgl/renderer/buckets/symbol_bucket.hpp
#	src/mbgl/renderer/painter.cpp
#	src/mbgl/renderer/painter.hpp
#	src/mbgl/renderer/painter_background.cpp
#	src/mbgl/renderer/painter_circle.cpp
#	src/mbgl/renderer/painter_clipping.cpp
#	src/mbgl/renderer/painter_debug.cpp
#	src/mbgl/renderer/painter_fill.cpp
#	src/mbgl/renderer/painter_fill_extrusion.cpp
#	src/mbgl/renderer/painter_line.cpp
#	src/mbgl/renderer/painter_raster.cpp
#	src/mbgl/renderer/painter_symbol.cpp
#	src/mbgl/shaders/line.cpp
#	src/mbgl/shaders/line_pattern.cpp
#	test/renderer/backend_scope.test.cpp
2017-08-28 12:43:29 -04:00
Jason Wray
a7f06366d2 [ios] Support iOS 11 location usage descriptions 2017-08-28 12:15:11 -04:00
Jason Wray
b2fd7b680c [ios] Fix heading update loop
Updating CLLocationManager.headingOrientation triggers a new heading update, even if there was no actual change in its value.
2017-08-24 12:03:38 -04:00
Asheem Mamoowala
f2c9f2bf36 [ios][macos][node][android] Updated documentation and Changelogs for #9821 2017-08-22 16:49:59 -07:00
Jason Wray
acb8199d32 [ios] Document annotations-as-features limitations w/feature querying
Also move visibleAnnotations next to visibleAnnotationsInRect:.
2017-08-21 12:13:47 -04:00
Bruno de Oliveira Abinader
6179e0f9c0 [core] Added Style::getDefaultCamera() 2017-08-11 22:04:52 +03:00
Jason Wray
1394bfb554 [ios] Fix user location horizontal accuracy ring inaccuracy
Accuracy was off by +25%, depending on latitude.
2017-08-07 15:00:09 -04:00
Fredrik Karlsson
6a8ed6f83a [ios] expose setCamera with edge padding 2017-08-03 07:44:44 -07:00
Fabian Guerra Soto
b0bae6d1dd [ios] tilt gesture type fix (#9642)
* [ios] Change function:angleBetweenPoints return type

* [ios] Update changelog
2017-07-28 10:22:16 -07:00
Fabian Guerra Soto
6d629597d7 [ios] Make tilt gesture recognizer recognizable only with two horizontal fingers (#9571)
* [ios] Make tilt gesture recognizer recognizable only with two horizontal fingers

* [ios] Make tilt gesture recognizer tolerance degree less restrictive
2017-07-27 15:16:39 -07:00
danielamitaysc
0cdef85798 [ios] Proper limiting behavior when trying to zoom out fully
- Bail from quick zoom if new zoom is same as old zoom
- Allow pinch gesture at minZoom to still move the map
2017-07-27 17:34:09 -04:00
John Firebaugh
d4cb498d7a [all] Merge View into RendererBackend 2017-07-26 09:50:38 -07:00
Ivo van Dongen
66e1429460 [ios][macos] manage backendscope in renderer frontend 2017-07-25 17:44:28 +03:00
Jason Wray
dcd9a38388 [ios] Don't force the attribution button tint color to update 2017-07-24 19:24:24 -04:00
Ivo van Dongen
815ffb253b [android][glfw][ios][macos][node][qt] rename backend to renderer backend 2017-07-18 10:45:12 +02:00
Ivo van Dongen
b6d56ad634 [ios][macos] rendering interface changes 2017-07-18 10:45:12 +02:00
Ivo van Dongen
39a732d7ae [android][glfw][ios][macos][node][qt] split backend from mapobserver 2017-07-18 10:45:12 +02:00
Konstantin Käfer
629922f557 [build] enable -fvisibility=hidden for iOS 2017-07-13 01:38:29 -04:00
Konstantin Käfer
73869d12dd [build] enable -fvisibility=hidden for iOS 2017-07-13 00:22:54 -04:00
Tobrun
14c221fce7 Merge branch 'release-ios-v3.6.0-android-v5.1.0'
# Conflicts:
#	.travis.yml
#	circle.yml
#	cmake/core-files.cmake
#	include/mbgl/style/function/composite_function.hpp
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/build.gradle
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MyBearingTracking.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MyLocationTracking.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/Light.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/Position.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/light.java.ejs
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/LightTest.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/light.junit.ejs
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraPositionActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MockLocationEngine.java
#	platform/android/dependencies.gradle
#	platform/android/src/native_map_view.cpp
#	platform/darwin/scripts/generate-style-code.js
#	platform/darwin/src/MGLGeometry_Private.h
#	platform/darwin/src/MGLLight.h
#	platform/darwin/src/MGLLight.mm
#	platform/darwin/src/MGLSource.h
#	platform/darwin/src/MGLStyle.h
#	platform/darwin/src/MGLStyle.mm
#	platform/darwin/test/MGLLightTest.mm
#	platform/default/default_file_source.cpp
#	platform/ios/CHANGELOG.md
#	platform/ios/Mapbox-iOS-SDK-symbols.podspec
#	platform/ios/Mapbox-iOS-SDK.podspec
#	platform/ios/resources/Images.xcassets/default_marker.imageset/default_marker.pdf
#	platform/macos/CHANGELOG.md
#	scripts/generate-shaders.js
#	src/mbgl/layout/symbol_layout.cpp
#	src/mbgl/programs/program.hpp
#	src/mbgl/programs/symbol_program.hpp
#	src/mbgl/programs/uniforms.hpp
#	src/mbgl/renderer/frame_history.cpp
#	src/mbgl/renderer/paint_property_binder.hpp
#	src/mbgl/shaders/line.cpp
#	src/mbgl/shaders/line_pattern.cpp
#	src/mbgl/shaders/line_sdf.cpp
#	src/mbgl/sprite/sprite_atlas.hpp
#	src/mbgl/style/layers/line_layer_properties.hpp
#	src/mbgl/style/sources/geojson_source.cpp
#	src/mbgl/style/style.cpp
#	src/mbgl/text/glyph_atlas.hpp
#	src/mbgl/tile/geometry_tile.cpp
#	src/mbgl/tile/geometry_tile.hpp
#	test/style/style.test.cpp
2017-07-05 08:37:27 +02:00
Jason Wray
6aecc66fc8 [ios] Minimize tilt gesture delay 2017-06-28 16:21:41 -04:00
Ivo van Dongen
de37ae9628 [ios] remove tile cache size customization 2017-06-27 17:02:40 -07:00
Minh Nguyễn
9b0b74dba6 [ios] Fixed infinite loop zooming in past z23
At zoom levels where the minimum 1 meter or 4 feet would be wider than the scale bar’s maximum width, the local variable holding the preferred row was left undefined. A loop that later iterated based on this row would effectively iterate infinitely until memory pressure forces the system to quit the application.
2017-06-24 13:14:05 -07:00