Commit Graph

2 Commits

Author SHA1 Message Date
Jesse Bounds
67ffc9685e [ios, macos] Make source ownership consistent and GeoJSON content properties 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.
2016-10-26 17:08:27 -07:00
Jesse Bounds
08f55af914 [ios, macos] Use NSDictionary for geojson source options.
This removes a previous implementation of geojson options that used
a new type to transfer the data around. Added in its place is
an options API that takes an NSDictionary that works similarly to
NSAttributedString and many other Cocoa APIs that take options.

The options parser now expects the developer to send values of the
type noted in the documentation and it simply converts the NSNumber
to the correct type (integer, double, or bool) for mbgl. However, an
exception is raised if the value is not an NSNumber.
2016-09-02 14:48:37 -07:00