Commit Graph

1149 Commits

Author SHA1 Message Date
Minh Nguyễn
5a00427386 [ios] Maintain user tracking, anchor on user dot during zoom, rotate
Per MapKit behavior, zooming or rotating with a gesture can no longer kick the user out of user tracking mode. In user tracking mode, the zoom animation is always anchored on the user dot, wherever it may be.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
65f6eb25b5 [ios, osx] Optionally animate content insets change 2016-01-20 11:02:31 -08:00
Minh Nguyễn
07c4c54111 [ios] Made user dot position configurable
The user dot or user puck’s position is now configurable via a new alignment property in any user tracking mode. Also, -setUserTrackingMode:animated: is now exposed publicly, and setting its animated parameter to NO skips the initial animation.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
a93e7d7baa [ios] Non-animated user tracking mode changes
Calling -setUserTrackingMode:animated: with animated set to NO should jump instantaneously to the first reported location.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
35895af5d4 [ios] Keep user dot callout open after user location change
Outside of user tracking mode, the user dot moves in spurts, so view synchronization performance isn’t an issue.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
59f2c53c26 [ios] Keep callout attached to moving user dot 2016-01-20 11:02:31 -08:00
Minh Nguyễn
867e01581c [ios] Maintain user tracking mode after orientation change 2016-01-20 11:02:31 -08:00
Minh Nguyễn
251925568c [ios] Eliminated jump after flight to first location
Don’t update the user location annotation’s coordinates until after the transition to the first reported location is complete.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
51be461168 [ios] Leave user location callout open when tracking
Don’t close the user location annotation’s callout when the user location changes in user tracking mode.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
41ce7b2526 [ios] Fly to user location
Fly to the user location when entering user tracking mode. Keep user location updates from interfering with the initial flight.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
453000af3b [ios] Affix user dot on screen in user tracking mode
In user tracking mode, keep the user dot in a fixed location on screen, instead easing the map view so that the fixed location corresponds to the new user location. There is one exception: MGLMapView reacts to the first location update the same way as before, so that it appears to move to where the user dot has been all along.

In course tracking mode, weight the user dot down towards the bottom of the view, since it’s more important to see the road ahead than the road behind.

Fixes #2600, and #1041 to some extent.
2016-01-20 11:02:31 -08:00
Thiago Marcos P. Santos
adcd0eaaac [osx] Fix loop closing with pending requests
The main loop will now wait for all the requests to
complete before closing.

This will make the FileSource on OSX block longer than
it should at shutdown.
2016-01-20 19:54:20 +02:00
Thiago Marcos P. Santos
55c31493af [core] Add ref counting to the main loop
Should not be used at all, added for a corner case
on OSX network backend where the request is processed on
a worker thread managed by OSX and we need to wait for
that reply before destroying the thread that pushed the
request.
2016-01-20 19:54:20 +02:00
Cameron Mulhern
07f6dee616 [ios] Fixes crash when vendorId is nil 2016-01-20 10:59:31 -05:00
Bruno de Oliveira Abinader
9cd9065031 Revert "Revert WebP support due to broken builds"
This reverts commit 6709bdcacd.

There was an issue with the script that removes '-lwebp' from WebP
linker flags, since we're statically linking. This is now fixed.
2016-01-20 10:35:44 +02:00
Ansis Brammanis
d34f8eb674 [core][ios][osx][android] make SpriteImage accept PremultipliedImage
the SpriteImage constructor signature changes from

SpriteImage(
        uint16_t width, uint16_t height, float pixelRatio,
        std::string&& data, bool sdf = false);

to

SpriteImage(PremultipliedImage&&, float pixelRatio, bool sdf = false)
2016-01-19 18:23:21 -08:00
Ansis Brammanis
26faa6a5ad [core][ios][osx][android] fix icons with non-integer width/height
ref #3031
ref #2198

For example, an icon that has:
- a pixel width of 10
- a pixel ratio of 3
- a scaled with of 3.333
is now supported.
2016-01-19 18:20:54 -08:00
John Firebaugh
9b62661b07 [core] Use experimental optional instead of mapbox::util::optional 2016-01-19 17:56:48 -08:00
Mike Morris
48cced9e31 node-v2.2.2 2016-01-19 17:42:43 -05:00
John Firebaugh
dbfa932ed1 [core] Eliminate macros in sqlite3.cpp 2016-01-19 13:39:18 -08:00
John Firebaugh
6709bdcacd Revert WebP support due to broken builds
This reverts commits 2010fbb0e6, a361ce47a1, and d004bb275a.
2016-01-19 13:34:56 -08:00
Bruno de Oliveira Abinader
a361ce47a1 [linux] Added WebP tile support
- Android support is currently disabled due to a libwebp build issue.
- iOS and OS X support will appear after the next Mapbox iOS SDK release.

Related: #https://github.com/mapbox/mapbox-gl-native/issues/2354
2016-01-19 16:06:36 +02:00
Bruno de Oliveira Abinader
d004bb275a [linux] Added WebP build deps 2016-01-19 15:41:47 +02:00
Bruno de Oliveira Abinader
0aa89f6eb1 [osx] No need to link with libpng & libjpeg
OSX platform includes platform/darwin/image.mm which uses CoreFoundation
to decode PNG and JPEG images.
2016-01-19 15:40:23 +02:00
Thiago Marcos P. Santos
7ad9e47bbe [glfw] Fix panning direction
Follow-up of the transform refactoring
2016-01-19 11:36:26 +02:00
Minh Nguyễn
1a5bc3d803 [ios] Removed redundant zoom constraints
The zoom level is already clamped by Transform. -currentMinimumZoom appears to be useful only as an unrotation threshold; it doesn’t correspond to the minimum allowed zoom level.
2016-01-18 16:54:58 -08:00
Minh Nguyễn
6a0b7f8eb3 [ios] Account for top/bottom bars 2016-01-18 16:54:58 -08:00
Minh Nguyễn
47b69100f9 [core, ios, osx, android, glfw] Flipped origin of Map::latLngForPixel(), Map::pixelForLatLng()
Map and Transform methods assume an origin at the top-left corner of the view, like iOS, Android, and GLFW but unlike OS X. Transform is responsible for flipping coordinates between the top-left origin of Map and the bottom-left origin of TransformState.

Fixes #3574.
2016-01-18 16:54:58 -08:00
Minh Nguyễn
bf87eaa7b8 [core, osx] Added optional padding to convenience methods
Methods that offer a convenient way to jump or ease now accept an optional padding parameter. MGLMapView specifies the padding to ensure that keyboard-based zooming and rotation respects the toolbar.
2016-01-18 16:54:58 -08:00
Minh Nguyễn
c86646519a [osx] Content insets
Added a contentInsets property to MGLMapView that behaves similarly to NSScrollView.contentInsets. Adjust it according to the window’s content layout rectangle using KVO. Automatically apply the content insets whenever creating a CameraOptions or getting the center coordinates.
2016-01-18 16:54:57 -08:00
Minh Nguyễn
cb126eafe0 [ios] Refactored unrotation
Avoid unrotating due to programmatic rotation, even programmatic rotation that might expose empty portions of the map. Only snap to north due to a gesture.
2016-01-16 22:00:47 -08:00
Minh Nguyễn
ed32fa06ed [ios] Avoid unrotating in heading or course tracking mode
Fixes #3587.
2016-01-16 15:56:25 -08:00
Konstantin Käfer
21e4029acf [core] use stale styles
This adds support for using cached styles that are stale. They're treated like changing styles; when the refreshed style changed compared to the one we've already had, we're swapping out the entire style, which might cause a slight flicker.
2016-01-15 11:59:26 +01:00
Konstantin Käfer
957415823a [core] Support multiple paths in SQLiteCache::getShared()
If you use many different caches, expired weak_ptrs will pile up in the unordered_map, but that is an edge case, and you probably shouldn't do that anyway.
2016-01-15 10:44:16 +01:00
Konstantin Käfer
8939a7b706 [core] move SharedSQLiteCache::get to SQLiteCache::getShared 2016-01-15 10:38:09 +01:00
John Firebaugh
f62d41ae05 [core] Restore existing response body
Until #2721 lands we still need this.
2016-01-14 18:38:56 -08:00
Minh Nguyễn
15f4ca51f9 [ios] Fixed static analyzer warnings 2016-01-14 16:48:16 -08:00
Minh Nguyễn
714dfab8ae [osx] Fixed static analyzer warnings 2016-01-14 16:48:16 -08:00
Jason Wray
b57e237b14 [ios] send turnstile event when telemetry is paused 2016-01-14 18:30:51 -05:00
John Firebaugh
0066637e58 [core] Let SQLiteCache decide when store or refresh responses 2016-01-14 13:46:03 -08:00
John Firebaugh
2aafdbc1b8 [core] Add an explicit "not modified" indicator to Response 2016-01-14 13:46:03 -08:00
John Firebaugh
2ee1fe4178 [core] std::shared_ptr<const Response> ⇢ const Response& 2016-01-14 13:46:03 -08:00
John Firebaugh
7fb5e973ed [core] Eliminate FileCache interface
There is only one implementation and we're unlikely to add more.
2016-01-14 13:46:03 -08:00
Konstantin Käfer
4515bb00c0 [node] extract the error message from the Error object
this avoids double "Error: Error: reason" messages
2016-01-14 14:35:02 +01:00
Konstantin Käfer
e195d86100 [test] don't pass raw strings as error messages 2016-01-14 14:35:02 +01:00
Tobrun
35855889df [android] #3461 - upgrade to okhttp3 for faster tile loading! 🚀 2016-01-14 14:21:46 +01:00
Tobrun
1f31de288f [android] #3535 - improve disabling tracking modes 2016-01-14 13:25:58 +01:00
Tobrun
5d9485e02e [android] #3539 - silence warning about unused param message that was breaking our build on CI 2016-01-14 11:10:45 +01:00
Minh Nguyễn
a3d4aeefec [osx] Consistent origins in gesture recognizers
Cleaned up gesture recognizers, flipping the origins of anchor points only and always before calling mbgl methods. This exposed the fact that the cursor locking feature during drag-zoom/rotate/tilt was broken, so I fixed it to match MapKit behavior exactly and also account for modifier changes in mid-gesture.
2016-01-14 00:39:57 -08:00
Minh Nguyễn
ac4b1b7479 [core] Standardize transform origin
All Transform methods that take a PrecisionPoint now assume a “flipped” origin at the upper-left corner of the view. Previously, some methods assumed an origin at the lower-left corner.
2016-01-14 00:39:56 -08:00