summaryrefslogtreecommitdiff
path: root/platform/ios/app
Commit message (Collapse)AuthorAgeFilesLines
* [ios] Updated iosapp application iconsetMinh Nguyễn2017-04-1913-0/+0
|
* [ios] Scale bar (#7631)Fredrik Karlsson2017-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * [ios] added a scale bar * [ios] update design * [ios] show/hide scale bar * [ios] Remove the need to localize 0 * [ios] Support for imperial units * [ios] Round to nearest foot * [ios] Make scale bar private * [ios] Update design and clean up * [ios] Rename and various optimizations * [ios] RTL support * [ios] added max scale and removed animations * [ios] animate scale bar
* [ios] added check for annotation view animation (#8565)Jordan Kiley2017-04-122-13/+22
| | | Addressed #8489
* Merge branch 'release-ios-v3.5.0-android-v5.0.0' into ↵Fabian Guerra2017-04-111-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | boundsj-merge-release-branch # Conflicts: # cmake/core-files.cmake # mapbox-gl-js # platform/android/CHANGELOG.md # platform/ios/CHANGELOG.md # platform/macos/CHANGELOG.md # platform/qt/bitrise-qt5.yml # src/mbgl/gl/attribute.hpp # src/mbgl/gl/context.cpp # src/mbgl/gl/program.hpp # src/mbgl/map/map.cpp # src/mbgl/programs/program.hpp # src/mbgl/renderer/painter.cpp
| * [ios] Silence incompatible type warning for callout view (#8608)Jesse Bounds2017-04-041-1/+1
| | | | | | | | | | | | | | This silences a compatibility warning that was introduced in a previous refactor that changed the return type of the callout view for annotation delegate method. This also adds checks to ensure that the callout view provided by the delegate to the map view is of the correct type and conforms to the correct protocol.
* | [ios] Match gesture recognizer with map view user interaction stateDavid Chiles2017-04-114-10/+268
|/
* Per-attribute transition properties on MGLStyleLayer (#8225)Fabian Guerra Soto2017-03-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [ios, macos] new struct MGLTransition * [ios] MGLTransition struct moved to MGLTypes.h * [ios] MGLTransition implemented for style layer properties * [ios, macos] added support for getting property transitions * [ios, macos] updated to MGLDurationFromTimeInterval and MGLTimeIntervalFromDuration * [ios, macos] added transition properties test * [ios, macos] modified key strings imp * [ios, macos] The impl for transition properties were changed to public methods * [ios, macos] Changelog update * [ios] Fixed layer space formatting * [core] The name space was fixed for getters that returned TransitionOptions * [ios, macos] Added rawLayer transition property tests * [ios] Added a factory method for MGLTransition and transition-related methods to NSValue(MGLAdditions) * [ios, macos] Copyedited changelog blurbs about transition properties
* [ios, macos] Russian, Catalan, Lithuanian, Finnish, Dutch (#8256)Minh Nguyễn2017-03-083-0/+0
| | | | | | | | | | | | | | | | * [ios, macos] Updated Russian translations * [ios, macos] Added Catalan translation * [ios, macos] Completed Lithuanian translation * [ios, macos] Added Finnish translation * [ios, macos] Fixed Polish, Ukrainian declension * [ios, macos] Updated changelogs * [ios, macos] Added Dutch localization
* [ios, macos] Rename MGLStyleConstantValue to MGLConstantStyleValueJesse Bounds2017-03-031-15/+15
|
* [ios, macos] Enable localizations in iosapp & macosappJason Wray2017-02-2014-0/+0
|
* [ios] add setting to toggle two maps for thread debugging (#8122)Justin R. Miller2017-02-201-0/+78
|
* [ios] Fix locale-based language switching demoJason Wray2017-02-171-6/+5
| | | | Copy-pasted the better implementation from macOS.
* [ios] Add iosapp Show Zoom Level debug optionJason Wray2017-02-131-5/+24
|
* [ios, macos] Add support for data-driven property functionsJesse Bounds2017-02-021-47/+85
|
* [core] remove trailing whitespace, add trailing newlines, add space after //Konstantin Käfer2017-01-275-94/+94
|
* refs #6779: mobile & Mac SDK style transition options (#7711)Justin R. Miller2017-01-181-0/+2
|
* [ios] Add larger polyline to iosapp test shapesJason Wray2017-01-131-0/+11
|
* [ios, macos] Revert deprecation of alphaForShapeAnnotation: delegate methodJason Wray2017-01-131-1/+7
|
* [ios, macos] Add convenience initializers to shape source (#7665)Jesse Bounds2017-01-111-2/+1
| | | | | | | | | | | | | | | | | This adds two new convenience initializers to MGLShapeSource: -initWithIdentifier:features:options: takes an array of shape objects that conform to MGLFeature, inserts them in a shape collection feature and creates a source with that shape. -initWithIdentifier:shapes:options does the same but with concrete MGLShape objects that get added to a shape collection. Throw an exception if an shape source is created with the features initializer but is sent an array of features that contains something that is not actually an object that conforms to the feature protocol. Updates to geojson data guide Qualify APIs that take arrays of shapes that are features
* [ios] Optional positioning and stickiness for callout viewFredrik Karlsson2017-01-113-6/+38
|
* Happy new year! 🎉Minh Nguyễn2017-01-091-1/+1
| | | | Cherry-picked from b35deb85bc6042380ae0e7154d02faef595cfcf7.
* Document requirement about adding sources and layers (#7634)Jesse Bounds2017-01-081-2/+2
| | | | | | | | | | | * [ios, macos] Document requirement about adding sources and layers Sources and layers added outside of mapView:didFinishLoadingStyle: and mapViewDidFinishLoadingMap: are not guaranteed to appear since the map may not be fully loaded and ready to accept new sources and layers. This also fixes a compiler warning in iosapp.
* [ios, macos] Renamed text-field, text-font, text-font-size, circle-pitch-scaleMinh Nguyễn2017-01-071-6/+6
| | | | Reduced the likelihood that the developer might attempt to set textField to an NSTextField or UITextField, or textFont to an NSFont or UIFont, or textSize to a CGSize or NSSize, or circlePitchScale to a number (given iconScale).
* Use appropriate part of speech for properties (#7457)Minh Nguyễn2016-12-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | * [ios, macos] Use appropriate part of speech for properties Fixed overridden property references in requirements lists. Boolean-typed properties can now have getters beginning with “is”. Renamed a number of layout properties according to the following rules: Boolean-typed properties should include a verb; other properties must be noun phrases; all properties must be grammatical. * [ios, macos] Added style spec names as unavailable aliases Renamed properties now have aliases based on their style specification names, marked unavailable, for wayfinding purposes. * [ios, macos] Fixed autosynthesis warnings * [ios, macos] Moved style layer test template to test folder * [ios, macos] Customized iconOptional getter * [ios, macos] Avoid autosynthesis of aliases * [ios, macos] Test that property names are grammatical Run property getter names through a basic battery of tests to see if they’re grammatical. Most part-of-speech tagging tests are guarded by a compile-time flag, off by default, because NSLinguisticTagger does a poor job of telling nouns from verbs, and we’ve intentionally kept many words in property names that could be read as either verbs or nouns (like “transform” or “scale”).
* [ios, macos] Simplify MGLSource and subclasses (#7377)Minh Nguyễn2016-12-131-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [ios, macos] Audited source headers for nullability * [macos] Made MGLTileSet public * [ios, macos] Replaced MGLTileSet with MGLTileSource MGLRasterSource and MGLVectorSource now share a common abstract superclass, MGLTileSource. MGLTileSet has been removed. MGLTileSource is modeled after mbgl::style::RasterSource and mbgl::style::VectorSource. It has initializers that incorporate the parameters of MGLTileSet’s initializers, but it lacks getters for everything but the attribution string. MGLTileSet’s properties have been converted into options that can be passed into MGLTileSource’s initializers in a dictionary. Properly implement rawSource as a covariant property so that it doesn’t end up getting autosynthesized as a shadow ivar. This prevents concrete subclasses of MGLSource from setting _rawSource directly but getting a different value out of self.rawSource. Marked -[MGLSource init] as unavailable and ensured that concrete subclasses of MGLSource have the right set of initializers marked as designated initializers. Documentation comments for each concrete source class identify the corresponding source type in the style specification. Clarified the purpose of MGLTileSetScheme, now known as MGLTileCoordinateSystem. * [ios, macos] Clarified tile size interpretation Sticking to a default value of 256 for mapbox: URLs, but other URLs get the standard 512 value. * [ios, macos] rawSource is always set * [ios, macos] Cleaned up MGLShapeSource initialization rawSource is never nil, so there’s no need for a -commonInit method. Extracted -geoJSONOptions from MGLShapeSource into a standalone function for easier testing. * [ios, macos] Synchronized headers in project Realphabetized headers in groups. Added headers missing from one project or the other. * [ios, macos] Added MGLShape methods to (de)serialize GeoJSON data Added a class initializer and instance method to MGLShape that deserialize and serialize the shape as GeoJSON data, respectively. The new initializer handles parsing errors gracefully. Removed methods specific to GeoJSON data from MGLShapeSource, in an effort to reduce parallel state. Developers are now expected to go through the new MGLShape initializer to get an MGLShape representation. Alternatively, a local file URL can be passed into the other MGLShapeSource initializer. * [ios, macos] Typo in assertion message * [ios, macos] Simplified GeoJSON serialization Every MGLShape now knows its most specific mbgl::GeoJSON representation. * [ios, macos] Reremoved MGLFeaturePrivate mbgl::GeoJSON, which is a variant, allows a single GeoJSON representation method to traffic in whatever type is needed for a particular shape class. This change removes some hidden private protocols, which are a bug waiting to happen. * [ios, macos] Fixed covariant rawLayer property Properly implement rawLayer as a covariant property so that it doesn’t end up getting autosynthesized as a shadow ivar. This prevents concrete subclasses of MGLStyleLayer from setting _rawLayer directly but getting a different value out of self.rawLayer. * [ios, macos] Use MGLAttributionInfo for source attribution Made MGLAttributionInfo public. Replaced MGLTileSource’s attribution property with an attributionInfos property set to an array of MGLAttributionInfo objects. Added an MGLTileSourceOption for specifying an array of MGLAttributionInfo objects instead of an HTML string (either is acceptable when creating an MGLTileSource). * [ios, macos] Corrected method references in documentation
* [ios] Fixed crash on launch in iosappMinh Nguyễn2016-12-131-1/+1
| | | | Use NSLocaleLanguageCode instead of -[NSLocale languageCode], which is newer than the minimum deployment target.
* [ios] Fix iosapp runtime styling examples (#7395)Jesse Bounds2016-12-131-2/+7
| | | | This fixes a few bugs in our iosapp examples that were exposed by recent refinements to the APIs they use.
* [ios, macos] Load features into shape source if possible (#7339)Jesse Bounds2016-12-121-1/+28
| | | | | | | | | | | | | | | | | | | | This checks the kind of MGLShape passed into the source and, if it is a feature, it mbgl feature objects to pass to core. This keeps the feature id and attributes data intact. If the shape is a `MGLShapeCollectionFeature` it creates an `mbgl::FeatureCollection` object (also to keep feature properties). If the shape is not any sort of feature, it passes along just the geometry. This also uses the MGLFeatureFromMBGLFeature converter for the case where GeoJSON data passed in to a source contains a single feature. The converter has logic to keep the id and attributes properties intact. Before, these properties were lost because only geometry conversion was done. Finally, logic to handle (and associated tests) of nested shape collection features is removed since that is not supported by the GeoJSON spec or the core implementation. [ios] Add test of drawing plain shape to iosapp
* [ios, macos] Rename MGLGeoJSONSource to MGLShapeSource (#7334)Jesse Bounds2016-12-091-62/+61
|
* [ios, macos] MGLGeoJSONSource can now be initialized with any shapeFredrik Karlsson2016-12-061-8/+11
|
* [core, ios, macos] Add image accessor to MGLStyle (#7096)Roman Blum2016-12-051-0/+20
| | | | | | | | | | | | * [core] Add interface to get image from sprite atlas * [tests] Add tests for Map::getImage * [ios, macos] WIP: get MGLImage for name from style * [ios, macos] Fixed -imageForName: Convert from sprite images to platform images using the existing encodePNG() function, which is also used for printing. Allow -imageForName: to return nil without an assertion failure. Added a basic test.
* [ios, macos] Fix integer formatting in formatted exception strings (#7173)Jesse Bounds2016-11-231-1/+1
|
* [ios, macos] Refactor runtime styling enumeration propertiesJesse Bounds2016-11-221-0/+55
| | | | | | | Correctly map SDK runtime styling enumerations to mbgl equivalents. Also, add category methods to NSValue so enums can be wrapped up with less of the details of how they are layed out in memory in Objective-C.
* [ios, macos] Layer ownership refactor (#6904)fabian-guerra2016-11-041-0/+1
| | | `MGLStyleLayer` was updated to support a raw pointer to the mbgl object, which is always initialized, either to the value returned by `mbgl::Map getLayer`, or for independently created objects, to the pointer value held in `pendingLayer`. In the latter case, this raw pointer value stays even after ownership of the object is transferred via `mbgl::Map addLayer`.
* [ios] Fixed deprecation warningsMinh Nguyễn2016-11-021-2/+2
|
* [ios] Fix bad merge in iosappJesse Bounds2016-11-021-3/+0
| | | | | | Although functionality was not affected, a previous merge garbled the language test with a temporary test done for annotation view performance improvement.
* Optimize annotation view updates (#5987)Jesse Bounds2016-11-012-25/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | Use queryPointAnnotations to drive annotation view updates - Get sets of visible and offscreen annotations using the mbgl query mechanism and updates and enqueues as required - Query viewport adjusted if tilted (avoid apparent issue with queryPointAnnotations when the query box is larger than the actual viewport) - Add a small debugging display in iOS app to see annotations going in and out of the reuse queue This also works around a performance issue that made getting an annotation context expensive by implementing a map of annotations to tags. It works around another issue with the underlying mbgl query so that even if it (rarely) returns an incorrect result, the correct visual effect still occurs and the reuse queue is added to and drained as expected. Finally, this refactors MGLMapView viewForAnnotation: to use the maps to access the requested annotation context and view. This avoids a more expensive lookup done previously. Along for the ride: sync up the ios and macos names (and types) for MGLAnnotationTagContextMap
* [ios] Do iosapp token handling in viewDidLoadJason Wray2016-10-281-5/+0
| | | | | Doing this work in viewDidAppear meant that it happened every time the modal debug settings view disappeared (and the map view reappeared).
* [ios] Add country label language toggle demoJason Wray2016-10-281-1/+74
| | | | - Select best language based on locale setting and our support.
* [ios, macos] Introduce visible annotations API (#6061)Jesse Bounds2016-10-261-0/+19
| | | | | | Add visibleAnnotations API to make it easier for clients of MGLMapView to query for all visible annotations in the map or all visible annotations in a subsection of the map.
* [ios, macos] Make source ownership consistent and GeoJSON content properties ↵Jesse Bounds2016-10-262-0/+149
| | | | | | | | | | | | | | | | | | | writable Use common initialization logic to create an unique pointer to an mbgl source object, up front, when a MGL source is created. Keep a raw pointer to the unique pointer that is pointed at the mbgl source instance when a MGL source is created or when a MGL source is obtained by identifier from MGLStyle. Once the transfer of ownership of the mbgl source takes place, the unique ptr is null. The raw pointer can be used internally for future work that involves mutating the source. This also changes the URL, features, and geoJSONData content properties for MGLGeoJSON source to be writable. If they are set with valid data after a source has been added to the map then the map will update to reflect the new data.
* Add MGLPointCollection for GeoJSON multipoints (#6742)Jesse Bounds2016-10-201-0/+22
| | | | | | | | | | | | | | | | * [ios, macos] Introduce MGLPointCollection This makes MGLMultiPoint abstract again so that it is only a place for shared functionality of polygons and polylines. The multipoint feature replaces the point collection feature and can be used to initialize a MGLGeoJSONSource. The previously added swift_names for polyline and polygon are removed, for now. This also updates the iOS and macOS annotation adding logic so that unwanted shapes really are avoided. Previously the combined OR conditions meant that an annotation had to logically be NOT a kind of all three types so the check always let the annotation slip through. This also expands the guard to deflect the new MGLPointCollection.
* [ios, macos] Make feature attributes and identifier writable (#6728)Jesse Bounds2016-10-191-0/+58
| | | | | | * [ios, macos] Make feature attributes and identifier writable Instances of MGLFeature subclasses can now have their attributes and identifier properties mutated.
* [ios, macos] Expand changes to entire APIMinh Nguyễn2016-10-171-34/+38
|
* [ios, macos] Deprecate -[MGLMapViewDelegate ↵Jason Wray2016-10-141-6/+2
| | | | mapView:alphaForShapeAnnotation:] (#6706)
* [ios, macos] Teach features and shapes about GeoJSON and mbgl typesJesse Bounds2016-10-141-11/+24
| | | | | | MGLShape subclasses can now return NSDictionaries that represent the shapes' GeoJSON geometries. MGLFeature classes can now return NSDictionaries that represent the features as GeoJSON features. This makes it trivial to serialize iOS and macOS shapes and features into GeoJSON. MGLFeature instances can also return a representation of themselves as an mbgl::Feature. This capability is used in a refactoring of the implementations of MGLGeoJSONSource to more efficiently transform MGLFeatures into mbgl::Features so they can be fed directly into mbgl::GeoJSONSource without having to round trip through NSJSONSerialization. The MGLFeature identifier is converted into the mbgl::identifier type based on the type of the identifier. The MGLFeature attributes are recursively converted into an mbgl::PropertyMap and each value is converted into one of the types that the PropertyMap's Value variant supports.
* [ios, macos] Add feature initializerituaijagbone2016-10-141-0/+26
| | | | | | | | This adds a features initializer to MGLGeoJSONSource. The initializer takes shapes and converts them to JSON representation before passing to core. This also adds methods to the MGLShape concrete subclasses so that they can represent themselves in NSDictionary form suitable for transforming to JSON (GeoJSON).
* [ios, macos] Revamped MGLStyleLayer, MGLSource inheritanceMinh Nguyễn2016-10-061-4/+4
| | | | | | | | | | Removed the MGLStyleLayer protocol, because almost none of its members was actually implemented in every class that adopted the protocol. Removed the unused mapView backpointer property with no replacement. Renamed MGLBaseStyleLayer to MGLStyleLayer. Created the intermediate abstract classes MGLForegroundStyleLayer and MGLVectorStyleLayer to cover subsets of style layer classes with like functionality. Moved each MGLBaseStyleLayer initializer and the corresponding properties down to an abstract subclass such that the initializer makes sense for all concrete subclasses. Moved more initializers and the predicate property up to MGLVectorStyleLayer to eliminate duplication among the concrete subclasses. Marked these initializers as designated initializers. Removed “source” or “layer” before identifier wherever the type of identifier is apparent. Removed extra MGLGeoJSONSource initializer variants in favor of nullable parameters. Added copious documentation comments for source and style layer classes, including several previously undocumented methods and properties. In particular, some preconditions and postconditions have been documented. Added pragma marks to break up the jazzy documentation pages into sections. Reformatted exceptions for consistency.
* [ios, android] add visual tests for fill, line, & numeric filter styling (#6433)Justin R. Miller2016-09-234-8/+28540
|
* [ios] revamp settings/debug UI in test app (#6421)Justin R. Miller2016-09-211-253/+438
|