summaryrefslogtreecommitdiff
path: root/macosx
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-01-14 16:29:20 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-01-14 16:29:20 +0100
commit60a8fdca5727bc57bd6526e5447e2cc41db1ada8 (patch)
treeb73da9de7e55b1f5257822885c68a14ff9fee9bc /macosx
parent654972bb3feb1f451a820afbc7c46e7e502ce687 (diff)
downloadqtlocation-mapboxgl-60a8fdca5727bc57bd6526e5447e2cc41db1ada8.tar.gz
fix runtime errors
Diffstat (limited to 'macosx')
-rw-r--r--macosx/main.mm35
1 files changed, 24 insertions, 11 deletions
diff --git a/macosx/main.mm b/macosx/main.mm
index 20b6cc174a..23d75b4679 100644
--- a/macosx/main.mm
+++ b/macosx/main.mm
@@ -162,7 +162,7 @@ public:
llmr::map *map;
};
-
+NSOperationQueue *queue = NULL;
MapView *view;
namespace llmr {
@@ -172,23 +172,26 @@ void restart(void *) {
view->dirty = true;
}
-void request(void *, tile *tile) {
- fprintf(stderr, "request %d/%d/%d\n", tile->z, tile->x, tile->y);
+void request(void *, tile::ptr tile) {
+ // fprintf(stderr, "request %d/%d/%d\n", tile->z, tile->x, tile->y);
- fprintf(stderr, "requesting tile\n");
+ // fprintf(stderr, "requesting tile\n");
// NSString *urlTemplate = @"http://api.tiles.mapbox.com/v3/mapbox.mapbox-streets-v4/%d/%d/%d.vector.pbf";
- NSString *urlTemplate = @"http://localhost:3333/gl/tiles/%d-%d-%d.vector.pbf";
+ NSString *urlTemplate = @"http://localhost:3333/gl/tiles/plain/%d-%d-%d.vector.pbf";
NSString *urlString = [NSString
stringWithFormat:urlTemplate,
tile->z,
tile->x,
tile->y];
NSURL *url = [NSURL URLWithString:urlString];
- NSLog(@"Requesting %@", urlString);
+ // NSLog(@"Requesting %@", urlString);
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
- NSOperationQueue *queue = [[NSOperationQueue alloc] init];
+ if (!queue) {
+ queue = [[NSOperationQueue alloc] init];
+ }
+
[NSURLConnection
sendAsynchronousRequest:urlRequest
queue:queue
@@ -196,12 +199,22 @@ void request(void *, tile *tile) {
NSData * data,
NSError * error) {
if (error == nil) {
- tile->setData((uint8_t *)[data bytes], [data length]);
- if (tile->parse()) {
+ NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
+ int code = [httpResponse statusCode];
+
+ if (code == 200) {
+ tile->setData((uint8_t *)[data bytes], [data length]);
+ if (tile->parse()) {
+ dispatch_async(dispatch_get_main_queue(), ^ {
+ view->map->tileLoaded(tile);
+ });
+ return;
+ }
+ } else {
+ fprintf(stderr, "[%s] status code %d\n", [urlString UTF8String], code);
dispatch_async(dispatch_get_main_queue(), ^ {
- view->map->tileLoaded(tile);
+ view->map->tileFailed(tile);
});
- return;
}
}