Commit Graph

45 Commits

Author SHA1 Message Date
John Firebaugh
b60b6c47c0 [core] Merge SQLiteCache into the platform library
OfflineFileSource will depend on SQLite too.
2015-12-22 12:09:14 -08:00
John Firebaugh
3d37017c68 [ios, osx] Drop xcpretty
It's buggy and hides necessary diagnostics.
2015-12-21 16:59:35 -08:00
Minh Nguyễn
49bfdd662f [ios, osx] Optional peak altitude for flying 2015-12-20 04:11:14 -08:00
Minh Nguyễn
b7223f249d [ios, osx] Avoid transition to current camera
Fixes #2456.
2015-12-20 03:57:51 -08:00
Minh Nguyễn
d668c0fa84 [ios, osx] Better zoom level–altitude conversion
Greatly simplified conversions between zoom level and altitude. Adjusted field of view to more closely match MapKit. Conversions are now well within the same order of magnitude as MapKit at all latitudes.

Fixes #2266.
2015-12-20 03:57:28 -08:00
Minh Nguyễn
cafe591d2a [osx] Flipped drag-rotate center point 2015-12-19 23:30:21 -08:00
Minh Nguyễn
2cb70eac3c [ios, osx] Allow zero-duration flight
For consistency with -setCamera:…, a duration of 0 jumps instantaneously to the new location, while a negative value uses the distance-dependent default.

Due to the produced curve and applied easing, flyTo() doesn’t model a parabola or ballistic trajectory, but it does simulate powered flight to some extent.
2015-12-19 20:33:37 -08:00
Minh Nguyễn
b8378420d4 [osx] Typo in osxapp help 2015-12-19 14:36:22 -08:00
Minh Nguyễn
d3c92a8b5c [osx] Fixed path to embedded framework
Xcode (or perhaps gyp’s Xcode adapter) doesn’t understand \$ inside a copy files run phase path.

ref #3337
2015-12-17 13:15:43 -08:00
Bruno de Oliveira Abinader
c08a97e453 [osx] Fixed 'make compdb' target'
[skip ci]
2015-12-17 12:28:36 -08:00
John Firebaugh
7a4e7376e1 Move platform scripts into platforms 2015-12-16 17:49:22 -08:00
Minh Nguyễn
4e0e816653 [ios, osx] Added flyToCamera: variation that uses default duration 2015-12-15 12:52:13 -08:00
Minh Nguyễn
42e32b8d16 [osx] World tour
A new Debug menu command takes you on a tour of the world by air.
2015-12-15 12:52:13 -08:00
Minh Nguyễn
9aba820892 [ios, osx] Added flyTo to OS X; refactored camera setters 2015-12-15 12:52:13 -08:00
Minh Nguyễn
c3fe62fd3a [ios, osx] Corrected missing annotation tag assertion message
ref #3284
2015-12-15 11:51:12 -08:00
Minh Nguyễn
92bfbcb90d [osx] Restore debug mask
Fixes #3287.
2015-12-15 11:44:49 -08:00
Minh Nguyễn
a01dd8ade1 [osx] Corrected documentation
Corrected the path to the build output. Also added a missing inline comment.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
835bb6ab08 [osx] Sort candidate annotations by proximity to tap
Like 78a39c17fb6677442231945ddf8b73797080e2e1 for #3261 on iOS.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
727dd61553 [osx] Printing
Copied some pixel-reading code from HeadlessView.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
0722d26846 [osx] Remove All Pins command
Also fixed an issue where removing a selected annotation failed to deselect it.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
b869d3c820 [osx] Persist viewpoint across relaunch 2015-12-13 17:26:53 -08:00
Minh Nguyễn
0fb2b855a4 [osx] Map camera
Shared MGLMapCamera between iOS and OS X. Unfortunately -camera and -setCamera: implementations need to be copy-pasted for now.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
3f2fae521c [osx] Don’t strip on copy in Debug
Stripping the framework means you can’t debug the framework.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
cd6830b3ea [osx] Fixed IB latitude/longitude inspectables 2015-12-13 17:26:53 -08:00
Minh Nguyễn
fdff7901e2 [osx] Default callout view controller 2015-12-13 17:26:53 -08:00
Minh Nguyễn
bab3935431 [osx] Fixed standalone launch of osxapp (and run-xosx)
Mapbox.framework needs to be embedded in the application bundle.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
ea57be5598 [osx] Documentation comments for public classes
Added documentation comments for all the public headers that aren’t being shared with iOS.

Removed an animated: parameter from -selectAnnotation: and -deselectAnnotation:: because callout popovers may extend beyond the entire window, there is no need to scroll the map to make the entire callout visible.

Added missing geometric conversion methods.

Renamed -mapView:regionWillChangeAnimated: et al. to say “camera” instead of “region”. “Region” leaves ambiguity about whether properties like rotation and pitch trigger this method. “Camera” associates these methods with the camera property, which seems apt.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
73324ae2f8 [osx] Commented private headers and implementation files 2015-12-13 17:26:53 -08:00
Minh Nguyễn
62e6c04c73 [osx] Align build settings with Xcode framework project template
In particular, -Os yields significant size improvements in Release.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
7f04c5d149 [osx] Renamed annotation IDs to annotation tags
By analogy with Cocoa tracking area tags, tooltip tags, view tags, etc.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
47fb5e820b [osx] Moved Mapbox.{h,m} into framework proper; set version variables 2015-12-13 17:26:53 -08:00
Minh Nguyễn
1598330a93 [osx] Added inline comments to MGLMapView 2015-12-13 17:26:53 -08:00
Minh Nguyễn
df0511af18 [osx] Build framework based on static library 2015-12-13 17:26:53 -08:00
Minh Nguyễn
6890af9cd9 [osx] Fixed KVO compliance for selectedAnnotation 2015-12-13 17:26:53 -08:00
Minh Nguyễn
9d2e0a19ef [osx] Blanket the map with pins 2015-12-13 17:26:53 -08:00
Minh Nguyễn
004d04075a [osx] Annotation cursors
Also added an option to osxapp for assigning a random cursor to all the annotations each time an annotation is added or removed.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
f542d7b2a7 [osx] Annotation tooltips
Annotations can optionally have tooltips. osxapp has an option, off by default, to assign a (localized) tooltip to each dropped pin.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
96145ef170 [osx] Drop Pin context menu item 2015-12-13 17:26:53 -08:00
Minh Nguyễn
cc35f5a2a7 [osx, ios] Improved annotation interaction
Corrected annotation image alignment rects used in positioning the popover and hit testing for selection. The alignment rects were flipped in a couple places and we were getting lucky until now.

Query for any point annotation within a slop area that extends by the maximum image dimensions in each direction, then filter by annotations whose images actually hit-test. (So to select an annotation that has a doughnut image, you have to click on the actual doughnut, not its hole.) It’s a fuzzy hit test with a four-pixel-radius slop area, so there shouldn’t be any clicking precision issues.

Clicking on an annotation while a callout is open merely closes the callout popover, so it isn’t possible to go immediately from one callout to another. Since we still want to cycle through coincident annotations, keep track of the last selected annotation ID.

Clicking on a visible point annotation whose center is out of the visible bounds now selects the annotation.

Ported the callout-positioning portion of these changes to iOS. Also refactored some geometry conversion methods and removed a redundant constant.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
0cab7809eb [osx] Rewrote platform-osx and osxapp
platform-osx now vends a real NSView subclass, MGLMapView, that is readily embedded inside a Cocoa application for OS X. MGLMapView is backed by an NSOpenGLLayer for optimal performance and integration with other layer-backed views. It supports keyboard shortcuts and several gestures and hosts attribution, zooming, and rotation controls as subviews. osxapp is now a bona fide Cocoa application that embeds MGLMapView inside a XIB. osxapp has preferences and a share button for tight integration with custom styles.

Enabling asynchronous rendering would be more consistent with iOS but increases CPU usage so much, even when idle, that it isn’t worth any performance gain. The bigger issue is that VAOs aren’t being used.

make xpackage creates a static library similar to the one created by make ipackage. make clean cleans additional places where build output ends up.

The OS X minimum deployment target has been increased from 10.9 to 10.10. osxapp’s window has a full size content view, which requires 10.10. Lightweight generics require iOS 9+ and OS X 10.11 regardless, because it was only in that release that Foundation collection classes started adopting lightweight generics.

Shuffled files around and refactored annotations so that iOS and OS X share a good chunk of the annotations code, which now takes advantage of polymorphism. MGLMapView can now display annotations but cannot yet select them. In osxapp, a long press drops a pin, and so does the map view’s context menu.

Annotations have NSPopovers as callouts, and their view controllers can be customized. Annotation image alignment rects are respected for hit testing purposes and for positioning the callout anchor. Callouts in osxapp demonstrate the use of bindings to keep callouts in sync with underlying model objects.
2015-12-13 17:17:35 -08:00
John Firebaugh
0ff9295ca8 [core] Move linux and osx to platform subdirectory 2015-12-10 16:50:39 -08:00
Konstantin Käfer
8a1fce547e rearrange tests and add storage tests 2015-02-04 10:49:05 +01:00
Leith Bade
aaedd9c83b Remove program binary caching 2015-01-27 12:38:40 +11:00
Leith Bade
6df4e4a52c Load program binary extension on Linux 2014-12-06 14:21:08 +11:00
Konstantin Käfer
cd9a89257a restructure gyp files 2014-10-24 16:40:08 +02:00