This project is deprecated in favor of the Mapbox iOS SDK
See the old readme for the old project details.
REPLACED – use https://www.mapbox.com/ios-sdk instead
Home Page: https://github.com/mapbox/mapbox-gl-native
License: Other
This project is deprecated in favor of the Mapbox iOS SDK
See the old readme for the old project details.
I am printing the requested tile, and I can clearly see that the map is asking for different tiles when run on the device and the simulator:
The pattern is: zoomLevel_x_y
Simulator:
2012-05-17 20:07:51.189 Metro[1078:1b703] Image: 13_5120_831
2012-05-17 20:07:51.189 Metro[1078:1a503] Image: 13_1840_4546
2012-05-17 20:07:51.212 Metro[1078:1b703] Image: 13_1840_4546
2012-05-17 20:07:51.247 Metro[1078:1a503] Image: 13_1839_4546
2012-05-17 20:07:51.299 Metro[1078:1b703] Image: 13_1840_4547
2012-05-17 20:07:51.316 Metro[1078:1a503] Image: 13_1840_4547
2012-05-17 20:07:51.351 Metro[1078:1b703] Image: 13_1839_4547
2012-05-17 20:07:51.386 Metro[1078:1a503] Image: 13_1839_4547
Device:
2012-05-17 20:08:44.751 Metro[5652:3703] Image: 13_5120_831
2012-05-17 20:08:44.752 Metro[5652:1903] Image: 13_5119_831
2012-05-17 20:08:44.851 Metro[5652:1903] Image: 13_5120_831
2012-05-17 20:08:44.852 Metro[5652:3703] Image: 13_5120_832
2012-05-17 20:08:44.865 Metro[5652:1903] Image: 13_5120_832
2012-05-17 20:08:44.869 Metro[5652:3703] Image: 13_5119_832
This is a really big problem because the tiles needed on the dive do not exist on the database, so it appears as an empty gray map.
What do you guys think the problem is?
Don't remember the specifics from Alpstein, but the fact that a two-finger double-tap works causes a slight delay with a two-finger single-tap while it waits for the gesture to fail.
RMMBTilesSource: there is an issue when .mbtiles file is not in the app's main bundle: FMDatabaseQueue will throw an exception: "Could not create database queue for path map.mbtiles".
I fixed this just modifying RMMBTilesSource.m:
queue = [[FMDatabaseQueue databaseQueueWithPath:[tileSetURL relativePath]] retain];
with:
queue = [[FMDatabaseQueue databaseQueueWithPath:[tileSetURL path]] retain];
Linking MapView to SQLite doesn't do us any good, since MapView is a static lib and the parent project needs to link it anyway.
MapKit doesn't turn off user tracking (with user at center of view) unless one of two conditions are met:
Currently we turn it off upon either pan or zoom.
Hi
I am facing an issue while trying to set up a max/min zoom constraint in a RMMapView instance for a .mbtiles file with limited bounds and zoom range 10-19. When I zoom out with a pinch gesture, the scrollview doesn't block the zoom and the map completely disappear, when I zoom in the NSAssert in RMMBTilesSource - imageForTile:inCache: method is thrown.
The map is setup following the sample code:
RMMapView *lMapView = [[RMMapView alloc] initWithFrame: self.view.bounds
andTilesource: tilesSource
centerCoordinate: startCoordinates
zoomLevel: (tilesSource.maxZoom+tilesSource.minZoom) / 2.0
maxZoomLevel: tilesSource.maxZoom
minZoomLevel: tilesSource.minZoom
backgroundImage: nil];
Need to be a better net citizen here.
See http://support.mapbox.com/discussions/mapbox-ios-sdk/66-zoom-outin-to-display-all-annotations-currently-on-the-map We could pretty easily take a certain list of annotations and zoom to best fit them all in view.
We could maybe distribute a static library pre-compiled to simplify the installation steps a bit for people who don't need/want to build it themselves.
When trying to run the MBTilesDemo
sample project, I come across failures for both of these imports:
#import "RMMBTilesTileSource.h"
#import "RMTileStreamSource.h"
I can't find either of the header files in the Map project. When running git blame
, it looks like @Alpstein added these lines two months ago?
Any thoughts?
Thanks.
RMTileCache crashes if you try to instantiate a map view with a source from a URL, and there's no data connection.
Need to integrate MapBox licensing into main license file.
See Outdooractive/route-me#43 (comment) for the background. We should make this behave more like MapKit without the hassle.
We can animated zoom to a point, or animate zoom to a SW/NE bounds, but we can't easily animate zoom to a center point with a certain zoom level applied. Right now, we are calculating zoom meters manually and using the SW/NE zoom as a hack. This should be native.
Tile backends like MapQuest should be moved over to TileJSON for ease of maintainability. Just bundle TileJSON with the app. One downside here is resources like .json
files that come with the SDK have to be manually copied into the app project, since the library is standalone. However, this needs to happen for things like #5 user location tracking as well for the tracking images.
/cc @willwhite
Setting the userTrackingMode without a data connection crashes the app.
It would be nice to have something like MKPinAnnotationView
with a canShowCallout
property that automatically manages display and behavior of a callout similar to MapKit.
I have maps with several markers created like this
marker = [[RMMarker alloc] initWithUIImage:[UIImage imageNamed:@"icon.png"] anchorPoint:annotation.anchorPoint];
markers somehow consumes the touch gestures, so i cannot move or zoom the map when starting the gesture at marker location.
Should the markers be drawn in latitude order, so that they are positioned correctly?
See this screenshot for what I mean:
http://dl.dropbox.com/u/44154592/markerDrawOrder.png
I'm not sure how this would work in orientation (compass) mode in the Location branch, layer positioning would need to update as the map rotates maybe? :-/
I created a very simple map of the US with the following layers:
10mlakesnorthamerica
10mroads
10madmin1statesprovi
countries
I then used RMPath to draw a couple of lines like this:
CLLocationCoordinate2D KRDU = { 35.8776389, -78.7874722 };
CLLocationCoordinate2D KSFO = { 37.6190, -122.3749};
CLLocationCoordinate2D start = KRDU;
CLLocationCoordinate2D end = KSFO;
RMPath *path = [[RMPath alloc] initWithView:mapView];
[path setDrawingMode:kCGPathStroke];
[path moveToCoordinate:start];
[path addLineToCoordinate:GetHaversineMidpoint(start, end)];
[path addLineToCoordinate:end];
When I scroll (and apparently specifically when new tiles are shown), the line jumps around quite a bit. It's most noticeable when scrolling left and right. I've seen this in the simulator; I haven't tried on device yet.
If we want to behave like MapKit, we could automatically manage the network activity indicator for tile loads. However, some users might not want this, so we might want to provide a BOOL
to turn it on or off. This will probably wrap the tile load begin/end notifications anyway, so we could provide an abstracted way to access this for folks who are already managing the indicator somehow.
Help answer the question "why use this instead?"
Like Maps.app.
This will play into #5 user tracking since compass heading needs this.
Hi,
I may have noticed an issue with retina display not addressed in the list: I am using an offline tile source (.mbtile) with range 14-18. On an iPhone3GS the map correctly zoom to level 18, while on iPhone4 and iPad2 (with Retina Display) the same app with the same db reaches a maximum map zoom of 17 (so that tiles are stretched by scrollview and get jagged).
This is related with 'adjustTilesForRetinaDisplay' flag: when set, the max map zoom level is never used (wasting disk space on the mobile)
When in user tracking mode, the markers should rotate opposite the map. Something like CGAffineTransformInvert()
should help here.
Over in #5 we've got location services, but the accuracy circle just changes size instantly when homing in. It should bounce like MapKit's.
Port over the UTF8Grid interactivity functionality from our fork of Route-Me core.
Setting showsUserLocation to NO, after it's previously been YES crashes.
i.e.
mapView.showsUserLocation = YES;
mapView.showsUserLocation = NO;
The crash is when it's releasing all the related annotations. One of them has already been released.
Might be handy, since we see a number of support requests where people swap out a source and don't locate the map to it, resulting in a blank map.
Just putting a line in the sand that we want to support simplestyle markers as native points on the iPad.
This means:
data
key from the TileJSON and fetching the GeoJSON.Minor issue:
topRight at the bottom of zoomWithLatitudeLongitudeBoundsSouthWest is flagged (twice) as unused in Xcode 4 (even though it's used in a log message.) It's kind of annoying to get warnings on each build.
Location tracking (with userTrackingMode set to RMUserTrackingModeFollowWithHeading) is acting weird with my configuration.
Tracking is wrong by 90°, and annotation layer don't rotate following compass heding. Furthermore, sometime gps accuracy circle is not centered with gps user position (actually, it slides away to another location of the map).
Are they known issues?
Related to #27 -- need to animate CAShapeLayer
path changes.
Any way we could get these added in?
route-me/route-me#128
I am currently trying to get some markers from a server AFTER a user zooms in using a pinch gesture, the afterMapZoom which currently exists is called several times instead of once. Causes us a real issue as it hammers the server.
Please let me know if I can help in any way.
Per http://mapbox.com/hosting/api/ we should make switches in the SDK for controlling PNG/JPG quality and possibly even automate (or offer to automate) the handling of this as related to current connectivity situation (3G, Edge, etc.)
We should probably default map views to DC or something like that.
@russellquinn mentioned this -- turning off location services for the app or system-wide should dump the SDK's location cache, just to be clear to the user.
When restoring both a zoom
and a centerCoordinate
, you need to set the zoom
first or else the map center will be off afterwards.
@incanus what is necessary to support retina simplestyle markers? Is there a minimum acceptable image size that you'd like to see for big fingers?
I've been trying to set boundary constraints using the following code inside the OnlineLayerViewController:
// Iceland constrains example
CLLocationCoordinate2D NEBound;
NEBound.latitude = 66.34;
NEBound.longitude = -23.7;
CLLocationCoordinate2D SWBound;
SWBound.latitude = 63.69;
SWBound.longitude = -14.7;
[mapView setConstraintsSouthWest:SWBound northEeast:NEBound]; // typo: northEeast
For some reason the maps locks over an area in Austria, and doesn't allow scrolling. Any ideas?
I've noticed that RMMapView.m has been updated more recently in the mapbox-ios-sdk than the route-me version (which uses a different signature for constraints - setConstraintsSW), so I wasn't sure which one was more up-to-date.
I've had a pretty solid look at RMMarker.h
, RMAnnotation.h
, and RMOverlayView.h
and still cannot figure out how to simply add a marker to a mapview.
I've also been poking around in Xcode with trial and error with no success.
A few lines of code as an example would go a long way here.
Need an example app that shows:
All in one app. We currently have three sample apps for MapBox stuff on Route-Me core.
Now that RMComposite
source is stable, we should think about refactoring it along the lines of the upstream issue, layering tiled layers instead of actually compositing tile images into one layer.
See also https://github.com/incanus/TileTest
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.