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.
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.
Need to be a better net citizen here.
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.
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?
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.
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.
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.
See Outdooractive/route-me#43 (comment) for the background. We should make this behave more like MapKit without the hassle.
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];
When in user tracking mode, the markers should rotate opposite the map. Something like CGAffineTransformInvert()
should help here.
@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?
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];
Need to integrate MapBox licensing into main license file.
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.
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.
RMTileCache crashes if you try to instantiate a map view with a source from a URL, and there's no data connection.
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.
Help answer the question "why use this instead?"
Port over the UTF8Grid interactivity functionality from our fork of Route-Me core.
We should probably default map views to DC or something like that.
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.
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)
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.
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.
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.
Need an example app that shows:
All in one app. We currently have three sample apps for MapBox stuff on Route-Me core.
Like Maps.app.
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.
This will play into #5 user tracking since compass heading needs this.
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.
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.
Setting the userTrackingMode without a data connection crashes the app.
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
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.
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.)
Related to #27 -- need to animate CAShapeLayer
path changes.
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.
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
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.
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.@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.
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? :-/
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?
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.