From adfceed5548686176ef7cc5d66099782409cca85 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 30 Nov 2016 16:13:15 -0800 Subject: [PATCH 01/52] Factor out conversion from vector tile to GeoJSON --- Makefile | 4 +- decode.cpp | 269 ++--------------------------------------------------- plugin.cpp | 269 +++++++++++++++++++++++++++++++++++++++++++++++++++++ plugin.hpp | 2 + 4 files changed, 279 insertions(+), 265 deletions(-) create mode 100644 plugin.cpp create mode 100644 plugin.hpp diff --git a/Makefile b/Makefile index cfe761d..0dc855b 100644 --- a/Makefile +++ b/Makefile @@ -43,13 +43,13 @@ C = $(wildcard *.c) $(wildcard *.cpp) INCLUDES = -I/usr/local/include -I. LIBS = -L/usr/local/lib -tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o mvt.o serial.o main.o text.o +tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o mvt.o serial.o main.o text.o plugin.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread tippecanoe-enumerate: enumerate.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lsqlite3 -tippecanoe-decode: decode.o projection.o mvt.o +tippecanoe-decode: decode.o projection.o mvt.o plugin.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o memfile.o diff --git a/decode.cpp b/decode.cpp index 8a9bbc2..879d73d 100644 --- a/decode.cpp +++ b/decode.cpp @@ -15,36 +15,7 @@ #include "mvt.hpp" #include "projection.hpp" #include "geometry.hpp" - -void printq(const char *s) { - putchar('"'); - for (; *s; s++) { - if (*s == '\\' || *s == '"') { - printf("\\%c", *s); - } else if (*s >= 0 && *s < ' ') { - printf("\\u%04x", *s); - } else { - putchar(*s); - } - } - putchar('"'); -} - -struct lonlat { - int op; - double lon; - double lat; - int x; - int y; - - lonlat(int nop, double nlon, double nlat, int nx, int ny) { - this->op = nop; - this->lon = nlon; - this->lat = nlat; - this->x = nx; - this->y = ny; - } -}; +#include "plugin.hpp" void handle(std::string message, int z, unsigned x, unsigned y, int describe) { int within = 0; @@ -67,7 +38,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { if (projection != projections) { printf(", \"crs\": { \"type\": \"name\", \"properties\": { \"name\": "); - printq(projection->alias); + fprintq(stdout, projection->alias); printf(" } }"); } } @@ -76,7 +47,6 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { for (size_t l = 0; l < tile.layers.size(); l++) { mvt_layer &layer = tile.layers[l]; - int extent = layer.extent; if (describe) { if (l != 0) { @@ -85,7 +55,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { printf("{ \"type\": \"FeatureCollection\""); printf(", \"properties\": { \"layer\": "); - printq(layer.name.c_str()); + fprintq(stdout, layer.name.c_str()); printf(", \"version\": %d, \"extent\": %d", layer.version, layer.extent); printf(" }"); printf(", \"features\": [\n"); @@ -93,234 +63,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { within = 0; } - for (size_t f = 0; f < layer.features.size(); f++) { - mvt_feature &feat = layer.features[f]; - - if (within) { - printf(",\n"); - } - within = 1; - - printf("{ \"type\": \"Feature\""); - - if (feat.has_id) { - printf(", \"id\": %llu", feat.id); - } - - printf(", \"properties\": { "); - - for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) { - if (t != 0) { - printf(", "); - } - - if (feat.tags[t] >= layer.keys.size()) { - fprintf(stderr, "Error: out of bounds feature key\n"); - exit(EXIT_FAILURE); - } - if (feat.tags[t + 1] >= layer.values.size()) { - fprintf(stderr, "Error: out of bounds feature value\n"); - exit(EXIT_FAILURE); - } - - const char *key = layer.keys[feat.tags[t]].c_str(); - mvt_value const &val = layer.values[feat.tags[t + 1]]; - - if (val.type == mvt_string) { - printq(key); - printf(": "); - printq(val.string_value.c_str()); - } else if (val.type == mvt_int) { - printq(key); - printf(": %lld", (long long) val.numeric_value.int_value); - } else if (val.type == mvt_double) { - printq(key); - double v = val.numeric_value.double_value; - if (v == (long long) v) { - printf(": %lld", (long long) v); - } else { - printf(": %g", v); - } - } else if (val.type == mvt_float) { - printq(key); - double v = val.numeric_value.float_value; - if (v == (long long) v) { - printf(": %lld", (long long) v); - } else { - printf(": %g", v); - } - } else if (val.type == mvt_sint) { - printq(key); - printf(": %lld", (long long) val.numeric_value.sint_value); - } else if (val.type == mvt_uint) { - printq(key); - printf(": %lld", (long long) val.numeric_value.uint_value); - } else if (val.type == mvt_bool) { - printq(key); - printf(": %s", val.numeric_value.bool_value ? "true" : "false"); - } - } - - printf(" }, \"geometry\": { "); - - std::vector ops; - - for (size_t g = 0; g < feat.geometry.size(); g++) { - int op = feat.geometry[g].op; - long long px = feat.geometry[g].x; - long long py = feat.geometry[g].y; - - if (op == VT_MOVETO || op == VT_LINETO) { - long long scale = 1LL << (32 - z); - long long wx = scale * x + (scale / extent) * px; - long long wy = scale * y + (scale / extent) * py; - - double lat, lon; - projection->unproject(wx, wy, 32, &lon, &lat); - - ops.push_back(lonlat(op, lon, lat, px, py)); - } else { - ops.push_back(lonlat(op, 0, 0, 0, 0)); - } - } - - if (feat.type == VT_POINT) { - if (ops.size() == 1) { - printf("\"type\": \"Point\", \"coordinates\": [ %f, %f ]", ops[0].lon, ops[0].lat); - } else { - printf("\"type\": \"MultiPoint\", \"coordinates\": [ "); - for (size_t i = 0; i < ops.size(); i++) { - if (i != 0) { - printf(", "); - } - printf("[ %f, %f ]", ops[i].lon, ops[i].lat); - } - printf(" ]"); - } - } else if (feat.type == VT_LINE) { - int movetos = 0; - for (size_t i = 0; i < ops.size(); i++) { - if (ops[i].op == VT_MOVETO) { - movetos++; - } - } - - if (movetos < 2) { - printf("\"type\": \"LineString\", \"coordinates\": [ "); - for (size_t i = 0; i < ops.size(); i++) { - if (i != 0) { - printf(", "); - } - printf("[ %f, %f ]", ops[i].lon, ops[i].lat); - } - printf(" ]"); - } else { - printf("\"type\": \"MultiLineString\", \"coordinates\": [ [ "); - int state = 0; - for (size_t i = 0; i < ops.size(); i++) { - if (ops[i].op == VT_MOVETO) { - if (state == 0) { - printf("[ %f, %f ]", ops[i].lon, ops[i].lat); - state = 1; - } else { - printf(" ], [ "); - printf("[ %f, %f ]", ops[i].lon, ops[i].lat); - state = 1; - } - } else { - printf(", [ %f, %f ]", ops[i].lon, ops[i].lat); - } - } - printf(" ] ]"); - } - } else if (feat.type == VT_POLYGON) { - std::vector > rings; - std::vector areas; - - for (size_t i = 0; i < ops.size(); i++) { - if (ops[i].op == VT_MOVETO) { - rings.push_back(std::vector()); - areas.push_back(0); - } - - int n = rings.size() - 1; - if (n >= 0) { - if (ops[i].op == VT_CLOSEPATH) { - rings[n].push_back(rings[n][0]); - } else { - rings[n].push_back(ops[i]); - } - } - } - - int outer = 0; - - for (size_t i = 0; i < rings.size(); i++) { - long double area = 0; - for (size_t k = 0; k < rings[i].size(); k++) { - if (rings[i][k].op != VT_CLOSEPATH) { - area += rings[i][k].x * rings[i][(k + 1) % rings[i].size()].y; - area -= rings[i][k].y * rings[i][(k + 1) % rings[i].size()].x; - } - } - - areas[i] = area; - if (areas[i] >= 0 || i == 0) { - outer++; - } - - // printf("area %f\n", area / .00000274 / .00000274); - } - - if (outer > 1) { - printf("\"type\": \"MultiPolygon\", \"coordinates\": [ [ [ "); - } else { - printf("\"type\": \"Polygon\", \"coordinates\": [ [ "); - } - - int state = 0; - for (size_t i = 0; i < rings.size(); i++) { - if (areas[i] >= 0) { - if (state != 0) { - // new multipolygon - printf(" ] ], [ [ "); - } - state = 1; - } - - if (state == 2) { - // new ring in the same polygon - printf(" ], [ "); - } - - for (size_t j = 0; j < rings[i].size(); j++) { - if (rings[i][j].op != VT_CLOSEPATH) { - if (j != 0) { - printf(", "); - } - - printf("[ %f, %f ]", rings[i][j].lon, rings[i][j].lat); - } else { - if (j != 0) { - printf(", "); - } - - printf("[ %f, %f ]", rings[i][0].lon, rings[i][0].lat); - } - } - - state = 2; - } - - if (outer > 1) { - printf(" ] ] ]"); - } else { - printf(" ] ]"); - } - } - - printf(" } }\n"); - } + layer_to_geojson(stdout, layer, z, x, y); if (describe) { printf("] }\n"); @@ -389,9 +132,9 @@ void decode(char *fname, int z, unsigned x, unsigned y) { const unsigned char *name = sqlite3_column_text(stmt2, 0); const unsigned char *value = sqlite3_column_text(stmt2, 1); - printq((char *) name); + fprintq(stdout, (char *) name); printf(": "); - printq((char *) value); + fprintq(stdout, (char *) value); } sqlite3_finalize(stmt2); diff --git a/plugin.cpp b/plugin.cpp new file mode 100644 index 0000000..afde545 --- /dev/null +++ b/plugin.cpp @@ -0,0 +1,269 @@ +#include +#include +#include +#include +#include +#include "mvt.hpp" +#include "plugin.hpp" +#include "projection.hpp" +#include "geometry.hpp" + +struct lonlat { + int op; + double lon; + double lat; + int x; + int y; + + lonlat(int nop, double nlon, double nlat, int nx, int ny) { + this->op = nop; + this->lon = nlon; + this->lat = nlat; + this->x = nx; + this->y = ny; + } +}; + +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { + for (size_t f = 0; f < layer.features.size(); f++) { + mvt_feature &feat = layer.features[f]; + + if (f != 0) { + fprintf(fp, ",\n"); + } + + fprintf(fp, "{ \"type\": \"Feature\""); + + if (feat.has_id) { + fprintf(fp, ", \"id\": %llu", feat.id); + } + + fprintf(fp, ", \"properties\": { "); + + for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) { + if (t != 0) { + fprintf(fp, ", "); + } + + if (feat.tags[t] >= layer.keys.size()) { + fprintf(stderr, "Error: out of bounds feature key\n"); + exit(EXIT_FAILURE); + } + if (feat.tags[t + 1] >= layer.values.size()) { + fprintf(stderr, "Error: out of bounds feature value\n"); + exit(EXIT_FAILURE); + } + + const char *key = layer.keys[feat.tags[t]].c_str(); + mvt_value const &val = layer.values[feat.tags[t + 1]]; + + if (val.type == mvt_string) { + fprintq(fp, key); + fprintf(fp, ": "); + fprintq(fp, val.string_value.c_str()); + } else if (val.type == mvt_int) { + fprintq(fp, key); + fprintf(fp, ": %lld", (long long) val.numeric_value.int_value); + } else if (val.type == mvt_double) { + fprintq(fp, key); + double v = val.numeric_value.double_value; + if (v == (long long) v) { + fprintf(fp, ": %lld", (long long) v); + } else { + fprintf(fp, ": %g", v); + } + } else if (val.type == mvt_float) { + fprintq(fp, key); + double v = val.numeric_value.float_value; + if (v == (long long) v) { + fprintf(fp, ": %lld", (long long) v); + } else { + fprintf(fp, ": %g", v); + } + } else if (val.type == mvt_sint) { + fprintq(fp, key); + fprintf(fp, ": %lld", (long long) val.numeric_value.sint_value); + } else if (val.type == mvt_uint) { + fprintq(fp, key); + fprintf(fp, ": %lld", (long long) val.numeric_value.uint_value); + } else if (val.type == mvt_bool) { + fprintq(fp, key); + fprintf(fp, ": %s", val.numeric_value.bool_value ? "true" : "false"); + } + } + + fprintf(fp, " }, \"geometry\": { "); + + std::vector ops; + + for (size_t g = 0; g < feat.geometry.size(); g++) { + int op = feat.geometry[g].op; + long long px = feat.geometry[g].x; + long long py = feat.geometry[g].y; + + if (op == VT_MOVETO || op == VT_LINETO) { + long long scale = 1LL << (32 - z); + long long wx = scale * x + (scale / layer.extent) * px; + long long wy = scale * y + (scale / layer.extent) * py; + + double lat, lon; + projection->unproject(wx, wy, 32, &lon, &lat); + + ops.push_back(lonlat(op, lon, lat, px, py)); + } else { + ops.push_back(lonlat(op, 0, 0, 0, 0)); + } + } + + if (feat.type == VT_POINT) { + if (ops.size() == 1) { + fprintf(fp, "\"type\": \"Point\", \"coordinates\": [ %f, %f ]", ops[0].lon, ops[0].lat); + } else { + fprintf(fp, "\"type\": \"MultiPoint\", \"coordinates\": [ "); + for (size_t i = 0; i < ops.size(); i++) { + if (i != 0) { + fprintf(fp, ", "); + } + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + } + fprintf(fp, " ]"); + } + } else if (feat.type == VT_LINE) { + int movetos = 0; + for (size_t i = 0; i < ops.size(); i++) { + if (ops[i].op == VT_MOVETO) { + movetos++; + } + } + + if (movetos < 2) { + fprintf(fp, "\"type\": \"LineString\", \"coordinates\": [ "); + for (size_t i = 0; i < ops.size(); i++) { + if (i != 0) { + fprintf(fp, ", "); + } + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + } + fprintf(fp, " ]"); + } else { + fprintf(fp, "\"type\": \"MultiLineString\", \"coordinates\": [ [ "); + int state = 0; + for (size_t i = 0; i < ops.size(); i++) { + if (ops[i].op == VT_MOVETO) { + if (state == 0) { + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + state = 1; + } else { + fprintf(fp, " ], [ "); + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + state = 1; + } + } else { + fprintf(fp, ", [ %f, %f ]", ops[i].lon, ops[i].lat); + } + } + fprintf(fp, " ] ]"); + } + } else if (feat.type == VT_POLYGON) { + std::vector > rings; + std::vector areas; + + for (size_t i = 0; i < ops.size(); i++) { + if (ops[i].op == VT_MOVETO) { + rings.push_back(std::vector()); + areas.push_back(0); + } + + int n = rings.size() - 1; + if (n >= 0) { + if (ops[i].op == VT_CLOSEPATH) { + rings[n].push_back(rings[n][0]); + } else { + rings[n].push_back(ops[i]); + } + } + } + + int outer = 0; + + for (size_t i = 0; i < rings.size(); i++) { + long double area = 0; + for (size_t k = 0; k < rings[i].size(); k++) { + if (rings[i][k].op != VT_CLOSEPATH) { + area += rings[i][k].x * rings[i][(k + 1) % rings[i].size()].y; + area -= rings[i][k].y * rings[i][(k + 1) % rings[i].size()].x; + } + } + + areas[i] = area; + if (areas[i] >= 0 || i == 0) { + outer++; + } + + // fprintf(fp, "area %f\n", area / .00000274 / .00000274); + } + + if (outer > 1) { + fprintf(fp, "\"type\": \"MultiPolygon\", \"coordinates\": [ [ [ "); + } else { + fprintf(fp, "\"type\": \"Polygon\", \"coordinates\": [ [ "); + } + + int state = 0; + for (size_t i = 0; i < rings.size(); i++) { + if (areas[i] >= 0) { + if (state != 0) { + // new multipolygon + fprintf(fp, " ] ], [ [ "); + } + state = 1; + } + + if (state == 2) { + // new ring in the same polygon + fprintf(fp, " ], [ "); + } + + for (size_t j = 0; j < rings[i].size(); j++) { + if (rings[i][j].op != VT_CLOSEPATH) { + if (j != 0) { + fprintf(fp, ", "); + } + + fprintf(fp, "[ %f, %f ]", rings[i][j].lon, rings[i][j].lat); + } else { + if (j != 0) { + fprintf(fp, ", "); + } + + fprintf(fp, "[ %f, %f ]", rings[i][0].lon, rings[i][0].lat); + } + } + + state = 2; + } + + if (outer > 1) { + fprintf(fp, " ] ] ]"); + } else { + fprintf(fp, " ] ]"); + } + } + + fprintf(fp, " } }\n"); + } +} + +void fprintq(FILE *fp, const char *s) { + fputc('"', fp); + for (; *s; s++) { + if (*s == '\\' || *s == '"') { + fprintf(fp, "\\%c", *s); + } else if (*s >= 0 && *s < ' ') { + fprintf(fp, "\\u%04x", *s); + } else { + fputc(*s, fp); + } + } + fputc('"', fp); +} diff --git a/plugin.hpp b/plugin.hpp new file mode 100644 index 0000000..1308006 --- /dev/null +++ b/plugin.hpp @@ -0,0 +1,2 @@ +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y); +void fprintq(FILE *f, const char *s); From 94bebbd276d5ef2f00a5ad9fbde57472e9c4b2a6 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 1 Dec 2016 12:04:49 -0800 Subject: [PATCH 02/52] Write GeoJSON to the filter and read (but don't parse) what comes back --- Makefile | 2 +- plugin.cpp | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++ plugin.hpp | 1 + tile.cpp | 1 + 4 files changed, 134 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0dc855b..b72f179 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ tippecanoe-enumerate: enumerate.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lsqlite3 tippecanoe-decode: decode.o projection.o mvt.o plugin.o - $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 + $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o memfile.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread diff --git a/plugin.cpp b/plugin.cpp index afde545..aa0fc11 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -3,11 +3,142 @@ #include #include #include +#include +#include #include "mvt.hpp" #include "plugin.hpp" #include "projection.hpp" #include "geometry.hpp" +struct writer_arg { + int *pipe_orig; + mvt_layer *layer; + unsigned z; + unsigned x; + unsigned y; +}; + +void *run_writer(void *a) { + writer_arg *wa = (writer_arg *) a; + + // XXX worry about SIGPIPE? + + FILE *fp = fdopen(wa->pipe_orig[1], "w"); + if (fp == NULL) { + perror("fdopen (pipe writer)"); + exit(EXIT_FAILURE); + } + + layer_to_geojson(fp, *(wa->layer), wa->z, wa->x, wa->y); + + if (fclose(fp) != 0) { + perror("fclose output to filter"); + exit(EXIT_FAILURE); + } + + return NULL; +} + +mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { + // This will create two pipes, a new thread, and a new process. + // + // The new process will read from one pipe and write to the other, and execute the filter. + // The new thread will write the GeoJSON to the pipe that leads to the filter. + // The original thread will read the GeoJSON from the filter and convert it back into vector tiles. + + int pipe_orig[2], pipe_filtered[2]; + if (pipe(pipe_orig) < 0) { + perror("pipe (original features)"); + exit(EXIT_FAILURE); + } + if (pipe(pipe_filtered) < 0) { + perror("pipe (filtered features)"); + exit(EXIT_FAILURE); + } + + pid_t pid = fork(); + if (pid < 0) { + perror("fork"); + exit(EXIT_FAILURE); + } else if (pid == 0) { + // child + + if (dup2(pipe_orig[0], 0) < 0) { + perror("dup child stdin"); + exit(EXIT_FAILURE); + } + if (dup2(pipe_filtered[1], 1) < 0) { + perror("dup child stdout"); + exit(EXIT_FAILURE); + } + if (close(pipe_orig[1]) != 0) { + perror("close output to filter"); + exit(EXIT_FAILURE); + } + if (close(pipe_filtered[0]) != 0) { + perror("close input from filter"); + exit(EXIT_FAILURE); + } + + // XXX close other fds? + + // XXX add zyx args + if (execlp("sh", "sh", "-c", filter, NULL) != 0) { + perror("exec"); + exit(EXIT_FAILURE); + } + } else { + // parent + + if (close(pipe_orig[0]) != 0) { + perror("close filter-side reader"); + exit(EXIT_FAILURE); + } + if (close(pipe_filtered[1]) != 0) { + perror("close filter-side writer"); + exit(EXIT_FAILURE); + } + + writer_arg wa; + wa.pipe_orig = pipe_orig; + wa.layer = &layer; + wa.z = z; + wa.x = x; + wa.y = y; + + pthread_t writer; + if (pthread_create(&writer, NULL, run_writer, &wa) != 0) { + perror("pthread_create (filter writer)"); + exit(EXIT_FAILURE); + } + + char buf[200]; + size_t count; + while ((count = read(pipe_filtered[0], buf, 200)) != 0) { + write(1, buf, count); + } + + int stat_loc; + if (waitpid(pid, &stat_loc, 0) < 0) { + perror("waitpid for filter\n"); + exit(EXIT_FAILURE); + } + + if (close(pipe_filtered[0]) != 0) { + perror("close output from filter"); + exit(EXIT_FAILURE); + } + + void *ret; + if (pthread_join(writer, &ret) != 0) { + perror("pthread_join filter writer"); + exit(EXIT_FAILURE); + } + } + + return layer; +} + struct lonlat { int op; double lon; diff --git a/plugin.hpp b/plugin.hpp index 1308006..0981ce0 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,2 +1,3 @@ void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y); +mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y); void fprintq(FILE *f, const char *s); diff --git a/tile.cpp b/tile.cpp index ae34f16..0ab9f5b 100644 --- a/tile.cpp +++ b/tile.cpp @@ -29,6 +29,7 @@ #include "serial.hpp" #include "options.hpp" #include "main.hpp" +#include "plugin.hpp" #define CMD_BITS 3 From 72478ae13e87e82cbe7ba5daf770a4cac38f3b4c Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 1 Dec 2016 15:34:44 -0800 Subject: [PATCH 03/52] Be more consistent about checking for errors from close() --- decode.cpp | 5 ++++- main.cpp | 9 ++++++++- tile-join.cpp | 5 ++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/decode.cpp b/decode.cpp index 879d73d..96eb396 100644 --- a/decode.cpp +++ b/decode.cpp @@ -102,7 +102,10 @@ void decode(char *fname, int z, unsigned x, unsigned y) { } else { perror("fstat"); } - close(fd); + if (close(fd) != 0) { + perror("close"); + exit(EXIT_FAILURE); + } } else { perror(fname); } diff --git a/main.cpp b/main.cpp index ca4bd86..61d174b 100644 --- a/main.cpp +++ b/main.cpp @@ -2167,7 +2167,14 @@ int main(int argc, char **argv) { } files_open_at_start = open("/dev/null", O_RDONLY); - close(files_open_at_start); + if (files_open_at_start < 0) { + perror("open /dev/null"); + exit(EXIT_FAILURE); + } + if (close(files_open_at_start) != 0) { + perror("close"); + exit(EXIT_FAILURE); + } if (full_detail <= 0) { full_detail = 12; diff --git a/tile-join.cpp b/tile-join.cpp index 29bd001..ff863c3 100644 --- a/tile-join.cpp +++ b/tile-join.cpp @@ -617,7 +617,10 @@ void readcsv(char *fn, std::vector &header, std::map Date: Mon, 5 Dec 2016 14:12:39 -0800 Subject: [PATCH 04/52] Move JSON-writing again to keep it from requiring all plugin code --- Makefile | 6 +- decode.cpp | 2 +- plugin.cpp | 372 ++++++++++++++----------------------------------- plugin.hpp | 2 - write_json.cpp | 269 +++++++++++++++++++++++++++++++++++ write_json.hpp | 2 + 6 files changed, 382 insertions(+), 271 deletions(-) create mode 100644 write_json.cpp create mode 100644 write_json.hpp diff --git a/Makefile b/Makefile index b72f179..0361053 100644 --- a/Makefile +++ b/Makefile @@ -43,14 +43,14 @@ C = $(wildcard *.c) $(wildcard *.cpp) INCLUDES = -I/usr/local/include -I. LIBS = -L/usr/local/lib -tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o mvt.o serial.o main.o text.o plugin.o +tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o mvt.o serial.o main.o text.o plugin.o write_json.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread tippecanoe-enumerate: enumerate.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lsqlite3 -tippecanoe-decode: decode.o projection.o mvt.o plugin.o - $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread +tippecanoe-decode: decode.o projection.o mvt.o write_json.o + $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o memfile.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread diff --git a/decode.cpp b/decode.cpp index 96eb396..38731a8 100644 --- a/decode.cpp +++ b/decode.cpp @@ -15,7 +15,7 @@ #include "mvt.hpp" #include "projection.hpp" #include "geometry.hpp" -#include "plugin.hpp" +#include "write_json.hpp" void handle(std::string message, int z, unsigned x, unsigned y, int describe) { int within = 0; diff --git a/plugin.cpp b/plugin.cpp index aa0fc11..c888b9f 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -7,9 +7,14 @@ #include #include "mvt.hpp" #include "plugin.hpp" +#include "write_json.hpp" #include "projection.hpp" #include "geometry.hpp" +extern "C" { +#include "jsonpull/jsonpull.h" +} + struct writer_arg { int *pipe_orig; mvt_layer *layer; @@ -39,6 +44,107 @@ void *run_writer(void *a) { return NULL; } +static void json_context(json_object *j) { // XXX share with geojson.cpp + char *s = json_stringify(j); + + if (strlen(s) >= 500) { + sprintf(s + 497, "..."); + } + + fprintf(stderr, "In JSON object %s\n", s); + free(s); // stringify +} + +mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y) { + mvt_layer ret; + + FILE *f = fdopen(fd, "r"); + if (f == NULL) { + perror("fdopen filter output"); + exit(EXIT_FAILURE); + } + json_pull *jp = json_begin_file(f); + + while (1) { + json_object *j = json_read(jp); + if (j == NULL) { + if (jp->error != NULL) { + fprintf(stderr, "Filter output:%d: %s\n", jp->line, jp->error); + if (jp->root != NULL) { + json_context(jp->root); + } + exit(EXIT_FAILURE); + } + + json_free(jp->root); + break; + } + + json_object *type = json_hash_get(j, "type"); + if (type == NULL || type->type != JSON_STRING) { + continue; + } + if (strcmp(type->string, "Feature") != 0) { + continue; + } + + json_object *geometry = json_hash_get(j, "geometry"); + if (geometry == NULL) { + fprintf(stderr, "Filter output:%d: filtered feature with no geometry\n", jp->line); + json_context(j); + json_free(j); + exit(EXIT_FAILURE); + } + + json_object *properties = json_hash_get(j, "properties"); + if (properties == NULL || (properties->type != JSON_HASH && properties->type != JSON_NULL)) { + fprintf(stderr, "Filter output:%d: feature without properties hash\n", jp->line); + json_context(j); + json_free(j); + exit(EXIT_FAILURE); + } + + json_object *geometry_type = json_hash_get(geometry, "type"); + if (geometry_type == NULL) { + fprintf(stderr, "Filter output:%d: null geometry (additional not reported)\n", jp->line); + json_context(j); + exit(EXIT_FAILURE); + } + + if (geometry_type->type != JSON_STRING) { + fprintf(stderr, "Filter output:%d: geometry type is not a string\n", jp->line); + json_context(j); + exit(EXIT_FAILURE); + } + + json_object *coordinates = json_hash_get(geometry, "coordinates"); + if (coordinates == NULL || coordinates->type != JSON_ARRAY) { + fprintf(stderr, "Filter output:%d: feature without coordinates array\n", jp->line); + json_context(j); + exit(EXIT_FAILURE); + } + +#if 0 + int t; + for (t = 0; t < GEOM_TYPES; t++) { + if (strcmp(geometry_type->string, geometry_names[t]) == 0) { + break; + } + } + if (t >= GEOM_TYPES) { + fprintf(stderr, "Filter output:%d: Can't handle geometry type %s\n", jp->line, geometry_type->string); + json_context(j); + exit(EXIT_FAILURE); + } +#endif + + json_free(j); + } + + json_end(jp); + return ret; +} + mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { // This will create two pipes, a new thread, and a new process. // @@ -112,11 +218,7 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } - char buf[200]; - size_t count; - while ((count = read(pipe_filtered[0], buf, 200)) != 0) { - write(1, buf, count); - } + layer = parse_layer(pipe_filtered[0], z, x, y); int stat_loc; if (waitpid(pid, &stat_loc, 0) < 0) { @@ -138,263 +240,3 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne return layer; } - -struct lonlat { - int op; - double lon; - double lat; - int x; - int y; - - lonlat(int nop, double nlon, double nlat, int nx, int ny) { - this->op = nop; - this->lon = nlon; - this->lat = nlat; - this->x = nx; - this->y = ny; - } -}; - -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { - for (size_t f = 0; f < layer.features.size(); f++) { - mvt_feature &feat = layer.features[f]; - - if (f != 0) { - fprintf(fp, ",\n"); - } - - fprintf(fp, "{ \"type\": \"Feature\""); - - if (feat.has_id) { - fprintf(fp, ", \"id\": %llu", feat.id); - } - - fprintf(fp, ", \"properties\": { "); - - for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) { - if (t != 0) { - fprintf(fp, ", "); - } - - if (feat.tags[t] >= layer.keys.size()) { - fprintf(stderr, "Error: out of bounds feature key\n"); - exit(EXIT_FAILURE); - } - if (feat.tags[t + 1] >= layer.values.size()) { - fprintf(stderr, "Error: out of bounds feature value\n"); - exit(EXIT_FAILURE); - } - - const char *key = layer.keys[feat.tags[t]].c_str(); - mvt_value const &val = layer.values[feat.tags[t + 1]]; - - if (val.type == mvt_string) { - fprintq(fp, key); - fprintf(fp, ": "); - fprintq(fp, val.string_value.c_str()); - } else if (val.type == mvt_int) { - fprintq(fp, key); - fprintf(fp, ": %lld", (long long) val.numeric_value.int_value); - } else if (val.type == mvt_double) { - fprintq(fp, key); - double v = val.numeric_value.double_value; - if (v == (long long) v) { - fprintf(fp, ": %lld", (long long) v); - } else { - fprintf(fp, ": %g", v); - } - } else if (val.type == mvt_float) { - fprintq(fp, key); - double v = val.numeric_value.float_value; - if (v == (long long) v) { - fprintf(fp, ": %lld", (long long) v); - } else { - fprintf(fp, ": %g", v); - } - } else if (val.type == mvt_sint) { - fprintq(fp, key); - fprintf(fp, ": %lld", (long long) val.numeric_value.sint_value); - } else if (val.type == mvt_uint) { - fprintq(fp, key); - fprintf(fp, ": %lld", (long long) val.numeric_value.uint_value); - } else if (val.type == mvt_bool) { - fprintq(fp, key); - fprintf(fp, ": %s", val.numeric_value.bool_value ? "true" : "false"); - } - } - - fprintf(fp, " }, \"geometry\": { "); - - std::vector ops; - - for (size_t g = 0; g < feat.geometry.size(); g++) { - int op = feat.geometry[g].op; - long long px = feat.geometry[g].x; - long long py = feat.geometry[g].y; - - if (op == VT_MOVETO || op == VT_LINETO) { - long long scale = 1LL << (32 - z); - long long wx = scale * x + (scale / layer.extent) * px; - long long wy = scale * y + (scale / layer.extent) * py; - - double lat, lon; - projection->unproject(wx, wy, 32, &lon, &lat); - - ops.push_back(lonlat(op, lon, lat, px, py)); - } else { - ops.push_back(lonlat(op, 0, 0, 0, 0)); - } - } - - if (feat.type == VT_POINT) { - if (ops.size() == 1) { - fprintf(fp, "\"type\": \"Point\", \"coordinates\": [ %f, %f ]", ops[0].lon, ops[0].lat); - } else { - fprintf(fp, "\"type\": \"MultiPoint\", \"coordinates\": [ "); - for (size_t i = 0; i < ops.size(); i++) { - if (i != 0) { - fprintf(fp, ", "); - } - fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); - } - fprintf(fp, " ]"); - } - } else if (feat.type == VT_LINE) { - int movetos = 0; - for (size_t i = 0; i < ops.size(); i++) { - if (ops[i].op == VT_MOVETO) { - movetos++; - } - } - - if (movetos < 2) { - fprintf(fp, "\"type\": \"LineString\", \"coordinates\": [ "); - for (size_t i = 0; i < ops.size(); i++) { - if (i != 0) { - fprintf(fp, ", "); - } - fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); - } - fprintf(fp, " ]"); - } else { - fprintf(fp, "\"type\": \"MultiLineString\", \"coordinates\": [ [ "); - int state = 0; - for (size_t i = 0; i < ops.size(); i++) { - if (ops[i].op == VT_MOVETO) { - if (state == 0) { - fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); - state = 1; - } else { - fprintf(fp, " ], [ "); - fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); - state = 1; - } - } else { - fprintf(fp, ", [ %f, %f ]", ops[i].lon, ops[i].lat); - } - } - fprintf(fp, " ] ]"); - } - } else if (feat.type == VT_POLYGON) { - std::vector > rings; - std::vector areas; - - for (size_t i = 0; i < ops.size(); i++) { - if (ops[i].op == VT_MOVETO) { - rings.push_back(std::vector()); - areas.push_back(0); - } - - int n = rings.size() - 1; - if (n >= 0) { - if (ops[i].op == VT_CLOSEPATH) { - rings[n].push_back(rings[n][0]); - } else { - rings[n].push_back(ops[i]); - } - } - } - - int outer = 0; - - for (size_t i = 0; i < rings.size(); i++) { - long double area = 0; - for (size_t k = 0; k < rings[i].size(); k++) { - if (rings[i][k].op != VT_CLOSEPATH) { - area += rings[i][k].x * rings[i][(k + 1) % rings[i].size()].y; - area -= rings[i][k].y * rings[i][(k + 1) % rings[i].size()].x; - } - } - - areas[i] = area; - if (areas[i] >= 0 || i == 0) { - outer++; - } - - // fprintf(fp, "area %f\n", area / .00000274 / .00000274); - } - - if (outer > 1) { - fprintf(fp, "\"type\": \"MultiPolygon\", \"coordinates\": [ [ [ "); - } else { - fprintf(fp, "\"type\": \"Polygon\", \"coordinates\": [ [ "); - } - - int state = 0; - for (size_t i = 0; i < rings.size(); i++) { - if (areas[i] >= 0) { - if (state != 0) { - // new multipolygon - fprintf(fp, " ] ], [ [ "); - } - state = 1; - } - - if (state == 2) { - // new ring in the same polygon - fprintf(fp, " ], [ "); - } - - for (size_t j = 0; j < rings[i].size(); j++) { - if (rings[i][j].op != VT_CLOSEPATH) { - if (j != 0) { - fprintf(fp, ", "); - } - - fprintf(fp, "[ %f, %f ]", rings[i][j].lon, rings[i][j].lat); - } else { - if (j != 0) { - fprintf(fp, ", "); - } - - fprintf(fp, "[ %f, %f ]", rings[i][0].lon, rings[i][0].lat); - } - } - - state = 2; - } - - if (outer > 1) { - fprintf(fp, " ] ] ]"); - } else { - fprintf(fp, " ] ]"); - } - } - - fprintf(fp, " } }\n"); - } -} - -void fprintq(FILE *fp, const char *s) { - fputc('"', fp); - for (; *s; s++) { - if (*s == '\\' || *s == '"') { - fprintf(fp, "\\%c", *s); - } else if (*s >= 0 && *s < ' ') { - fprintf(fp, "\\u%04x", *s); - } else { - fputc(*s, fp); - } - } - fputc('"', fp); -} diff --git a/plugin.hpp b/plugin.hpp index 0981ce0..b8379da 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,3 +1 @@ -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y); mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y); -void fprintq(FILE *f, const char *s); diff --git a/write_json.cpp b/write_json.cpp new file mode 100644 index 0000000..1a1d50d --- /dev/null +++ b/write_json.cpp @@ -0,0 +1,269 @@ +#include +#include +#include +#include +#include +#include "projection.hpp" +#include "geometry.hpp" +#include "mvt.hpp" +#include "write_json.hpp" + +struct lonlat { + int op; + double lon; + double lat; + int x; + int y; + + lonlat(int nop, double nlon, double nlat, int nx, int ny) { + this->op = nop; + this->lon = nlon; + this->lat = nlat; + this->x = nx; + this->y = ny; + } +}; + +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { + for (size_t f = 0; f < layer.features.size(); f++) { + mvt_feature &feat = layer.features[f]; + + if (f != 0) { + fprintf(fp, ",\n"); + } + + fprintf(fp, "{ \"type\": \"Feature\""); + + if (feat.has_id) { + fprintf(fp, ", \"id\": %llu", feat.id); + } + + fprintf(fp, ", \"properties\": { "); + + for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) { + if (t != 0) { + fprintf(fp, ", "); + } + + if (feat.tags[t] >= layer.keys.size()) { + fprintf(stderr, "Error: out of bounds feature key\n"); + exit(EXIT_FAILURE); + } + if (feat.tags[t + 1] >= layer.values.size()) { + fprintf(stderr, "Error: out of bounds feature value\n"); + exit(EXIT_FAILURE); + } + + const char *key = layer.keys[feat.tags[t]].c_str(); + mvt_value const &val = layer.values[feat.tags[t + 1]]; + + if (val.type == mvt_string) { + fprintq(fp, key); + fprintf(fp, ": "); + fprintq(fp, val.string_value.c_str()); + } else if (val.type == mvt_int) { + fprintq(fp, key); + fprintf(fp, ": %lld", (long long) val.numeric_value.int_value); + } else if (val.type == mvt_double) { + fprintq(fp, key); + double v = val.numeric_value.double_value; + if (v == (long long) v) { + fprintf(fp, ": %lld", (long long) v); + } else { + fprintf(fp, ": %g", v); + } + } else if (val.type == mvt_float) { + fprintq(fp, key); + double v = val.numeric_value.float_value; + if (v == (long long) v) { + fprintf(fp, ": %lld", (long long) v); + } else { + fprintf(fp, ": %g", v); + } + } else if (val.type == mvt_sint) { + fprintq(fp, key); + fprintf(fp, ": %lld", (long long) val.numeric_value.sint_value); + } else if (val.type == mvt_uint) { + fprintq(fp, key); + fprintf(fp, ": %lld", (long long) val.numeric_value.uint_value); + } else if (val.type == mvt_bool) { + fprintq(fp, key); + fprintf(fp, ": %s", val.numeric_value.bool_value ? "true" : "false"); + } + } + + fprintf(fp, " }, \"geometry\": { "); + + std::vector ops; + + for (size_t g = 0; g < feat.geometry.size(); g++) { + int op = feat.geometry[g].op; + long long px = feat.geometry[g].x; + long long py = feat.geometry[g].y; + + if (op == VT_MOVETO || op == VT_LINETO) { + long long scale = 1LL << (32 - z); + long long wx = scale * x + (scale / layer.extent) * px; + long long wy = scale * y + (scale / layer.extent) * py; + + double lat, lon; + projection->unproject(wx, wy, 32, &lon, &lat); + + ops.push_back(lonlat(op, lon, lat, px, py)); + } else { + ops.push_back(lonlat(op, 0, 0, 0, 0)); + } + } + + if (feat.type == VT_POINT) { + if (ops.size() == 1) { + fprintf(fp, "\"type\": \"Point\", \"coordinates\": [ %f, %f ]", ops[0].lon, ops[0].lat); + } else { + fprintf(fp, "\"type\": \"MultiPoint\", \"coordinates\": [ "); + for (size_t i = 0; i < ops.size(); i++) { + if (i != 0) { + fprintf(fp, ", "); + } + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + } + fprintf(fp, " ]"); + } + } else if (feat.type == VT_LINE) { + int movetos = 0; + for (size_t i = 0; i < ops.size(); i++) { + if (ops[i].op == VT_MOVETO) { + movetos++; + } + } + + if (movetos < 2) { + fprintf(fp, "\"type\": \"LineString\", \"coordinates\": [ "); + for (size_t i = 0; i < ops.size(); i++) { + if (i != 0) { + fprintf(fp, ", "); + } + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + } + fprintf(fp, " ]"); + } else { + fprintf(fp, "\"type\": \"MultiLineString\", \"coordinates\": [ [ "); + int state = 0; + for (size_t i = 0; i < ops.size(); i++) { + if (ops[i].op == VT_MOVETO) { + if (state == 0) { + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + state = 1; + } else { + fprintf(fp, " ], [ "); + fprintf(fp, "[ %f, %f ]", ops[i].lon, ops[i].lat); + state = 1; + } + } else { + fprintf(fp, ", [ %f, %f ]", ops[i].lon, ops[i].lat); + } + } + fprintf(fp, " ] ]"); + } + } else if (feat.type == VT_POLYGON) { + std::vector > rings; + std::vector areas; + + for (size_t i = 0; i < ops.size(); i++) { + if (ops[i].op == VT_MOVETO) { + rings.push_back(std::vector()); + areas.push_back(0); + } + + int n = rings.size() - 1; + if (n >= 0) { + if (ops[i].op == VT_CLOSEPATH) { + rings[n].push_back(rings[n][0]); + } else { + rings[n].push_back(ops[i]); + } + } + } + + int outer = 0; + + for (size_t i = 0; i < rings.size(); i++) { + long double area = 0; + for (size_t k = 0; k < rings[i].size(); k++) { + if (rings[i][k].op != VT_CLOSEPATH) { + area += rings[i][k].x * rings[i][(k + 1) % rings[i].size()].y; + area -= rings[i][k].y * rings[i][(k + 1) % rings[i].size()].x; + } + } + + areas[i] = area; + if (areas[i] >= 0 || i == 0) { + outer++; + } + + // fprintf(fp, "area %f\n", area / .00000274 / .00000274); + } + + if (outer > 1) { + fprintf(fp, "\"type\": \"MultiPolygon\", \"coordinates\": [ [ [ "); + } else { + fprintf(fp, "\"type\": \"Polygon\", \"coordinates\": [ [ "); + } + + int state = 0; + for (size_t i = 0; i < rings.size(); i++) { + if (areas[i] >= 0) { + if (state != 0) { + // new multipolygon + fprintf(fp, " ] ], [ [ "); + } + state = 1; + } + + if (state == 2) { + // new ring in the same polygon + fprintf(fp, " ], [ "); + } + + for (size_t j = 0; j < rings[i].size(); j++) { + if (rings[i][j].op != VT_CLOSEPATH) { + if (j != 0) { + fprintf(fp, ", "); + } + + fprintf(fp, "[ %f, %f ]", rings[i][j].lon, rings[i][j].lat); + } else { + if (j != 0) { + fprintf(fp, ", "); + } + + fprintf(fp, "[ %f, %f ]", rings[i][0].lon, rings[i][0].lat); + } + } + + state = 2; + } + + if (outer > 1) { + fprintf(fp, " ] ] ]"); + } else { + fprintf(fp, " ] ]"); + } + } + + fprintf(fp, " } }\n"); + } +} + +void fprintq(FILE *fp, const char *s) { + fputc('"', fp); + for (; *s; s++) { + if (*s == '\\' || *s == '"') { + fprintf(fp, "\\%c", *s); + } else if (*s >= 0 && *s < ' ') { + fprintf(fp, "\\u%04x", *s); + } else { + fputc(*s, fp); + } + } + fputc('"', fp); +} diff --git a/write_json.hpp b/write_json.hpp new file mode 100644 index 0000000..1308006 --- /dev/null +++ b/write_json.hpp @@ -0,0 +1,2 @@ +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y); +void fprintq(FILE *f, const char *s); From 4256473283ce793c543987a07434a14b63f55c55 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 5 Dec 2016 15:18:27 -0800 Subject: [PATCH 05/52] More reorganization to reuse JSON parsing --- Makefile | 2 +- geojson.cpp | 37 +------------------------------------ plugin.cpp | 17 +++-------------- read_json.cpp | 39 +++++++++++++++++++++++++++++++++++++++ read_json.hpp | 13 +++++++++++++ 5 files changed, 57 insertions(+), 51 deletions(-) create mode 100644 read_json.cpp create mode 100644 read_json.hpp diff --git a/Makefile b/Makefile index 0361053..db9f04a 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,7 @@ C = $(wildcard *.c) $(wildcard *.cpp) INCLUDES = -I/usr/local/include -I. LIBS = -L/usr/local/lib -tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o mvt.o serial.o main.o text.o plugin.o write_json.o +tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o mvt.o serial.o main.o text.o plugin.o write_json.o read_json.o $(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread tippecanoe-enumerate: enumerate.o diff --git a/geojson.cpp b/geojson.cpp index c04e2b8..4000713 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -38,42 +38,7 @@ extern "C" { #include "options.hpp" #include "serial.hpp" #include "text.hpp" - -#define GEOM_POINT 0 /* array of positions */ -#define GEOM_MULTIPOINT 1 /* array of arrays of positions */ -#define GEOM_LINESTRING 2 /* array of arrays of positions */ -#define GEOM_MULTILINESTRING 3 /* array of arrays of arrays of positions */ -#define GEOM_POLYGON 4 /* array of arrays of arrays of positions */ -#define GEOM_MULTIPOLYGON 5 /* array of arrays of arrays of arrays of positions */ -#define GEOM_TYPES 6 - -static const char *geometry_names[GEOM_TYPES] = { - "Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", -}; - -static int geometry_within[GEOM_TYPES] = { - -1, /* point */ - GEOM_POINT, /* multipoint */ - GEOM_POINT, /* linestring */ - GEOM_LINESTRING, /* multilinestring */ - GEOM_LINESTRING, /* polygon */ - GEOM_POLYGON, /* multipolygon */ -}; - -static int mb_geometry[GEOM_TYPES] = { - VT_POINT, VT_POINT, VT_LINE, VT_LINE, VT_POLYGON, VT_POLYGON, -}; - -void json_context(json_object *j) { - char *s = json_stringify(j); - - if (strlen(s) >= 500) { - sprintf(s + 497, "..."); - } - - fprintf(stderr, "In JSON object %s\n", s); - free(s); // stringify -} +#include "read_json.hpp" long long parse_geometry(int t, json_object *j, long long *bbox, drawvec &out, int op, const char *fname, int line, int *initialized, unsigned *initial_x, unsigned *initial_y, json_object *feature) { long long g = 0; diff --git a/plugin.cpp b/plugin.cpp index c888b9f..e0370e5 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -7,7 +7,6 @@ #include #include "mvt.hpp" #include "plugin.hpp" -#include "write_json.hpp" #include "projection.hpp" #include "geometry.hpp" @@ -15,6 +14,9 @@ extern "C" { #include "jsonpull/jsonpull.h" } +#include "write_json.hpp" +#include "read_json.hpp" + struct writer_arg { int *pipe_orig; mvt_layer *layer; @@ -44,17 +46,6 @@ void *run_writer(void *a) { return NULL; } -static void json_context(json_object *j) { // XXX share with geojson.cpp - char *s = json_stringify(j); - - if (strlen(s) >= 500) { - sprintf(s + 497, "..."); - } - - fprintf(stderr, "In JSON object %s\n", s); - free(s); // stringify -} - mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y) { mvt_layer ret; @@ -124,7 +115,6 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y) { exit(EXIT_FAILURE); } -#if 0 int t; for (t = 0; t < GEOM_TYPES; t++) { if (strcmp(geometry_type->string, geometry_names[t]) == 0) { @@ -136,7 +126,6 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y) { json_context(j); exit(EXIT_FAILURE); } -#endif json_free(j); } diff --git a/read_json.cpp b/read_json.cpp new file mode 100644 index 0000000..1e69b40 --- /dev/null +++ b/read_json.cpp @@ -0,0 +1,39 @@ +#include +#include +#include +#include + +extern "C" { +#include "jsonpull/jsonpull.h" +} + +#include "read_json.hpp" +#include "geometry.hpp" + +const char *geometry_names[GEOM_TYPES] = { + "Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", +}; + +int geometry_within[GEOM_TYPES] = { + -1, /* point */ + GEOM_POINT, /* multipoint */ + GEOM_POINT, /* linestring */ + GEOM_LINESTRING, /* multilinestring */ + GEOM_LINESTRING, /* polygon */ + GEOM_POLYGON, /* multipolygon */ +}; + +int mb_geometry[GEOM_TYPES] = { + VT_POINT, VT_POINT, VT_LINE, VT_LINE, VT_POLYGON, VT_POLYGON, +}; + +void json_context(json_object *j) { + char *s = json_stringify(j); + + if (strlen(s) >= 500) { + sprintf(s + 497, "..."); + } + + fprintf(stderr, "In JSON object %s\n", s); + free(s); // stringify +} diff --git a/read_json.hpp b/read_json.hpp new file mode 100644 index 0000000..8da2c3b --- /dev/null +++ b/read_json.hpp @@ -0,0 +1,13 @@ +#define GEOM_POINT 0 /* array of positions */ +#define GEOM_MULTIPOINT 1 /* array of arrays of positions */ +#define GEOM_LINESTRING 2 /* array of arrays of positions */ +#define GEOM_MULTILINESTRING 3 /* array of arrays of arrays of positions */ +#define GEOM_POLYGON 4 /* array of arrays of arrays of positions */ +#define GEOM_MULTIPOLYGON 5 /* array of arrays of arrays of arrays of positions */ +#define GEOM_TYPES 6 + +extern const char *geometry_names[GEOM_TYPES]; +extern int geometry_within[GEOM_TYPES]; +extern int mb_geometry[GEOM_TYPES]; + +void json_context(json_object *j); From c82e3e98c311778838411a6c1241283c970a8459 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 5 Dec 2016 16:22:44 -0800 Subject: [PATCH 06/52] Factor out parsing the geometry coordinate array --- geojson.cpp | 71 ++++++++------------------------------------------- read_json.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++- read_json.hpp | 1 + 3 files changed, 75 insertions(+), 62 deletions(-) diff --git a/geojson.cpp b/geojson.cpp index 4000713..b0c6daa 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -40,46 +40,13 @@ extern "C" { #include "text.hpp" #include "read_json.hpp" -long long parse_geometry(int t, json_object *j, long long *bbox, drawvec &out, int op, const char *fname, int line, int *initialized, unsigned *initial_x, unsigned *initial_y, json_object *feature) { - long long g = 0; +static long long parse_geometry1(int t, json_object *j, long long *bbox, drawvec &geom, int op, const char *fname, int line, int *initialized, unsigned *initial_x, unsigned *initial_y, json_object *feature) { + parse_geometry(t, j, geom, op, fname, line, feature); - if (j == NULL || j->type != JSON_ARRAY) { - fprintf(stderr, "%s:%d: expected array for type %d\n", fname, line, t); - json_context(feature); - return g; - } - - int within = geometry_within[t]; - if (within >= 0) { - size_t i; - for (i = 0; i < j->length; i++) { - if (within == GEOM_POINT) { - if (i == 0 || mb_geometry[t] == GEOM_MULTIPOINT) { - op = VT_MOVETO; - } else { - op = VT_LINETO; - } - } - - g += parse_geometry(within, j->array[i], bbox, out, op, fname, line, initialized, initial_x, initial_y, feature); - } - } else { - if (j->length >= 2 && j->array[0]->type == JSON_NUMBER && j->array[1]->type == JSON_NUMBER) { - long long x, y; - double lon = j->array[0]->number; - double lat = j->array[1]->number; - projection->project(lon, lat, 32, &x, &y); - - if (j->length > 2) { - static int warned = 0; - - if (!warned) { - fprintf(stderr, "%s:%d: ignoring dimensions beyond two\n", fname, line); - json_context(j); - json_context(feature); - warned = 1; - } - } + for (size_t i = 0; i < geom.size(); i++) { + if (geom[i].op == VT_MOVETO || geom[i].op == VT_LINETO) { + long long x = geom[i].x; + long long y = geom[i].y; if (x < bbox[0]) { bbox[0] = x; @@ -106,30 +73,12 @@ long long parse_geometry(int t, json_object *j, long long *bbox, drawvec &out, i *initialized = 1; } - draw d(op, (x >> geometry_scale), (y >> geometry_scale)); - out.push_back(d); - g++; - } else { - fprintf(stderr, "%s:%d: malformed point\n", fname, line); - json_context(j); - json_context(feature); + geom[i].x = x >> geometry_scale; + geom[i].y = y >> geometry_scale; } } - if (t == GEOM_POLYGON) { - // Note that this is not using the correct meaning of closepath. - // - // We are using it here to close an entire Polygon, to distinguish - // the Polygons within a MultiPolygon from each other. - // - // This will be undone in fix_polygon(), which needs to know which - // rings come from which Polygons so that it can make the winding order - // of the outer ring be the opposite of the order of the inner rings. - - out.push_back(draw(VT_CLOSEPATH, 0, 0)); - } - - return g; + return geom.size(); } int serialize_geometry(json_object *geometry, json_object *properties, json_object *id, const char *reading, int line, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set *exclude, std::set *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, const char *fname, int basezoom, int layer, double droprate, long long *file_bbox, json_object *tippecanoe, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, json_object *feature, std::map *layermap, std::string const &layername, bool uses_gamma) { @@ -287,7 +236,7 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje } drawvec dv; - long long g = parse_geometry(t, coordinates, bbox, dv, VT_MOVETO, fname, line, initialized, initial_x, initial_y, feature); + long long g = parse_geometry1(t, coordinates, bbox, dv, VT_MOVETO, fname, line, initialized, initial_x, initial_y, feature); if (mb_geometry[t] == VT_POLYGON) { dv = fix_polygon(dv); } diff --git a/read_json.cpp b/read_json.cpp index 1e69b40..660d5a1 100644 --- a/read_json.cpp +++ b/read_json.cpp @@ -7,8 +7,9 @@ extern "C" { #include "jsonpull/jsonpull.h" } -#include "read_json.hpp" #include "geometry.hpp" +#include "projection.hpp" +#include "read_json.hpp" const char *geometry_names[GEOM_TYPES] = { "Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", @@ -37,3 +38,65 @@ void json_context(json_object *j) { fprintf(stderr, "In JSON object %s\n", s); free(s); // stringify } + +void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fname, int line, json_object *feature) { + if (j == NULL || j->type != JSON_ARRAY) { + fprintf(stderr, "%s:%d: expected array for type %d\n", fname, line, t); + json_context(feature); + return; + } + + int within = geometry_within[t]; + if (within >= 0) { + size_t i; + for (i = 0; i < j->length; i++) { + if (within == GEOM_POINT) { + if (i == 0 || mb_geometry[t] == GEOM_MULTIPOINT) { + op = VT_MOVETO; + } else { + op = VT_LINETO; + } + } + + parse_geometry(within, j->array[i], out, op, fname, line, feature); + } + } else { + if (j->length >= 2 && j->array[0]->type == JSON_NUMBER && j->array[1]->type == JSON_NUMBER) { + long long x, y; + double lon = j->array[0]->number; + double lat = j->array[1]->number; + projection->project(lon, lat, 32, &x, &y); + + if (j->length > 2) { + static int warned = 0; + + if (!warned) { + fprintf(stderr, "%s:%d: ignoring dimensions beyond two\n", fname, line); + json_context(j); + json_context(feature); + warned = 1; + } + } + + draw d(op, x, y); + out.push_back(draw(op, x, y)); + } else { + fprintf(stderr, "%s:%d: malformed point\n", fname, line); + json_context(j); + json_context(feature); + } + } + + if (t == GEOM_POLYGON) { + // Note that this is not using the correct meaning of closepath. + // + // We are using it here to close an entire Polygon, to distinguish + // the Polygons within a MultiPolygon from each other. + // + // This will be undone in fix_polygon(), which needs to know which + // rings come from which Polygons so that it can make the winding order + // of the outer ring be the opposite of the order of the inner rings. + + out.push_back(draw(VT_CLOSEPATH, 0, 0)); + } +} diff --git a/read_json.hpp b/read_json.hpp index 8da2c3b..7cf4c9f 100644 --- a/read_json.hpp +++ b/read_json.hpp @@ -11,3 +11,4 @@ extern int geometry_within[GEOM_TYPES]; extern int mb_geometry[GEOM_TYPES]; void json_context(json_object *j); +void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fname, int line, json_object *feature); From 679189e5a29d3483fca5cd00a34f33e2716dc952 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 6 Dec 2016 16:33:39 -0800 Subject: [PATCH 07/52] Parse JSON coming back in and turn it back into features --- plugin.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index e0370e5..0decdde 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -46,8 +46,22 @@ void *run_writer(void *a) { return NULL; } -mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y) { +// XXX deduplicate +static std::vector to_feature(drawvec &geom) { + std::vector out; + + for (size_t i = 0; i < geom.size(); i++) { + out.push_back(mvt_geometry(geom[i].op, geom[i].x, geom[i].y)); + } + + return out; +} + +mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer const &olayer) { mvt_layer ret; + ret.name = olayer.name; + ret.version = olayer.version; + ret.extent = olayer.extent; FILE *f = fdopen(fd, "r"); if (f == NULL) { @@ -127,6 +141,61 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y) { exit(EXIT_FAILURE); } + drawvec dv; + parse_geometry(t, coordinates, dv, VT_MOVETO, "Filter output", jp->line, j); + if (mb_geometry[t] == VT_POLYGON) { + dv = fix_polygon(dv); + } + + // Scale and offset geometry from global to tile + for (size_t i = 0; i < dv.size(); i++) { + long long scale = 1LL << (32 - z); + dv[i].x = (dv[i].x - scale * x) * olayer.extent / scale; + dv[i].y = (dv[i].y - scale * y) * olayer.extent / scale; + } + + if (mb_geometry[t] == VT_POLYGON) { + dv = clean_or_clip_poly(dv, 0, 0, 0, false); + if (dv.size() < 3) { + dv.clear(); + } + } + dv = remove_noop(dv, mb_geometry[t], 0); + if (mb_geometry[t] == VT_POLYGON) { + dv = close_poly(dv); + } + + if (dv.size() > 0) { + mvt_feature feature; + feature.type = mb_geometry[t]; + feature.geometry = to_feature(dv); + + json_object *id = json_hash_get(j, "id"); + if (id != NULL) { + feature.id = atoll(id->string); + feature.has_id = true; + } + + for (size_t i = 0; i < properties->length; i++) { + mvt_value v; + + // XXX reconcile with JSON property parsing + if (properties->values[i]->type == JSON_STRING) { + v.type = mvt_string; + v.string_value = std::string(properties->values[i]->string); + } else if (properties->values[i]->type == JSON_NUMBER) { + v.type = mvt_double; + v.numeric_value.double_value = atof(properties->values[i]->string); + } else { + continue; + } + + ret.tag(feature, std::string(properties->keys[i]->string), v); + } + + ret.features.push_back(feature); + } + json_free(j); } @@ -207,7 +276,7 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } - layer = parse_layer(pipe_filtered[0], z, x, y); + layer = parse_layer(pipe_filtered[0], z, x, y, layer); int stat_loc; if (waitpid(pid, &stat_loc, 0) < 0) { From d8fe69a99ecd9a85dfa300431a9e62ccddb0c1dd Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 6 Dec 2016 16:47:56 -0800 Subject: [PATCH 08/52] Round coordinates instead of truncating to avoid projection error --- plugin.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index 0decdde..37ee35e 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "mvt.hpp" #include "plugin.hpp" #include "projection.hpp" @@ -150,8 +151,8 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons // Scale and offset geometry from global to tile for (size_t i = 0; i < dv.size(); i++) { long long scale = 1LL << (32 - z); - dv[i].x = (dv[i].x - scale * x) * olayer.extent / scale; - dv[i].y = (dv[i].y - scale * y) * olayer.extent / scale; + dv[i].x = std::round((dv[i].x - scale * x) * olayer.extent / (double) scale); + dv[i].y = std::round((dv[i].y - scale * y) * olayer.extent / (double) scale); } if (mb_geometry[t] == VT_POLYGON) { From 7514797c4c9d85eecc8b9c2d9d2bf4e54f0203bf Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 6 Dec 2016 17:25:23 -0800 Subject: [PATCH 09/52] Add missing #includes --- plugin.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugin.cpp b/plugin.cpp index 37ee35e..caa8494 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -1,11 +1,14 @@ #include #include +#include #include #include #include #include #include #include +#include +#include #include "mvt.hpp" #include "plugin.hpp" #include "projection.hpp" From 87d86ecfc930d516da573c6b69d01068efa1db6e Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 7 Dec 2016 10:57:56 -0800 Subject: [PATCH 10/52] Set close-on-exec flag for most file descriptors --- decode.cpp | 2 +- main.cpp | 71 ++++++++++++++++++++++++++++++++++-------------------- main.hpp | 3 +++ tile.cpp | 3 ++- 4 files changed, 51 insertions(+), 28 deletions(-) diff --git a/decode.cpp b/decode.cpp index 38731a8..5a69573 100644 --- a/decode.cpp +++ b/decode.cpp @@ -78,7 +78,7 @@ void decode(char *fname, int z, unsigned x, unsigned y) { int oz = z; unsigned ox = x, oy = y; - int fd = open(fname, O_RDONLY); + int fd = open(fname, O_RDONLY | O_CLOEXEC); if (fd >= 0) { struct stat st; if (fstat(fd, &st) == 0) { diff --git a/main.cpp b/main.cpp index 61d174b..169625c 100644 --- a/main.cpp +++ b/main.cpp @@ -150,7 +150,7 @@ void init_cpus() { long long fds[MAX_FILES]; long long i; for (i = 0; i < MAX_FILES; i++) { - fds[i] = open("/dev/null", O_RDONLY); + fds[i] = open("/dev/null", O_RDONLY | O_CLOEXEC); if (fds[i] < 0) { break; } @@ -567,23 +567,23 @@ void radix1(int *geomfds_in, int *indexfds_in, int inputs, int prefix, int split char indexname[strlen(tmpdir) + strlen("/index.XXXXXXXX") + 1]; sprintf(indexname, "%s%s", tmpdir, "/index.XXXXXXXX"); - geomfds[i] = mkstemp(geomname); + geomfds[i] = mkstemp_cloexec(geomname); if (geomfds[i] < 0) { perror(geomname); exit(EXIT_FAILURE); } - indexfds[i] = mkstemp(indexname); + indexfds[i] = mkstemp_cloexec(indexname); if (indexfds[i] < 0) { perror(indexname); exit(EXIT_FAILURE); } - geomfiles[i] = fopen(geomname, "wb"); + geomfiles[i] = fopen_oflag(geomname, "wb", O_WRONLY | O_CLOEXEC); if (geomfiles[i] == NULL) { perror(geomname); exit(EXIT_FAILURE); } - indexfiles[i] = fopen(indexname, "wb"); + indexfiles[i] = fopen_oflag(indexname, "wb", O_WRONLY | O_CLOEXEC); if (indexfiles[i] == NULL) { perror(indexname); exit(EXIT_FAILURE); @@ -962,33 +962,33 @@ int read_input(std::vector &sources, char *fname, const char *layername, sprintf(geomname, "%s%s", tmpdir, "/geom.XXXXXXXX"); sprintf(indexname, "%s%s", tmpdir, "/index.XXXXXXXX"); - r->metafd = mkstemp(metaname); + r->metafd = mkstemp_cloexec(metaname); if (r->metafd < 0) { perror(metaname); exit(EXIT_FAILURE); } - r->poolfd = mkstemp(poolname); + r->poolfd = mkstemp_cloexec(poolname); if (r->poolfd < 0) { perror(poolname); exit(EXIT_FAILURE); } - r->treefd = mkstemp(treename); + r->treefd = mkstemp_cloexec(treename); if (r->treefd < 0) { perror(treename); exit(EXIT_FAILURE); } - r->geomfd = mkstemp(geomname); + r->geomfd = mkstemp_cloexec(geomname); if (r->geomfd < 0) { perror(geomname); exit(EXIT_FAILURE); } - r->indexfd = mkstemp(indexname); + r->indexfd = mkstemp_cloexec(indexname); if (r->indexfd < 0) { perror(indexname); exit(EXIT_FAILURE); } - r->metafile = fopen(metaname, "wb"); + r->metafile = fopen_oflag(metaname, "wb", O_WRONLY | O_CLOEXEC); if (r->metafile == NULL) { perror(metaname); exit(EXIT_FAILURE); @@ -1003,12 +1003,12 @@ int read_input(std::vector &sources, char *fname, const char *layername, perror(treename); exit(EXIT_FAILURE); } - r->geomfile = fopen(geomname, "wb"); + r->geomfile = fopen_oflag(geomname, "wb", O_WRONLY | O_CLOEXEC); if (r->geomfile == NULL) { perror(geomname); exit(EXIT_FAILURE); } - r->indexfile = fopen(indexname, "wb"); + r->indexfile = fopen_oflag(indexname, "wb", O_WRONLY | O_CLOEXEC); if (r->indexfile == NULL) { perror(indexname); exit(EXIT_FAILURE); @@ -1134,7 +1134,7 @@ int read_input(std::vector &sources, char *fname, const char *layername, fd = 0; } else { reading = sources[source].file; - fd = open(sources[source].file.c_str(), O_RDONLY); + fd = open(sources[source].file.c_str(), O_RDONLY, O_CLOEXEC); if (fd < 0) { perror(sources[source].file.c_str()); continue; @@ -1183,7 +1183,7 @@ int read_input(std::vector &sources, char *fname, const char *layername, char readname[strlen(tmpdir) + strlen("/read.XXXXXXXX") + 1]; sprintf(readname, "%s%s", tmpdir, "/read.XXXXXXXX"); - int readfd = mkstemp(readname); + int readfd = mkstemp_cloexec(readname); if (readfd < 0) { perror(readname); exit(EXIT_FAILURE); @@ -1235,7 +1235,7 @@ int read_input(std::vector &sources, char *fname, const char *layername, ahead = 0; sprintf(readname, "%s%s", tmpdir, "/read.XXXXXXXX"); - readfd = mkstemp(readname); + readfd = mkstemp_cloexec(readname); if (readfd < 0) { perror(readname); exit(EXIT_FAILURE); @@ -1334,13 +1334,13 @@ int read_input(std::vector &sources, char *fname, const char *layername, char poolname[strlen(tmpdir) + strlen("/pool.XXXXXXXX") + 1]; sprintf(poolname, "%s%s", tmpdir, "/pool.XXXXXXXX"); - int poolfd = mkstemp(poolname); + int poolfd = mkstemp_cloexec(poolname); if (poolfd < 0) { perror(poolname); exit(EXIT_FAILURE); } - FILE *poolfile = fopen(poolname, "wb"); + FILE *poolfile = fopen_oflag(poolname, "wb", O_WRONLY | O_CLOEXEC); if (poolfile == NULL) { perror(poolname); exit(EXIT_FAILURE); @@ -1351,13 +1351,13 @@ int read_input(std::vector &sources, char *fname, const char *layername, char metaname[strlen(tmpdir) + strlen("/meta.XXXXXXXX") + 1]; sprintf(metaname, "%s%s", tmpdir, "/meta.XXXXXXXX"); - int metafd = mkstemp(metaname); + int metafd = mkstemp_cloexec(metaname); if (metafd < 0) { perror(metaname); exit(EXIT_FAILURE); } - FILE *metafile = fopen(metaname, "wb"); + FILE *metafile = fopen_oflag(metaname, "wb", O_WRONLY | O_CLOEXEC); if (metafile == NULL) { perror(metaname); exit(EXIT_FAILURE); @@ -1434,12 +1434,12 @@ int read_input(std::vector &sources, char *fname, const char *layername, char indexname[strlen(tmpdir) + strlen("/index.XXXXXXXX") + 1]; sprintf(indexname, "%s%s", tmpdir, "/index.XXXXXXXX"); - int indexfd = mkstemp(indexname); + int indexfd = mkstemp_cloexec(indexname); if (indexfd < 0) { perror(indexname); exit(EXIT_FAILURE); } - FILE *indexfile = fopen(indexname, "wb"); + FILE *indexfile = fopen_oflag(indexname, "wb", O_WRONLY | O_CLOEXEC); if (indexfile == NULL) { perror(indexname); exit(EXIT_FAILURE); @@ -1450,12 +1450,12 @@ int read_input(std::vector &sources, char *fname, const char *layername, char geomname[strlen(tmpdir) + strlen("/geom.XXXXXXXX") + 1]; sprintf(geomname, "%s%s", tmpdir, "/geom.XXXXXXXX"); - int geomfd = mkstemp(geomname); + int geomfd = mkstemp_cloexec(geomname); if (geomfd < 0) { perror(geomname); exit(EXIT_FAILURE); } - FILE *geomfile = fopen(geomname, "wb"); + FILE *geomfile = fopen_oflag(geomname, "wb", O_WRONLY | O_CLOEXEC); if (geomfile == NULL) { perror(geomname); exit(EXIT_FAILURE); @@ -2166,7 +2166,7 @@ int main(int argc, char **argv) { } } - files_open_at_start = open("/dev/null", O_RDONLY); + files_open_at_start = open("/dev/null", O_RDONLY | O_CLOEXEC); if (files_open_at_start < 0) { perror("open /dev/null"); exit(EXIT_FAILURE); @@ -2245,7 +2245,7 @@ int main(int argc, char **argv) { muntrace(); #endif - i = open("/dev/null", O_RDONLY); + i = open("/dev/null", O_RDONLY | O_CLOEXEC); // i < files_open_at_start is not an error, because reading from a pipe closes stdin if (i > files_open_at_start) { fprintf(stderr, "Internal error: did not close all files: %d\n", i); @@ -2254,3 +2254,22 @@ int main(int argc, char **argv) { return ret; } + +int mkstemp_cloexec(char *name) { + int fd = mkstemp(name); + if (fd >= 0) { + if (fcntl(fd, F_SETFD, FD_CLOEXEC) < 0) { + perror("cloexec for temporary file"); + exit(EXIT_FAILURE); + } + } + return fd; +} + +FILE *fopen_oflag(const char *name, const char *mode, int oflag) { + int fd = open(name, oflag); + if (fd < 0) { + return NULL; + } + return fdopen(fd, mode); +} diff --git a/main.hpp b/main.hpp index e06908b..8f129c9 100644 --- a/main.hpp +++ b/main.hpp @@ -16,3 +16,6 @@ extern size_t CPUS; extern size_t TEMP_FILES; extern size_t max_tile_size; + +int mkstemp_cloexec(char *name); +FILE *fopen_oflag(const char *name, const char *mode, int oflag); diff --git a/tile.cpp b/tile.cpp index 0ab9f5b..1ec4a79 100644 --- a/tile.cpp +++ b/tile.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include "mvt.hpp" #include "mbtiles.hpp" #include "geometry.hpp" @@ -2067,7 +2068,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo perror(geomname); exit(EXIT_FAILURE); } - sub[j] = fopen(geomname, "wb"); + sub[j] = fopen_oflag(geomname, "wb", O_WRONLY | O_CLOEXEC); if (sub[j] == NULL) { perror(geomname); exit(EXIT_FAILURE); From 3d1ceac96af7eab5e7d7bbd5e1a1d6be7f1e67ee Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 7 Dec 2016 11:16:34 -0800 Subject: [PATCH 11/52] Lock around setup of pipeline and filter process --- plugin.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugin.cpp b/plugin.cpp index caa8494..d95011a 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -207,6 +207,8 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons return ret; } +static pthread_mutex_t pipe_lock = PTHREAD_MUTEX_INITIALIZER; + mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { // This will create two pipes, a new thread, and a new process. // @@ -214,6 +216,11 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne // The new thread will write the GeoJSON to the pipe that leads to the filter. // The original thread will read the GeoJSON from the filter and convert it back into vector tiles. + if (pthread_mutex_lock(&pipe_lock) != 0) { + perror("pthread_mutex_lock (pipe)"); + exit(EXIT_FAILURE); + } + int pipe_orig[2], pipe_filtered[2]; if (pipe(pipe_orig) < 0) { perror("pipe (original features)"); @@ -247,6 +254,14 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne perror("close input from filter"); exit(EXIT_FAILURE); } + if (close(pipe_orig[0]) != 0) { + perror("close dup input of filter"); + exit(EXIT_FAILURE); + } + if (close(pipe_filtered[1]) != 0) { + perror("close dup output of filter"); + exit(EXIT_FAILURE); + } // XXX close other fds? @@ -267,6 +282,11 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } + if (pthread_mutex_unlock(&pipe_lock) != 0) { + perror("pthread_mutex_unlock (pipe_lock)"); + exit(EXIT_FAILURE); + } + writer_arg wa; wa.pipe_orig = pipe_orig; wa.layer = &layer; From 58e268777c3780d3b07392e30ea10aab26f45c19 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 7 Dec 2016 11:19:29 -0800 Subject: [PATCH 12/52] Missed a file for the close-on-exec flag --- tile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tile.cpp b/tile.cpp index 1ec4a79..1d9d746 100644 --- a/tile.cpp +++ b/tile.cpp @@ -2062,7 +2062,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo for (size_t j = 0; j < TEMP_FILES; j++) { char geomname[strlen(tmpdir) + strlen("/geom.XXXXXXXX" XSTRINGIFY(INT_MAX)) + 1]; sprintf(geomname, "%s/geom%zu.XXXXXXXX", tmpdir, j); - subfd[j] = mkstemp(geomname); + subfd[j] = mkstemp_cloexec(geomname); // printf("%s\n", geomname); if (subfd[j] < 0) { perror(geomname); From a114a890d83885d44be99beca2e2d8384ef7b3fb Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 7 Dec 2016 11:25:42 -0800 Subject: [PATCH 13/52] Keep from leaking other pipe file descriptors to unrelated children --- plugin.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugin.cpp b/plugin.cpp index d95011a..e4b5c79 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -281,6 +282,14 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne perror("close filter-side writer"); exit(EXIT_FAILURE); } + if (fcntl(pipe_orig[1], F_SETFD, FD_CLOEXEC) != 0) { + perror("cloxec output to filter"); + exit(EXIT_FAILURE); + } + if (fcntl(pipe_filtered[0], F_SETFD, FD_CLOEXEC) != 0) { + perror("cloxec input from filter"); + exit(EXIT_FAILURE); + } if (pthread_mutex_unlock(&pipe_lock) != 0) { perror("pthread_mutex_unlock (pipe_lock)"); From 5554b9cbbad2dc80e2502d21719c2791564f8208 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 7 Dec 2016 12:15:57 -0800 Subject: [PATCH 14/52] Add the command-line option to specify the filter --- main.cpp | 14 ++++++++++---- plugin.cpp | 7 +++++-- tile.cpp | 12 +++++++++--- tile.hpp | 4 +--- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/main.cpp b/main.cpp index 169625c..e52f847 100644 --- a/main.cpp +++ b/main.cpp @@ -943,7 +943,7 @@ void radix(struct reader *reader, int nreaders, FILE *geomfile, int geomfd, FILE } } -int read_input(std::vector &sources, char *fname, const char *layername, int maxzoom, int minzoom, int basezoom, double basezoom_marker_width, sqlite3 *outdb, std::set *exclude, std::set *include, int exclude_all, double droprate, int buffer, const char *tmpdir, double gamma, int read_parallel, int forcetable, const char *attribution, bool uses_gamma) { +int read_input(std::vector &sources, char *fname, const char *layername, int maxzoom, int minzoom, int basezoom, double basezoom_marker_width, sqlite3 *outdb, std::set *exclude, std::set *include, int exclude_all, double droprate, int buffer, const char *tmpdir, double gamma, int read_parallel, int forcetable, const char *attribution, bool uses_gamma, const char *filter) { int ret = EXIT_SUCCESS; struct reader reader[CPUS]; @@ -1725,7 +1725,7 @@ int read_input(std::vector &sources, char *fname, const char *layername, } unsigned midx = 0, midy = 0; - int written = traverse_zooms(fd, size, meta, stringpool, &midx, &midy, maxzoom, minzoom, basezoom, outdb, droprate, buffer, fname, tmpdir, gamma, full_detail, low_detail, min_detail, meta_off, pool_off, initial_x, initial_y, simplification, layermaps); + int written = traverse_zooms(fd, size, meta, stringpool, &midx, &midy, maxzoom, minzoom, basezoom, outdb, droprate, buffer, fname, tmpdir, gamma, full_detail, low_detail, min_detail, meta_off, pool_off, initial_x, initial_y, simplification, layermaps, filter); if (maxzoom != written) { fprintf(stderr, "\n\n\n*** NOTE TILES ONLY COMPLETE THROUGH ZOOM %d ***\n\n\n", written); @@ -1864,6 +1864,7 @@ int main(int argc, char **argv) { const char *tmpdir = "/tmp"; const char *attribution = NULL; std::vector sources; + const char *filter = NULL; std::set exclude, include; int exclude_all = 0; @@ -1899,6 +1900,7 @@ int main(int argc, char **argv) { {"projection", required_argument, 0, 's'}, {"simplification", required_argument, 0, 'S'}, {"maximum-tile-bytes", required_argument, 0, 'M'}, + {"filter", required_argument, 0, 'c'}, {"exclude-all", no_argument, 0, 'X'}, {"force", no_argument, 0, 'f'}, @@ -1954,7 +1956,7 @@ int main(int argc, char **argv) { } } - while ((i = getopt_long(argc, argv, "n:l:z:Z:B:d:D:m:o:x:y:r:b:t:g:p:a:XfFqvPL:A:s:S:M:", long_options, NULL)) != -1) { + while ((i = getopt_long(argc, argv, "n:l:z:Z:B:d:D:m:o:x:y:r:b:t:g:p:a:XfFqvPL:A:s:S:M:c:", long_options, NULL)) != -1) { switch (i) { case 0: break; @@ -2137,6 +2139,10 @@ int main(int argc, char **argv) { max_tile_size = atoll(optarg); break; + case 'c': + filter = optarg; + break; + default: { int width = 7 + strlen(argv[0]); fprintf(stderr, "Unknown option -%c\n", i); @@ -2237,7 +2243,7 @@ int main(int argc, char **argv) { sources.push_back(src); } - ret = read_input(sources, name ? name : outdir, layer, maxzoom, minzoom, basezoom, basezoom_marker_width, outdb, &exclude, &include, exclude_all, droprate, buffer, tmpdir, gamma, read_parallel, forcetable, attribution, gamma != 0); + ret = read_input(sources, name ? name : outdir, layer, maxzoom, minzoom, basezoom, basezoom_marker_width, outdb, &exclude, &include, exclude_all, droprate, buffer, tmpdir, gamma, read_parallel, forcetable, attribution, gamma != 0, filter); mbtiles_close(outdb, argv); diff --git a/plugin.cpp b/plugin.cpp index e4b5c79..2f64087 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -232,6 +232,10 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } + std::string z_str = std::to_string(z); + std::string x_str = std::to_string(x); + std::string y_str = std::to_string(y); + pid_t pid = fork(); if (pid < 0) { perror("fork"); @@ -266,8 +270,7 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne // XXX close other fds? - // XXX add zyx args - if (execlp("sh", "sh", "-c", filter, NULL) != 0) { + if (execlp("sh", "sh", "-c", filter, "sh", z_str.c_str(), x_str.c_str(), y_str.c_str(), NULL) != 0) { perror("exec"); exit(EXIT_FAILURE); } diff --git a/tile.cpp b/tile.cpp index 1d9d746..264f50c 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1225,9 +1225,10 @@ struct write_tile_args { long long minextent_out; double fraction; double fraction_out; + const char *filter; }; -long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, write_tile_args *arg) { +long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *filter, write_tile_args *arg) { int line_detail; double merge_fraction = 1; double mingap_fraction = 1; @@ -1748,6 +1749,10 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s layer.features.push_back(feature); } + if (filter != NULL) { + layer = filter_layer(filter, layer, z, tx, ty); + } + if (layer.features.size() > 0) { tile.layers.push_back(layer); } @@ -1974,7 +1979,7 @@ void *run_thread(void *vargs) { // fprintf(stderr, "%d/%u/%u\n", z, x, y); - long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, geompos, arg->gamma, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running, arg->simplification, arg->layermaps, arg->layer_unmaps, arg->pass, arg->passes, arg->mingap, arg->minextent, arg->fraction, arg); + long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, geompos, arg->gamma, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running, arg->simplification, arg->layermaps, arg->layer_unmaps, arg->pass, arg->passes, arg->mingap, arg->minextent, arg->fraction, arg->filter, arg); if (len < 0) { int *err = &arg->err; @@ -2039,7 +2044,7 @@ void *run_thread(void *vargs) { return NULL; } -int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector> &layermaps) { +int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector> &layermaps, const char *filter) { // Table to map segment and layer number back to layer name std::vector> layer_unmaps; for (size_t seg = 0; seg < layermaps.size(); seg++) { @@ -2206,6 +2211,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo args[thread].initial_y = initial_y; args[thread].layermaps = &layermaps; args[thread].layer_unmaps = &layer_unmaps; + args[thread].filter = filter; args[thread].tasks = dispatches[thread].tasks; args[thread].running = &running; diff --git a/tile.hpp b/tile.hpp index ffbb960..a4835b4 100644 --- a/tile.hpp +++ b/tile.hpp @@ -1,5 +1,3 @@ -long long write_tile(char **geom, char *metabase, char *stringpool, unsigned *file_bbox, int z, unsigned x, unsigned y, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int file_minzoom, int file_maxzoom, double todo, char *geomstart, long long along, double gamma, int nlayers); - -int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector > &layermap); +int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector > &layermap, const char *filter); int manage_gap(unsigned long long index, unsigned long long *previndex, double scale, double gamma, double *gap); From 3f14a0dd553eb00427f6608c537e46af7d481e2e Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 7 Dec 2016 15:54:58 -0800 Subject: [PATCH 15/52] Factor out conversion from JSON types to vector tile attribute types --- geojson.cpp | 43 +++++++++----------------------- mvt.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ mvt.hpp | 2 ++ plugin.cpp | 18 +++++--------- read_json.cpp | 28 +++++++++++++++++++++ read_json.hpp | 2 ++ tile.cpp | 64 +----------------------------------------------- 7 files changed, 118 insertions(+), 107 deletions(-) diff --git a/geojson.cpp b/geojson.cpp index b0c6daa..dba5857 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -194,41 +194,20 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje continue; } - type_and_string tas; - tas.string = s; - tas.type = -1; + int type = -1; + std::string val; + stringify_value(properties->values[i], type, val, reading, line, feature); - metakey[m] = properties->keys[i]->string; + if (type >= 0) { + metakey[m] = properties->keys[i]->string; + metatype[m] = type; + metaval[m] = val; + m++; - if (properties->values[i] != NULL && properties->values[i]->type == JSON_STRING) { - tas.type = metatype[m] = VT_STRING; - metaval[m] = std::string(properties->values[i]->string); - std::string err = check_utf8(metaval[m]); - if (err != "") { - fprintf(stderr, "%s:%d: %s\n", reading, line, err.c_str()); - json_context(feature); - exit(EXIT_FAILURE); - } - m++; - } else if (properties->values[i] != NULL && properties->values[i]->type == JSON_NUMBER) { - tas.type = metatype[m] = VT_NUMBER; - metaval[m] = std::string(properties->values[i]->string); - m++; - } else if (properties->values[i] != NULL && (properties->values[i]->type == JSON_TRUE || properties->values[i]->type == JSON_FALSE)) { - tas.type = metatype[m] = VT_BOOLEAN; - metaval[m] = std::string(properties->values[i]->type == JSON_TRUE ? "true" : "false"); - m++; - } else if (properties->values[i] != NULL && (properties->values[i]->type == JSON_NULL)) { - ; - } else { - tas.type = metatype[m] = VT_STRING; - const char *v = json_stringify(properties->values[i]); - metaval[m] = std::string(v); - free((void *) v); // stringify - m++; - } + type_and_string tas; + tas.string = s; + tas.type = type; - if (tas.type >= 0) { auto fk = layermap->find(layername); fk->second.file_keys.insert(tas); } diff --git a/mvt.cpp b/mvt.cpp index f11164b..a0fbdbe 100644 --- a/mvt.cpp +++ b/mvt.cpp @@ -4,7 +4,9 @@ #include #include #include +#include #include "mvt.hpp" +#include "geometry.hpp" #include "protozero/varint.hpp" #include "protozero/pbf_reader.hpp" #include "protozero/pbf_writer.hpp" @@ -417,3 +419,69 @@ void mvt_layer::tag(mvt_feature &feature, std::string key, mvt_value value) { feature.tags.push_back(ko); feature.tags.push_back(vo); } + +static int is_integer(const char *s, long long *v) { + errno = 0; + char *endptr; + + *v = strtoll(s, &endptr, 0); + if (*v == 0 && errno != 0) { + return 0; + } + if ((*v == LLONG_MIN || *v == LLONG_MAX) && (errno == ERANGE)) { + return 0; + } + if (*endptr != '\0') { + // Special case: If it is an integer followed by .0000 or similar, + // it is still an integer + + if (*endptr != '.') { + return 0; + } + endptr++; + for (; *endptr != '\0'; endptr++) { + if (*endptr != '0') { + return 0; + } + } + + return 1; + } + + return 1; +} + +mvt_value stringified_to_mvt_value(int type, const char *s) { + mvt_value tv; + + if (type == VT_NUMBER) { + long long v; + if (is_integer(s, &v)) { + if (v >= 0) { + tv.type = mvt_int; + tv.numeric_value.int_value = v; + } else { + tv.type = mvt_sint; + tv.numeric_value.sint_value = v; + } + } else { + double d = atof(s); + + if (d == (float) d) { + tv.type = mvt_float; + tv.numeric_value.float_value = d; + } else { + tv.type = mvt_double; + tv.numeric_value.double_value = d; + } + } + } else if (type == VT_BOOLEAN) { + tv.type = mvt_bool; + tv.numeric_value.bool_value = (s[0] == 't'); + } else { + tv.type = mvt_string; + tv.string_value = s; + } + + return tv; +} diff --git a/mvt.hpp b/mvt.hpp index ff07467..d1b641a 100644 --- a/mvt.hpp +++ b/mvt.hpp @@ -86,3 +86,5 @@ bool is_compressed(std::string const &data); int decompress(std::string const &input, std::string &output); int compress(std::string const &input, std::string &output); int dezig(unsigned n); + +mvt_value stringified_to_mvt_value(int type, const char *s); diff --git a/plugin.cpp b/plugin.cpp index 2f64087..ff77391 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -182,20 +182,14 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons } for (size_t i = 0; i < properties->length; i++) { - mvt_value v; + int tp = -1; + std::string s; - // XXX reconcile with JSON property parsing - if (properties->values[i]->type == JSON_STRING) { - v.type = mvt_string; - v.string_value = std::string(properties->values[i]->string); - } else if (properties->values[i]->type == JSON_NUMBER) { - v.type = mvt_double; - v.numeric_value.double_value = atof(properties->values[i]->string); - } else { - continue; + stringify_value(properties->values[i], tp, s, "Filter output", jp->line, j); + if (tp >= 0) { + mvt_value v = stringified_to_mvt_value(tp, s.c_str()); + ret.tag(feature, std::string(properties->keys[i]->string), v); } - - ret.tag(feature, std::string(properties->keys[i]->string), v); } ret.features.push_back(feature); diff --git a/read_json.cpp b/read_json.cpp index 660d5a1..7158a53 100644 --- a/read_json.cpp +++ b/read_json.cpp @@ -2,6 +2,7 @@ #include #include #include +#include extern "C" { #include "jsonpull/jsonpull.h" @@ -10,6 +11,7 @@ extern "C" { #include "geometry.hpp" #include "projection.hpp" #include "read_json.hpp" +#include "text.hpp" const char *geometry_names[GEOM_TYPES] = { "Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", @@ -100,3 +102,29 @@ void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fna out.push_back(draw(VT_CLOSEPATH, 0, 0)); } } + +void stringify_value(json_object *value, int &type, std::string &stringified, const char *reading, int line, json_object *feature) { + if (value != NULL && value->type == JSON_STRING) { + type = VT_STRING; + stringified = std::string(value->string); + std::string err = check_utf8(stringified); + if (err != "") { + fprintf(stderr, "%s:%d: %s\n", reading, line, err.c_str()); + json_context(feature); + exit(EXIT_FAILURE); + } + } else if (value != NULL && value->type == JSON_NUMBER) { + type = VT_NUMBER; + stringified = std::string(value->string); + } else if (value != NULL && (value->type == JSON_TRUE || value->type == JSON_FALSE)) { + type = VT_BOOLEAN; + stringified = std::string(value->type == JSON_TRUE ? "true" : "false"); + } else if (value != NULL && (value->type == JSON_NULL)) { + ; + } else { + type = VT_STRING; + const char *v = json_stringify(value); + stringified = std::string(v); + free((void *) v); // stringify + } +} diff --git a/read_json.hpp b/read_json.hpp index 7cf4c9f..559329e 100644 --- a/read_json.hpp +++ b/read_json.hpp @@ -12,3 +12,5 @@ extern int mb_geometry[GEOM_TYPES]; void json_context(json_object *j); void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fname, int line, json_object *feature); + +void stringify_value(json_object *value, int &type, std::string &stringified, const char *reading, int line, json_object *feature); diff --git a/tile.cpp b/tile.cpp index 264f50c..9a93501 100644 --- a/tile.cpp +++ b/tile.cpp @@ -62,7 +62,6 @@ bool draws_something(drawvec &geom) { int metacmp(int m1, const std::vector &keys1, const std::vector &values1, char *stringpool1, int m2, const std::vector &keys2, const std::vector &values2, char *stringpool2); int coalindexcmp(const struct coalesce *c1, const struct coalesce *c2); -static int is_integer(const char *s, long long *v); struct coalesce { char *meta; @@ -136,37 +135,7 @@ mvt_value retrieve_string(long long off, char *stringpool, int *otype) { *otype = type; } - mvt_value tv; - if (type == VT_NUMBER) { - long long v; - if (is_integer(s, &v)) { - if (v >= 0) { - tv.type = mvt_int; - tv.numeric_value.int_value = v; - } else { - tv.type = mvt_sint; - tv.numeric_value.sint_value = v; - } - } else { - double d = atof(s); - - if (d == (float) d) { - tv.type = mvt_float; - tv.numeric_value.float_value = d; - } else { - tv.type = mvt_double; - tv.numeric_value.double_value = d; - } - } - } else if (type == VT_BOOLEAN) { - tv.type = mvt_bool; - tv.numeric_value.bool_value = (s[0] == 't'); - } else { - tv.type = mvt_string; - tv.string_value = s; - } - - return tv; + return stringified_to_mvt_value(type, s); } void decode_meta(int m, std::vector &metakeys, std::vector &metavals, char *stringpool, mvt_layer &layer, mvt_feature &feature) { @@ -223,37 +192,6 @@ int metacmp(int m1, const std::vector &keys1, const std::vector &metakeys, std::vector &metavals, bool has_id, unsigned long long id, unsigned long long index, long long extent) { if (geom.size() > 0 && nextzoom <= maxzoom) { int xo, yo; From 8cf81483b17cdc2789b17cbd67ea12f43bf8ca80 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 10:31:27 -0800 Subject: [PATCH 16/52] Add missing #include --- mvt.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/mvt.cpp b/mvt.cpp index a0fbdbe..89ab3f6 100644 --- a/mvt.cpp +++ b/mvt.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "mvt.hpp" #include "geometry.hpp" #include "protozero/varint.hpp" From 6530e155eb9f31cd9fa2e996e0276a123b5b91fc Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 11:14:06 -0800 Subject: [PATCH 17/52] Don't put a comma between features in filter output --- decode.cpp | 2 +- plugin.cpp | 2 +- write_json.cpp | 4 ++-- write_json.hpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/decode.cpp b/decode.cpp index 5a69573..8a9f22d 100644 --- a/decode.cpp +++ b/decode.cpp @@ -63,7 +63,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { within = 0; } - layer_to_geojson(stdout, layer, z, x, y); + layer_to_geojson(stdout, layer, z, x, y, true); if (describe) { printf("] }\n"); diff --git a/plugin.cpp b/plugin.cpp index ff77391..eccbfab 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -41,7 +41,7 @@ void *run_writer(void *a) { exit(EXIT_FAILURE); } - layer_to_geojson(fp, *(wa->layer), wa->z, wa->x, wa->y); + layer_to_geojson(fp, *(wa->layer), wa->z, wa->x, wa->y, false); if (fclose(fp) != 0) { perror("fclose output to filter"); diff --git a/write_json.cpp b/write_json.cpp index 1a1d50d..3097135 100644 --- a/write_json.cpp +++ b/write_json.cpp @@ -24,11 +24,11 @@ struct lonlat { } }; -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma) { for (size_t f = 0; f < layer.features.size(); f++) { mvt_feature &feat = layer.features[f]; - if (f != 0) { + if (comma && f != 0) { fprintf(fp, ",\n"); } diff --git a/write_json.hpp b/write_json.hpp index 1308006..3799fce 100644 --- a/write_json.hpp +++ b/write_json.hpp @@ -1,2 +1,2 @@ -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y); +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma); void fprintq(FILE *f, const char *s); From 5960a15fcd5b31c76959a4b3a2bc28cb264b0c32 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 12:33:02 -0800 Subject: [PATCH 18/52] Add magic #defines to avoid default small Mac stdio limits --- main.cpp | 4 ++++ plugin.cpp | 4 ++++ tile.cpp | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/main.cpp b/main.cpp index e52f847..16365d5 100644 --- a/main.cpp +++ b/main.cpp @@ -2,6 +2,10 @@ #include #endif +#ifdef __APPLE__ +#define _DARWIN_UNLIMITED_STREAMS +#endif + #include #include #include diff --git a/plugin.cpp b/plugin.cpp index eccbfab..b70f49a 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -1,3 +1,7 @@ +#ifdef __APPLE__ +#define _DARWIN_UNLIMITED_STREAMS +#endif + #include #include #include diff --git a/tile.cpp b/tile.cpp index 9a93501..62bfe70 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1,3 +1,7 @@ +#ifdef __APPLE__ +#define _DARWIN_UNLIMITED_STREAMS +#endif + #include #include #include From e3823c966c76b4c4016cddc7831a295423c5c8d5 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 14:02:06 -0800 Subject: [PATCH 19/52] Use more idiomatic C++ to quote JSON strings --- mbtiles.cpp | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/mbtiles.cpp b/mbtiles.cpp index 141e2d9..fae5a44 100644 --- a/mbtiles.cpp +++ b/mbtiles.cpp @@ -86,26 +86,21 @@ void mbtiles_write_tile(sqlite3 *outdb, int z, int tx, int ty, const char *data, } } -static void quote(std::string *buf, const char *s) { - char tmp[strlen(s) * 8 + 1]; - char *out = tmp; - - for (; *s != '\0'; s++) { - unsigned char ch = (unsigned char) *s; +static void quote(std::string &buf, std::string const &s) { + for (size_t i = 0; i < s.size(); i++) { + unsigned char ch = s[i]; if (ch == '\\' || ch == '\"') { - *out++ = '\\'; - *out++ = ch; + buf.push_back('\\'); + buf.push_back(ch); } else if (ch < ' ') { - sprintf(out, "\\u%04x", ch); - out = out + strlen(out); + char tmp[7]; + sprintf(tmp, "\\u%04x", ch); + buf.append(std::string(tmp)); } else { - *out++ = ch; + buf.push_back(ch); } } - - *out = '\0'; - buf->append(tmp, strlen(tmp)); } void aprintf(std::string *buf, const char *format, ...) { @@ -243,7 +238,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int auto fk = layermap.find(lnames[i]); aprintf(&buf, "{ \"id\": \""); - quote(&buf, lnames[i].c_str()); + quote(buf, lnames[i]); aprintf(&buf, "\", \"description\": \"\", \"minzoom\": %d, \"maxzoom\": %d, \"fields\": {", fk->second.minzoom, fk->second.maxzoom); std::set::iterator j; @@ -256,7 +251,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int } aprintf(&buf, "\""); - quote(&buf, j->string.c_str()); + quote(buf, j->string); if (j->type == VT_NUMBER) { aprintf(&buf, "\": \"Number\""); From d1dc310bbcb8c3aa210c722bb1969cd09556839a Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 15:13:38 -0800 Subject: [PATCH 20/52] The GeoJSON-producing part of prefiltering --- decode.cpp | 4 ++-- main.cpp | 20 +++++++++++++------- mvt.hpp | 2 +- plugin.cpp | 2 +- tile.cpp | 47 +++++++++++++++++++++++++++++++++++++++-------- tile.hpp | 2 +- write_json.cpp | 8 +++++++- write_json.hpp | 2 +- 8 files changed, 65 insertions(+), 22 deletions(-) diff --git a/decode.cpp b/decode.cpp index 8a9f22d..49a66dc 100644 --- a/decode.cpp +++ b/decode.cpp @@ -56,14 +56,14 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { printf("{ \"type\": \"FeatureCollection\""); printf(", \"properties\": { \"layer\": "); fprintq(stdout, layer.name.c_str()); - printf(", \"version\": %d, \"extent\": %d", layer.version, layer.extent); + printf(", \"version\": %d, \"extent\": %lld", layer.version, layer.extent); printf(" }"); printf(", \"features\": [\n"); within = 0; } - layer_to_geojson(stdout, layer, z, x, y, true); + layer_to_geojson(stdout, layer, z, x, y, true, false); if (describe) { printf("] }\n"); diff --git a/main.cpp b/main.cpp index 16365d5..a431b7e 100644 --- a/main.cpp +++ b/main.cpp @@ -947,7 +947,7 @@ void radix(struct reader *reader, int nreaders, FILE *geomfile, int geomfd, FILE } } -int read_input(std::vector &sources, char *fname, const char *layername, int maxzoom, int minzoom, int basezoom, double basezoom_marker_width, sqlite3 *outdb, std::set *exclude, std::set *include, int exclude_all, double droprate, int buffer, const char *tmpdir, double gamma, int read_parallel, int forcetable, const char *attribution, bool uses_gamma, const char *filter) { +int read_input(std::vector &sources, char *fname, const char *layername, int maxzoom, int minzoom, int basezoom, double basezoom_marker_width, sqlite3 *outdb, std::set *exclude, std::set *include, int exclude_all, double droprate, int buffer, const char *tmpdir, double gamma, int read_parallel, int forcetable, const char *attribution, bool uses_gamma, const char *prefilter, const char *postfilter) { int ret = EXIT_SUCCESS; struct reader reader[CPUS]; @@ -1729,7 +1729,7 @@ int read_input(std::vector &sources, char *fname, const char *layername, } unsigned midx = 0, midy = 0; - int written = traverse_zooms(fd, size, meta, stringpool, &midx, &midy, maxzoom, minzoom, basezoom, outdb, droprate, buffer, fname, tmpdir, gamma, full_detail, low_detail, min_detail, meta_off, pool_off, initial_x, initial_y, simplification, layermaps, filter); + int written = traverse_zooms(fd, size, meta, stringpool, &midx, &midy, maxzoom, minzoom, basezoom, outdb, droprate, buffer, fname, tmpdir, gamma, full_detail, low_detail, min_detail, meta_off, pool_off, initial_x, initial_y, simplification, layermaps, prefilter, postfilter); if (maxzoom != written) { fprintf(stderr, "\n\n\n*** NOTE TILES ONLY COMPLETE THROUGH ZOOM %d ***\n\n\n", written); @@ -1868,7 +1868,8 @@ int main(int argc, char **argv) { const char *tmpdir = "/tmp"; const char *attribution = NULL; std::vector sources; - const char *filter = NULL; + const char *prefilter = NULL; + const char *postfilter = NULL; std::set exclude, include; int exclude_all = 0; @@ -1904,7 +1905,8 @@ int main(int argc, char **argv) { {"projection", required_argument, 0, 's'}, {"simplification", required_argument, 0, 'S'}, {"maximum-tile-bytes", required_argument, 0, 'M'}, - {"filter", required_argument, 0, 'c'}, + {"prefilter", required_argument, 0, 'C'}, + {"postfilter", required_argument, 0, 'c'}, {"exclude-all", no_argument, 0, 'X'}, {"force", no_argument, 0, 'f'}, @@ -1960,7 +1962,7 @@ int main(int argc, char **argv) { } } - while ((i = getopt_long(argc, argv, "n:l:z:Z:B:d:D:m:o:x:y:r:b:t:g:p:a:XfFqvPL:A:s:S:M:c:", long_options, NULL)) != -1) { + while ((i = getopt_long(argc, argv, "n:l:z:Z:B:d:D:m:o:x:y:r:b:t:g:p:a:XfFqvPL:A:s:S:M:c:C:", long_options, NULL)) != -1) { switch (i) { case 0: break; @@ -2144,7 +2146,11 @@ int main(int argc, char **argv) { break; case 'c': - filter = optarg; + postfilter = optarg; + break; + + case 'C': + prefilter = optarg; break; default: { @@ -2247,7 +2253,7 @@ int main(int argc, char **argv) { sources.push_back(src); } - ret = read_input(sources, name ? name : outdir, layer, maxzoom, minzoom, basezoom, basezoom_marker_width, outdb, &exclude, &include, exclude_all, droprate, buffer, tmpdir, gamma, read_parallel, forcetable, attribution, gamma != 0, filter); + ret = read_input(sources, name ? name : outdir, layer, maxzoom, minzoom, basezoom, basezoom_marker_width, outdb, &exclude, &include, exclude_all, droprate, buffer, tmpdir, gamma, read_parallel, forcetable, attribution, gamma != 0, prefilter, postfilter); mbtiles_close(outdb, argv); diff --git a/mvt.hpp b/mvt.hpp index d1b641a..55c0ff0 100644 --- a/mvt.hpp +++ b/mvt.hpp @@ -65,7 +65,7 @@ struct mvt_layer { std::vector features; std::vector keys; std::vector values; - int extent; + long long extent; // Add a key-value pair to a feature, using this layer's constant pool void tag(mvt_feature &feature, std::string key, mvt_value value); diff --git a/plugin.cpp b/plugin.cpp index b70f49a..49bdaa2 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -45,7 +45,7 @@ void *run_writer(void *a) { exit(EXIT_FAILURE); } - layer_to_geojson(fp, *(wa->layer), wa->z, wa->x, wa->y, false); + layer_to_geojson(fp, *(wa->layer), wa->z, wa->x, wa->y, false, false); if (fclose(fp) != 0) { perror("fclose output to filter"); diff --git a/tile.cpp b/tile.cpp index 62bfe70..5844505 100644 --- a/tile.cpp +++ b/tile.cpp @@ -35,6 +35,7 @@ #include "options.hpp" #include "main.hpp" #include "plugin.hpp" +#include "write_json.hpp" #define CMD_BITS 3 @@ -142,7 +143,7 @@ mvt_value retrieve_string(long long off, char *stringpool, int *otype) { return stringified_to_mvt_value(type, s); } -void decode_meta(int m, std::vector &metakeys, std::vector &metavals, char *stringpool, mvt_layer &layer, mvt_feature &feature) { +void decode_meta(int m, std::vector const &metakeys, std::vector const &metavals, char *stringpool, mvt_layer &layer, mvt_feature &feature) { int i; for (i = 0; i < m; i++) { int otype; @@ -1167,10 +1168,11 @@ struct write_tile_args { long long minextent_out; double fraction; double fraction_out; - const char *filter; + const char *prefilter; + const char *postfilter; }; -long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *filter, write_tile_args *arg) { +long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *prefilter, const char *postfilter, write_tile_args *arg) { int line_detail; double merge_fraction = 1; double mingap_fraction = 1; @@ -1422,6 +1424,34 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s continue; } + if (prefilter != NULL) { + mvt_layer tmp_layer; + tmp_layer.extent = 1LL << 32; + tmp_layer.name = (*layer_unmaps)[segment][layer]; + + mvt_feature tmp_feature; + tmp_feature.type = t; + tmp_feature.geometry = to_feature(geom); + tmp_feature.id = id; + tmp_feature.has_id = id; + + // Offset from tile coordinates back to world coordinates + unsigned sx = 0, sy = 0; + if (z != 0) { + sx = tx << (32 - z); + sy = ty << (32 - z); + } + for (size_t i = 0; i < tmp_feature.geometry.size(); i++) { + tmp_feature.geometry[i].x += sx; + tmp_feature.geometry[i].y += sy; + } + + decode_meta(m, metakeys, metavals, stringpool + pool_off[segment], tmp_layer, tmp_feature); + tmp_layer.features.push_back(tmp_feature); + + layer_to_geojson(stdout, tmp_layer, 0, 0, 0, false, true); + } + if (gamma > 0) { if (manage_gap(index, &previndex, scale, gamma, &gap)) { continue; @@ -1691,8 +1721,8 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s layer.features.push_back(feature); } - if (filter != NULL) { - layer = filter_layer(filter, layer, z, tx, ty); + if (postfilter != NULL) { + layer = filter_layer(postfilter, layer, z, tx, ty); } if (layer.features.size() > 0) { @@ -1921,7 +1951,7 @@ void *run_thread(void *vargs) { // fprintf(stderr, "%d/%u/%u\n", z, x, y); - long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, geompos, arg->gamma, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running, arg->simplification, arg->layermaps, arg->layer_unmaps, arg->pass, arg->passes, arg->mingap, arg->minextent, arg->fraction, arg->filter, arg); + long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, geompos, arg->gamma, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running, arg->simplification, arg->layermaps, arg->layer_unmaps, arg->pass, arg->passes, arg->mingap, arg->minextent, arg->fraction, arg->prefilter, arg->postfilter, arg); if (len < 0) { int *err = &arg->err; @@ -1986,7 +2016,7 @@ void *run_thread(void *vargs) { return NULL; } -int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector> &layermaps, const char *filter) { +int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector> &layermaps, const char *prefilter, const char *postfilter) { // Table to map segment and layer number back to layer name std::vector> layer_unmaps; for (size_t seg = 0; seg < layermaps.size(); seg++) { @@ -2153,7 +2183,8 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo args[thread].initial_y = initial_y; args[thread].layermaps = &layermaps; args[thread].layer_unmaps = &layer_unmaps; - args[thread].filter = filter; + args[thread].prefilter = prefilter; + args[thread].postfilter = postfilter; args[thread].tasks = dispatches[thread].tasks; args[thread].running = &running; diff --git a/tile.hpp b/tile.hpp index a4835b4..6d3f0ca 100644 --- a/tile.hpp +++ b/tile.hpp @@ -1,3 +1,3 @@ -int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector > &layermap, const char *filter); +int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector > &layermap, const char *prefilter, const char *postfilter); int manage_gap(unsigned long long index, unsigned long long *previndex, double scale, double gamma, double *gap); diff --git a/write_json.cpp b/write_json.cpp index 3097135..f5c3173 100644 --- a/write_json.cpp +++ b/write_json.cpp @@ -24,7 +24,7 @@ struct lonlat { } }; -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma) { +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name) { for (size_t f = 0; f < layer.features.size(); f++) { mvt_feature &feat = layer.features[f]; @@ -38,6 +38,12 @@ void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsign fprintf(fp, ", \"id\": %llu", feat.id); } + if (name) { + fprintf(fp, ", \"tippecanoe\": { \"layer\": "); + fprintq(fp, layer.name.c_str()); + fprintf(fp, " }"); + } + fprintf(fp, ", \"properties\": { "); for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) { diff --git a/write_json.hpp b/write_json.hpp index 3799fce..685a853 100644 --- a/write_json.hpp +++ b/write_json.hpp @@ -1,2 +1,2 @@ -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma); +void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name); void fprintq(FILE *f, const char *s); From d940eb1cef6c6f49347e86672edbb388fee056f9 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 15:43:52 -0800 Subject: [PATCH 21/52] Factor out filter setup from the reading and writing loops --- plugin.cpp | 68 ++++++++++++++++++++++++++++++++---------------------- plugin.hpp | 1 + 2 files changed, 42 insertions(+), 27 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index 49bdaa2..0fb0837 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -27,7 +27,7 @@ extern "C" { #include "read_json.hpp" struct writer_arg { - int *pipe_orig; + int write_to; mvt_layer *layer; unsigned z; unsigned x; @@ -39,7 +39,7 @@ void *run_writer(void *a) { // XXX worry about SIGPIPE? - FILE *fp = fdopen(wa->pipe_orig[1], "w"); + FILE *fp = fdopen(wa->write_to, "w"); if (fp == NULL) { perror("fdopen (pipe writer)"); exit(EXIT_FAILURE); @@ -208,7 +208,7 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons static pthread_mutex_t pipe_lock = PTHREAD_MUTEX_INITIALIZER; -mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { +void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y) { // This will create two pipes, a new thread, and a new process. // // The new process will read from one pipe and write to the other, and execute the filter. @@ -234,11 +234,11 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne std::string x_str = std::to_string(x); std::string y_str = std::to_string(y); - pid_t pid = fork(); - if (pid < 0) { + *pid = fork(); + if (*pid < 0) { perror("fork"); exit(EXIT_FAILURE); - } else if (pid == 0) { + } else if (*pid == 0) { // child if (dup2(pipe_orig[0], 0) < 0) { @@ -297,37 +297,51 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } - writer_arg wa; - wa.pipe_orig = pipe_orig; - wa.layer = &layer; - wa.z = z; - wa.x = x; - wa.y = y; + *write_to = pipe_orig[1]; + *read_from = pipe_filtered[0]; + } +} - pthread_t writer; - if (pthread_create(&writer, NULL, run_writer, &wa) != 0) { - perror("pthread_create (filter writer)"); - exit(EXIT_FAILURE); - } +mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { + int write_to, read_from; + pid_t pid; + setup_filter(filter, &write_to, &read_from, &pid, z, x, y); - layer = parse_layer(pipe_filtered[0], z, x, y, layer); + writer_arg wa; + wa.write_to = write_to; + wa.layer = &layer; + wa.z = z; + wa.x = x; + wa.y = y; + pthread_t writer; + if (pthread_create(&writer, NULL, run_writer, &wa) != 0) { + perror("pthread_create (filter writer)"); + exit(EXIT_FAILURE); + } + + layer = parse_layer(read_from, z, x, y, layer); + + if (close(read_from) != 0) { + perror("close output from filter"); + exit(EXIT_FAILURE); + } + + while (1) { int stat_loc; if (waitpid(pid, &stat_loc, 0) < 0) { perror("waitpid for filter\n"); exit(EXIT_FAILURE); } - - if (close(pipe_filtered[0]) != 0) { - perror("close output from filter"); - exit(EXIT_FAILURE); + if (WIFEXITED(stat_loc) || WIFSIGNALED(stat_loc)) { + break; } + } - void *ret; - if (pthread_join(writer, &ret) != 0) { - perror("pthread_join filter writer"); - exit(EXIT_FAILURE); - } + void *ret; + if (pthread_join(writer, &ret) != 0) { + perror("pthread_join filter writer"); + exit(EXIT_FAILURE); } return layer; diff --git a/plugin.hpp b/plugin.hpp index b8379da..de6e450 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1 +1,2 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y); +void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y); From 16df86c26e505868621ac98f53a2ffbe39ebd557 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 16:09:20 -0800 Subject: [PATCH 22/52] Set up and tear down the prefilter pipeline --- tile.cpp | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/tile.cpp b/tile.cpp index 5844505..e46659f 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1243,6 +1243,18 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s *geompos_in = og; } + int prefilter_write = -1, prefilter_read = -1; + pid_t prefilter_pid = 0; + FILE *prefilter_fd = NULL; + if (prefilter != NULL) { + setup_filter(prefilter, &prefilter_write, &prefilter_read, &prefilter_pid, z, tx, ty); + prefilter_fd = fdopen(prefilter_write, "w"); + if (prefilter_fd == NULL) { + perror("freopen prefilter"); + exit(EXIT_FAILURE); + } + } + while (1) { signed char t; deserialize_byte_io(geoms, &t, geompos_in); @@ -1449,7 +1461,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s decode_meta(m, metakeys, metavals, stringpool + pool_off[segment], tmp_layer, tmp_feature); tmp_layer.features.push_back(tmp_feature); - layer_to_geojson(stdout, tmp_layer, 0, 0, 0, false, true); + layer_to_geojson(prefilter_fd, tmp_layer, 0, 0, 0, false, true); } if (gamma > 0) { @@ -1525,6 +1537,27 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s merge_previndex = index; } + if (prefilter != NULL) { + if (fclose(prefilter_fd) != 0) { + perror("fclose output to prefilter"); + exit(EXIT_FAILURE); + } + if (close(prefilter_read) != 0) { + perror("close output from prefilter"); + exit(EXIT_FAILURE); + } + while (1) { + int stat_loc; + if (waitpid(prefilter_pid, &stat_loc, 0) < 0) { + perror("waitpid for prefilter\n"); + exit(EXIT_FAILURE); + } + if (WIFEXITED(stat_loc) || WIFSIGNALED(stat_loc)) { + break; + } + } + } + first_time = false; bool merge_successful = true; From 569825324a20dbc1c577aeea87085eed411047a9 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 16:28:57 -0800 Subject: [PATCH 23/52] Factor out feature deserialization --- geometry.cpp | 2 +- geometry.hpp | 2 +- serial.cpp | 80 ++++++++++++++++++++++ serial.hpp | 4 ++ tile.cpp | 189 ++++++++++++++++----------------------------------- 5 files changed, 143 insertions(+), 134 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 7e1b203..2746d39 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -18,7 +18,7 @@ static int pnpoly(drawvec &vert, size_t start, size_t nvert, long long testx, long long testy); static int clip(double *x0, double *y0, double *x1, double *y1, double xmin, double ymin, double xmax, double ymax); -drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsigned ty, int detail, long long *bbox, unsigned initial_x, unsigned initial_y) { +drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsigned ty, long long *bbox, unsigned initial_x, unsigned initial_y) { drawvec out; bbox[0] = LLONG_MAX; diff --git a/geometry.hpp b/geometry.hpp index ce4517c..8f522d9 100644 --- a/geometry.hpp +++ b/geometry.hpp @@ -53,7 +53,7 @@ struct draw { typedef std::vector drawvec; -drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsigned ty, int detail, long long *bbox, unsigned initial_x, unsigned initial_y); +drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsigned ty, long long *bbox, unsigned initial_x, unsigned initial_y); void to_tile_scale(drawvec &geom, int z, int detail); drawvec remove_noop(drawvec geom, int type, int shift); drawvec clip_point(drawvec &geom, int z, int detail, long long buffer); diff --git a/serial.cpp b/serial.cpp index c3b6649..4e68eef 100644 --- a/serial.cpp +++ b/serial.cpp @@ -230,3 +230,83 @@ void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, c serialize_byte(geomfile, sf->feature_minzoom, geompos, fname); } } + +serial_feature deserialize_feature(FILE *geoms, long long *geompos_in, char *metabase, long long *meta_off, unsigned z, unsigned tx, unsigned ty, unsigned *initial_x, unsigned *initial_y) { + serial_feature sf; + + deserialize_byte_io(geoms, &sf.t, geompos_in); + if (sf.t < 0) { + return sf; + } + + deserialize_long_long_io(geoms, &sf.layer, geompos_in); + + sf.seq = 0; + if (sf.layer & (1 << 5)) { + deserialize_long_long_io(geoms, &sf.seq, geompos_in); + } + + sf.tippecanoe_minzoom = -1; + sf.tippecanoe_maxzoom = -1; + sf.id = 0; + sf.has_id = false; + if (sf.layer & (1 << 1)) { + deserialize_int_io(geoms, &sf.tippecanoe_minzoom, geompos_in); + } + if (sf.layer & (1 << 0)) { + deserialize_int_io(geoms, &sf.tippecanoe_maxzoom, geompos_in); + } + if (sf.layer & (1 << 2)) { + sf.has_id = true; + deserialize_ulong_long_io(geoms, &sf.id, geompos_in); + } + + deserialize_int_io(geoms, &sf.segment, geompos_in); + + sf.index = 0; + sf.extent = 0; + + sf.geometry = decode_geometry(geoms, geompos_in, z, tx, ty, sf.bbox, initial_x[sf.segment], initial_y[sf.segment]); + if (sf.layer & (1 << 4)) { + deserialize_ulong_long_io(geoms, &sf.index, geompos_in); + } + if (sf.layer & (1 << 3)) { + deserialize_long_long_io(geoms, &sf.extent, geompos_in); + } + + sf.layer >>= 6; + + sf.metapos = 0; + { + int m; + deserialize_int_io(geoms, &m, geompos_in); + sf.m = m; + } + if (sf.m != 0) { + deserialize_long_long_io(geoms, &sf.metapos, geompos_in); + } + + if (sf.metapos >= 0) { + char *meta = metabase + sf.metapos + meta_off[sf.segment]; + + for (size_t i = 0; i < sf.m; i++) { + long long k, v; + deserialize_long_long(&meta, &k); + deserialize_long_long(&meta, &v); + sf.keys.push_back(k); + sf.values.push_back(v); + } + } else { + for (size_t i = 0; i < sf.m; i++) { + long long k, v; + deserialize_long_long_io(geoms, &k, geompos_in); + deserialize_long_long_io(geoms, &v, geompos_in); + sf.keys.push_back(k); + sf.values.push_back(v); + } + } + + deserialize_byte_io(geoms, &sf.feature_minzoom, geompos_in); + + return sf; +} diff --git a/serial.hpp b/serial.hpp index abe2fed..065ca0c 100644 --- a/serial.hpp +++ b/serial.hpp @@ -44,6 +44,10 @@ struct serial_feature { std::vector keys; std::vector values; long long metapos; + + // XXX This isn't serialized. Should it be here? + long long bbox[4]; }; void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, const char *fname, long long wx, long long wy, bool include_minzoom); +serial_feature deserialize_feature(FILE *geoms, long long *geompos_in, char *metabase, long long *meta_off, unsigned z, unsigned tx, unsigned ty, unsigned *initial_x, unsigned *initial_y); diff --git a/tile.cpp b/tile.cpp index e46659f..2991a56 100644 --- a/tile.cpp +++ b/tile.cpp @@ -69,7 +69,6 @@ int metacmp(int m1, const std::vector &keys1, const std::vector keys; std::vector values; @@ -310,7 +309,6 @@ struct partial { std::vector keys; std::vector values; std::vector arc_polygon; - char *meta; long long layer; long long original_seq; unsigned long long index; @@ -1256,82 +1254,11 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } while (1) { - signed char t; - deserialize_byte_io(geoms, &t, geompos_in); - if (t < 0) { + serial_feature sf = deserialize_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y); + if (sf.t < 0) { break; } - long long xlayer; - deserialize_long_long_io(geoms, &xlayer, geompos_in); - - long long original_seq = 0; - if (xlayer & (1 << 5)) { - deserialize_long_long_io(geoms, &original_seq, geompos_in); - } - - int tippecanoe_minzoom = -1, tippecanoe_maxzoom = -1; - unsigned long long id = 0; - bool has_id = false; - if (xlayer & (1 << 1)) { - deserialize_int_io(geoms, &tippecanoe_minzoom, geompos_in); - } - if (xlayer & (1 << 0)) { - deserialize_int_io(geoms, &tippecanoe_maxzoom, geompos_in); - } - if (xlayer & (1 << 2)) { - has_id = true; - deserialize_ulong_long_io(geoms, &id, geompos_in); - } - long long layer = xlayer >> 6; - - int segment; - deserialize_int_io(geoms, &segment, geompos_in); - - long long bbox[4]; - unsigned long long index = 0; - long long extent = 0; - - drawvec geom = decode_geometry(geoms, geompos_in, z, tx, ty, line_detail, bbox, initial_x[segment], initial_y[segment]); - if (xlayer & (1 << 4)) { - deserialize_ulong_long_io(geoms, &index, geompos_in); - } - if (xlayer & (1 << 3)) { - deserialize_long_long_io(geoms, &extent, geompos_in); - } - - long long metastart = 0; - int m; - deserialize_int_io(geoms, &m, geompos_in); - if (m != 0) { - deserialize_long_long_io(geoms, &metastart, geompos_in); - } - char *meta = NULL; - std::vector metakeys, metavals; - - if (metastart >= 0) { - meta = metabase + metastart + meta_off[segment]; - - for (int i = 0; i < m; i++) { - long long k, v; - deserialize_long_long(&meta, &k); - deserialize_long_long(&meta, &v); - metakeys.push_back(k); - metavals.push_back(v); - } - } else { - for (int i = 0; i < m; i++) { - long long k, v; - deserialize_long_long_io(geoms, &k, geompos_in); - deserialize_long_long_io(geoms, &v, geompos_in); - metakeys.push_back(k); - metavals.push_back(v); - } - } - - signed char feature_minzoom; - deserialize_byte_io(geoms, &feature_minzoom, geompos_in); - double progress = floor(((((*geompos_in + *along - alongminus) / (double) todo) + (pass - (2 - passes))) / passes + z) / (maxzoom + 1) * 1000) / 10; if (progress >= oprogress + 0.1) { if (!quiet) { @@ -1342,32 +1269,32 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s original_features++; - int quick = quick_check(bbox, z, line_detail, buffer); + int quick = quick_check(sf.bbox, z, line_detail, buffer); if (quick == 0) { continue; } if (z == 0) { - if (bbox[0] < 0 || bbox[2] > 1LL << 32) { + if (sf.bbox[0] < 0 || sf.bbox[2] > 1LL << 32) { // If the geometry extends off the edge of the world, concatenate on another copy // shifted by 360 degrees, and then make sure both copies get clipped down to size. - size_t n = geom.size(); + size_t n = sf.geometry.size(); - if (bbox[0] < 0) { + if (sf.bbox[0] < 0) { for (size_t i = 0; i < n; i++) { - geom.push_back(draw(geom[i].op, geom[i].x + (1LL << 32), geom[i].y)); + sf.geometry.push_back(draw(sf.geometry[i].op, sf.geometry[i].x + (1LL << 32), sf.geometry[i].y)); } } - if (bbox[2] > 1LL << 32) { + if (sf.bbox[2] > 1LL << 32) { for (size_t i = 0; i < n; i++) { - geom.push_back(draw(geom[i].op, geom[i].x - (1LL << 32), geom[i].y)); + sf.geometry.push_back(draw(sf.geometry[i].op, sf.geometry[i].x - (1LL << 32), sf.geometry[i].y)); } } - bbox[0] = 0; - bbox[2] = 1LL << 32; + sf.bbox[0] = 0; + sf.bbox[2] = 1LL << 32; quick = -1; } @@ -1382,70 +1309,70 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s // so that we can know whether the feature itself, or only the feature's // bounding box, touches the tile. - if (t == VT_LINE) { - clipped = clip_lines(geom, z, line_detail, buffer); + if (sf.t == VT_LINE) { + clipped = clip_lines(sf.geometry, z, line_detail, buffer); } - if (t == VT_POLYGON) { - clipped = simple_clip_poly(geom, z, line_detail, buffer); + if (sf.t == VT_POLYGON) { + clipped = simple_clip_poly(sf.geometry, z, line_detail, buffer); } - if (t == VT_POINT) { - clipped = clip_point(geom, z, line_detail, buffer); + if (sf.t == VT_POINT) { + clipped = clip_point(sf.geometry, z, line_detail, buffer); } - clipped = remove_noop(clipped, t, 0); + clipped = remove_noop(clipped, sf.t, 0); // Must clip at z0 even if we don't want clipping, to handle features // that are duplicated across the date line if (prevent[P_DUPLICATION] && z != 0) { - if (point_within_tile((bbox[0] + bbox[2]) / 2, (bbox[1] + bbox[3]) / 2, z, line_detail, buffer)) { - // geom is unchanged + if (point_within_tile((sf.bbox[0] + sf.bbox[2]) / 2, (sf.bbox[1] + sf.bbox[3]) / 2, z, line_detail, buffer)) { + // sf.geometry is unchanged } else { - geom.clear(); + sf.geometry.clear(); } } else if (prevent[P_CLIPPING] && z != 0) { if (clipped.size() == 0) { - geom.clear(); + sf.geometry.clear(); } else { - // geom is unchanged + // sf.geometry is unchanged } } else { - geom = clipped; + sf.geometry = clipped; } } - if (geom.size() > 0) { + if (sf.geometry.size() > 0) { unclipped_features++; } if (first_time && pass == 1) { /* only write out the next zoom once, even if we retry */ - rewrite(geom, z, nextzoom, maxzoom, bbox, tx, ty, buffer, line_detail, within, geompos, geomfile, fname, t, layer, metastart, feature_minzoom, child_shards, max_zoom_increment, original_seq, tippecanoe_minzoom, tippecanoe_maxzoom, segment, initial_x, initial_y, m, metakeys, metavals, has_id, id, index, extent); + rewrite(sf.geometry, z, nextzoom, maxzoom, sf.bbox, tx, ty, buffer, line_detail, within, geompos, geomfile, fname, sf.t, sf.layer, sf.metapos, sf.feature_minzoom, child_shards, max_zoom_increment, sf.seq, sf.tippecanoe_minzoom, sf.tippecanoe_maxzoom, sf.segment, initial_x, initial_y, sf.m, sf.keys, sf.values, sf.has_id, sf.id, sf.index, sf.extent); } if (z < minzoom) { continue; } - if (tippecanoe_minzoom != -1 && z < tippecanoe_minzoom) { + if (sf.tippecanoe_minzoom != -1 && z < sf.tippecanoe_minzoom) { continue; } - if (tippecanoe_maxzoom != -1 && z > tippecanoe_maxzoom) { + if (sf.tippecanoe_maxzoom != -1 && z > sf.tippecanoe_maxzoom) { continue; } - if (tippecanoe_minzoom == -1 && z < feature_minzoom) { + if (sf.tippecanoe_minzoom == -1 && z < sf.feature_minzoom) { continue; } if (prefilter != NULL) { mvt_layer tmp_layer; tmp_layer.extent = 1LL << 32; - tmp_layer.name = (*layer_unmaps)[segment][layer]; + tmp_layer.name = (*layer_unmaps)[sf.segment][sf.layer]; mvt_feature tmp_feature; - tmp_feature.type = t; - tmp_feature.geometry = to_feature(geom); - tmp_feature.id = id; - tmp_feature.has_id = id; + tmp_feature.type = sf.t; + tmp_feature.geometry = to_feature(sf.geometry); + tmp_feature.id = sf.id; + tmp_feature.has_id = sf.has_id; // Offset from tile coordinates back to world coordinates unsigned sx = 0, sy = 0; @@ -1458,27 +1385,27 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s tmp_feature.geometry[i].y += sy; } - decode_meta(m, metakeys, metavals, stringpool + pool_off[segment], tmp_layer, tmp_feature); + decode_meta(sf.m, sf.keys, sf.values, stringpool + pool_off[sf.segment], tmp_layer, tmp_feature); tmp_layer.features.push_back(tmp_feature); layer_to_geojson(prefilter_fd, tmp_layer, 0, 0, 0, false, true); } if (gamma > 0) { - if (manage_gap(index, &previndex, scale, gamma, &gap)) { + if (manage_gap(sf.index, &previndex, scale, gamma, &gap)) { continue; } } if (additional[A_DROP_DENSEST_AS_NEEDED]) { - indices.push_back(index); - if (index - merge_previndex < mingap) { + indices.push_back(sf.index); + if (sf.index - merge_previndex < mingap) { continue; } } if (additional[A_DROP_SMALLEST_AS_NEEDED]) { - extents.push_back(extent); - if (extent <= minextent && t != VT_POINT) { + extents.push_back(sf.extent); + if (sf.extent <= minextent && sf.t != VT_POINT) { continue; } } @@ -1490,8 +1417,8 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s // that standard, so that duplicates aren't reported as infinitely dense. double o_density_previndex = density_previndex; - if (!manage_gap(index, &density_previndex, scale, 1, &density_gap)) { - spacing = (index - o_density_previndex) / scale; + if (!manage_gap(sf.index, &density_previndex, scale, 1, &density_gap)) { + spacing = (sf.index - o_density_previndex) / scale; } } @@ -1502,39 +1429,38 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s fraction_accum -= 1; bool reduced = false; - if (t == VT_POLYGON) { + if (sf.t == VT_POLYGON) { if (!prevent[P_TINY_POLYGON_REDUCTION] && !additional[A_GRID_LOW_ZOOMS]) { - geom = reduce_tiny_poly(geom, z, line_detail, &reduced, &accum_area); + sf.geometry = reduce_tiny_poly(sf.geometry, z, line_detail, &reduced, &accum_area); } has_polygons = true; } - if (geom.size() > 0) { + if (sf.geometry.size() > 0) { partial p; - p.geoms.push_back(geom); - p.layer = layer; - p.m = m; - p.meta = meta; - p.t = t; - p.segment = segment; - p.original_seq = original_seq; + p.geoms.push_back(sf.geometry); + p.layer = sf.layer; + p.m = sf.m; + p.t = sf.t; + p.segment = sf.segment; + p.original_seq = sf.seq; p.reduced = reduced; p.z = z; p.line_detail = line_detail; p.maxzoom = maxzoom; - p.keys = metakeys; - p.values = metavals; + p.keys = sf.keys; + p.values = sf.values; p.spacing = spacing; p.simplification = simplification; - p.id = id; - p.has_id = has_id; + p.id = sf.id; + p.has_id = sf.has_id; p.index2 = merge_previndex; - p.index = index; + p.index = sf.index; p.renamed = -1; partials.push_back(p); } - merge_previndex = index; + merge_previndex = sf.index; } if (prefilter != NULL) { @@ -1616,7 +1542,6 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s c.coalesced = false; c.original_seq = original_seq; c.m = partials[i].m; - c.meta = partials[i].meta; c.stringpool = stringpool + pool_off[partials[i].segment]; c.keys = partials[i].keys; c.values = partials[i].values; From daf1941ba9cd666613f7eef72489d323d8d89c08 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 8 Dec 2016 17:22:07 -0800 Subject: [PATCH 24/52] Add missing #include --- tile.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tile.cpp b/tile.cpp index 2991a56..584e8cc 100644 --- a/tile.cpp +++ b/tile.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include "mvt.hpp" #include "mbtiles.hpp" #include "geometry.hpp" From 5194a39c16d8e35f6d935ea3eb6ae853c9f4d002 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 9 Dec 2016 10:47:03 -0800 Subject: [PATCH 25/52] Factor out clipping to tile boundaries; test random attributes & layers --- Makefile | 13 ++--- geometry.cpp | 10 ++-- geometry.hpp | 10 ++-- tile.cpp | 146 +++++++++++++++++++++++++++------------------------ 4 files changed, 94 insertions(+), 85 deletions(-) diff --git a/Makefile b/Makefile index db9f04a..aae15cf 100644 --- a/Makefile +++ b/Makefile @@ -87,16 +87,17 @@ test: tippecanoe tippecanoe-decode $(addsuffix .check,$(TESTS)) parallel-test pb parallel-test: mkdir -p tests/parallel - perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; print "{ \"type\": \"Feature\", \"properties\": { \"yes\": \"no\", \"who\": 1 }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in1.json + perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; $$k = rand(1); $$v = rand(1); print "{ \"type\": \"Feature\", \"properties\": { \"yes\": \"no\", \"who\": 1, \"$$k\": \"$$v\" }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in1.json perl -e 'for ($$i = 0; $$i < 300000; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; print "{ \"type\": \"Feature\", \"properties\": { }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in2.json perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; print "{ \"type\": \"Feature\", \"properties\": { }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in3.json + perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; $$v = rand(1); print "{ \"type\": \"Feature\", \"properties\": { }, \"tippecanoe\": { \"layer\": \"$$v\" }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in4.json echo -n "" > tests/parallel/empty1.json echo "" > tests/parallel/empty2.json - ./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-file.mbtiles tests/parallel/in[123].json tests/parallel/empty[12].json - ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-file.mbtiles tests/parallel/in[123].json tests/parallel/empty[12].json - cat tests/parallel/in[123].json | ./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-pipe.mbtiles - cat tests/parallel/in[123].json | ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipe.mbtiles - ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipes.mbtiles <(cat tests/parallel/in1.json) <(cat tests/parallel/empty1.json) <(cat tests/parallel/empty2.json) <(cat tests/parallel/in2.json) /dev/null <(cat tests/parallel/in3.json) + ./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-file.mbtiles tests/parallel/in[1234].json tests/parallel/empty[12].json + ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-file.mbtiles tests/parallel/in[1234].json tests/parallel/empty[12].json + cat tests/parallel/in[1234].json | ./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-pipe.mbtiles + cat tests/parallel/in[1234].json | ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipe.mbtiles + ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipes.mbtiles <(cat tests/parallel/in1.json) <(cat tests/parallel/empty1.json) <(cat tests/parallel/empty2.json) <(cat tests/parallel/in2.json) /dev/null <(cat tests/parallel/in3.json) <(cat tests/parallel/in4.json) ./tippecanoe-decode tests/parallel/linear-file.mbtiles > tests/parallel/linear-file.json ./tippecanoe-decode tests/parallel/parallel-file.mbtiles > tests/parallel/parallel-file.json ./tippecanoe-decode tests/parallel/linear-pipe.mbtiles > tests/parallel/linear-pipe.json diff --git a/geometry.cpp b/geometry.cpp index 2746d39..c004f80 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -699,7 +699,7 @@ drawvec simple_clip_poly(drawvec &geom, long long minx, long long miny, long lon return out; } -drawvec simple_clip_poly(drawvec &geom, int z, int detail, int buffer) { +drawvec simple_clip_poly(drawvec &geom, int z, int buffer) { long long area = 1LL << (32 - z); long long clip_buffer = buffer * area / 256; @@ -785,7 +785,7 @@ drawvec reduce_tiny_poly(drawvec &geom, int z, int detail, bool *reduced, double return out; } -drawvec clip_point(drawvec &geom, int z, int detail, long long buffer) { +drawvec clip_point(drawvec &geom, int z, long long buffer) { drawvec out; long long min = 0; @@ -803,7 +803,7 @@ drawvec clip_point(drawvec &geom, int z, int detail, long long buffer) { return out; } -int quick_check(long long *bbox, int z, int detail, long long buffer) { +int quick_check(long long *bbox, int z, long long buffer) { long long min = 0; long long area = 1LL << (32 - z); @@ -827,7 +827,7 @@ int quick_check(long long *bbox, int z, int detail, long long buffer) { return 2; } -bool point_within_tile(long long x, long long y, int z, int detail, long long buffer) { +bool point_within_tile(long long x, long long y, int z, long long buffer) { // No adjustment for buffer, because the point must be // strictly within the tile to appear exactly once @@ -836,7 +836,7 @@ bool point_within_tile(long long x, long long y, int z, int detail, long long bu return x >= 0 && y >= 0 && x < area && y < area; } -drawvec clip_lines(drawvec &geom, int z, int detail, long long buffer) { +drawvec clip_lines(drawvec &geom, int z, long long buffer) { drawvec out; long long min = 0; diff --git a/geometry.hpp b/geometry.hpp index 8f522d9..b8f0bf0 100644 --- a/geometry.hpp +++ b/geometry.hpp @@ -56,15 +56,15 @@ typedef std::vector drawvec; drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsigned ty, long long *bbox, unsigned initial_x, unsigned initial_y); void to_tile_scale(drawvec &geom, int z, int detail); drawvec remove_noop(drawvec geom, int type, int shift); -drawvec clip_point(drawvec &geom, int z, int detail, long long buffer); +drawvec clip_point(drawvec &geom, int z, long long buffer); drawvec clean_or_clip_poly(drawvec &geom, int z, int detail, int buffer, bool clip); -drawvec simple_clip_poly(drawvec &geom, int z, int detail, int buffer); +drawvec simple_clip_poly(drawvec &geom, int z, int buffer); drawvec close_poly(drawvec &geom); drawvec reduce_tiny_poly(drawvec &geom, int z, int detail, bool *reduced, double *accum_area); -drawvec clip_lines(drawvec &geom, int z, int detail, long long buffer); +drawvec clip_lines(drawvec &geom, int z, long long buffer); drawvec stairstep(drawvec &geom, int z, int detail); -bool point_within_tile(long long x, long long y, int z, int detail, long long buffer); -int quick_check(long long *bbox, int z, int detail, long long buffer); +bool point_within_tile(long long x, long long y, int z, long long buffer); +int quick_check(long long *bbox, int z, long long buffer); drawvec simplify_lines(drawvec &geom, int z, int detail, bool mark_tile_bounds, double simplification, size_t retain); drawvec reorder_lines(drawvec &geom); drawvec fix_polygon(drawvec &geom); diff --git a/tile.cpp b/tile.cpp index 584e8cc..f0ebc69 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1171,6 +1171,82 @@ struct write_tile_args { const char *postfilter; }; +bool clip_to_tile(serial_feature &sf, int z, long long buffer) { + int quick = quick_check(sf.bbox, z, buffer); + if (quick == 0) { + return true; + } + + if (z == 0) { + if (sf.bbox[0] < 0 || sf.bbox[2] > 1LL << 32) { + // If the geometry extends off the edge of the world, concatenate on another copy + // shifted by 360 degrees, and then make sure both copies get clipped down to size. + + size_t n = sf.geometry.size(); + + if (sf.bbox[0] < 0) { + for (size_t i = 0; i < n; i++) { + sf.geometry.push_back(draw(sf.geometry[i].op, sf.geometry[i].x + (1LL << 32), sf.geometry[i].y)); + } + } + + if (sf.bbox[2] > 1LL << 32) { + for (size_t i = 0; i < n; i++) { + sf.geometry.push_back(draw(sf.geometry[i].op, sf.geometry[i].x - (1LL << 32), sf.geometry[i].y)); + } + } + + sf.bbox[0] = 0; + sf.bbox[2] = 1LL << 32; + + quick = -1; + } + } + + // Can't accept the quick check if guaranteeing no duplication, since the + // overlap might have been in the buffer. + if (quick != 1 || prevent[P_DUPLICATION]) { + drawvec clipped; + + // Do the clipping, even if we are going to include the whole feature, + // so that we can know whether the feature itself, or only the feature's + // bounding box, touches the tile. + + if (sf.t == VT_LINE) { + clipped = clip_lines(sf.geometry, z, buffer); + } + if (sf.t == VT_POLYGON) { + clipped = simple_clip_poly(sf.geometry, z, buffer); + } + if (sf.t == VT_POINT) { + clipped = clip_point(sf.geometry, z, buffer); + } + + clipped = remove_noop(clipped, sf.t, 0); + + // Must clip at z0 even if we don't want clipping, to handle features + // that are duplicated across the date line + + if (prevent[P_DUPLICATION] && z != 0) { + if (point_within_tile((sf.bbox[0] + sf.bbox[2]) / 2, (sf.bbox[1] + sf.bbox[3]) / 2, z, buffer)) { + // sf.geometry is unchanged + } else { + sf.geometry.clear(); + } + } else if (prevent[P_CLIPPING] && z != 0) { + if (clipped.size() == 0) { + sf.geometry.clear(); + } else { + // sf.geometry is unchanged + } + } else { + sf.geometry = clipped; + } + } + + return false; +} + long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *prefilter, const char *postfilter, write_tile_args *arg) { int line_detail; double merge_fraction = 1; @@ -1270,78 +1346,10 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s original_features++; - int quick = quick_check(sf.bbox, z, line_detail, buffer); - if (quick == 0) { + if (clip_to_tile(sf, z, buffer)) { continue; } - if (z == 0) { - if (sf.bbox[0] < 0 || sf.bbox[2] > 1LL << 32) { - // If the geometry extends off the edge of the world, concatenate on another copy - // shifted by 360 degrees, and then make sure both copies get clipped down to size. - - size_t n = sf.geometry.size(); - - if (sf.bbox[0] < 0) { - for (size_t i = 0; i < n; i++) { - sf.geometry.push_back(draw(sf.geometry[i].op, sf.geometry[i].x + (1LL << 32), sf.geometry[i].y)); - } - } - - if (sf.bbox[2] > 1LL << 32) { - for (size_t i = 0; i < n; i++) { - sf.geometry.push_back(draw(sf.geometry[i].op, sf.geometry[i].x - (1LL << 32), sf.geometry[i].y)); - } - } - - sf.bbox[0] = 0; - sf.bbox[2] = 1LL << 32; - - quick = -1; - } - } - - // Can't accept the quick check if guaranteeing no duplication, since the - // overlap might have been in the buffer. - if (quick != 1 || prevent[P_DUPLICATION]) { - drawvec clipped; - - // Do the clipping, even if we are going to include the whole feature, - // so that we can know whether the feature itself, or only the feature's - // bounding box, touches the tile. - - if (sf.t == VT_LINE) { - clipped = clip_lines(sf.geometry, z, line_detail, buffer); - } - if (sf.t == VT_POLYGON) { - clipped = simple_clip_poly(sf.geometry, z, line_detail, buffer); - } - if (sf.t == VT_POINT) { - clipped = clip_point(sf.geometry, z, line_detail, buffer); - } - - clipped = remove_noop(clipped, sf.t, 0); - - // Must clip at z0 even if we don't want clipping, to handle features - // that are duplicated across the date line - - if (prevent[P_DUPLICATION] && z != 0) { - if (point_within_tile((sf.bbox[0] + sf.bbox[2]) / 2, (sf.bbox[1] + sf.bbox[3]) / 2, z, line_detail, buffer)) { - // sf.geometry is unchanged - } else { - sf.geometry.clear(); - } - } else if (prevent[P_CLIPPING] && z != 0) { - if (clipped.size() == 0) { - sf.geometry.clear(); - } else { - // sf.geometry is unchanged - } - } else { - sf.geometry = clipped; - } - } - if (sf.geometry.size() > 0) { unclipped_features++; } From 9f10f48bfb5295aaa8b5bb50938acb71538aca66 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 9 Dec 2016 11:53:50 -0800 Subject: [PATCH 26/52] Pull feature deserialization and rewriting out of the loop --- tile.cpp | 88 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/tile.cpp b/tile.cpp index f0ebc69..02e5e8e 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1247,12 +1247,60 @@ bool clip_to_tile(serial_feature &sf, int z, long long buffer) { return false; } +serial_feature next_feature(FILE *geoms, long long *geompos_in, char *metabase, long long *meta_off, int z, unsigned tx, unsigned ty, unsigned *initial_x, unsigned *initial_y, long long *original_features, long long *unclipped_features, int nextzoom, int maxzoom, int minzoom, int max_zoom_increment, size_t pass, size_t passes, volatile long long *along, long long alongminus, int buffer, int *within, bool *first_time, int line_detail, FILE **geomfile, long long *geompos, volatile double *oprogress, double todo, const char *fname, int child_shards) { + while (1) { + serial_feature sf = deserialize_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y); + if (sf.t < 0) { + return sf; + } + + double progress = floor(((((*geompos_in + *along - alongminus) / (double) todo) + (pass - (2 - passes))) / passes + z) / (maxzoom + 1) * 1000) / 10; + if (progress >= *oprogress + 0.1) { + if (!quiet) { + fprintf(stderr, " %3.1f%% %d/%u/%u \r", progress, z, tx, ty); + } + *oprogress = progress; + } + + (*original_features)++; + + if (clip_to_tile(sf, z, buffer)) { + continue; + } + + if (sf.geometry.size() > 0) { + (*unclipped_features)++; + } + + if (*first_time && pass == 1) { /* only write out the next zoom once, even if we retry */ + rewrite(sf.geometry, z, nextzoom, maxzoom, sf.bbox, tx, ty, buffer, line_detail, within, geompos, geomfile, fname, sf.t, sf.layer, sf.metapos, sf.feature_minzoom, child_shards, max_zoom_increment, sf.seq, sf.tippecanoe_minzoom, sf.tippecanoe_maxzoom, sf.segment, initial_x, initial_y, sf.m, sf.keys, sf.values, sf.has_id, sf.id, sf.index, sf.extent); + } + + if (z < minzoom) { + continue; + } + + if (sf.tippecanoe_minzoom != -1 && z < sf.tippecanoe_minzoom) { + continue; + } + if (sf.tippecanoe_maxzoom != -1 && z > sf.tippecanoe_maxzoom) { + continue; + } + if (sf.tippecanoe_minzoom == -1 && z < sf.feature_minzoom) { + continue; + } + + return sf; + } +} + long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *prefilter, const char *postfilter, write_tile_args *arg) { int line_detail; double merge_fraction = 1; double mingap_fraction = 1; double minextent_fraction = 1; + static volatile double oprogress = 0; long long og = *geompos_in; // XXX is there a way to do this without floating point? @@ -1275,7 +1323,6 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } } - static volatile double oprogress = 0; bool has_polygons = false; bool first_time = true; @@ -1331,47 +1378,12 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } while (1) { - serial_feature sf = deserialize_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y); + serial_feature sf = next_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y, &original_features, &unclipped_features, nextzoom, maxzoom, minzoom, max_zoom_increment, pass, passes, along, alongminus, buffer, within, &first_time, line_detail, geomfile, geompos, &oprogress, todo, fname, child_shards); + if (sf.t < 0) { break; } - double progress = floor(((((*geompos_in + *along - alongminus) / (double) todo) + (pass - (2 - passes))) / passes + z) / (maxzoom + 1) * 1000) / 10; - if (progress >= oprogress + 0.1) { - if (!quiet) { - fprintf(stderr, " %3.1f%% %d/%u/%u \r", progress, z, tx, ty); - } - oprogress = progress; - } - - original_features++; - - if (clip_to_tile(sf, z, buffer)) { - continue; - } - - if (sf.geometry.size() > 0) { - unclipped_features++; - } - - if (first_time && pass == 1) { /* only write out the next zoom once, even if we retry */ - rewrite(sf.geometry, z, nextzoom, maxzoom, sf.bbox, tx, ty, buffer, line_detail, within, geompos, geomfile, fname, sf.t, sf.layer, sf.metapos, sf.feature_minzoom, child_shards, max_zoom_increment, sf.seq, sf.tippecanoe_minzoom, sf.tippecanoe_maxzoom, sf.segment, initial_x, initial_y, sf.m, sf.keys, sf.values, sf.has_id, sf.id, sf.index, sf.extent); - } - - if (z < minzoom) { - continue; - } - - if (sf.tippecanoe_minzoom != -1 && z < sf.tippecanoe_minzoom) { - continue; - } - if (sf.tippecanoe_maxzoom != -1 && z > sf.tippecanoe_maxzoom) { - continue; - } - if (sf.tippecanoe_minzoom == -1 && z < sf.feature_minzoom) { - continue; - } - if (prefilter != NULL) { mvt_layer tmp_layer; tmp_layer.extent = 1LL << 32; From c8a89150643cb64a13042c76275292a14fb4645c Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 9 Dec 2016 14:01:07 -0800 Subject: [PATCH 27/52] Push prefilter writing into a thread (but something is crashing) --- tile.cpp | 166 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 134 insertions(+), 32 deletions(-) diff --git a/tile.cpp b/tile.cpp index 02e5e8e..d57003a 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1294,6 +1294,82 @@ serial_feature next_feature(FILE *geoms, long long *geompos_in, char *metabase, } } +struct run_prefilter_args { + FILE *geoms; + long long *geompos_in; + char *metabase; + long long *meta_off; + int z; + unsigned tx; + unsigned ty; + unsigned *initial_x; + unsigned *initial_y; + long long *original_features; + long long *unclipped_features; + int nextzoom; + int maxzoom; + int minzoom; + int max_zoom_increment; + size_t pass; + size_t passes; + volatile long long *along; + long long alongminus; + int buffer; + int *within; + bool *first_time; + int line_detail; + FILE **geomfile; + long long *geompos; + volatile double *oprogress; + double todo; + const char *fname; + int child_shards; + std::vector> *layer_unmaps; + char *stringpool; + long long *pool_off; + + FILE *prefilter_fp; +}; + +void *run_prefilter(void *v) { + run_prefilter_args *rpa = (run_prefilter_args *) v; + + while (1) { + serial_feature sf = next_feature(rpa->geoms, rpa->geompos_in, rpa->metabase, rpa->meta_off, rpa->z, rpa->tx, rpa->ty, rpa->initial_x, rpa->initial_y, rpa->original_features, rpa->unclipped_features, rpa->nextzoom, rpa->maxzoom, rpa->minzoom, rpa->max_zoom_increment, rpa->pass, rpa->passes, rpa->along, rpa->alongminus, rpa->buffer, rpa->within, rpa->first_time, rpa->line_detail, rpa->geomfile, rpa->geompos, rpa->oprogress, rpa->todo, rpa->fname, rpa->child_shards); + if (sf.t < 0) { + break; + } + + mvt_layer tmp_layer; + tmp_layer.extent = 1LL << 32; + tmp_layer.name = (*(rpa->layer_unmaps))[sf.segment][sf.layer]; + + mvt_feature tmp_feature; + tmp_feature.type = sf.t; + tmp_feature.geometry = to_feature(sf.geometry); + tmp_feature.id = sf.id; + tmp_feature.has_id = sf.has_id; + + // Offset from tile coordinates back to world coordinates + unsigned sx = 0, sy = 0; + if (rpa->z != 0) { + sx = rpa->tx << (32 - rpa->z); + sy = rpa->ty << (32 - rpa->z); + } + for (size_t i = 0; i < tmp_feature.geometry.size(); i++) { + tmp_feature.geometry[i].x += sx; + tmp_feature.geometry[i].y += sy; + } + + decode_meta(sf.m, sf.keys, sf.values, rpa->stringpool + rpa->pool_off[sf.segment], tmp_layer, tmp_feature); + tmp_layer.features.push_back(tmp_feature); + + layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true); + } + + return NULL; +} + long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *prefilter, const char *postfilter, write_tile_args *arg) { int line_detail; double merge_fraction = 1; @@ -1367,49 +1443,70 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s int prefilter_write = -1, prefilter_read = -1; pid_t prefilter_pid = 0; - FILE *prefilter_fd = NULL; + FILE *prefilter_fp = NULL; + pthread_t prefilter_writer; + run_prefilter_args rpa; // here so it stays in scope until joined + if (prefilter != NULL) { setup_filter(prefilter, &prefilter_write, &prefilter_read, &prefilter_pid, z, tx, ty); - prefilter_fd = fdopen(prefilter_write, "w"); - if (prefilter_fd == NULL) { + prefilter_fp = fdopen(prefilter_write, "w"); + if (prefilter_fp == NULL) { perror("freopen prefilter"); exit(EXIT_FAILURE); } + + rpa.geoms = geoms; + rpa.geompos_in = geompos_in; + rpa.metabase = metabase; + rpa.meta_off = meta_off; + rpa.z = z; + rpa.tx = tx; + rpa.ty = ty; + rpa.initial_x = initial_x; + rpa.initial_y = initial_y; + rpa.original_features = &original_features; + rpa.unclipped_features = &unclipped_features; + rpa.nextzoom = nextzoom; + rpa.maxzoom = maxzoom; + rpa.minzoom = minzoom; + rpa.max_zoom_increment = max_zoom_increment; + rpa.pass = pass; + rpa.passes = passes; + rpa.along = along; + rpa.alongminus = alongminus; + rpa.buffer = buffer; + rpa.within = within; + rpa.first_time = &first_time; + rpa.line_detail = line_detail; + rpa.geomfile = geomfile; + rpa.geompos = geompos; + rpa.oprogress = &oprogress; + rpa.todo = todo; + rpa.fname = fname; + rpa.child_shards = child_shards; + rpa.prefilter_fp = prefilter_fp; + rpa.layer_unmaps = layer_unmaps; + rpa.stringpool = stringpool; + rpa.pool_off = pool_off; + + if (pthread_create(&prefilter_writer, NULL, run_prefilter, &rpa) != 0) { + perror("pthread_create (prefilter writer)"); + exit(EXIT_FAILURE); + } } while (1) { - serial_feature sf = next_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y, &original_features, &unclipped_features, nextzoom, maxzoom, minzoom, max_zoom_increment, pass, passes, along, alongminus, buffer, within, &first_time, line_detail, geomfile, geompos, &oprogress, todo, fname, child_shards); + serial_feature sf; - if (sf.t < 0) { + if (prefilter == NULL) { + sf = next_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y, &original_features, &unclipped_features, nextzoom, maxzoom, minzoom, max_zoom_increment, pass, passes, along, alongminus, buffer, within, &first_time, line_detail, geomfile, geompos, &oprogress, todo, fname, child_shards); + } else { + // XXX parse prefilter break; } - if (prefilter != NULL) { - mvt_layer tmp_layer; - tmp_layer.extent = 1LL << 32; - tmp_layer.name = (*layer_unmaps)[sf.segment][sf.layer]; - - mvt_feature tmp_feature; - tmp_feature.type = sf.t; - tmp_feature.geometry = to_feature(sf.geometry); - tmp_feature.id = sf.id; - tmp_feature.has_id = sf.has_id; - - // Offset from tile coordinates back to world coordinates - unsigned sx = 0, sy = 0; - if (z != 0) { - sx = tx << (32 - z); - sy = ty << (32 - z); - } - for (size_t i = 0; i < tmp_feature.geometry.size(); i++) { - tmp_feature.geometry[i].x += sx; - tmp_feature.geometry[i].y += sy; - } - - decode_meta(sf.m, sf.keys, sf.values, stringpool + pool_off[sf.segment], tmp_layer, tmp_feature); - tmp_layer.features.push_back(tmp_feature); - - layer_to_geojson(prefilter_fd, tmp_layer, 0, 0, 0, false, true); + if (sf.t < 0) { + break; } if (gamma > 0) { @@ -1485,7 +1582,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } if (prefilter != NULL) { - if (fclose(prefilter_fd) != 0) { + if (fclose(prefilter_fp) != 0) { perror("fclose output to prefilter"); exit(EXIT_FAILURE); } @@ -1503,6 +1600,11 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s break; } } + void *ret; + if (pthread_join(prefilter_writer, &ret) != 0) { + perror("pthread_join prefilter writer"); + exit(EXIT_FAILURE); + } } first_time = false; From a338f5390fea32ca84ed1fe57ac29b7924904b18 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 9 Dec 2016 14:14:44 -0800 Subject: [PATCH 28/52] Fix where I was closing the prefilter pipe in the wrong thread --- tile.cpp | 8 ++++---- write_json.cpp | 4 ++-- write_json.hpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tile.cpp b/tile.cpp index d57003a..e213407 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1367,6 +1367,10 @@ void *run_prefilter(void *v) { layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true); } + if (fclose(rpa->prefilter_fp) != 0) { + perror("fclose output to prefilter"); + exit(EXIT_FAILURE); + } return NULL; } @@ -1582,10 +1586,6 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } if (prefilter != NULL) { - if (fclose(prefilter_fp) != 0) { - perror("fclose output to prefilter"); - exit(EXIT_FAILURE); - } if (close(prefilter_read) != 0) { perror("close output from prefilter"); exit(EXIT_FAILURE); diff --git a/write_json.cpp b/write_json.cpp index f5c3173..e5b2287 100644 --- a/write_json.cpp +++ b/write_json.cpp @@ -24,9 +24,9 @@ struct lonlat { } }; -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name) { +void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name) { for (size_t f = 0; f < layer.features.size(); f++) { - mvt_feature &feat = layer.features[f]; + mvt_feature const &feat = layer.features[f]; if (comma && f != 0) { fprintf(fp, ",\n"); diff --git a/write_json.hpp b/write_json.hpp index 685a853..c7f1b2a 100644 --- a/write_json.hpp +++ b/write_json.hpp @@ -1,2 +1,2 @@ -void layer_to_geojson(FILE *fp, mvt_layer &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name); +void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name); void fprintq(FILE *f, const char *s); From 0e5b513637ae70bd47ecf045ebd948d452ffc366 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 9 Dec 2016 15:35:57 -0800 Subject: [PATCH 29/52] Start getting features (just geometry so far) back from the prefilter --- geometry.cpp | 1 + plugin.cpp | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++- plugin.hpp | 1 + serial.hpp | 6 +++ tile.cpp | 22 +++++++-- 5 files changed, 159 insertions(+), 5 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index c004f80..3ea97b0 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include diff --git a/plugin.cpp b/plugin.cpp index 0fb0837..66070b7 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -15,14 +15,15 @@ #include #include #include "mvt.hpp" -#include "plugin.hpp" #include "projection.hpp" #include "geometry.hpp" +#include "serial.hpp" extern "C" { #include "jsonpull/jsonpull.h" } +#include "plugin.hpp" #include "write_json.hpp" #include "read_json.hpp" @@ -203,9 +204,140 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons } json_end(jp); + fclose(f); return ret; } +serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y) { + serial_feature sf; + + while (1) { + json_object *j = json_read(jp); + if (j == NULL) { + if (jp->error != NULL) { + fprintf(stderr, "Filter output:%d: %s\n", jp->line, jp->error); + if (jp->root != NULL) { + json_context(jp->root); + } + exit(EXIT_FAILURE); + } + + json_free(jp->root); + sf.t = -1; + return sf; + } + + json_object *type = json_hash_get(j, "type"); + if (type == NULL || type->type != JSON_STRING) { + continue; + } + if (strcmp(type->string, "Feature") != 0) { + continue; + } + + json_object *geometry = json_hash_get(j, "geometry"); + if (geometry == NULL) { + fprintf(stderr, "Filter output:%d: filtered feature with no geometry\n", jp->line); + json_context(j); + json_free(j); + exit(EXIT_FAILURE); + } + + json_object *properties = json_hash_get(j, "properties"); + if (properties == NULL || (properties->type != JSON_HASH && properties->type != JSON_NULL)) { + fprintf(stderr, "Filter output:%d: feature without properties hash\n", jp->line); + json_context(j); + json_free(j); + exit(EXIT_FAILURE); + } + + json_object *geometry_type = json_hash_get(geometry, "type"); + if (geometry_type == NULL) { + fprintf(stderr, "Filter output:%d: null geometry (additional not reported)\n", jp->line); + json_context(j); + exit(EXIT_FAILURE); + } + + if (geometry_type->type != JSON_STRING) { + fprintf(stderr, "Filter output:%d: geometry type is not a string\n", jp->line); + json_context(j); + exit(EXIT_FAILURE); + } + + json_object *coordinates = json_hash_get(geometry, "coordinates"); + if (coordinates == NULL || coordinates->type != JSON_ARRAY) { + fprintf(stderr, "Filter output:%d: feature without coordinates array\n", jp->line); + json_context(j); + exit(EXIT_FAILURE); + } + + int t; + for (t = 0; t < GEOM_TYPES; t++) { + if (strcmp(geometry_type->string, geometry_names[t]) == 0) { + break; + } + } + if (t >= GEOM_TYPES) { + fprintf(stderr, "Filter output:%d: Can't handle geometry type %s\n", jp->line, geometry_type->string); + json_context(j); + exit(EXIT_FAILURE); + } + + drawvec dv; + parse_geometry(t, coordinates, dv, VT_MOVETO, "Filter output", jp->line, j); + if (mb_geometry[t] == VT_POLYGON) { + dv = fix_polygon(dv); + } + + // Scale and offset geometry from global to tile + for (size_t i = 0; i < dv.size(); i++) { + unsigned sx = 0, sy = 0; + if (z != 0) { + sx = x << (32 - z); + sy = y << (32 - z); + } + dv[i].x -= sx; + dv[i].y -= sy; + } + + if (dv.size() > 0) { + sf.t = mb_geometry[t]; + sf.geometry = dv; + sf.segment = 0; + sf.layer = 0; // XXX + sf.seq = 0; // XXX + sf.index = 0; // XXX + sf.bbox[0] = sf.bbox[1] = sf.bbox[2] = sf.bbox[3] = 0; // XXX + sf.extent = 0; // XXX + sf.m = 0; // XXX + sf.metapos = 0; // XXX + sf.has_id = false; + + json_object *id = json_hash_get(j, "id"); + if (id != NULL) { + sf.id = atoll(id->string); + sf.has_id = true; + } + + for (size_t i = 0; i < properties->length; i++) { + serial_val v; + v.type = -1; + + stringify_value(properties->values[i], v.type, v.s, "Filter output", jp->line, j); + + if (v.type >= 0) { + sf.kv.insert(std::pair(std::string(properties->keys[i]->string), v)); + } + } + + json_free(j); + return sf; + } + + json_free(j); + } +} + static pthread_mutex_t pipe_lock = PTHREAD_MUTEX_INITIALIZER; void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y) { diff --git a/plugin.hpp b/plugin.hpp index de6e450..d0ff01e 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,2 +1,3 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y); void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y); +serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y); diff --git a/serial.hpp b/serial.hpp index 065ca0c..a554920 100644 --- a/serial.hpp +++ b/serial.hpp @@ -19,6 +19,11 @@ int deserialize_ulong_long_io(FILE *f, unsigned long long *n, long long *geompos int deserialize_uint_io(FILE *f, unsigned *n, long long *geompos); int deserialize_byte_io(FILE *f, signed char *n, long long *geompos); +struct serial_val { + int type; + std::string s; +}; + struct serial_feature { long long layer; int segment; @@ -47,6 +52,7 @@ struct serial_feature { // XXX This isn't serialized. Should it be here? long long bbox[4]; + std::map kv; }; void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, const char *fname, long long wx, long long wy, bool include_minzoom); diff --git a/tile.cpp b/tile.cpp index e213407..883b8b2 100644 --- a/tile.cpp +++ b/tile.cpp @@ -35,9 +35,14 @@ #include "serial.hpp" #include "options.hpp" #include "main.hpp" -#include "plugin.hpp" #include "write_json.hpp" +extern "C" { +#include "jsonpull/jsonpull.h" +} + +#include "plugin.hpp" + #define CMD_BITS 3 #define XSTRINGIFY(s) STRINGIFY(s) @@ -1450,6 +1455,8 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s FILE *prefilter_fp = NULL; pthread_t prefilter_writer; run_prefilter_args rpa; // here so it stays in scope until joined + FILE *prefilter_read_fp; + json_pull *prefilter_jp; if (prefilter != NULL) { setup_filter(prefilter, &prefilter_write, &prefilter_read, &prefilter_pid, z, tx, ty); @@ -1497,6 +1504,13 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s perror("pthread_create (prefilter writer)"); exit(EXIT_FAILURE); } + + prefilter_read_fp = fdopen(prefilter_read, "r"); + if (prefilter_read_fp == NULL) { + perror("fdopen prefilter output"); + exit(EXIT_FAILURE); + } + prefilter_jp = json_begin_file(prefilter_read_fp); } while (1) { @@ -1505,8 +1519,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s if (prefilter == NULL) { sf = next_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y, &original_features, &unclipped_features, nextzoom, maxzoom, minzoom, max_zoom_increment, pass, passes, along, alongminus, buffer, within, &first_time, line_detail, geomfile, geompos, &oprogress, todo, fname, child_shards); } else { - // XXX parse prefilter - break; + sf = parse_feature(prefilter_jp, z, tx, ty); } if (sf.t < 0) { @@ -1586,7 +1599,8 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } if (prefilter != NULL) { - if (close(prefilter_read) != 0) { + json_end(prefilter_jp); + if (fclose(prefilter_read_fp) != 0) { perror("close output from prefilter"); exit(EXIT_FAILURE); } From 5dc773ffaedbc77f6eb9f8e0cadda762091ad25e Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 9 Dec 2016 15:54:47 -0800 Subject: [PATCH 30/52] Carry attribute keys and values through from the prefilter --- tile.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tile.cpp b/tile.cpp index 883b8b2..f1a804f 100644 --- a/tile.cpp +++ b/tile.cpp @@ -78,6 +78,7 @@ struct coalesce { char *stringpool; std::vector keys; std::vector values; + std::map kv; drawvec geom; unsigned long long index; unsigned long long index2; @@ -314,6 +315,7 @@ struct partial { std::vector geoms; std::vector keys; std::vector values; + std::map kv; std::vector arc_polygon; long long layer; long long original_seq; @@ -1585,6 +1587,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s p.maxzoom = maxzoom; p.keys = sf.keys; p.values = sf.values; + p.kv = sf.kv; p.spacing = spacing; p.simplification = simplification; p.id = sf.id; @@ -1682,6 +1685,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s c.stringpool = stringpool + pool_off[partials[i].segment]; c.keys = partials[i].keys; c.values = partials[i].values; + c.kv = partials[i].kv; c.spacing = partials[i].spacing; c.id = partials[i].id; c.has_id = partials[i].has_id; @@ -1798,6 +1802,10 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s feature.has_id = layer_features[x].has_id; decode_meta(layer_features[x].m, layer_features[x].keys, layer_features[x].values, layer_features[x].stringpool, layer, feature); + for (auto kv : layer_features[x].kv) { + mvt_value v = stringified_to_mvt_value(kv.second.type, kv.second.s.c_str()); + layer.tag(feature, kv.first, v); + } if (additional[A_CALCULATE_FEATURE_DENSITY]) { int glow = 255; From 57ff54e6834154245574ce67bc0a54fcc34deeb9 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 9 Dec 2016 16:35:41 -0800 Subject: [PATCH 31/52] Fix coordinate overflow by increasing integer size --- mvt.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mvt.hpp b/mvt.hpp index 55c0ff0..f8b91be 100644 --- a/mvt.hpp +++ b/mvt.hpp @@ -8,8 +8,8 @@ enum mvt_operation { }; struct mvt_geometry { - int x; - int y; + long long x; + long long y; int /* mvt_operation */ op; mvt_geometry(int op, long long x, long long y); From 5e7f718afc9271750a8609aead4dd4ed14e7466b Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 12 Dec 2016 15:12:41 -0800 Subject: [PATCH 32/52] Fill out layermaps when reading the output of the postfilter --- plugin.cpp | 44 +- plugin.hpp | 2 +- .../out/-yNAME_-z5_-ccat.json | 1772 +++++++++++++++++ tile.cpp | 16 +- 4 files changed, 1821 insertions(+), 13 deletions(-) create mode 100644 tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json diff --git a/plugin.cpp b/plugin.cpp index 66070b7..a235b29 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -8,13 +8,16 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include "mvt.hpp" +#include "mbtiles.hpp" #include "projection.hpp" #include "geometry.hpp" #include "serial.hpp" @@ -67,12 +70,14 @@ static std::vector to_feature(drawvec &geom) { return out; } -mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer const &olayer) { +mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer const &olayer, std::vector> *layermaps, size_t tiling_seg) { mvt_layer ret; ret.name = olayer.name; ret.version = olayer.version; ret.extent = olayer.extent; + std::string layername = olayer.name; + FILE *f = fdopen(fd, "r"); if (f == NULL) { perror("fdopen filter output"); @@ -186,6 +191,8 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons feature.has_id = true; } + std::map &layermap = (*layermaps)[tiling_seg]; + for (size_t i = 0; i < properties->length; i++) { int tp = -1; std::string s; @@ -194,6 +201,27 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons if (tp >= 0) { mvt_value v = stringified_to_mvt_value(tp, s.c_str()); ret.tag(feature, std::string(properties->keys[i]->string), v); + + if (layermap.count(layername) == 0) { + layermap_entry lme = layermap_entry(layermap.size()); + lme.minzoom = z; + lme.maxzoom = z; + + layermap.insert(std::pair(layername, lme)); + } + + type_and_string tas; + tas.string = std::string(properties->keys[i]->string); + tas.type = tp; + + auto fk = layermap.find(layername); + if (z < fk->second.minzoom) { + fk->second.minzoom = z; + } + if (z > fk->second.maxzoom) { + fk->second.maxzoom = z; + } + fk->second.file_keys.insert(tas); } } @@ -204,7 +232,10 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons } json_end(jp); - fclose(f); + if (fclose(f) != 0) { + perror("fclose postfilter output"); + exit(EXIT_FAILURE); + } return ret; } @@ -434,7 +465,7 @@ void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, } } -mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y) { +mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg) { int write_to, read_from; pid_t pid; setup_filter(filter, &write_to, &read_from, &pid, z, x, y); @@ -452,12 +483,7 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } - layer = parse_layer(read_from, z, x, y, layer); - - if (close(read_from) != 0) { - perror("close output from filter"); - exit(EXIT_FAILURE); - } + layer = parse_layer(read_from, z, x, y, layer, layermaps, tiling_seg); while (1) { int stat_loc; diff --git a/plugin.hpp b/plugin.hpp index d0ff01e..57600d5 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,3 +1,3 @@ -mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y); +mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg); void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y); serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y); diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json b/tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json new file mode 100644 index 0000000..4d76cdd --- /dev/null +++ b/tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json @@ -0,0 +1,1772 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-175.220565,-41.299974,179.216647,64.150024", +"center": "16.875000,44.951199,5", +"description": "tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ] }", +"maxzoom": "5", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.460938, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.873047, 4.915833 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.253906, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.554688, 14.944785 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.915833 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.231934, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.355957, 18.562947 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.532715, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.212891, -25.700938 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.146973, 33.706063 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.893941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.344971, 18.552532 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.172607, 6.806444 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.917923 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.153742 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.040283, 12.125264 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.173808 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.456543, 44.824708 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.609278 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.157959, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.842285, 21.043491 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.907959, 47.923705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.208984, -8.515836 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.278557 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.264282, -19.036156 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.337433 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.151347 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.078247, -22.568366 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.119894 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.919237 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.642024 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.971802, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.239229 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.167862 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.023451 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.189331, -9.459899 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.759521, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.944458, -9.432806 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.138307 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.741028, -13.840747 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 5, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.417908, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.182678, 33.993473 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 5, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.276765 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 6, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.988098, 39.743098 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 7, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.530090, 14.623451 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 7, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.673711 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.342102, 29.823966 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.086609, 9.939093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.253613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.206238, 13.712704 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.272888, 12.157486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.367249, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.422913, 43.703622 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.447485 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.211486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.601065 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.211486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.769714, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.544721 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.903259, 18.474399 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.351990, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.011414, 38.901721 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.984680, 40.753499 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.704041, 45.419660 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.400574, -34.599302 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.261536, -19.038752 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.920471, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.652510 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.803717 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.718201, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.850281, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.388855, 15.302730 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.213074, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.052751 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.103555 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.628723, -23.556434 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.919617, -15.779039 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.837349 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 12, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.228455, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 13, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.518982, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.476501, 14.719104 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.976868, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.592102, 13.456408 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.150149 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.802307, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.276184, 6.820080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.323440 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.553114 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.653738 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.374880 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.654236, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.148865, 38.726233 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.603182 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.403039 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.335793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.503614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.553114 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.731873, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.780823, 3.751893 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.456482, 0.387265 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.112122, 13.520508 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.045959, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.870135 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.138611, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.918379 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.135556 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.741336 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.503614 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.081194 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.913635, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.331360, 50.835432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.127625, 49.612490 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.870135 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.747375, 59.919237 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.432312, -33.916013 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.080994, -22.568366 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.256029 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.312195, -4.327240 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.230286, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.117208 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.900175 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.056079 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.998840, 45.800084 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.439270, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.904321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.080505, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.382874, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.466019 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.464783, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.816589, 41.329389 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.668300 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.431580, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.560120, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.524577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.997620, 52.253027 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.560120, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.644521 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.167764 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.226624, -25.703413 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.132507, -26.315575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.198425, -26.465656 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.413967 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.814071 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.055847, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.358215, -3.373598 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.577454, 4.830997 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.321348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.247864, 30.052454 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.006653, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.985340 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.167073 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.095276, 44.435741 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.006653, 41.108330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.315247, 54.684947 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.561951, 53.902720 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.930725, 60.178404 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.727478, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.239441, -11.703341 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.812439, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.181516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.696594, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.063416, 9.560126 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.932800, 15.334518 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.146057, 11.595741 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.505066, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.296082, 33.502469 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.185168 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.342002 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.788513, 41.728280 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.513123, -18.914082 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.974548, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.644521 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.236766 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.286921 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.232274 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.858704, 40.398856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.788513, 41.728280 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.499695, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.592834, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.950695 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.168376 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.853088, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.198181, 28.601403 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.771667, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.703778 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.856873, 6.934606 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.901887 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.720005 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.321838, 22.497332 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.808765 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 24, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.116638, 19.769288 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.786135 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 24, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.170593 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.697693, 3.170683 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.598572, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.035801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.552689 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.673353 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.930725, 4.885731 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.978699, 14.607505 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.219848 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.566467, 25.035839 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.932907 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.752258, 39.023451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.568528 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 28, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.972839, -37.816293 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 28, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.752896 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.032245 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.748840, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.192078, -9.462608 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.947205, -9.435515 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.918247 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 20 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.762268, -36.846659 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.132801 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.378479, 7.103618 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.015442, 1.340210 ] } } +] } +] } +] } diff --git a/tile.cpp b/tile.cpp index f1a804f..408a5b5 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1176,6 +1176,7 @@ struct write_tile_args { double fraction_out; const char *prefilter; const char *postfilter; + size_t tiling_seg; }; bool clip_to_tile(serial_feature &sf, int z, long long buffer) { @@ -1381,7 +1382,7 @@ void *run_prefilter(void *v) { return NULL; } -long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *prefilter, const char *postfilter, write_tile_args *arg) { +long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, long long alongminus, double gamma, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running, double simplification, std::vector> *layermaps, std::vector> *layer_unmaps, size_t tiling_seg, size_t pass, size_t passes, unsigned long long mingap, long long minextent, double fraction, const char *prefilter, const char *postfilter, write_tile_args *arg) { int line_detail; double merge_fraction = 1; double mingap_fraction = 1; @@ -1825,7 +1826,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } if (postfilter != NULL) { - layer = filter_layer(postfilter, layer, z, tx, ty); + layer = filter_layer(postfilter, layer, z, tx, ty, layermaps, tiling_seg); } if (layer.features.size() > 0) { @@ -2054,7 +2055,7 @@ void *run_thread(void *vargs) { // fprintf(stderr, "%d/%u/%u\n", z, x, y); - long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, geompos, arg->gamma, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running, arg->simplification, arg->layermaps, arg->layer_unmaps, arg->pass, arg->passes, arg->mingap, arg->minextent, arg->fraction, arg->prefilter, arg->postfilter, arg); + long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, geompos, arg->gamma, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running, arg->simplification, arg->layermaps, arg->layer_unmaps, arg->tiling_seg, arg->pass, arg->passes, arg->mingap, arg->minextent, arg->fraction, arg->prefilter, arg->postfilter, arg); if (len < 0) { int *err = &arg->err; @@ -2133,6 +2134,14 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo } } + // The existing layermaps are one table per input thread. + // We need to add another one per *tiling* thread so that it can be + // safely changed during tiling. + size_t layermaps_off = layermaps.size(); + for (size_t i = 0; i < CPUS; i++) { + layermaps.push_back(std::map()); + } + int i; for (i = 0; i <= maxzoom; i++) { long long most = 0; @@ -2286,6 +2295,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo args[thread].initial_y = initial_y; args[thread].layermaps = &layermaps; args[thread].layer_unmaps = &layer_unmaps; + args[thread].tiling_seg = thread + layermaps_off; args[thread].prefilter = prefilter; args[thread].postfilter = postfilter; From 9c0e2cdfa7fb65aaa45d7c42314ac5ce6bdb91a1 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 12 Dec 2016 16:08:08 -0800 Subject: [PATCH 33/52] Fill out layermaps when reading the output of the prefilter --- plugin.cpp | 35 ++++++++++++++++++++++++++++++++++- plugin.hpp | 2 +- tile.cpp | 2 +- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index a235b29..9657aea 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -239,7 +239,7 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons return ret; } -serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y) { +serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg) { serial_feature sf; while (1) { @@ -332,6 +332,16 @@ serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y) } if (dv.size() > 0) { + std::string layername = "unknown"; + json_object *tippecanoe = json_hash_get(j, "tippecanoe"); + json_object *layer = NULL; + if (tippecanoe != NULL) { + layer = json_hash_get(tippecanoe, "layer"); + if (layer != NULL && layer->type == JSON_STRING) { + layername = std::string(layer->string); + } + } + sf.t = mb_geometry[t]; sf.geometry = dv; sf.segment = 0; @@ -350,6 +360,8 @@ serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y) sf.has_id = true; } + std::map &layermap = (*layermaps)[tiling_seg]; + for (size_t i = 0; i < properties->length; i++) { serial_val v; v.type = -1; @@ -358,6 +370,27 @@ serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y) if (v.type >= 0) { sf.kv.insert(std::pair(std::string(properties->keys[i]->string), v)); + + if (layermap.count(layername) == 0) { + layermap_entry lme = layermap_entry(layermap.size()); + lme.minzoom = z; + lme.maxzoom = z; + + layermap.insert(std::pair(layername, lme)); + } + + type_and_string tas; + tas.string = std::string(properties->keys[i]->string); + tas.type = v.type; + + auto fk = layermap.find(layername); + if (z < fk->second.minzoom) { + fk->second.minzoom = z; + } + if (z > fk->second.maxzoom) { + fk->second.maxzoom = z; + } + fk->second.file_keys.insert(tas); } } diff --git a/plugin.hpp b/plugin.hpp index 57600d5..197983e 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,3 +1,3 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg); void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y); -serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y); +serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg); diff --git a/tile.cpp b/tile.cpp index 408a5b5..11a0f4b 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1522,7 +1522,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s if (prefilter == NULL) { sf = next_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y, &original_features, &unclipped_features, nextzoom, maxzoom, minzoom, max_zoom_increment, pass, passes, along, alongminus, buffer, within, &first_time, line_detail, geomfile, geompos, &oprogress, todo, fname, child_shards); } else { - sf = parse_feature(prefilter_jp, z, tx, ty); + sf = parse_feature(prefilter_jp, z, tx, ty, layermaps, tiling_seg); } if (sf.t < 0) { From ad4060eced2a01609e39591a0e4c2b9d89c307d9 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 12 Dec 2016 16:12:22 -0800 Subject: [PATCH 34/52] Fix coordinate rounding error in the prefilter --- plugin.cpp | 6 +- .../out/-yNAME_-Ccat_-z5.json | 1772 +++++++++++++++++ 2 files changed, 1776 insertions(+), 2 deletions(-) create mode 100644 tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json diff --git a/plugin.cpp b/plugin.cpp index 9657aea..1f7d820 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -16,6 +16,7 @@ #include #include #include +#include "main.hpp" #include "mvt.hpp" #include "mbtiles.hpp" #include "projection.hpp" @@ -321,14 +322,15 @@ serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, } // Scale and offset geometry from global to tile + double scale = 1LL << geometry_scale; for (size_t i = 0; i < dv.size(); i++) { unsigned sx = 0, sy = 0; if (z != 0) { sx = x << (32 - z); sy = y << (32 - z); } - dv[i].x -= sx; - dv[i].y -= sy; + dv[i].x = std::round(dv[i].x / scale) * scale - sx; + dv[i].y = std::round(dv[i].y / scale) * scale - sy; } if (dv.size() > 0) { diff --git a/tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json b/tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json new file mode 100644 index 0000000..2a63796 --- /dev/null +++ b/tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json @@ -0,0 +1,1772 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-175.220565,-41.299974,179.216647,64.150024", +"center": "16.875000,44.951199,5", +"description": "tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ] }", +"maxzoom": "5", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.460938, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.873047, 4.915833 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.253906, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.554688, 14.944785 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.915833 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.231934, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.355957, 18.562947 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.532715, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.212891, -25.700938 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.146973, 33.706063 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.893941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.344971, 18.552532 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.172607, 6.806444 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.917923 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.153742 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.040283, 12.125264 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.173808 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.456543, 44.824708 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.609278 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.157959, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.842285, 21.043491 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.907959, 47.923705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.208984, -8.515836 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.278557 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.264282, -19.036156 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.337433 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.151347 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.078247, -22.568366 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.119894 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.919237 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.642024 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.971802, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.239229 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.167862 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.023451 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.189331, -9.459899 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.759521, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.944458, -9.432806 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.138307 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.741028, -13.840747 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 5, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.417908, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.182678, 33.993473 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 5, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.276765 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 6, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.988098, 39.743098 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 7, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.530090, 14.623451 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 7, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.673711 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.342102, 29.823966 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.086609, 9.939093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.253613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.206238, 13.712704 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.272888, 12.157486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.367249, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.422913, 43.703622 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.447485 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.211486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.601065 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.211486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.769714, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.544721 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.903259, 18.474399 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.351990, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.011414, 38.901721 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.984680, 40.753499 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.704041, 45.419660 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.400574, -34.599302 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.261536, -19.038752 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.920471, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.652510 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.803717 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.718201, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.850281, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.388855, 15.302730 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.213074, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.052751 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.103555 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.628723, -23.556434 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.919617, -15.779039 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.837349 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 12, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.228455, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 13, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.518982, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.476501, 14.719104 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.976868, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.592102, 13.456408 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.150149 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.802307, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.276184, 6.820080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.323440 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.553114 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.653738 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.374880 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.654236, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.148865, 38.726233 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.603182 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.403039 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.335793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.503614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.553114 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.731873, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.780823, 3.751893 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.456482, 0.387265 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.112122, 13.520508 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.045959, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.870135 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.138611, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.918379 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.135556 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.741336 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.503614 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.081194 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.913635, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.331360, 50.835432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.127625, 49.612490 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.870135 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.747375, 59.919237 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.432312, -33.916013 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.080994, -22.568366 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.256029 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.312195, -4.327240 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.230286, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.117208 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.900175 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.056079 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.998840, 45.800084 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.439270, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.904321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.080505, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.382874, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.466019 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.464783, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.816589, 41.329389 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.668300 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.431580, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.560120, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.524577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.997620, 52.253027 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.560120, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.644521 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.167764 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.226624, -25.703413 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.132507, -26.315575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.198425, -26.465656 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.413967 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.814071 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.055847, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.358215, -3.373598 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.577454, 4.830997 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.321348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.247864, 30.052454 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.006653, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.985340 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.167073 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.095276, 44.435741 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.006653, 41.108330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.315247, 54.684947 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.561951, 53.902720 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.930725, 60.178404 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.727478, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.239441, -11.703341 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.812439, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.181516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.696594, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.063416, 9.560126 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.932800, 15.334518 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.146057, 11.595741 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.505066, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.296082, 33.502469 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.185168 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.342002 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.788513, 41.728280 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.513123, -18.914082 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.974548, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.644521 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.236766 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.286921 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.232274 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.858704, 40.398856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.788513, 41.728280 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.499695, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.592834, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.950695 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.168376 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.853088, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.198181, 28.601403 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.771667, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.703778 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.856873, 6.934606 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.901887 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.720005 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.321838, 22.497332 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.808765 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 24, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.116638, 19.769288 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.786135 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 24, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.170593 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.697693, 3.170683 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.598572, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.035801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.552689 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.673353 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.930725, 4.885731 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.978699, 14.607505 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.219848 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.566467, 25.035839 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.932907 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.752258, 39.023451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.568528 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 28, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.972839, -37.816293 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 28, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.752896 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.032245 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.748840, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.192078, -9.462608 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.947205, -9.435515 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.918247 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 20 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.762268, -36.846659 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.132801 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.378479, 7.103618 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.015442, 1.340210 ] } } +] } +] } +] } From c2fa8e36333626974e022549d0d01460f9ed4919 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 12 Dec 2016 17:00:45 -0800 Subject: [PATCH 35/52] Switch the segment and layer ID based on prefilter output --- main.cpp | 15 ++++++++++----- plugin.cpp | 23 +++++++++++++++++------ plugin.hpp | 4 ++-- tile.cpp | 20 ++++++++++---------- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/main.cpp b/main.cpp index a431b7e..1c34da0 100644 --- a/main.cpp +++ b/main.cpp @@ -1048,9 +1048,10 @@ int read_input(std::vector &sources, char *fname, const char *layername, volatile long long progress_seq = 0; - int initialized[CPUS]; - unsigned initial_x[CPUS], initial_y[CPUS]; - for (size_t i = 0; i < CPUS; i++) { + // 2 * CPUS: One per reader thread, one per tiling thread + int initialized[2 * CPUS]; + unsigned initial_x[2 * CPUS], initial_y[2 * CPUS]; + for (size_t i = 0; i < 2 * CPUS; i++) { initialized[i] = initial_x[i] = initial_y[i] = 0; } @@ -1332,8 +1333,12 @@ int read_input(std::vector &sources, char *fname, const char *layername, // but keep track of the offsets into it since we still need // segment+offset to find the data. - long long pool_off[CPUS]; - long long meta_off[CPUS]; + // 2 * CPUS: One per input thread, one per tiling thread + long long pool_off[2 * CPUS]; + long long meta_off[2 * CPUS]; + for (size_t i = 0; i < 2 * CPUS; i++) { + pool_off[i] = meta_off[i] = 0; + } char poolname[strlen(tmpdir) + strlen("/pool.XXXXXXXX") + 1]; sprintf(poolname, "%s%s", tmpdir, "/pool.XXXXXXXX"); diff --git a/plugin.cpp b/plugin.cpp index 1f7d820..c5bcdd3 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -71,7 +71,7 @@ static std::vector to_feature(drawvec &geom) { return out; } -mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer const &olayer, std::vector> *layermaps, size_t tiling_seg) { +mvt_layer parse_layer(int fd, int z, unsigned x, unsigned y, mvt_layer const &olayer, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps) { mvt_layer ret; ret.name = olayer.name; ret.version = olayer.version; @@ -209,6 +209,11 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons lme.maxzoom = z; layermap.insert(std::pair(layername, lme)); + + if (lme.id >= (*layer_unmaps)[tiling_seg].size()) { + (*layer_unmaps)[tiling_seg].resize(lme.id + 1); + (*layer_unmaps)[tiling_seg][lme.id] = layername; + } } type_and_string tas; @@ -240,7 +245,7 @@ mvt_layer parse_layer(int fd, unsigned z, unsigned x, unsigned y, mvt_layer cons return ret; } -serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg) { +serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps) { serial_feature sf; while (1) { @@ -345,9 +350,8 @@ serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, } sf.t = mb_geometry[t]; + sf.segment = tiling_seg; sf.geometry = dv; - sf.segment = 0; - sf.layer = 0; // XXX sf.seq = 0; // XXX sf.index = 0; // XXX sf.bbox[0] = sf.bbox[1] = sf.bbox[2] = sf.bbox[3] = 0; // XXX @@ -379,6 +383,11 @@ serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, lme.maxzoom = z; layermap.insert(std::pair(layername, lme)); + + if (lme.id >= (*layer_unmaps)[tiling_seg].size()) { + (*layer_unmaps)[tiling_seg].resize(lme.id + 1); + (*layer_unmaps)[tiling_seg][lme.id] = layername; + } } type_and_string tas; @@ -393,6 +402,8 @@ serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, fk->second.maxzoom = z; } fk->second.file_keys.insert(tas); + + sf.layer = fk->second.id; } } @@ -500,7 +511,7 @@ void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, } } -mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg) { +mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps) { int write_to, read_from; pid_t pid; setup_filter(filter, &write_to, &read_from, &pid, z, x, y); @@ -518,7 +529,7 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } - layer = parse_layer(read_from, z, x, y, layer, layermaps, tiling_seg); + layer = parse_layer(read_from, z, x, y, layer, layermaps, tiling_seg, layer_unmaps); while (1) { int stat_loc; diff --git a/plugin.hpp b/plugin.hpp index 197983e..07f848f 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,3 +1,3 @@ -mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg); +mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps); void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y); -serial_feature parse_feature(json_pull *jp, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg); +serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps); diff --git a/tile.cpp b/tile.cpp index 11a0f4b..8b09f3e 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1522,7 +1522,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s if (prefilter == NULL) { sf = next_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y, &original_features, &unclipped_features, nextzoom, maxzoom, minzoom, max_zoom_increment, pass, passes, along, alongminus, buffer, within, &first_time, line_detail, geomfile, geompos, &oprogress, todo, fname, child_shards); } else { - sf = parse_feature(prefilter_jp, z, tx, ty, layermaps, tiling_seg); + sf = parse_feature(prefilter_jp, z, tx, ty, layermaps, tiling_seg, layer_unmaps); } if (sf.t < 0) { @@ -1826,7 +1826,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } if (postfilter != NULL) { - layer = filter_layer(postfilter, layer, z, tx, ty, layermaps, tiling_seg); + layer = filter_layer(postfilter, layer, z, tx, ty, layermaps, tiling_seg, layer_unmaps); } if (layer.features.size() > 0) { @@ -2121,6 +2121,14 @@ void *run_thread(void *vargs) { } int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, double simplification, std::vector> &layermaps, const char *prefilter, const char *postfilter) { + // The existing layermaps are one table per input thread. + // We need to add another one per *tiling* thread so that it can be + // safely changed during tiling. + size_t layermaps_off = layermaps.size(); + for (size_t i = 0; i < CPUS; i++) { + layermaps.push_back(std::map()); + } + // Table to map segment and layer number back to layer name std::vector> layer_unmaps; for (size_t seg = 0; seg < layermaps.size(); seg++) { @@ -2134,14 +2142,6 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo } } - // The existing layermaps are one table per input thread. - // We need to add another one per *tiling* thread so that it can be - // safely changed during tiling. - size_t layermaps_off = layermaps.size(); - for (size_t i = 0; i < CPUS; i++) { - layermaps.push_back(std::map()); - } - int i; for (i = 0; i <= maxzoom; i++) { long long most = 0; From a2060299c9b6c898bcc4a0bfc242c511d62d7e38 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 20 Dec 2016 15:07:10 -0800 Subject: [PATCH 36/52] Fix arithmetic overflow that was breaking some prefilter polygons --- write_json.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/write_json.cpp b/write_json.cpp index e5b2287..ebcbd55 100644 --- a/write_json.cpp +++ b/write_json.cpp @@ -12,10 +12,10 @@ struct lonlat { int op; double lon; double lat; - int x; - int y; + long long x; + long long y; - lonlat(int nop, double nlon, double nlat, int nx, int ny) { + lonlat(int nop, double nlon, double nlat, long long nx, long long ny) { this->op = nop; this->lon = nlon; this->lat = nlat; @@ -196,17 +196,18 @@ void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, long double area = 0; for (size_t k = 0; k < rings[i].size(); k++) { if (rings[i][k].op != VT_CLOSEPATH) { - area += rings[i][k].x * rings[i][(k + 1) % rings[i].size()].y; - area -= rings[i][k].y * rings[i][(k + 1) % rings[i].size()].x; + area += (long double) rings[i][k].x * (long double) rings[i][(k + 1) % rings[i].size()].y; + area -= (long double) rings[i][k].y * (long double) rings[i][(k + 1) % rings[i].size()].x; } } + area /= 2; areas[i] = area; if (areas[i] >= 0 || i == 0) { outer++; } - // fprintf(fp, "area %f\n", area / .00000274 / .00000274); + // fprintf(fp, "\"area\": %Lf,", area); } if (outer > 1) { From 6a5461763cf6aa9bdf415e9678406bec9b56baaf Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 20 Dec 2016 16:41:23 -0800 Subject: [PATCH 37/52] Fix reordering of attributes and failure to update layer name table --- plugin.cpp | 49 ++++++++++++++++++++++++++----------------------- serial.hpp | 3 ++- tile.cpp | 19 ++++++++++++------- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index c5bcdd3..db623a6 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -368,6 +368,30 @@ serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std:: std::map &layermap = (*layermaps)[tiling_seg]; + if (layermap.count(layername) == 0) { + layermap_entry lme = layermap_entry(layermap.size()); + lme.minzoom = z; + lme.maxzoom = z; + + layermap.insert(std::pair(layername, lme)); + + if (lme.id >= (*layer_unmaps)[tiling_seg].size()) { + (*layer_unmaps)[tiling_seg].resize(lme.id + 1); + (*layer_unmaps)[tiling_seg][lme.id] = layername; + } + } + + auto fk = layermap.find(layername); + fprintf(stderr, "assign layer %zu\n", fk->second.id); + sf.layer = fk->second.id; + + if (z < fk->second.minzoom) { + fk->second.minzoom = z; + } + if (z > fk->second.maxzoom) { + fk->second.maxzoom = z; + } + for (size_t i = 0; i < properties->length; i++) { serial_val v; v.type = -1; @@ -375,35 +399,14 @@ serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std:: stringify_value(properties->values[i], v.type, v.s, "Filter output", jp->line, j); if (v.type >= 0) { - sf.kv.insert(std::pair(std::string(properties->keys[i]->string), v)); - - if (layermap.count(layername) == 0) { - layermap_entry lme = layermap_entry(layermap.size()); - lme.minzoom = z; - lme.maxzoom = z; - - layermap.insert(std::pair(layername, lme)); - - if (lme.id >= (*layer_unmaps)[tiling_seg].size()) { - (*layer_unmaps)[tiling_seg].resize(lme.id + 1); - (*layer_unmaps)[tiling_seg][lme.id] = layername; - } - } + sf.full_keys.push_back(std::string(properties->keys[i]->string)); + sf.full_values.push_back(v); type_and_string tas; tas.string = std::string(properties->keys[i]->string); tas.type = v.type; - auto fk = layermap.find(layername); - if (z < fk->second.minzoom) { - fk->second.minzoom = z; - } - if (z > fk->second.maxzoom) { - fk->second.maxzoom = z; - } fk->second.file_keys.insert(tas); - - sf.layer = fk->second.id; } } diff --git a/serial.hpp b/serial.hpp index a554920..59c5765 100644 --- a/serial.hpp +++ b/serial.hpp @@ -52,7 +52,8 @@ struct serial_feature { // XXX This isn't serialized. Should it be here? long long bbox[4]; - std::map kv; + std::vector full_keys; + std::vector full_values; }; void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, const char *fname, long long wx, long long wy, bool include_minzoom); diff --git a/tile.cpp b/tile.cpp index 84ce7bc..abce83e 100644 --- a/tile.cpp +++ b/tile.cpp @@ -78,7 +78,8 @@ struct coalesce { char *stringpool; std::vector keys; std::vector values; - std::map kv; + std::vector full_keys; + std::vector full_values; drawvec geom; unsigned long long index; unsigned long long index2; @@ -315,7 +316,8 @@ struct partial { std::vector geoms; std::vector keys; std::vector values; - std::map kv; + std::vector full_keys; + std::vector full_values; std::vector arc_polygon; long long layer; long long original_seq; @@ -1583,7 +1585,8 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s p.maxzoom = maxzoom; p.keys = sf.keys; p.values = sf.values; - p.kv = sf.kv; + p.full_keys = sf.full_keys; + p.full_values = sf.full_values; p.spacing = spacing; p.simplification = simplification; p.id = sf.id; @@ -1681,7 +1684,8 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s c.stringpool = stringpool + pool_off[partials[i].segment]; c.keys = partials[i].keys; c.values = partials[i].values; - c.kv = partials[i].kv; + c.full_keys = partials[i].full_keys; + c.full_values = partials[i].full_values; c.spacing = partials[i].spacing; c.id = partials[i].id; c.has_id = partials[i].has_id; @@ -1798,9 +1802,10 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s feature.has_id = layer_features[x].has_id; decode_meta(layer_features[x].m, layer_features[x].keys, layer_features[x].values, layer_features[x].stringpool, layer, feature); - for (auto kv : layer_features[x].kv) { - mvt_value v = stringified_to_mvt_value(kv.second.type, kv.second.s.c_str()); - layer.tag(feature, kv.first, v); + for (size_t a = 0; a < layer_features[x].full_keys.size(); a++) { + serial_val sv = layer_features[x].full_values[a]; + mvt_value v = stringified_to_mvt_value(sv.type, sv.s.c_str()); + layer.tag(feature, layer_features[x].full_keys[a], v); } if (additional[A_CALCULATE_FEATURE_DENSITY]) { From 71ac6596afae91aa9c27bb931b14e63a9384c52d Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 21 Dec 2016 10:10:22 -0800 Subject: [PATCH 38/52] Warn about broken pipes in filters instead of exiting abruptly --- main.cpp | 3 +++ plugin.cpp | 16 +++++++++++----- tile.cpp | 12 ++++++++++-- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/main.cpp b/main.cpp index 18f4602..866d895 100644 --- a/main.cpp +++ b/main.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -2207,6 +2208,8 @@ int main(int argc, char **argv) { } } + signal(SIGPIPE, SIG_IGN); + files_open_at_start = open("/dev/null", O_RDONLY | O_CLOEXEC); if (files_open_at_start < 0) { perror("open /dev/null"); diff --git a/plugin.cpp b/plugin.cpp index db623a6..db06357 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -42,8 +43,6 @@ struct writer_arg { void *run_writer(void *a) { writer_arg *wa = (writer_arg *) a; - // XXX worry about SIGPIPE? - FILE *fp = fdopen(wa->write_to, "w"); if (fp == NULL) { perror("fdopen (pipe writer)"); @@ -53,8 +52,16 @@ void *run_writer(void *a) { layer_to_geojson(fp, *(wa->layer), wa->z, wa->x, wa->y, false, false); if (fclose(fp) != 0) { - perror("fclose output to filter"); - exit(EXIT_FAILURE); + if (errno == EPIPE) { + static bool warned = false; + if (!warned) { + fprintf(stderr, "Warning: broken pipe in postfilter\n"); + warned = true; + } + } else { + perror("fclose output to filter"); + exit(EXIT_FAILURE); + } } return NULL; @@ -382,7 +389,6 @@ serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std:: } auto fk = layermap.find(layername); - fprintf(stderr, "assign layer %zu\n", fk->second.id); sf.layer = fk->second.id; if (z < fk->second.minzoom) { diff --git a/tile.cpp b/tile.cpp index abce83e..e92d23b 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1378,8 +1378,16 @@ void *run_prefilter(void *v) { } if (fclose(rpa->prefilter_fp) != 0) { - perror("fclose output to prefilter"); - exit(EXIT_FAILURE); + if (errno == EPIPE) { + static bool warned = false; + if (!warned) { + fprintf(stderr, "Warning: broken pipe in prefilter\n"); + warned = true; + } + } else { + perror("fclose output to prefilter"); + exit(EXIT_FAILURE); + } } return NULL; } From cf6a2d3a67f48b99cfa44a3c4f787bed882eff91 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 21 Dec 2016 11:47:49 -0800 Subject: [PATCH 39/52] Provide layer names to postfilter and read layer names back in --- plugin.cpp | 60 ++++++++++++++++++++++++++++++++++++++---------------- plugin.hpp | 2 +- tile.cpp | 8 ++++---- 3 files changed, 47 insertions(+), 23 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index db06357..579a4d1 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -34,10 +34,11 @@ extern "C" { struct writer_arg { int write_to; - mvt_layer *layer; + std::vector *layers; unsigned z; unsigned x; unsigned y; + int extent; }; void *run_writer(void *a) { @@ -49,7 +50,9 @@ void *run_writer(void *a) { exit(EXIT_FAILURE); } - layer_to_geojson(fp, *(wa->layer), wa->z, wa->x, wa->y, false, false); + for (size_t i = 0; i < wa->layers->size(); i++) { + layer_to_geojson(fp, (*(wa->layers))[i], wa->z, wa->x, wa->y, false, true); + } if (fclose(fp) != 0) { if (errno == EPIPE) { @@ -78,13 +81,8 @@ static std::vector to_feature(drawvec &geom) { return out; } -mvt_layer parse_layer(int fd, int z, unsigned x, unsigned y, mvt_layer const &olayer, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps) { - mvt_layer ret; - ret.name = olayer.name; - ret.version = olayer.version; - ret.extent = olayer.extent; - - std::string layername = olayer.name; +std::vector parse_layers(int fd, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps, int extent) { + std::map ret; FILE *f = fdopen(fd, "r"); if (f == NULL) { @@ -164,6 +162,26 @@ mvt_layer parse_layer(int fd, int z, unsigned x, unsigned y, mvt_layer const &ol exit(EXIT_FAILURE); } + std::string layername = "unknown"; + json_object *tippecanoe = json_hash_get(j, "tippecanoe"); + json_object *layer = NULL; + if (tippecanoe != NULL) { + layer = json_hash_get(tippecanoe, "layer"); + if (layer != NULL && layer->type == JSON_STRING) { + layername = std::string(layer->string); + } + } + + if (ret.count(layername) == 0) { + mvt_layer l; + l.name = layername; + l.version = 2; + l.extent = extent; + + ret.insert(std::pair(layername, l)); + } + auto l = ret.find(layername); + drawvec dv; parse_geometry(t, coordinates, dv, VT_MOVETO, "Filter output", jp->line, j); if (mb_geometry[t] == VT_POLYGON) { @@ -173,8 +191,8 @@ mvt_layer parse_layer(int fd, int z, unsigned x, unsigned y, mvt_layer const &ol // Scale and offset geometry from global to tile for (size_t i = 0; i < dv.size(); i++) { long long scale = 1LL << (32 - z); - dv[i].x = std::round((dv[i].x - scale * x) * olayer.extent / (double) scale); - dv[i].y = std::round((dv[i].y - scale * y) * olayer.extent / (double) scale); + dv[i].x = std::round((dv[i].x - scale * x) * extent / (double) scale); + dv[i].y = std::round((dv[i].y - scale * y) * extent / (double) scale); } if (mb_geometry[t] == VT_POLYGON) { @@ -208,7 +226,7 @@ mvt_layer parse_layer(int fd, int z, unsigned x, unsigned y, mvt_layer const &ol stringify_value(properties->values[i], tp, s, "Filter output", jp->line, j); if (tp >= 0) { mvt_value v = stringified_to_mvt_value(tp, s.c_str()); - ret.tag(feature, std::string(properties->keys[i]->string), v); + l->second.tag(feature, std::string(properties->keys[i]->string), v); if (layermap.count(layername) == 0) { layermap_entry lme = layermap_entry(layermap.size()); @@ -238,7 +256,7 @@ mvt_layer parse_layer(int fd, int z, unsigned x, unsigned y, mvt_layer const &ol } } - ret.features.push_back(feature); + l->second.features.push_back(feature); } json_free(j); @@ -249,7 +267,12 @@ mvt_layer parse_layer(int fd, int z, unsigned x, unsigned y, mvt_layer const &ol perror("fclose postfilter output"); exit(EXIT_FAILURE); } - return ret; + + std::vector final; + for (auto a : ret) { + final.push_back(a.second); + } + return final; } serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps) { @@ -520,17 +543,18 @@ void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, } } -mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps) { +std::vector filter_layers(const char *filter, std::vector &layers, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps, int extent) { int write_to, read_from; pid_t pid; setup_filter(filter, &write_to, &read_from, &pid, z, x, y); writer_arg wa; wa.write_to = write_to; - wa.layer = &layer; + wa.layers = &layers; wa.z = z; wa.x = x; wa.y = y; + wa.extent = extent; pthread_t writer; if (pthread_create(&writer, NULL, run_writer, &wa) != 0) { @@ -538,7 +562,7 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } - layer = parse_layer(read_from, z, x, y, layer, layermaps, tiling_seg, layer_unmaps); + layers = parse_layers(read_from, z, x, y, layermaps, tiling_seg, layer_unmaps, extent); while (1) { int stat_loc; @@ -557,5 +581,5 @@ mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigne exit(EXIT_FAILURE); } - return layer; + return layers; } diff --git a/plugin.hpp b/plugin.hpp index 07f848f..ec87a31 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,3 +1,3 @@ -mvt_layer filter_layer(const char *filter, mvt_layer &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps); +std::vector filter_layers(const char *filter, std::vector &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps, int extent); void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y); serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps); diff --git a/tile.cpp b/tile.cpp index e92d23b..e003f60 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1833,15 +1833,15 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s layer.features.push_back(feature); } - if (postfilter != NULL) { - layer = filter_layer(postfilter, layer, z, tx, ty, layermaps, tiling_seg, layer_unmaps); - } - if (layer.features.size() > 0) { tile.layers.push_back(layer); } } + if (postfilter != NULL) { + tile.layers = filter_layers(postfilter, tile.layers, z, tx, ty, layermaps, tiling_seg, layer_unmaps, 1 << line_detail); + } + if (z == 0 && unclipped_features < original_features / 2) { fprintf(stderr, "\n\nMore than half the features were clipped away at zoom level 0.\n"); fprintf(stderr, "Is your data in the wrong projection? It should be in WGS84/EPSG:4326.\n"); From 8e17c3aa09c1cb586039517586802102de2887cf Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 2 Jan 2017 16:33:44 -0800 Subject: [PATCH 40/52] Update the layer list outside of the property loop --- plugin.cpp | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index 579a4d1..bb8ba00 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -218,6 +218,26 @@ std::vector parse_layers(int fd, int z, unsigned x, unsigned y, std:: } std::map &layermap = (*layermaps)[tiling_seg]; + if (layermap.count(layername) == 0) { + layermap_entry lme = layermap_entry(layermap.size()); + lme.minzoom = z; + lme.maxzoom = z; + + layermap.insert(std::pair(layername, lme)); + + if (lme.id >= (*layer_unmaps)[tiling_seg].size()) { + (*layer_unmaps)[tiling_seg].resize(lme.id + 1); + (*layer_unmaps)[tiling_seg][lme.id] = layername; + } + } + + auto fk = layermap.find(layername); + if (z < fk->second.minzoom) { + fk->second.minzoom = z; + } + if (z > fk->second.maxzoom) { + fk->second.maxzoom = z; + } for (size_t i = 0; i < properties->length; i++) { int tp = -1; @@ -228,30 +248,10 @@ std::vector parse_layers(int fd, int z, unsigned x, unsigned y, std:: mvt_value v = stringified_to_mvt_value(tp, s.c_str()); l->second.tag(feature, std::string(properties->keys[i]->string), v); - if (layermap.count(layername) == 0) { - layermap_entry lme = layermap_entry(layermap.size()); - lme.minzoom = z; - lme.maxzoom = z; - - layermap.insert(std::pair(layername, lme)); - - if (lme.id >= (*layer_unmaps)[tiling_seg].size()) { - (*layer_unmaps)[tiling_seg].resize(lme.id + 1); - (*layer_unmaps)[tiling_seg][lme.id] = layername; - } - } - type_and_string tas; tas.string = std::string(properties->keys[i]->string); tas.type = tp; - auto fk = layermap.find(layername); - if (z < fk->second.minzoom) { - fk->second.minzoom = z; - } - if (z > fk->second.maxzoom) { - fk->second.maxzoom = z; - } fk->second.file_keys.insert(tas); } } From 150e3663e1e982bcf341fe35f13002d9a6093684 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 13 Jan 2017 14:59:11 -0800 Subject: [PATCH 41/52] Pass the index, sequence, and extent through the prefilter when needed --- decode.cpp | 2 +- geojson.cpp | 2 ++ plugin.cpp | 66 +++++++++++++++++++++++++++++++++++++------------- tile.cpp | 2 +- write_json.cpp | 43 +++++++++++++++++++++++++++++--- write_json.hpp | 2 +- 6 files changed, 93 insertions(+), 24 deletions(-) diff --git a/decode.cpp b/decode.cpp index 49a66dc..3dbb1ec 100644 --- a/decode.cpp +++ b/decode.cpp @@ -63,7 +63,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { within = 0; } - layer_to_geojson(stdout, layer, z, x, y, true, false); + layer_to_geojson(stdout, layer, z, x, y, true, false, 0, 0, 0); if (describe) { printf("] }\n"); diff --git a/geojson.cpp b/geojson.cpp index 1a9733a..2e6a83b 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -317,6 +317,8 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje if (additional[A_DROP_DENSEST_AS_NEEDED] || additional[A_CALCULATE_FEATURE_DENSITY] || additional[A_INCREASE_GAMMA_AS_NEEDED] || uses_gamma) { sf.index = bbox_index; + } else { + sf.index = 0; } if (inline_meta) { diff --git a/plugin.cpp b/plugin.cpp index bb8ba00..1703211 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -51,7 +51,7 @@ void *run_writer(void *a) { } for (size_t i = 0; i < wa->layers->size(); i++) { - layer_to_geojson(fp, (*(wa->layers))[i], wa->z, wa->x, wa->y, false, true); + layer_to_geojson(fp, (*(wa->layers))[i], wa->z, wa->x, wa->y, false, true, 0, 0, 0); } if (fclose(fp) != 0) { @@ -369,27 +369,59 @@ serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std:: } if (dv.size() > 0) { - std::string layername = "unknown"; - json_object *tippecanoe = json_hash_get(j, "tippecanoe"); - json_object *layer = NULL; - if (tippecanoe != NULL) { - layer = json_hash_get(tippecanoe, "layer"); - if (layer != NULL && layer->type == JSON_STRING) { - layername = std::string(layer->string); - } - } - sf.t = mb_geometry[t]; sf.segment = tiling_seg; sf.geometry = dv; - sf.seq = 0; // XXX - sf.index = 0; // XXX - sf.bbox[0] = sf.bbox[1] = sf.bbox[2] = sf.bbox[3] = 0; // XXX - sf.extent = 0; // XXX - sf.m = 0; // XXX - sf.metapos = 0; // XXX + sf.seq = 0; + sf.index = 0; + sf.bbox[0] = sf.bbox[1] = LLONG_MAX; + sf.bbox[2] = sf.bbox[3] = LLONG_MIN; + sf.extent = 0; + sf.m = 0; + sf.metapos = 0; sf.has_id = false; + std::string layername = "unknown"; + json_object *tippecanoe = json_hash_get(j, "tippecanoe"); + if (tippecanoe != NULL) { + json_object *layer = json_hash_get(tippecanoe, "layer"); + if (layer != NULL && layer->type == JSON_STRING) { + layername = std::string(layer->string); + } + + json_object *index = json_hash_get(tippecanoe, "index"); + if (index != NULL && index->type == JSON_NUMBER) { + sf.index = index->number; + } + + json_object *sequence = json_hash_get(tippecanoe, "sequence"); + if (sequence != NULL && sequence->type == JSON_NUMBER) { + sf.seq = sequence->number; + } + + json_object *extent = json_hash_get(tippecanoe, "extent"); + if (extent != NULL && sequence->type == JSON_NUMBER) { + sf.extent = extent->number; + } + } + + for (size_t i = 0; i < dv.size(); i++) { + if (dv[i].op == VT_MOVETO || dv[i].op == VT_LINETO) { + if (dv[i].x < sf.bbox[0]) { + sf.bbox[0] = dv[i].x; + } + if (dv[i].y < sf.bbox[1]) { + sf.bbox[1] = dv[i].y; + } + if (dv[i].x > sf.bbox[2]) { + sf.bbox[2] = dv[i].x; + } + if (dv[i].y > sf.bbox[3]) { + sf.bbox[3] = dv[i].y; + } + } + } + json_object *id = json_hash_get(j, "id"); if (id != NULL) { sf.id = atoll(id->string); diff --git a/tile.cpp b/tile.cpp index e003f60..3d6e115 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1374,7 +1374,7 @@ void *run_prefilter(void *v) { decode_meta(sf.m, sf.keys, sf.values, rpa->stringpool + rpa->pool_off[sf.segment], tmp_layer, tmp_feature); tmp_layer.features.push_back(tmp_feature); - layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true); + layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true, sf.index, sf.seq, sf.extent); } if (fclose(rpa->prefilter_fp) != 0) { diff --git a/write_json.cpp b/write_json.cpp index ebcbd55..4060182 100644 --- a/write_json.cpp +++ b/write_json.cpp @@ -24,7 +24,7 @@ struct lonlat { } }; -void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name) { +void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name, unsigned long long index, long long sequence, long long extent) { for (size_t f = 0; f < layer.features.size(); f++) { mvt_feature const &feat = layer.features[f]; @@ -38,9 +38,44 @@ void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, fprintf(fp, ", \"id\": %llu", feat.id); } - if (name) { - fprintf(fp, ", \"tippecanoe\": { \"layer\": "); - fprintq(fp, layer.name.c_str()); + if (name || index != 0 || sequence != 0 || extent != 0) { + bool need_comma = false; + + fprintf(fp, ", \"tippecanoe\": { "); + + if (name) { + if (need_comma) { + fprintf(fp, ", "); + } + fprintf(fp, "\"layer\": "); + fprintq(fp, layer.name.c_str()); + need_comma = true; + } + + if (index != 0) { + if (need_comma) { + fprintf(fp, ", "); + } + fprintf(fp, "\"index\": %llu", index); + need_comma = true; + } + + if (sequence != 0) { + if (need_comma) { + fprintf(fp, ", "); + } + fprintf(fp, "\"sequence\": %lld", sequence); + need_comma = true; + } + + if (extent != 0) { + if (need_comma) { + fprintf(fp, ", "); + } + fprintf(fp, "\"extent\": %lld", extent); + need_comma = true; + } + fprintf(fp, " }"); } diff --git a/write_json.hpp b/write_json.hpp index c7f1b2a..20b6a89 100644 --- a/write_json.hpp +++ b/write_json.hpp @@ -1,2 +1,2 @@ -void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name); +void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name, unsigned long long index, long long sequence, long long extent); void fprintq(FILE *f, const char *s); From 7b5069f2f6b99fc07de62c04692d36dd815527d6 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 13 Jan 2017 15:57:52 -0800 Subject: [PATCH 42/52] Start writing some documentation --- README.md | 30 ++++++++++++++++++++++++++++++ man/tippecanoe.1 | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c3222df..a7630b4 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,36 @@ resolution is obtained than by using a smaller _maxzoom_ or _detail_. * -pt or --no-tiny-polygon-reduction: Don't combine the area of very small polygons into small squares that represent their combined area. * -q or --quiet: Work quietly instead of reporting progress +### Filters + + * -C _command_ or --prefilter=_command_: Specify a shell filter command to be run at the start of assembling each tile + * -c _command_ or --postfilter=_command_: Specify a shell filter command to be run at the end of assembling each tile + +The pre- and post-filter commands allow you to do optional filtering or transformation on the features of each tile +as it is created. They are shell commands, run with the zoom level, X, and Y as the `$1`, `$2`, and `$3` arguments. + +The features are provided to the filter +as a series of newline-delimited GeoJSON objects on the standard input, and `tippecanoe` expects to read another +set of GeoJSON features from the filter's standard output. + +The prefilter receives the features at the highest available resolution, before line simplification, +polygon topology repair, gamma calculation, dynamic feature dropping, or other internal processing. +The postfilter receives the features at tile resolution, after simplification, cleaning, and dropping. + +The layer name is provided as part of the `tippecanoe` element of the feature and must be passed through +to keep the feature in its correct layer. In the case of the prefilter, the `tippecanoe` element may also +contain `index`, `sequence`, and `extent` elements, which must be passed through for internal operations like +`--drop-densest-as-needed`, `--drop-smallest-as-needed`, and `--preserve-input-order` to work. + +#### Examples: + + * Make a tileset of the Natural Earth countries to zoom level 5, and also copy the GeoJSON features + to files in a `tiles/z/x/y.geojson` directory hierarchy. + +``` +tippecanoe -o countries.mbtiles -z5 -C 'mkdir -p tiles/$1/$2; tee tiles/$1/$2/$3.geojson' ne_10m_admin_0_countries.json +``` + Example ------- diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index bfbda4e..08f07c8 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -188,6 +188,41 @@ which may not be what you want. .IP \(bu 2 \-q or \-\-quiet: Work quietly instead of reporting progress .RE +.SS Filters +.RS +.IP \(bu 2 +\-C \fIcommand\fP or \-\-prefilter=\fIcommand\fP: Specify a shell filter command to be run at the start of assembling each tile +.IP \(bu 2 +\-c \fIcommand\fP or \-\-postfilter=\fIcommand\fP: Specify a shell filter command to be run at the end of assembling each tile +.RE +.PP +The pre\- and post\-filter commands allow you to do optional filtering or transformation on the features of each tile +as it is created. They are shell commands, run with the zoom level, X, and Y as the \fB\fC$1\fR, \fB\fC$2\fR, and \fB\fC$3\fR arguments. +.PP +The features are provided to the filter +as a series of newline\-delimited GeoJSON objects on the standard input, and \fB\fCtippecanoe\fR expects to read another +set of GeoJSON features from the filter's standard output. +.PP +The prefilter receives the features at the highest available resolution, before line simplification, +polygon topology repair, gamma calculation, dynamic feature dropping, or other internal processing. +The postfilter receives the features at tile resolution, after simplification, cleaning, and dropping. +.PP +The layer name is provided as part of the \fB\fCtippecanoe\fR element of the feature and must be passed through +to keep the feature in its correct layer. In the case of the prefilter, the \fB\fCtippecanoe\fR element may also +contain \fB\fCindex\fR, \fB\fCsequence\fR, and \fB\fCextent\fR elements, which must be passed through for internal operations like +\fB\fC\-\-drop\-densest\-as\-needed\fR, \fB\fC\-\-drop\-smallest\-as\-needed\fR, and \fB\fC\-\-preserve\-input\-order\fR to work. +.SS Examples: +.RS +.IP \(bu 2 +Make a tileset of the Natural Earth countries to zoom level 5, and also copy the GeoJSON features +to files in a \fB\fCtiles/z/x/y.geojson\fR directory hierarchy. +.RE +.PP +.RS +.nf +tippecanoe \-o countries.mbtiles \-z5 \-C 'mkdir \-p tiles/$1/$2; tee tiles/$1/$2/$3.geojson' ne_10m_admin_0_countries.json +.fi +.RE .SH Example .PP .RS @@ -315,7 +350,7 @@ Linux: .PP .RS .nf -sudo apt\-get install libsqlite3\-dev zlib1g\-dev +sudo apt\-get install build\-essential libsqlite3\-dev zlib1g\-dev .fi .RE .PP From 834ba192776b6a4b948c8686c1f0b6271fde704a Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 28 Mar 2017 16:25:40 -0700 Subject: [PATCH 43/52] Add option for newline-delimited output format to tippecanoe-decode --- Makefile | 4 +- README.md | 1 + decode.cpp | 140 +- man/tippecanoe.1 | 9 +- plugin.cpp | 2 +- tests/muni/decode/multi.mbtiles.pipeline.json | 4858 +++++++++++++++++ tile.cpp | 2 +- write_json.cpp | 13 +- write_json.hpp | 2 +- 9 files changed, 4962 insertions(+), 69 deletions(-) create mode 100644 tests/muni/decode/multi.mbtiles.pipeline.json diff --git a/Makefile b/Makefile index 142f6aa..67663cf 100644 --- a/Makefile +++ b/Makefile @@ -116,8 +116,10 @@ decode-test: mkdir -p tests/muni/decode ./tippecanoe -z11 -Z11 -f -o tests/muni/decode/multi.mbtiles tests/muni/*.json ./tippecanoe-decode -l subway tests/muni/decode/multi.mbtiles > tests/muni/decode/multi.mbtiles.json.check + ./tippecanoe-decode -c tests/muni/decode/multi.mbtiles > tests/muni/decode/multi.mbtiles.pipeline.json.check cmp tests/muni/decode/multi.mbtiles.json.check tests/muni/decode/multi.mbtiles.json - rm -f tests/muni/decode/multi.mbtiles.json.check tests/muni/decode/multi.mbtiles + cmp tests/muni/decode/multi.mbtiles.pipeline.json.check tests/muni/decode/multi.mbtiles.pipeline.json + rm -f tests/muni/decode/multi.mbtiles.json.check tests/muni/decode/multi.mbtiles tests/muni/decode/multi.mbtiles.pipeline.json.check pbf-test: ./tippecanoe-decode tests/pbf/11-328-791.vector.pbf 11 328 791 > tests/pbf/11-328-791.vector.pbf.out diff --git a/README.md b/README.md index d7eefbb..595c39b 100644 --- a/README.md +++ b/README.md @@ -440,3 +440,4 @@ resolutions. * -z _maxzoom_: Specify the highest zoom level to decode from the tileset * -Z _minzoom_: Specify the lowest zoom level to decode from the tileset * -l _layer_: Decode only layers with the specified names. (Multiple `-l` options can be specified.) + * -c: Include each feature's layer and zoom level as part of its `tippecanoe` object rather than as a FeatureCollection wrapper diff --git a/decode.cpp b/decode.cpp index 30efb47..28a1d89 100644 --- a/decode.cpp +++ b/decode.cpp @@ -21,7 +21,7 @@ int minzoom = 0; int maxzoom = 32; -void handle(std::string message, int z, unsigned x, unsigned y, int describe, std::set const &to_decode) { +void handle(std::string message, int z, unsigned x, unsigned y, int describe, std::set const &to_decode, bool pipeline) { int within = 0; mvt_tile tile; @@ -35,19 +35,21 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe, st exit(EXIT_FAILURE); } - printf("{ \"type\": \"FeatureCollection\""); + if (!pipeline) { + printf("{ \"type\": \"FeatureCollection\""); - if (describe) { - printf(", \"properties\": { \"zoom\": %d, \"x\": %d, \"y\": %d }", z, x, y); + if (describe) { + printf(", \"properties\": { \"zoom\": %d, \"x\": %d, \"y\": %d }", z, x, y); - if (projection != projections) { - printf(", \"crs\": { \"type\": \"name\", \"properties\": { \"name\": "); - fprintq(stdout, projection->alias); - printf(" } }"); + if (projection != projections) { + printf(", \"crs\": { \"type\": \"name\", \"properties\": { \"name\": "); + fprintq(stdout, projection->alias); + printf(" } }"); + } } - } - printf(", \"features\": [\n"); + printf(", \"features\": [\n"); + } bool first_layer = true; for (size_t l = 0; l < tile.layers.size(); l++) { @@ -57,33 +59,39 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe, st continue; } - if (describe) { - if (!first_layer) { - printf(",\n"); + if (!pipeline) { + if (describe) { + if (!first_layer) { + printf(",\n"); + } + + printf("{ \"type\": \"FeatureCollection\""); + printf(", \"properties\": { \"layer\": "); + fprintq(stdout, layer.name.c_str()); + printf(", \"version\": %d, \"extent\": %lld", layer.version, layer.extent); + printf(" }"); + printf(", \"features\": [\n"); + + first_layer = false; + within = 0; } - - printf("{ \"type\": \"FeatureCollection\""); - printf(", \"properties\": { \"layer\": "); - fprintq(stdout, layer.name.c_str()); - printf(", \"version\": %d, \"extent\": %lld", layer.version, layer.extent); - printf(" }"); - printf(", \"features\": [\n"); - - first_layer = false; - within = 0; } - layer_to_geojson(stdout, layer, z, x, y, true, false, 0, 0, 0); + layer_to_geojson(stdout, layer, z, x, y, !pipeline, pipeline, pipeline, 0, 0, 0); - if (describe) { - printf("] }\n"); + if (!pipeline) { + if (describe) { + printf("] }\n"); + } } } - printf("] }\n"); + if (!pipeline) { + printf("] }\n"); + } } -void decode(char *fname, int z, unsigned x, unsigned y, std::set const &to_decode) { +void decode(char *fname, int z, unsigned x, unsigned y, std::set const &to_decode, bool pipeline) { sqlite3 *db; int oz = z; unsigned ox = x, oy = y; @@ -98,7 +106,7 @@ void decode(char *fname, int z, unsigned x, unsigned y, std::set co if (strcmp(map, "SQLite format 3") != 0) { if (z >= 0) { std::string s = std::string(map, st.st_size); - handle(s, z, x, y, 1, to_decode); + handle(s, z, x, y, 1, to_decode, pipeline); munmap(map, st.st_size); return; } else { @@ -126,32 +134,35 @@ void decode(char *fname, int z, unsigned x, unsigned y, std::set co } if (z < 0) { - printf("{ \"type\": \"FeatureCollection\", \"properties\": {\n"); - - const char *sql2 = "SELECT name, value from metadata order by name;"; - sqlite3_stmt *stmt2; - if (sqlite3_prepare_v2(db, sql2, -1, &stmt2, NULL) != SQLITE_OK) { - fprintf(stderr, "%s: select failed: %s\n", fname, sqlite3_errmsg(db)); - exit(EXIT_FAILURE); - } - int within = 0; - while (sqlite3_step(stmt2) == SQLITE_ROW) { - if (within) { - printf(",\n"); + + if (!pipeline) { + printf("{ \"type\": \"FeatureCollection\", \"properties\": {\n"); + + const char *sql2 = "SELECT name, value from metadata order by name;"; + sqlite3_stmt *stmt2; + if (sqlite3_prepare_v2(db, sql2, -1, &stmt2, NULL) != SQLITE_OK) { + fprintf(stderr, "%s: select failed: %s\n", fname, sqlite3_errmsg(db)); + exit(EXIT_FAILURE); } - within = 1; - const unsigned char *name = sqlite3_column_text(stmt2, 0); - const unsigned char *value = sqlite3_column_text(stmt2, 1); + while (sqlite3_step(stmt2) == SQLITE_ROW) { + if (within) { + printf(",\n"); + } + within = 1; - fprintq(stdout, (char *) name); - printf(": "); - fprintq(stdout, (char *) value); + const unsigned char *name = sqlite3_column_text(stmt2, 0); + const unsigned char *value = sqlite3_column_text(stmt2, 1); + + fprintq(stdout, (char *) name); + printf(": "); + fprintq(stdout, (char *) value); + } + + sqlite3_finalize(stmt2); } - sqlite3_finalize(stmt2); - const char *sql = "SELECT tile_data, zoom_level, tile_column, tile_row from tiles where zoom_level between ? and ? order by zoom_level, tile_column, tile_row;"; sqlite3_stmt *stmt; if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL) != SQLITE_OK) { @@ -162,14 +173,18 @@ void decode(char *fname, int z, unsigned x, unsigned y, std::set co sqlite3_bind_int(stmt, 1, minzoom); sqlite3_bind_int(stmt, 2, maxzoom); - printf("\n}, \"features\": [\n"); + if (!pipeline) { + printf("\n}, \"features\": [\n"); + } within = 0; while (sqlite3_step(stmt) == SQLITE_ROW) { - if (within) { - printf(",\n"); + if (!pipeline) { + if (within) { + printf(",\n"); + } + within = 1; } - within = 1; int len = sqlite3_column_bytes(stmt, 0); int tz = sqlite3_column_int(stmt, 1); @@ -178,10 +193,12 @@ void decode(char *fname, int z, unsigned x, unsigned y, std::set co ty = (1LL << tz) - 1 - ty; const char *s = (const char *) sqlite3_column_blob(stmt, 0); - handle(std::string(s, len), tz, tx, ty, 1, to_decode); + handle(std::string(s, len), tz, tx, ty, 1, to_decode, pipeline); } - printf("] }\n"); + if (!pipeline) { + printf("] }\n"); + } sqlite3_finalize(stmt); } else { @@ -206,7 +223,7 @@ void decode(char *fname, int z, unsigned x, unsigned y, std::set co fprintf(stderr, "%s: Warning: using tile %d/%u/%u instead of %d/%u/%u\n", fname, z, x, y, oz, ox, oy); } - handle(std::string(s, len), z, x, y, 0, to_decode); + handle(std::string(s, len), z, x, y, 0, to_decode, pipeline); handled = 1; } @@ -234,8 +251,9 @@ int main(int argc, char **argv) { extern char *optarg; int i; std::set to_decode; + bool pipeline = false; - while ((i = getopt(argc, argv, "t:Z:z:l:")) != -1) { + while ((i = getopt(argc, argv, "t:Z:z:l:c")) != -1) { switch (i) { case 't': set_projection_or_exit(optarg); @@ -253,15 +271,19 @@ int main(int argc, char **argv) { to_decode.insert(optarg); break; + case 'c': + pipeline = true; + break; + default: usage(argv); } } if (argc == optind + 4) { - decode(argv[optind], atoi(argv[optind + 1]), atoi(argv[optind + 2]), atoi(argv[optind + 3]), to_decode); + decode(argv[optind], atoi(argv[optind + 1]), atoi(argv[optind + 2]), atoi(argv[optind + 3]), to_decode, pipeline); } else if (argc == optind + 1) { - decode(argv[optind], -1, -1, -1, to_decode); + decode(argv[optind], -1, -1, -1, to_decode, pipeline); } else { usage(argv); } diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index 53ba2c4..e6efd76 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -162,6 +162,8 @@ which may not be what you want. \-an or \-\-drop\-smallest\-as\-needed: Dynamically drop the smallest features (physically smallest: the shortest lines or the smallest polygons) from each zoom level to keep large tiles under the 500K size limit. This option will not work for point features. .IP \(bu 2 \-aL or \-\-grid\-low\-zooms: At all zoom levels below \fImaxzoom\fP, snap all lines and polygons to a stairstep grid instead of allowing diagonals. You will also want to specify a tile resolution, probably \fB\fC\-D8\fR\&. This option provides a way to display continuous parcel, gridded, or binned data at low zooms without overwhelming the tiles with tiny polygons, since features will either get stretched out to the grid unit or lost entirely, depending on how they happened to be aligned in the original data. +.IP \(bu 2 +\-aw or \-\-detect\-longitude\-wraparound: Detect when adjacent points within a feature jump to the other side of the world, and try to fix the geometry. .RE .SS Doing less .RS @@ -178,7 +180,7 @@ which may not be what you want. .IP \(bu 2 \-pi or \-\-preserve\-input\-order: Preserve the original input order of features as the drawing order instead of ordering geographically. (This is implemented as a restoration of the original order at the end, so that dot\-dropping is still geographic, which means it also undoes \-ao). .IP \(bu 2 -\-pp or \-\-no\-polygon\-splitting: Don't split complex polygons (over 700 vertices after simplification) into multiple features. +\-pp or \-\-no\-polygon\-splitting: This no longer has any effect. .IP \(bu 2 \-pc or \-\-no\-clipping: Don't clip features to the size of the tile. If a feature overlaps the tile's bounds or buffer at all, it is included completely. Be careful: this can produce very large tilesets, especially with large polygons. .IP \(bu 2 @@ -336,9 +338,6 @@ have their probability diffused, so that some of them will be drawn as a square this minimum size and others will not be drawn at all, preserving the total area that all of them should have had together. .PP -Any polygons that have over 700 vertices after line simplification will be split into -multiple features so they can be rendered efficiently, unless you use \-pp to prevent this. -.PP Features in the same tile that share the same type and attributes are coalesced together into a single geometry if you use \fB\fC\-\-coalesce\fR\&. You are strongly encouraged to use \-x to exclude any unnecessary properties to reduce wasted file size. @@ -521,4 +520,6 @@ resolutions. \-Z \fIminzoom\fP: Specify the lowest zoom level to decode from the tileset .IP \(bu 2 \-l \fIlayer\fP: Decode only layers with the specified names. (Multiple \fB\fC\-l\fR options can be specified.) +.IP \(bu 2 +\-c: Include each feature's layer and zoom level as part of its \fB\fCtippecanoe\fR object rather than as a FeatureCollection wrapper .RE diff --git a/plugin.cpp b/plugin.cpp index 1703211..c7ebff6 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -51,7 +51,7 @@ void *run_writer(void *a) { } for (size_t i = 0; i < wa->layers->size(); i++) { - layer_to_geojson(fp, (*(wa->layers))[i], wa->z, wa->x, wa->y, false, true, 0, 0, 0); + layer_to_geojson(fp, (*(wa->layers))[i], wa->z, wa->x, wa->y, false, true, false, 0, 0, 0); } if (fclose(fp) != 0) { diff --git a/tests/muni/decode/multi.mbtiles.pipeline.json b/tests/muni/decode/multi.mbtiles.pipeline.json new file mode 100644 index 0000000..703f9c2 --- /dev/null +++ b/tests/muni/decode/multi.mbtiles.pipeline.json @@ -0,0 +1,4858 @@ +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fort Cronkhite Parking Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.538671, 37.832395 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MITCHELL RD/Visitor's Center" }, "geometry": { "type": "Point", "coordinates": [ -122.536268, 37.831785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mitchell Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.532406, 37.831853 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mitchell Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.530861, 37.831887 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUNKER RD/Miwok Trail" }, "geometry": { "type": "Point", "coordinates": [ -122.527256, 37.832599 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUNKER RD/Miwok Trail" }, "geometry": { "type": "Point", "coordinates": [ -122.527213, 37.832497 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FIELD RD/Youth Hostel" }, "geometry": { "type": "Point", "coordinates": [ -122.523479, 37.831684 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FIELD RD/Nike Site" }, "geometry": { "type": "Point", "coordinates": [ -122.527685, 37.829074 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BATTERY Alexander/FIELD RD" }, "geometry": { "type": "Point", "coordinates": [ -122.530303, 37.825040 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Field Rd/Visitor Center" }, "geometry": { "type": "Point", "coordinates": [ -122.524424, 37.830497 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Field Rd & Bodsworth Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.524424, 37.830395 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bunker Rd & Field Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.523265, 37.831446 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Field Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.523265, 37.831345 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Field Rd & Light House" }, "geometry": { "type": "Point", "coordinates": [ -122.529702, 37.821853 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "John Muir Dr & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.500048, 37.718998 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "John Muir Dr & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.499919, 37.718760 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485027, 37.718726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Pinto Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.483096, 37.720763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Acevedo Ave ." }, "geometry": { "type": "Point", "coordinates": [ -122.483139, 37.719914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483225, 37.718624 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Tapia Dr NS/W/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.481251, 37.720763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Tapia Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480907, 37.720695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Serrano Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480006, 37.719643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Serrano Dr NS/W-SB" }, "geometry": { "type": "Point", "coordinates": [ -122.479920, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Serrano Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.479620, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Juan Bautista Cir & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.478461, 37.718692 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crespi Dr & Varela Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475972, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr & Cardenas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475672, 37.719133 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & HOLLOWAY AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HOLLOWAY AVE & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & HOLLOWAY Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Avenue & Holloway St" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475243, 37.721102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & HOLLOWAY" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475028, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crespi Dr & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.720220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr. & Crespi Dr." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Crespi Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474942, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cardenas Ave & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475414, 37.719066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Banbury Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474599, 37.719541 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beverly St & Garfield St" }, "geometry": { "type": "Point", "coordinates": [ -122.471766, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Beverly St" }, "geometry": { "type": "Point", "coordinates": [ -122.471552, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Garfield St" }, "geometry": { "type": "Point", "coordinates": [ -122.472281, 37.719575 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.469749, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St&Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.469964, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Vernon St" }, "geometry": { "type": "Point", "coordinates": [ -122.467947, 37.719778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St&Vernon St" }, "geometry": { "type": "Point", "coordinates": [ -122.468162, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GARFIELD ST & VICTORIA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.465243, 37.719778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.465458, 37.719643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.463655, 37.719812 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.463484, 37.720016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Ashton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462153, 37.720050 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Jules Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461338, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GRAFTON AVE & JULES AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.461123, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Faxon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460136, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459321, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GRAFTON AVE & Capitol AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.459106, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458076, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Granada Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457261, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GRAFTON AVE & PLYMOUTH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.457047, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Grafton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456231, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456274, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave at Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455931, 37.720152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Grafton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456017, 37.719914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Brighton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.454987, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.454214, 37.720016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Harold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453012, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mt Vernon Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.451811, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howth St & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451682, 37.719812 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howth St & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451124, 37.720661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mt Vernon Ave & Louisburg St" }, "geometry": { "type": "Point", "coordinates": [ -122.450953, 37.719371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Louisburg St & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450137, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447262, 37.721068 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa Park BART/Mezzanine Level" }, "geometry": { "type": "Point", "coordinates": [ -122.447133, 37.721001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447262, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446876, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446833, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa Park BART/Mezzanine level" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446747, 37.720899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa Park BART/Mezzanine level" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446489, 37.720831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446232, 37.721238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447562, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park Bart Station" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.720729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.720729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.720695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.720457 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446918, 37.720491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447219, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447176, 37.719880 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.720016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447648, 37.719405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GENEVA AVE & SAN JOSE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GENEVA AVE & SANA JOSE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446575, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CAMERON BEACH YARD" }, "geometry": { "type": "Point", "coordinates": [ -122.446575, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.720491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.720491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Delano Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445374, 37.720288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Delano Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445288, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave at Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443871, 37.718930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443571, 37.718930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443571, 37.718726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Onondaga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.437520, 37.721306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.439280, 37.718658 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.439108, 37.719167 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.432413, 37.719201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431383, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431083, 37.720899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.429538, 37.720152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.429495, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.428980, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.427778, 37.721306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.427521, 37.721238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Munich St" }, "geometry": { "type": "Point", "coordinates": [ -122.427006, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428765, 37.719846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.428679, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.426190, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426190, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.427220, 37.719032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.427349, 37.718964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.427220, 37.718862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.427092, 37.718964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.425890, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426062, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719337 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & LAGRANDE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.418809, 37.718930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.418637, 37.718726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & University St" }, "geometry": { "type": "Point", "coordinates": [ -122.411299, 37.718964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411385, 37.718794 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.409067, 37.719405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.408895, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407093, 37.719914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.404346, 37.720797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.406921, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.405334, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.405119, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.403102, 37.721102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.403145, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.404132, 37.720695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Ward St" }, "geometry": { "type": "Point", "coordinates": [ -122.400441, 37.719405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Ward St" }, "geometry": { "type": "Point", "coordinates": [ -122.400527, 37.719066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Salinas Ave & Gould St" }, "geometry": { "type": "Point", "coordinates": [ -122.398467, 37.721136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Salinas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.396493, 37.720797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Ingerson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.396064, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397523, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third St & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Key St" }, "geometry": { "type": "Point", "coordinates": [ -122.396750, 37.719778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fitzgerald Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.391472, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.391729, 37.720356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fitzgerald Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.389627, 37.719948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hawes St & Gilman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390013, 37.719201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "655 John Muir Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497773, 37.717029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "655 John Muir Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497687, 37.716791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "555 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.496572, 37.716553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "555 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.496529, 37.716452 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "515 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.495370, 37.716248 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "515 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.495413, 37.716078 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485242, 37.718455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.485371, 37.714890 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.485156, 37.714788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.485156, 37.714584 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.483311, 37.717368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Garces Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.483354, 37.716350 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garces Dr & Bucareli Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.481508, 37.716010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LAKE MERCED BLVD & LAKE MERCED HILLS BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.485285, 37.711563 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LAKE MERCED BLVD & LAKE MERCED HILLS BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.485542, 37.711223 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Juan Bautisa Cir." }, "geometry": { "type": "Point", "coordinates": [ -122.478719, 37.718488 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Juan Bautista Cir & Bucareli Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.478762, 37.717979 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garces Dr & Grijalva Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480135, 37.715026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood way & Grace community Church NE-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.480221, 37.714618 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood Way & Grace SE-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.480264, 37.714517 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Juan Bautista Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.477088, 37.717708 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Juan Bautista Cir & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.477474, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FONT BLVD & GONZALEZ DR" }, "geometry": { "type": "Point", "coordinates": [ -122.476058, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475929, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475801, 37.716791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garces Dr & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.478333, 37.715875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr & Josepha Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477174, 37.716010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1100 Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.485328, 37.709322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1100 Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.484984, 37.709152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cambon Dr & Castelo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474470, 37.717266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cambon Dr & Castelo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474298, 37.717470 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.473183, 37.718081 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.473011, 37.717334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Cambon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474599, 37.715908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cambon Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.474470, 37.716044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Cambon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474298, 37.715908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Chumasero Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.473183, 37.715229 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chumasero Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.473140, 37.715026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Chumasero Dr W-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.473097, 37.715026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chumasero Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.473097, 37.714822 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.472410, 37.717776 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472839, 37.717402 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472281, 37.716893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.471681, 37.716214 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.471938, 37.714652 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Randolph St & Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.470264, 37.714788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood Way & Church Access Rd SW-NS-SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.714143 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood Way & Summit Way NW-FS/sb" }, "geometry": { "type": "Point", "coordinates": [ -122.474599, 37.713770 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood Way & Summit Way SE-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.474513, 37.713600 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chumasero Dr & Galindo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473183, 37.714075 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chumasero Dr & Galindo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473140, 37.714075 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chumasero Dr & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.472925, 37.713328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "JUNIPERO SERRA RAMP & BROTHERHOOD WAY" }, "geometry": { "type": "Point", "coordinates": [ -122.471766, 37.714143 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chumasero Dr & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.472796, 37.713125 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood way & Chumasero Dr W-NW/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.472796, 37.713023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.471294, 37.713566 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "JUNIPERO SERRA BLVD/S.F. Golf Club" }, "geometry": { "type": "Point", "coordinates": [ -122.471337, 37.710714 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Palmetto Av" }, "geometry": { "type": "Point", "coordinates": [ -122.470994, 37.710918 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.470050, 37.714415 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.470007, 37.714449 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Randolph & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469664, 37.714347 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.469621, 37.714313 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Randolph St & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.467003, 37.714347 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood Way & St Charles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469277, 37.712514 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broad St & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.467389, 37.712514 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & St Charles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469492, 37.710375 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "St Charles Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.469363, 37.710307 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Randolph St & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.467260, 37.714211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brotherhood Way & Arch ST" }, "geometry": { "type": "Point", "coordinates": [ -122.466917, 37.712344 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arch St & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.467132, 37.711665 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arch St&Alemany St" }, "geometry": { "type": "Point", "coordinates": [ -122.467175, 37.711597 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.466917, 37.711631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.467175, 37.711427 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.465072, 37.711835 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.464943, 37.711665 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "St Charles Ave & Belle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469320, 37.708745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Daly City Bart Station" }, "geometry": { "type": "Point", "coordinates": [ -122.469277, 37.705791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Daly City BART West Station Rd." }, "geometry": { "type": "Point", "coordinates": [ -122.468677, 37.707081 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Randolph St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.463398, 37.714381 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Randolph St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.463613, 37.714245 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Orizaba Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.462626, 37.713328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broad St & Orizaba Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462368, 37.713193 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sagamore St & Orizaba Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461982, 37.711291 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Orizaba Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462282, 37.710918 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broad St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459192, 37.713159 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "274 Sagamore St" }, "geometry": { "type": "Point", "coordinates": [ -122.461596, 37.711461 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sagamore St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459149, 37.711291 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Crystal St" }, "geometry": { "type": "Point", "coordinates": [ -122.460308, 37.710137 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456231, 37.718455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456102, 37.718183 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Thrift St" }, "geometry": { "type": "Point", "coordinates": [ -122.456102, 37.717742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Thrift St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.717572 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Montana St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.716452 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Montana St" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.716553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Minerva St" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.716010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Minerva St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.715875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Lobos St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.715026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Lobos St" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.714856 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broad St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458935, 37.713193 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sagamore St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458892, 37.711495 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.714177 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.713973 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PLYMOUTH AVE & BROAD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.456188, 37.713294 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broad St & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456188, 37.713193 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.456017, 37.713362 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Sadowa St" }, "geometry": { "type": "Point", "coordinates": [ -122.455931, 37.713226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broad St & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455931, 37.713226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Sagamore St" }, "geometry": { "type": "Point", "coordinates": [ -122.456102, 37.711563 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sagamore St & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456102, 37.711563 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Sagamore St" }, "geometry": { "type": "Point", "coordinates": [ -122.456017, 37.711733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Sickles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455974, 37.711223 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sickles Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.454686, 37.710409 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sickles Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.454815, 37.710307 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461338, 37.705995 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461166, 37.706131 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & San Jose St" }, "geometry": { "type": "Point", "coordinates": [ -122.460694, 37.706165 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459922, 37.706368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Flournoy" }, "geometry": { "type": "Point", "coordinates": [ -122.459235, 37.706640 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Flournoy St" }, "geometry": { "type": "Point", "coordinates": [ -122.459064, 37.706844 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & GoeThe St" }, "geometry": { "type": "Point", "coordinates": [ -122.457089, 37.707387 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Evergreen St" }, "geometry": { "type": "Point", "coordinates": [ -122.456532, 37.707421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448678, 37.718522 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448678, 37.718488 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448635, 37.718285 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450395, 37.716316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450352, 37.716282 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450438, 37.716112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450395, 37.716078 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.453442, 37.713328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.453184, 37.713328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.452283, 37.713973 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.452240, 37.714177 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.452154, 37.714177 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.452111, 37.714075 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Whittier St" }, "geometry": { "type": "Point", "coordinates": [ -122.448378, 37.710510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Whittier St" }, "geometry": { "type": "Point", "coordinates": [ -122.448463, 37.710239 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Niagra Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.443314, 37.716893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442670, 37.714720 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Allison St" }, "geometry": { "type": "Point", "coordinates": [ -122.442670, 37.714483 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Lowell St" }, "geometry": { "type": "Point", "coordinates": [ -122.446532, 37.711495 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Lowell St" }, "geometry": { "type": "Point", "coordinates": [ -122.445717, 37.711733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Morse St & Lowell St" }, "geometry": { "type": "Point", "coordinates": [ -122.446275, 37.710986 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Guttenberg St" }, "geometry": { "type": "Point", "coordinates": [ -122.444773, 37.712514 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Foote Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444644, 37.712853 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Sickles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453356, 37.708677 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Acton St" }, "geometry": { "type": "Point", "coordinates": [ -122.452240, 37.708915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Lawrence Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450910, 37.709526 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Oliver St" }, "geometry": { "type": "Point", "coordinates": [ -122.450094, 37.709628 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442412, 37.717674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442412, 37.717674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.441082, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.441211, 37.716520 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.441168, 37.716486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440825, 37.716655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.440910, 37.716486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Amazon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440438, 37.717165 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.440953, 37.716350 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GENEVA AVE & MISSION ST" }, "geometry": { "type": "Point", "coordinates": [ -122.440782, 37.716418 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "London St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440224, 37.716180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.439623, 37.715705 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.439322, 37.715739 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.438035, 37.715162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.437606, 37.714788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.437348, 37.712480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Brunswick St" }, "geometry": { "type": "Point", "coordinates": [ -122.437992, 37.711801 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Seville St" }, "geometry": { "type": "Point", "coordinates": [ -122.437906, 37.711699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Curtis St" }, "geometry": { "type": "Point", "coordinates": [ -122.438507, 37.711088 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Munich St & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.438250, 37.711156 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Curtis St & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.437992, 37.710239 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435975, 37.714483 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.436061, 37.714279 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Amazon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435203, 37.715501 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.434773, 37.716112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & France Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.433572, 37.717674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.432327, 37.715162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.436790, 37.713498 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.436662, 37.713464 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.436404, 37.714177 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.435975, 37.714041 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Drake St" }, "geometry": { "type": "Point", "coordinates": [ -122.436833, 37.710001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Munich St & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435460, 37.710952 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cordova Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.434902, 37.710205 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435074, 37.710171 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.433958, 37.713362 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.433701, 37.713328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Munich St" }, "geometry": { "type": "Point", "coordinates": [ -122.433057, 37.712955 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Munich St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.432971, 37.712955 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.431812, 37.712853 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Hill Blvd & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.432199, 37.712174 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Hill Blvd & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.432113, 37.711699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Hill Blvd & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.431812, 37.711257 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cordova Ave & Winding Way" }, "geometry": { "type": "Point", "coordinates": [ -122.434859, 37.709662 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cordova Ave & Winding Way" }, "geometry": { "type": "Point", "coordinates": [ -122.434602, 37.709526 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chicago Way & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.434344, 37.708983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chicago Way & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.434258, 37.708881 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chicago Way & Naylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.432542, 37.709662 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chicago Way & Naylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.432456, 37.709865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & France Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431169, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Russia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.430139, 37.718183 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Russia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.429881, 37.718149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428207, 37.717572 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428379, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Hill Blvd & Chicago Way" }, "geometry": { "type": "Point", "coordinates": [ -122.431512, 37.710714 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chicago Way & South Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431383, 37.710578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1650 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428293, 37.711767 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1650 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428207, 37.711902 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1701 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426791, 37.711122 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1721 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426276, 37.711088 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MANSELL ST & PERSIA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425718, 37.718319 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422800, 37.717810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422543, 37.717810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1750 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.425761, 37.710748 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424345, 37.710069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SUNNYDALE AVE/MCLAREN SCHOOL" }, "geometry": { "type": "Point", "coordinates": [ -122.422156, 37.713736 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SUNNYDALE AVE/MCLAREN SCHOOL" }, "geometry": { "type": "Point", "coordinates": [ -122.422242, 37.713566 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1900 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421384, 37.713430 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1901 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421169, 37.713226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424431, 37.709831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave&Carter St" }, "geometry": { "type": "Point", "coordinates": [ -122.423229, 37.709322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave&Carter St" }, "geometry": { "type": "Point", "coordinates": [ -122.423143, 37.709085 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Cielito Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.422156, 37.709017 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Cielito Dr E" }, "geometry": { "type": "Point", "coordinates": [ -122.422156, 37.708983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Esquina Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.421770, 37.708677 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1800 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419968, 37.712989 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1725 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419581, 37.712819 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SUNNYDALE AVE & PERSIA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.419109, 37.712615 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.418208, 37.712446 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419453, 37.710035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418723, 37.711868 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418895, 37.711733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418895, 37.711699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418852, 37.711733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Blythdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418809, 37.710646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.417564, 37.712242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Hahn St" }, "geometry": { "type": "Point", "coordinates": [ -122.415204, 37.713532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hahn St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.415504, 37.713328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hahn St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.415247, 37.713430 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hahn St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.416062, 37.712038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hahn St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.415934, 37.712038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.415247, 37.711631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.414474, 37.718149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.718047 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Valley Middle School" }, "geometry": { "type": "Point", "coordinates": [ -122.413960, 37.716214 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Raymond Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.413487, 37.715060 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Raymond Ave & Elliot St" }, "geometry": { "type": "Point", "coordinates": [ -122.411256, 37.714449 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.414560, 37.713260 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sawyer St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.414474, 37.713362 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.713294 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Britton St" }, "geometry": { "type": "Point", "coordinates": [ -122.412672, 37.712751 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.414989, 37.711699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.412801, 37.711088 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.413058, 37.710986 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Britton St" }, "geometry": { "type": "Point", "coordinates": [ -122.412372, 37.712785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.410784, 37.712208 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.410526, 37.712276 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.411642, 37.710748 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.411513, 37.710612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411385, 37.710510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411513, 37.710375 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419324, 37.709899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.420397, 37.708507 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420096, 37.708507 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.420053, 37.708236 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santos St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419882, 37.708643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.419968, 37.708372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Castelo St" }, "geometry": { "type": "Point", "coordinates": [ -122.418251, 37.707930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Castelo St" }, "geometry": { "type": "Point", "coordinates": [ -122.418423, 37.707726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Rio Verde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415719, 37.707149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Rio Verde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415547, 37.706946 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.412543, 37.708134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Macdonald Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.412972, 37.707115 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.413402, 37.706538 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Street & Schwerin Street" }, "geometry": { "type": "Point", "coordinates": [ -122.413101, 37.706300 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.412028, 37.709322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411985, 37.709085 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Schwerin St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.412372, 37.708270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Delta St & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407479, 37.717776 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.407222, 37.717843 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Delta St & Tioga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407737, 37.717300 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tioga Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.717165 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tioga Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405806, 37.716689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tioga Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405763, 37.716621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405248, 37.717368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405462, 37.717232 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "356 Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404389, 37.717063 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Campbell Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406192, 37.715365 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Campbell Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406235, 37.715162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Raymond Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.409067, 37.713872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Raymond Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.407179, 37.713362 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Leland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407351, 37.712649 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Leland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407393, 37.712480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Cora St" }, "geometry": { "type": "Point", "coordinates": [ -122.408981, 37.711733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Cora St" }, "geometry": { "type": "Point", "coordinates": [ -122.409625, 37.710205 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Cora St" }, "geometry": { "type": "Point", "coordinates": [ -122.409539, 37.710035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.408724, 37.709967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.408552, 37.709933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407951, 37.711563 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.408080, 37.711461 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.407823, 37.711495 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407951, 37.711359 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406793, 37.713804 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rutland St & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406750, 37.713872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arleta Ave & Alpha St" }, "geometry": { "type": "Point", "coordinates": [ -122.404990, 37.713226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Raymond Ave & Alpha St" }, "geometry": { "type": "Point", "coordinates": [ -122.405162, 37.712581 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leland Ave@Alpha St" }, "geometry": { "type": "Point", "coordinates": [ -122.405806, 37.711902 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.404518, 37.710578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "367 Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404132, 37.716893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.402329, 37.716316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.716112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.400270, 37.716621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.400227, 37.716486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399840, 37.717029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399969, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.401257, 37.716384 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.400999, 37.716282 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3800 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400613, 37.714822 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3800 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400613, 37.714822 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3801 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400484, 37.714686 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Campbell Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399368, 37.714822 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Hester Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.398982, 37.714992 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.402158, 37.713872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3947 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401900, 37.714245 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN BRUNO AVE & SOMERSET ST" }, "geometry": { "type": "Point", "coordinates": [ -122.402029, 37.713396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.712480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN BRUNO AVE & BAYSHORE BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.402587, 37.712378 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.712242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arleta Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.712242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.712174 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN BRUNO AVE & BAYSHORE BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.402415, 37.712378 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402329, 37.712480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402458, 37.712310 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd/Arleta/Blanken" }, "geometry": { "type": "Point", "coordinates": [ -122.402372, 37.712242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd/Arleta/Blanken" }, "geometry": { "type": "Point", "coordinates": [ -122.402329, 37.712276 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd/Arleta/Blanken" }, "geometry": { "type": "Point", "coordinates": [ -122.402329, 37.712276 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Blanken Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.712242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Blanken Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402158, 37.712276 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leland Ave@Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.403831, 37.711156 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Leland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403789, 37.711156 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403917, 37.710646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Hester Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400098, 37.713566 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Tunnel Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401042, 37.712921 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Tunnel Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400956, 37.712038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Tunnel Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400699, 37.712038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Peninsula Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399197, 37.711597 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Peninsula Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.398982, 37.711631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.408552, 37.709865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Talbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.407007, 37.709356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Talbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.406707, 37.709356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405119, 37.708983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.405205, 37.708949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405076, 37.708949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BAY SHORE BLVD & SUNNYDALE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.405076, 37.708847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.404647, 37.709526 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404861, 37.709118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SUNNYDALE AVE & BAYSHORE BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.405291, 37.708813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunnydale Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.405291, 37.708813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Nueva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.711223 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Nueva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397265, 37.711223 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Gillette Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.396364, 37.711020 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Blanken Ave & Gillette Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.396622, 37.710986 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Executive Park Blvd & Blanken Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394776, 37.710884 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Executive Park Blvd & Thomas Mellon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.393618, 37.711257 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingerson Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.391000, 37.718047 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingerson Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.389240, 37.717029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.388296, 37.718251 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "JAMESTOWN AVE & CANDLESTICK PARK" }, "geometry": { "type": "Point", "coordinates": [ -122.388725, 37.714415 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "49ERS DRIVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387824, 37.714143 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "49ERS DRIVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387738, 37.713396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "JAMESTOWN AVE & LANSDALE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387953, 37.712819 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alana Way & Executive Park Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.394261, 37.708983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "50 THOMAS MELLON DR" }, "geometry": { "type": "Point", "coordinates": [ -122.392931, 37.709831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Bill Walsh Way" }, "geometry": { "type": "Point", "coordinates": [ -122.387009, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Giants Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.387009, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Candlestick Park/49ers Stadium" }, "geometry": { "type": "Point", "coordinates": [ -122.386966, 37.712140 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUNKER RD/Stables" }, "geometry": { "type": "Point", "coordinates": [ -122.515411, 37.831751 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUNKER RD/Stables" }, "geometry": { "type": "Point", "coordinates": [ -122.514982, 37.831819 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUNKER RD/Rifle Range" }, "geometry": { "type": "Point", "coordinates": [ -122.508845, 37.833039 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUNKER RD/Rifle Range" }, "geometry": { "type": "Point", "coordinates": [ -122.508759, 37.832972 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mccullough Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.502451, 37.836124 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mccullough Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.502151, 37.836463 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mccullough Rd & Conzelman Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.494040, 37.833887 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": " Conzelman Rd & Mccullough Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.493825, 37.833717 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mccullough Rd & Conzelman Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.494040, 37.833616 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Conzelman Rd & Mccullough Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.493911, 37.833616 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "US101 Offramp/Sausalito Lateral Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.483869, 37.835920 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alexander Dr & Conzelman Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.483397, 37.833175 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Conzelman Rd/GGNRA entrance sign" }, "geometry": { "type": "Point", "coordinates": [ -122.483568, 37.833107 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Conzelman Rd/GGNRA entrance sign" }, "geometry": { "type": "Point", "coordinates": [ -122.483311, 37.832870 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CONZELMAN RD/Kirby Cove" }, "geometry": { "type": "Point", "coordinates": [ -122.484040, 37.829548 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CONZELMAN RD/Kirby Cove" }, "geometry": { "type": "Point", "coordinates": [ -122.483568, 37.829446 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Br Tunnel/Merchant Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.475886, 37.806699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Merchant St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475886, 37.803986 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Merchant St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.476015, 37.803782 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bowley St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.481208, 37.792253 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Bowley Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.482624, 37.788488 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Bowley St" }, "geometry": { "type": "Point", "coordinates": [ -122.482495, 37.788421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BOWLEY ST & GIBSON RD" }, "geometry": { "type": "Point", "coordinates": [ -122.482281, 37.790252 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Stillwell Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.480521, 37.793575 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Pershing Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480950, 37.792321 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Pershing Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480993, 37.792117 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Bridge/Parking Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.475028, 37.807580 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GOLDEN GATE BRIDGE/TOLL PLAZA" }, "geometry": { "type": "Point", "coordinates": [ -122.475243, 37.807241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GOLDEN GATE BRIDGE/TOLL PLAZA" }, "geometry": { "type": "Point", "coordinates": [ -122.475071, 37.806597 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Bridge/Parking Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.474899, 37.807478 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Br Tunnel/Merchant Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.806088 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "957 Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472239, 37.806936 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "957 Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472153, 37.806732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Cowles St" }, "geometry": { "type": "Point", "coordinates": [ -122.469063, 37.801816 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MASON ST (PRESIDIO)/Bldg B650" }, "geometry": { "type": "Point", "coordinates": [ -122.466831, 37.803477 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MASON ST (PRESIDIO)/Bldg B650" }, "geometry": { "type": "Point", "coordinates": [ -122.466617, 37.803613 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcdowell Ave & Cowles St" }, "geometry": { "type": "Point", "coordinates": [ -122.467089, 37.801816 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcdowell Ave & Cowles St" }, "geometry": { "type": "Point", "coordinates": [ -122.466960, 37.801612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Storey Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469277, 37.801036 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcdowell Ave & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.467346, 37.799849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MASON ST (PRESIDIO)/Bldg B639" }, "geometry": { "type": "Point", "coordinates": [ -122.462239, 37.803070 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MASON ST (PRESIDIO)/Bldg B639" }, "geometry": { "type": "Point", "coordinates": [ -122.462239, 37.802935 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Montgomery St (Presidio)/Bldg 102" }, "geometry": { "type": "Point", "coordinates": [ -122.459149, 37.800154 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Montgomery St & Moraga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460394, 37.798560 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moraga Ave & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.460265, 37.798459 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moraga Ave & Graham St" }, "geometry": { "type": "Point", "coordinates": [ -122.459235, 37.797950 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St (Presidio)/Presidio Bank" }, "geometry": { "type": "Point", "coordinates": [ -122.458034, 37.803816 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St (Presidio)/Presidio Bank" }, "geometry": { "type": "Point", "coordinates": [ -122.457776, 37.803715 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MASON ST (PRESIDIO)/PX" }, "geometry": { "type": "Point", "coordinates": [ -122.456832, 37.803918 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.456574, 37.801782 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Anza Blvd & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.456789, 37.801646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Anza Blvd & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.456746, 37.801612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Graham St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.456403, 37.801375 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MASON ST (PRESIDIO)/PX" }, "geometry": { "type": "Point", "coordinates": [ -122.456317, 37.803884 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Halleck St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.454557, 37.803715 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Halleck St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.454386, 37.803782 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Transit Center" }, "geometry": { "type": "Point", "coordinates": [ -122.455759, 37.802324 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Transit Center NS-??/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.455845, 37.802087 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Graham St" }, "geometry": { "type": "Point", "coordinates": [ -122.456360, 37.801612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Graham St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.801443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "220 Halleck St" }, "geometry": { "type": "Point", "coordinates": [ -122.454729, 37.801748 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HALLECK ST/Army Headquarters" }, "geometry": { "type": "Point", "coordinates": [ -122.454515, 37.801884 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Montgomery St (Presidio)/Bldg 102" }, "geometry": { "type": "Point", "coordinates": [ -122.459021, 37.800222 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Graham St & Moraga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459064, 37.797916 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Graham St & Moraga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458806, 37.797984 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moraga Ave & Graham St" }, "geometry": { "type": "Point", "coordinates": [ -122.458978, 37.797747 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Halleck St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.454901, 37.801104 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Halleck St" }, "geometry": { "type": "Point", "coordinates": [ -122.454772, 37.801036 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Girard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.454128, 37.800765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd&Girard Rd NW-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.454042, 37.800731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Blvd & Girard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.453957, 37.800561 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456317, 37.798425 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Funston Ave & Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.456360, 37.798289 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Barnard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.455115, 37.798255 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Barnard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.455029, 37.798187 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio YMCA Center N-MB/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.453442, 37.800358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Letterman Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.452927, 37.799137 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.452669, 37.799103 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PresidioBlvd&Letterman Dr.SE-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.452455, 37.799137 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Letterman Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.452540, 37.799069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LETTERMAN DR/Tides Bldg" }, "geometry": { "type": "Point", "coordinates": [ -122.451854, 37.799408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LETTERMAN DR & LINCOLN BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.451725, 37.799239 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LETTERMAN HOSPITAL" }, "geometry": { "type": "Point", "coordinates": [ -122.450094, 37.798187 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LETTERMAN DR & LOMBARD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.450137, 37.798086 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broderick St & Jefferson St" }, "geometry": { "type": "Point", "coordinates": [ -122.445374, 37.804359 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broderick St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.445245, 37.803647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broderick St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.445202, 37.803443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jefferson St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.443914, 37.804562 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.443700, 37.803782 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beach St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.443700, 37.803647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beach St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.443442, 37.803681 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broderick St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.444987, 37.802494 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broderick St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.444816, 37.801545 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.443528, 37.802867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.443314, 37.802867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.443357, 37.801918 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.443357, 37.801918 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Richardson Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.447476, 37.800426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Richardson Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.446961, 37.800358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.447176, 37.798560 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.447176, 37.798425 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lyon St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.447219, 37.797170 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Baker St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.445717, 37.797611 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broderick St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.444644, 37.800629 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.444429, 37.799849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.443142, 37.801002 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.442970, 37.800052 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.442756, 37.800052 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.442884, 37.799103 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard & Richardson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445116, 37.798696 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.442756, 37.798900 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Sumner Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451725, 37.796729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Blvd & Simonds Loop" }, "geometry": { "type": "Point", "coordinates": [ -122.451553, 37.796492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.445545, 37.795780 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.795610 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.445331, 37.795915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.447648, 37.790930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447391, 37.790930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.447433, 37.790727 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.447262, 37.789201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.447047, 37.788997 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447047, 37.788115 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.444386, 37.791303 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.444258, 37.791202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beach St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.442584, 37.803782 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Scott St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.441854, 37.803104 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Jefferson St" }, "geometry": { "type": "Point", "coordinates": [ -122.437391, 37.805444 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.441297, 37.800120 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.441125, 37.800290 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.439709, 37.800459 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.439365, 37.800392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.439451, 37.799306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.439194, 37.799544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Mallorca Way" }, "geometry": { "type": "Point", "coordinates": [ -122.437477, 37.800731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & STEINER ST" }, "geometry": { "type": "Point", "coordinates": [ -122.437177, 37.796899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.437177, 37.796899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.437134, 37.804427 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.436962, 37.804461 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.436833, 37.803579 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Cervantes Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.436833, 37.802833 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BATTERY St & GREENWICH St" }, "geometry": { "type": "Point", "coordinates": [ -122.436705, 37.802630 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.436533, 37.802426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BAY St & WEBSTER St" }, "geometry": { "type": "Point", "coordinates": [ -122.435203, 37.802765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fort Mason access road/Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.433615, 37.805444 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buchanan St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.433658, 37.804901 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buchanan St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.433357, 37.803443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FORT MASON/Bus isl nr guard gate" }, "geometry": { "type": "Point", "coordinates": [ -122.432113, 37.805308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Marina Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.432241, 37.805139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Marina Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.432199, 37.805139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.433100, 37.801172 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.432885, 37.801341 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.436490, 37.800900 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.436233, 37.801104 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.436190, 37.800934 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.436404, 37.800765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.436147, 37.799713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.435975, 37.799883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.435975, 37.799713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.436061, 37.799612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.435632, 37.800866 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.434731, 37.800968 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.434516, 37.801104 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Webster St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.434516, 37.800968 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.437091, 37.796797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.435503, 37.797407 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.435675, 37.797136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.435589, 37.797001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.435331, 37.797068 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.432628, 37.797543 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.432113, 37.797611 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.432327, 37.797441 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.442026, 37.796322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.442198, 37.796187 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.438893, 37.796594 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.438722, 37.796763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.437177, 37.796628 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.441339, 37.791575 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.441082, 37.791541 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.440910, 37.791744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.440910, 37.789981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.440782, 37.789981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.440910, 37.788115 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.440395, 37.788217 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.439280, 37.791948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.439623, 37.791778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.437520, 37.788522 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Green St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.436833, 37.796017 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.437048, 37.795949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.436876, 37.795881 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.436790, 37.794898 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.436705, 37.794932 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.436447, 37.794152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.436318, 37.794084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.434859, 37.794186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.434902, 37.793813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.434559, 37.792762 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.434688, 37.792558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.433400, 37.792694 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.433057, 37.792728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.432842, 37.792762 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.436361, 37.792219 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.436147, 37.792355 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.436147, 37.791473 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.434645, 37.792388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.434516, 37.791507 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.436833, 37.788488 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.435589, 37.789336 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steiner St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.435589, 37.788861 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.435117, 37.788794 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.432842, 37.791744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.434344, 37.789845 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.434130, 37.789947 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.433958, 37.789777 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.434044, 37.789608 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.433701, 37.789845 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.434173, 37.788963 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.433958, 37.788794 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.432542, 37.790015 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.432241, 37.790116 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "48th Ave & Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.509961, 37.779941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & El Camino Del Mar" }, "geometry": { "type": "Point", "coordinates": [ -122.509918, 37.779907 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.509618, 37.779806 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "902 Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.513008, 37.779127 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & Merrie Way" }, "geometry": { "type": "Point", "coordinates": [ -122.512064, 37.779059 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "48th Ave & Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.509446, 37.779025 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.510347, 37.775192 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "La Playa St & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.510262, 37.775023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.509961, 37.773327 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "La Playa St & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.510090, 37.773225 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "La Playa St & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.510004, 37.773225 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.509832, 37.773666 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.509918, 37.773225 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Great Hwy" }, "geometry": { "type": "Point", "coordinates": [ -122.510819, 37.771427 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "La Playa St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.509875, 37.771699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.509403, 37.771359 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.508502, 37.780009 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507472, 37.780043 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507429, 37.779941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "V.A. Hospital" }, "geometry": { "type": "Point", "coordinates": [ -122.505541, 37.782146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.504168, 37.781841 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "V.A. HOSPITAL" }, "geometry": { "type": "Point", "coordinates": [ -122.504125, 37.781841 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505240, 37.779772 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505026, 37.779840 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "43rd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.504253, 37.781027 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "43rd Ave & Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.504168, 37.779806 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503095, 37.779568 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LEGION OF HONOR" }, "geometry": { "type": "Point", "coordinates": [ -122.499704, 37.784995 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LEGION OF HONOR" }, "geometry": { "type": "Point", "coordinates": [ -122.499619, 37.785029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "42nd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.503009, 37.781095 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502880, 37.779670 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Point Lobos Ave & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502880, 37.779670 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500691, 37.779500 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.506270, 37.779059 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "45th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.505970, 37.775226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "45th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.505798, 37.775260 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503867, 37.775362 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503653, 37.775498 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507987, 37.773293 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507772, 37.773429 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "45th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.505841, 37.773564 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507043, 37.771597 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.506313, 37.771495 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "45th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.505713, 37.773598 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503653, 37.771597 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St t& 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503567, 37.771766 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503309, 37.771631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503095, 37.771800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502794, 37.779161 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500434, 37.775667 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500648, 37.775532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499833, 37.779297 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500348, 37.771902 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500091, 37.771902 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499919, 37.771800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 38th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497988, 37.772004 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GREAT HWY/near Beach Chalet" }, "geometry": { "type": "Point", "coordinates": [ -122.510304, 37.767899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GREAT HWY/near Beach Chalet" }, "geometry": { "type": "Point", "coordinates": [ -122.510476, 37.767390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & Great Hwy" }, "geometry": { "type": "Point", "coordinates": [ -122.510090, 37.764133 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.509575, 37.763930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.509232, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.509103, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.509017, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.508802, 37.760198 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507429, 37.764201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.506270, 37.764065 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.506142, 37.764065 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.506185, 37.762403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.506013, 37.762233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.508459, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.508159, 37.760300 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.508073, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "48th Ave & Juda St" }, "geometry": { "type": "Point", "coordinates": [ -122.508030, 37.760300 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.506056, 37.760537 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505841, 37.760503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505841, 37.760503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.506099, 37.760401 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.506056, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.505884, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.505927, 37.758671 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.505755, 37.758501 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.505755, 37.756805 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.505584, 37.756635 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.505627, 37.754939 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.505455, 37.754769 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502880, 37.760537 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502880, 37.760503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502623, 37.760673 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502580, 37.760605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499404, 37.760775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499361, 37.760775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499189, 37.760707 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499146, 37.760673 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.496657, 37.779466 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.496443, 37.779704 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Legion Of Honor Dr & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.494640, 37.781671 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & Legion Of Honor Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.494426, 37.781671 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "32nd Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.492580, 37.783435 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "32nd Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.492452, 37.783435 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "32nd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.492452, 37.781807 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492537, 37.781603 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "32nd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.492366, 37.782010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492237, 37.781773 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.493525, 37.781535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493482, 37.779806 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.493396, 37.781569 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493396, 37.779840 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493310, 37.779704 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493267, 37.779840 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493267, 37.779772 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493439, 37.779602 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493396, 37.779568 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493224, 37.779568 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "32nd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.492323, 37.779941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.488074, 37.783808 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.491465, 37.781671 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490520, 37.783672 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490091, 37.783604 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490649, 37.781841 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.491980, 37.779636 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.490091, 37.780789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490220, 37.779738 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490005, 37.779975 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.488461, 37.783672 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489061, 37.781909 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489319, 37.781773 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487173, 37.781875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486916, 37.782010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.488074, 37.779873 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487817, 37.780009 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497430, 37.775667 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497215, 37.775803 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.493267, 37.777872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Anza St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493052, 37.777872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.493095, 37.777703 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Anza St&32 AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.492194, 37.777770 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.494597, 37.775905 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.494211, 37.775803 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.493138, 37.776007 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33rd Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.493010, 37.776040 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.496829, 37.771936 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.496357, 37.772106 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.495584, 37.772004 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493181, 37.772241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492881, 37.772106 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "32ND AVE & ANZA St" }, "geometry": { "type": "Point", "coordinates": [ -122.492023, 37.777770 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "32nd Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.491980, 37.776685 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492065, 37.775905 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.491851, 37.776040 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489963, 37.776142 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489920, 37.776007 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487559, 37.776244 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487774, 37.776108 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FULTON ST & 31ST AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.490735, 37.772207 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton S t& 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489662, 37.772377 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489448, 37.772411 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489190, 37.772241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton S t& 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487516, 37.772479 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487302, 37.772513 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487173, 37.772377 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & El Camino Del Mar" }, "geometry": { "type": "Point", "coordinates": [ -122.485371, 37.787369 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & El Camino Del Mar" }, "geometry": { "type": "Point", "coordinates": [ -122.485156, 37.787539 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Lake St" }, "geometry": { "type": "Point", "coordinates": [ -122.485242, 37.785877 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485328, 37.783842 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Lake St" }, "geometry": { "type": "Point", "coordinates": [ -122.485070, 37.785707 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.485113, 37.784011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484856, 37.783978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.484856, 37.783808 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481894, 37.783944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481680, 37.784113 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485242, 37.782078 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.484984, 37.782180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.484727, 37.781976 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484512, 37.781976 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.484856, 37.780280 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484641, 37.780247 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484856, 37.780009 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.484641, 37.779941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483697, 37.782146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481809, 37.782112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481551, 37.782248 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.482710, 37.780111 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481422, 37.780348 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.478719, 37.784113 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.478461, 37.784249 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479877, 37.782316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479148, 37.782248 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479491, 37.780247 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479277, 37.780484 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 18th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477517, 37.782316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476745, 37.782451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476058, 37.780620 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476273, 37.780382 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.484727, 37.778313 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.484512, 37.778076 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.484598, 37.776448 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484641, 37.776380 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.484384, 37.776210 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484298, 37.776244 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.482195, 37.776481 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.482452, 37.776346 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.484426, 37.774582 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.484255, 37.774344 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484555, 37.772614 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.484298, 37.772716 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cross Over Dr & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.484083, 37.772377 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483826, 37.772513 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481380, 37.772784 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.480307, 37.776448 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.480092, 37.776583 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.478161, 37.776549 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477946, 37.776685 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475801, 37.776787 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476015, 37.776651 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.480650, 37.772682 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479191, 37.772886 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.478461, 37.772750 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 18th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476788, 37.772988 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 18th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476830, 37.772852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Park Presidio" }, "geometry": { "type": "Point", "coordinates": [ -122.476530, 37.772852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "37th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.496657, 37.764371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "36th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.495413, 37.764574 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.495799, 37.762641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.495971, 37.762505 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.494726, 37.764778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492580, 37.764846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.491937, 37.764744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490435, 37.764948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.488718, 37.764914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.488289, 37.765049 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.495885, 37.761012 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.495971, 37.760842 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.495971, 37.760808 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.495584, 37.760944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.495670, 37.760775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.495713, 37.759146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.495542, 37.758909 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493224, 37.760978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492967, 37.761080 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492967, 37.761046 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493181, 37.760910 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.495627, 37.757280 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.495413, 37.757042 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 38th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.496743, 37.753446 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.495499, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.495284, 37.755176 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.495327, 37.753548 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.495070, 37.753514 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492452, 37.753649 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492666, 37.753480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489748, 37.761216 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489748, 37.761182 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489533, 37.761114 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489491, 37.761080 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486787, 37.761250 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486787, 37.761182 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.491636, 37.753514 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490306, 37.753751 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489491, 37.753615 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489233, 37.753785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487345, 37.753717 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486143, 37.765151 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485542, 37.765049 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483997, 37.765253 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483397, 37.765117 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481852, 37.765355 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481637, 37.765219 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.481637, 37.765049 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.481508, 37.763149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.480392, 37.765219 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479706, 37.765456 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479491, 37.765287 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.480307, 37.763692 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477775, 37.765524 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477646, 37.765558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LINC. WAY & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.477431, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.477431, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cross Over Dr&Lincoln St" }, "geometry": { "type": "Point", "coordinates": [ -122.477260, 37.765558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LINCOLN WAY & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.477217, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & LINCOLN WAY" }, "geometry": { "type": "Point", "coordinates": [ -122.477217, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.477217, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.477217, 37.765219 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & LINCOLN WAY" }, "geometry": { "type": "Point", "coordinates": [ -122.477217, 37.765185 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.477345, 37.763692 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.477045, 37.763455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486529, 37.761351 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486529, 37.761317 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483568, 37.761385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483568, 37.761351 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483311, 37.761453 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.481380, 37.761623 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481208, 37.761589 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481165, 37.761555 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.481251, 37.759757 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.481122, 37.757891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486014, 37.753921 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485199, 37.753785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483869, 37.753989 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.482796, 37.754057 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483053, 37.753887 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479877, 37.761555 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479835, 37.761521 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.480135, 37.761487 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.480006, 37.759621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.479877, 37.757755 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477217, 37.761657 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477217, 37.761623 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19 Ave & Juda St" }, "geometry": { "type": "Point", "coordinates": [ -122.477088, 37.761758 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.477131, 37.761419 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476873, 37.761792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476830, 37.761758 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.476873, 37.761589 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.476745, 37.760164 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.476959, 37.759960 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.476788, 37.757891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.476573, 37.757891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.480993, 37.756025 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.479749, 37.755923 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.480865, 37.754158 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.480907, 37.753989 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.479620, 37.754362 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.476702, 37.756228 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.476444, 37.755991 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.476530, 37.753921 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.476315, 37.754124 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507858, 37.752937 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "47th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.506399, 37.752801 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ortega St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507515, 37.750935 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505713, 37.753039 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505584, 37.752903 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.505498, 37.752869 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.505326, 37.752835 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.504468, 37.752937 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.505369, 37.751206 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503610, 37.753140 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.505198, 37.751037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.505240, 37.749340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.505069, 37.749170 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.507043, 37.747372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lower Great Hwy & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.507558, 37.745472 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rivera St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.506742, 37.745370 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.505112, 37.747474 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.504897, 37.747440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.504940, 37.747304 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.504983, 37.745607 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rivera St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505069, 37.745438 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.504811, 37.745438 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502322, 37.753039 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.501035, 37.753242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500176, 37.753140 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.498889, 37.753344 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.498031, 37.753242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503052, 37.747440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.501979, 37.747575 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499833, 37.747542 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499533, 37.747711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497644, 37.747643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.504854, 37.743741 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.504683, 37.743571 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.504725, 37.741874 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.504511, 37.741840 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.504554, 37.741705 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.504382, 37.741773 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.504597, 37.740008 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.504468, 37.738175 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.504425, 37.739838 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vicente St & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505326, 37.738107 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "47th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.505369, 37.736037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.504296, 37.738006 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wawona/46th Ave /SF Zoo" }, "geometry": { "type": "Point", "coordinates": [ -122.504382, 37.736139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.504168, 37.736139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502623, 37.741807 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502365, 37.741942 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500477, 37.741908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500219, 37.742044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.498331, 37.742010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.498074, 37.742146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Great Hwy & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.506828, 37.735494 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505369, 37.735596 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.505369, 37.735562 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SLOAT BLVD & 47TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.504940, 37.735426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.503438, 37.735630 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.502794, 37.735392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.501378, 37.735392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.500777, 37.735019 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.499318, 37.734578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.498975, 37.734136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Herbst Rd & Amory Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.501721, 37.730675 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Armory Rd & Herbst Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.502322, 37.729758 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyline Blvd & Zoo Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.501721, 37.728231 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Herbst Rd & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.499232, 37.731625 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyline Blvd & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.499232, 37.731150 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyline Blvd & Harding Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.502537, 37.726771 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyline Blvd & Harding Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.502451, 37.726398 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "John Muir Dr & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.500048, 37.718998 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "John Muir Dr & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.499919, 37.718760 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.495456, 37.753344 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.495155, 37.753310 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "37th AVE & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.495584, 37.751308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.495027, 37.751817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.495198, 37.751308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.495070, 37.749815 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.494898, 37.749578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "39th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.497430, 37.747643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.494941, 37.747609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "39th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.497473, 37.745981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "39th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.497344, 37.745981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rivera St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.495370, 37.745879 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.494769, 37.748084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.494426, 37.747779 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493138, 37.747983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493353, 37.747847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.494812, 37.746082 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.494640, 37.745845 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.490993, 37.748051 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.491250, 37.747915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489061, 37.748017 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.488847, 37.748152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.487946, 37.748084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.487817, 37.748017 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486959, 37.748152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.486701, 37.748220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.487817, 37.746388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.487688, 37.746184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.494683, 37.744250 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.494512, 37.744012 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.494555, 37.742349 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.494683, 37.742180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.494640, 37.742146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.494254, 37.742316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.494254, 37.742282 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.494383, 37.742112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492967, 37.742248 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.492709, 37.742383 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.494426, 37.740144 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.494211, 37.740245 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.494297, 37.738650 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.494125, 37.738413 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.494168, 37.736784 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.493954, 37.736546 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489491, 37.742519 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.489791, 37.742383 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.487688, 37.744521 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.487602, 37.744284 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.487559, 37.742655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487345, 37.742621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487645, 37.742485 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.487431, 37.742417 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.487431, 37.740788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487259, 37.740721 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vicente St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.487173, 37.738786 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485628, 37.748288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485886, 37.748186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484813, 37.748220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.484598, 37.748322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483482, 37.748390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483482, 37.748288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481337, 37.748492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481594, 37.748390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.476230, 37.752733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.476401, 37.752089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.476058, 37.750426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.476273, 37.750222 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479191, 37.748560 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479448, 37.748458 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.476230, 37.748593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475843, 37.748729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.475929, 37.748560 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.476144, 37.748322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.476015, 37.746490 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.475801, 37.746693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.475672, 37.745268 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.475929, 37.745098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485499, 37.742553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485242, 37.742689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483354, 37.742655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483096, 37.742791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.481208, 37.742757 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "29th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.486143, 37.738990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.480478, 37.742892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.478805, 37.742994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.478461, 37.742892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475801, 37.743198 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475843, 37.742994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475629, 37.743028 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475715, 37.741297 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.496786, 37.733933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.496829, 37.733729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyline Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.496872, 37.733627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyline Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.496614, 37.733729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyline Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.496657, 37.733559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Yorba St" }, "geometry": { "type": "Point", "coordinates": [ -122.494082, 37.734815 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Yorba St" }, "geometry": { "type": "Point", "coordinates": [ -122.493825, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493653, 37.734069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.494597, 37.733763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493482, 37.733797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493696, 37.733390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493954, 37.732949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493868, 37.732032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.493653, 37.731862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493525, 37.730369 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Blvd & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.493696, 37.729826 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.491636, 37.734170 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Clearfield Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.491636, 37.733865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Everglade Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.489705, 37.733967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Constanso Way" }, "geometry": { "type": "Point", "coordinates": [ -122.489276, 37.734272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & El Mirasol Pl" }, "geometry": { "type": "Point", "coordinates": [ -122.486272, 37.734408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Sylvan Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.485843, 37.734136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Vale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483997, 37.734510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Forest View Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.483954, 37.734238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Paraiso Pl" }, "geometry": { "type": "Point", "coordinates": [ -122.482238, 37.734578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.482195, 37.734306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced & Middlefield Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.486444, 37.729656 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced & Middlefield Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.486315, 37.729453 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & Crestlake Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480092, 37.734680 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.479663, 37.734408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477388, 37.734781 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477260, 37.734510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buckingham Way & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.479105, 37.728570 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buckingham Way & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.479148, 37.728061 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Winston Dr & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.478676, 37.728027 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Winston Dr & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.478504, 37.728061 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th Ave & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.476058, 37.730030 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th Ave & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475886, 37.730437 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th Av/Macy's Stonestown" }, "geometry": { "type": "Point", "coordinates": [ -122.475801, 37.728808 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th Av/Macy's Stonestown" }, "geometry": { "type": "Point", "coordinates": [ -122.475715, 37.728876 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd/SFSU" }, "geometry": { "type": "Point", "coordinates": [ -122.484341, 37.726092 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LAKE MERCED BLVD & Font DR" }, "geometry": { "type": "Point", "coordinates": [ -122.485199, 37.724123 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.484899, 37.724259 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Winston Dr & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.483311, 37.727145 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Winston Dr & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.483311, 37.727009 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485027, 37.718726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Mary Ward Hall" }, "geometry": { "type": "Point", "coordinates": [ -122.483654, 37.722766 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Mary Ward Hall" }, "geometry": { "type": "Point", "coordinates": [ -122.483096, 37.722494 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Arballo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.482581, 37.721849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Arballo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.482152, 37.721781 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Pinto Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.483096, 37.720763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Acevedo Ave ." }, "geometry": { "type": "Point", "coordinates": [ -122.483139, 37.719914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.483225, 37.718624 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Tapia Dr NS/W/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.481251, 37.720763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "281 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.480092, 37.727178 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "280 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.480049, 37.726941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "170 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.478848, 37.725956 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "190 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.478805, 37.725889 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "91 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.477174, 37.725990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475972, 37.726907 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Winston Dr & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475929, 37.727043 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Winston Dr & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475758, 37.726907 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.476144, 37.726364 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "90 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.476873, 37.725990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Tapia Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480907, 37.720695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Serrano Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.480006, 37.719643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Serrano Dr NS/W-SB" }, "geometry": { "type": "Point", "coordinates": [ -122.479920, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Serrano Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.479620, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Juan Bautista Cir & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.478461, 37.718692 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crespi Dr & Varela Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475972, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr & Cardenas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475672, 37.719133 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475243, 37.784418 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475543, 37.784283 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.473269, 37.784520 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472796, 37.784385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Presidio & California Street" }, "geometry": { "type": "Point", "coordinates": [ -122.472754, 37.784385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PARK PRESIDIO BLVD & California ST" }, "geometry": { "type": "Point", "coordinates": [ -122.472539, 37.784520 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FUNSTON AVE & LAKE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.472196, 37.784622 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CALIFORNIA ST & FUNSTON AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.472153, 37.784554 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470865, 37.784588 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471123, 37.784486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475371, 37.782417 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473998, 37.782587 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473140, 37.782519 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 14 Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473097, 37.782519 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471166, 37.782723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470994, 37.782587 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th Avenue & Geary Boulevard" }, "geometry": { "type": "Point", "coordinates": [ -122.472839, 37.780721 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472711, 37.780552 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Presidio Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472239, 37.780789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472453, 37.780687 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Presidio Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472453, 37.780586 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470822, 37.780620 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470608, 37.780857 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469192, 37.784690 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468977, 37.784554 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467046, 37.784758 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.466831, 37.784825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466831, 37.784656 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.466745, 37.784486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464943, 37.785029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464728, 37.784927 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465458, 37.784825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469020, 37.782824 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468376, 37.782723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467647, 37.780993 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466874, 37.782926 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.466488, 37.783028 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466445, 37.782926 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466187, 37.782824 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.465458, 37.783164 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464814, 37.783028 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467346, 37.780789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.472711, 37.776787 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472453, 37.776821 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472239, 37.776922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Presidio Blvd & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.471981, 37.776956 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.471981, 37.776922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Presidio Blvd & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.472153, 37.776481 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470565, 37.776889 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470350, 37.777024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474942, 37.773055 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474213, 37.772954 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472196, 37.773191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Presidio Blvd & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.471938, 37.773293 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472024, 37.773055 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Presidio Blvd & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.471681, 37.773225 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470565, 37.773293 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468419, 37.776990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468204, 37.777126 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466273, 37.777092 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466059, 37.777228 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.465930, 37.775192 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465029, 37.775294 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464857, 37.775396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469835, 37.773191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468419, 37.773361 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467647, 37.773259 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.466102, 37.775023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466059, 37.773496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.466016, 37.773496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.465844, 37.773666 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465758, 37.773327 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cornwall St & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463655, 37.784893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Cornwall St" }, "geometry": { "type": "Point", "coordinates": [ -122.464514, 37.784690 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corwall St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464428, 37.784724 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462583, 37.785199 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462325, 37.785368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.459321, 37.785707 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.459278, 37.785572 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.464385, 37.783231 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.464557, 37.783028 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464342, 37.782858 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462583, 37.783096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461982, 37.782994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464170, 37.781162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464385, 37.780925 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.464385, 37.780789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.464213, 37.780891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 2nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459836, 37.783096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 3rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461166, 37.781061 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & 3rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460952, 37.781298 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Cherry St" }, "geometry": { "type": "Point", "coordinates": [ -122.456574, 37.786928 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Cherry St" }, "geometry": { "type": "Point", "coordinates": [ -122.456875, 37.786046 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.459064, 37.785673 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.459106, 37.785606 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458892, 37.783910 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Jordan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456961, 37.783876 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Jordan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456660, 37.784011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Cherry St" }, "geometry": { "type": "Point", "coordinates": [ -122.456360, 37.785979 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Commonwealth St" }, "geometry": { "type": "Point", "coordinates": [ -122.456360, 37.785979 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Maple St" }, "geometry": { "type": "Point", "coordinates": [ -122.455244, 37.786250 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.454772, 37.783978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.454515, 37.784147 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.453742, 37.783978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Euclid Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458978, 37.783740 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "ARGUELLO BLVD & EUCLID AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.459106, 37.783265 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clement St & 2nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459106, 37.783265 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.459106, 37.783096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458806, 37.781875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458978, 37.781434 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458763, 37.781400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458720, 37.781162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458763, 37.781095 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.456446, 37.781264 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Commonwealth St" }, "geometry": { "type": "Point", "coordinates": [ -122.455716, 37.781535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.464256, 37.779195 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.464085, 37.779025 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464170, 37.777296 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461982, 37.777296 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.464128, 37.776990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.463956, 37.777160 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463870, 37.777194 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cabrillo St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463999, 37.775464 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.463827, 37.775633 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461767, 37.777397 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464128, 37.773700 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Fulton" }, "geometry": { "type": "Point", "coordinates": [ -122.463870, 37.773768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Fulton" }, "geometry": { "type": "Point", "coordinates": [ -122.463870, 37.773768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.463741, 37.773971 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463870, 37.773564 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461982, 37.773971 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461252, 37.773870 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458892, 37.777499 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.458549, 37.777499 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.458677, 37.777092 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458205, 37.777160 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.455373, 37.777669 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.455072, 37.777567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458549, 37.774378 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arguello Blvd & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.458334, 37.774446 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458034, 37.774311 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Stanyan StW" }, "geometry": { "type": "Point", "coordinates": [ -122.454858, 37.774819 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.454729, 37.774616 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.454557, 37.774785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.454171, 37.772988 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.453914, 37.772920 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.454343, 37.772784 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.454214, 37.772852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.453828, 37.770884 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475457, 37.765626 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475243, 37.765490 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473226, 37.765728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473054, 37.765592 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471037, 37.765830 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470865, 37.765660 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470350, 37.762098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TEA GARDEN DR/DeYoung Museum" }, "geometry": { "type": "Point", "coordinates": [ -122.468934, 37.770545 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CONCOURSE DR/Academy of Sciences" }, "geometry": { "type": "Point", "coordinates": [ -122.466187, 37.770443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468891, 37.765931 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468719, 37.765762 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469363, 37.762098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466788, 37.766033 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LINCOLN&9AV(NEW STOP)" }, "geometry": { "type": "Point", "coordinates": [ -122.466359, 37.766033 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.466359, 37.765864 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466230, 37.765864 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.466531, 37.765694 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.466273, 37.764303 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464643, 37.766101 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.466402, 37.763828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466187, 37.764133 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St. & 9th Ave." }, "geometry": { "type": "Point", "coordinates": [ -122.466187, 37.764133 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave. & Irving St." }, "geometry": { "type": "Point", "coordinates": [ -122.466273, 37.763964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.466273, 37.763930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466702, 37.762233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466316, 37.762166 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466316, 37.762132 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.466273, 37.762064 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.466102, 37.762098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473783, 37.761928 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473698, 37.761928 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.473741, 37.759316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Avenue at Lawton Street" }, "geometry": { "type": "Point", "coordinates": [ -122.473826, 37.758026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.473698, 37.758128 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.472796, 37.761860 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.472796, 37.761826 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470608, 37.761962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & Lomita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.472711, 37.759180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & Lomita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.472281, 37.759146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Lomita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473526, 37.756975 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.473698, 37.756364 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.473612, 37.756330 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noriega St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473140, 37.755278 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.473226, 37.754260 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.472196, 37.754124 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469535, 37.761996 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469535, 37.761962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470093, 37.758332 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470050, 37.758230 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468162, 37.758264 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467947, 37.758434 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.466187, 37.760435 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & KIRKHAM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.466187, 37.760401 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.465973, 37.760266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9TH AVE & LAWTON ST" }, "geometry": { "type": "Point", "coordinates": [ -122.466059, 37.758569 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.466059, 37.758535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466059, 37.758400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465844, 37.758535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.465844, 37.758366 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.465887, 37.756703 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.465715, 37.756533 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.465758, 37.754837 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.465587, 37.754667 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464042, 37.765965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462497, 37.766203 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461896, 37.766067 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464299, 37.764099 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464042, 37.764167 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464385, 37.762335 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464170, 37.762233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462883, 37.762403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judah St & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462025, 37.762301 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461081, 37.764235 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460866, 37.764303 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & 3rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460179, 37.766135 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460780, 37.762742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460523, 37.762674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave &4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460952, 37.762539 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "513 Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459965, 37.762810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lincoln Way & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.457991, 37.765999 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St & 2nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458677, 37.764473 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Irving St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458034, 37.764371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.457647, 37.766067 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carl St & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456574, 37.765015 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carl St & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456532, 37.764948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "500 Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458763, 37.763319 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "513 Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458205, 37.763319 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457004, 37.763828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456746, 37.763726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.454944, 37.766237 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.454729, 37.766101 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.454557, 37.764371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.454343, 37.764269 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464128, 37.758637 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lawton St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463913, 37.758501 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.463870, 37.758434 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Warren Dr & Locksley Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463140, 37.758705 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "455 Warren Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.461939, 37.757755 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1697 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463613, 37.756771 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1697 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463741, 37.756601 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1798 Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.463827, 37.754667 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Noriega StE" }, "geometry": { "type": "Point", "coordinates": [ -122.463570, 37.754905 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "400 Warren Dr E" }, "geometry": { "type": "Point", "coordinates": [ -122.461510, 37.756941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "345 Warren Dr E" }, "geometry": { "type": "Point", "coordinates": [ -122.461338, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Warren Dr & Devonshire Way" }, "geometry": { "type": "Point", "coordinates": [ -122.461123, 37.754498 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Warren Dr & Christopher Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.460008, 37.753785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "117 Warren Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.457991, 37.753683 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Warren Dr & Oakpark Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.456360, 37.755346 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakpark Dr & Forest Knolls Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.455416, 37.755312 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clarendon Ave & Panorama Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.455544, 37.753683 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.453313, 37.786521 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.453527, 37.786352 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.453527, 37.784113 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Iris Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451982, 37.784045 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Iris Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451768, 37.784215 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Laurel St" }, "geometry": { "type": "Point", "coordinates": [ -122.450266, 37.786725 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Laurel St" }, "geometry": { "type": "Point", "coordinates": [ -122.449965, 37.786928 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Walnut St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.448549, 37.787505 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.450309, 37.784385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.449923, 37.784622 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448292, 37.784995 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.453098, 37.781875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.453270, 37.781603 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.450008, 37.782248 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.449923, 37.782044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Walnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.447991, 37.788047 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.446918, 37.787369 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.787267 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.787200 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.786352 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.446747, 37.787403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.446532, 37.786250 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446747, 37.785402 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Euclid Ave & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.785266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.446318, 37.784418 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.446232, 37.784554 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446189, 37.784385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.443657, 37.787742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.443399, 37.787640 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.443099, 37.784893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.443314, 37.784792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.447605, 37.782146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447305, 37.782180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.447305, 37.782146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446833, 37.782519 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.445931, 37.782689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Presidio Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.445803, 37.782723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445974, 37.782349 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.442970, 37.782994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453313, 37.777906 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453485, 37.777770 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Chabot Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.451725, 37.778110 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Chabot Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.451382, 37.778042 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Roselyn Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.449665, 37.778381 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Roselyn Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.449622, 37.778245 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.450094, 37.775430 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.449322, 37.775396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453270, 37.775023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton Street & Shrader Street" }, "geometry": { "type": "Point", "coordinates": [ -122.453141, 37.774921 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.452412, 37.775023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Shrader St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.452884, 37.774039 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.452798, 37.773055 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.452540, 37.773191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.452540, 37.773089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.451124, 37.773259 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.450867, 37.773395 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.449193, 37.773632 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.449493, 37.773429 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.447176, 37.778788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447219, 37.778686 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447176, 37.778551 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.778788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446918, 37.777567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445459, 37.778788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446747, 37.777601 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446833, 37.775701 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.775905 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fulton St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446275, 37.775905 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "McAllister S t& Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.446318, 37.775769 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.446361, 37.775735 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445288, 37.778924 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.443829, 37.778992 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.443614, 37.779127 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "McAllister St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443228, 37.777296 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Central Ave & McAllister St" }, "geometry": { "type": "Point", "coordinates": [ -122.444987, 37.776787 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444773, 37.776956 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Central Ave & McAllister St" }, "geometry": { "type": "Point", "coordinates": [ -122.444859, 37.776821 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "McAllister St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.443442, 37.777126 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.443357, 37.777160 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.447605, 37.773802 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.447348, 37.773768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.446275, 37.774039 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.446060, 37.774073 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446532, 37.773937 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445717, 37.773971 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.445631, 37.771970 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.445760, 37.771732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444515, 37.774107 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444301, 37.774209 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.442884, 37.774311 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.442670, 37.774446 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.440739, 37.787980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.440524, 37.788014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.440352, 37.787030 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.440009, 37.786284 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.439966, 37.785165 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.439837, 37.785368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.439752, 37.785334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.439451, 37.785266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.438335, 37.785402 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.438121, 37.785538 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.437778, 37.783876 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & St Joseph'S Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442541, 37.782824 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.440310, 37.779534 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.439408, 37.783435 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.439451, 37.783401 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.439580, 37.783197 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.439537, 37.783164 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.439237, 37.781637 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.439108, 37.781841 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.437692, 37.783638 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.438850, 37.780518 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.438765, 37.780552 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.438979, 37.780450 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.437177, 37.780891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.437391, 37.780755 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.434816, 37.785945 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.435031, 37.785809 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.433572, 37.788081 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.433658, 37.787742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.433228, 37.786013 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.433186, 37.786182 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.432842, 37.786114 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.433271, 37.785843 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.433057, 37.784418 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.433314, 37.784283 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.432928, 37.784758 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.432928, 37.784011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.435546, 37.781095 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.435718, 37.780959 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.432714, 37.783028 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.432628, 37.783197 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.432370, 37.781739 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.432413, 37.781535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.432456, 37.781366 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.432241, 37.781502 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.432156, 37.780213 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431984, 37.779873 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.442198, 37.779297 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.442155, 37.779195 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.441854, 37.777329 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.441554, 37.777465 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.440524, 37.779365 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.440181, 37.777533 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.439923, 37.777669 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "McAllister St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.438593, 37.777838 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.438550, 37.777737 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.438335, 37.777872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.438250, 37.777872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.438421, 37.777703 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.438250, 37.776787 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.438078, 37.776787 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.437778, 37.775091 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.441511, 37.774582 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.441297, 37.774514 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Buena Vista East Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440567, 37.770783 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.440267, 37.770952 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.439837, 37.774785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.439623, 37.774751 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.438207, 37.775023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.437906, 37.774921 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.437434, 37.775023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.437520, 37.773055 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.437391, 37.773191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.437391, 37.771325 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.435203, 37.778177 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.434945, 37.778279 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.436490, 37.775226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.436275, 37.775159 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.434473, 37.775498 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.432113, 37.778652 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431726, 37.778551 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431769, 37.778347 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.434216, 37.775430 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.433228, 37.775633 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.432499, 37.775633 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.437005, 37.771359 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Divisadero St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.437134, 37.771054 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.436748, 37.771258 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.433872, 37.771631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.433658, 37.771800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.453098, 37.769188 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.452884, 37.769358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Shrader St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.451768, 37.769324 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.453485, 37.768340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.453356, 37.768272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.453270, 37.766440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.452927, 37.766474 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.450824, 37.769629 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.450824, 37.769460 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.450781, 37.769460 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.450652, 37.769460 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.448678, 37.769731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.448506, 37.769901 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.450438, 37.768544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.450223, 37.766847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carl St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.452970, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.452841, 37.765558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carl St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.452626, 37.765524 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stanyan St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.452712, 37.765355 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.452884, 37.764574 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.452669, 37.764439 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.451124, 37.764778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.451339, 37.764608 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carl St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.450094, 37.765897 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.449923, 37.765965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carl St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.449837, 37.765864 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carl St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.450137, 37.765762 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.449965, 37.765592 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.450094, 37.764914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parnassus Ave & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.449880, 37.764812 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.449751, 37.764778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.449794, 37.764642 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Alma St" }, "geometry": { "type": "Point", "coordinates": [ -122.449536, 37.763285 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Alma St" }, "geometry": { "type": "Point", "coordinates": [ -122.449408, 37.763149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.446876, 37.769968 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.446876, 37.769188 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445674, 37.770274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.445459, 37.770342 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.445416, 37.770104 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.769019 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.447948, 37.767119 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.447948, 37.766949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.767288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.446489, 37.767322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.446489, 37.767153 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.446318, 37.767187 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.445331, 37.770376 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445374, 37.770240 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445159, 37.770172 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443571, 37.770511 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Buena Vista West Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442970, 37.770443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Masonic Ave & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.444859, 37.767526 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Frederick St & Masonic St" }, "geometry": { "type": "Point", "coordinates": [ -122.444859, 37.767356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.447820, 37.766305 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.447948, 37.766169 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447648, 37.765423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447777, 37.765253 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Piedmont St" }, "geometry": { "type": "Point", "coordinates": [ -122.446103, 37.765321 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.446103, 37.764303 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Piedmont St" }, "geometry": { "type": "Point", "coordinates": [ -122.445889, 37.765151 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.445974, 37.764303 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "ASHBURY ST & CLAYTON ST" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.763048 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ashbury St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.446833, 37.762980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Upper Ter & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443399, 37.765456 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Upper Ter & Buena Vista Ave West" }, "geometry": { "type": "Point", "coordinates": [ -122.442842, 37.765830 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "414 Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.443314, 37.764507 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "415 Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.443142, 37.764507 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & Lower Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.443743, 37.763421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & Lower Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.443829, 37.763251 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.443013, 37.763760 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.442927, 37.763760 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.449236, 37.761725 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.449021, 37.761691 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cole St & Carmel St" }, "geometry": { "type": "Point", "coordinates": [ -122.449064, 37.760944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Panorama Dr & Dellbrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.452626, 37.753480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Marview Way & Panorama Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.450566, 37.753649 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Belvedere St" }, "geometry": { "type": "Point", "coordinates": [ -122.447691, 37.761792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carmel St & Belvedere St" }, "geometry": { "type": "Point", "coordinates": [ -122.447648, 37.760944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.761860 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carmel St & Twin Peaks Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.760944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Twin Peaks Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.446489, 37.760876 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Carmel St" }, "geometry": { "type": "Point", "coordinates": [ -122.446361, 37.760944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.446146, 37.758942 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445974, 37.758807 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.445931, 37.758671 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445889, 37.758671 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.445374, 37.761996 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.445245, 37.761962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.444086, 37.761351 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.444086, 37.761216 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "320 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445331, 37.759926 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "341 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445116, 37.759926 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Mars St" }, "geometry": { "type": "Point", "coordinates": [ -122.444515, 37.760503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Mars St" }, "geometry": { "type": "Point", "coordinates": [ -122.444258, 37.760571 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "210 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442842, 37.761826 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "211 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442970, 37.761657 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.443571, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.443528, 37.760266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.444472, 37.759825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Iron Aly" }, "geometry": { "type": "Point", "coordinates": [ -122.444773, 37.757823 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.444515, 37.758400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.444086, 37.758434 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clayton St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.444344, 37.758230 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "539 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444172, 37.757517 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Graystone Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.443442, 37.756466 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Graystone Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.443314, 37.756432 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Romain St" }, "geometry": { "type": "Point", "coordinates": [ -122.442842, 37.755380 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Romain St" }, "geometry": { "type": "Point", "coordinates": [ -122.442799, 37.755516 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "795 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443013, 37.754124 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "800 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443013, 37.754023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buena Vista Ave E & Buena Vista Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.440224, 37.767763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buena Vista Ave E & Buena Vista Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.438550, 37.768679 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUENA VISTA TER & BUENA VISTA AVE E" }, "geometry": { "type": "Point", "coordinates": [ -122.438335, 37.768849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Park Hill Ave & Buena Vista East" }, "geometry": { "type": "Point", "coordinates": [ -122.439280, 37.768069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.439537, 37.766508 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buena Vista Ter & Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.438207, 37.766813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way&Buena Vista Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.438293, 37.766712 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Buena Vista Ter & Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.438164, 37.766881 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Alpine Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.437220, 37.767322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.437263, 37.767187 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Roosevelt Way & Museum Way" }, "geometry": { "type": "Point", "coordinates": [ -122.441039, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Douglass St" }, "geometry": { "type": "Point", "coordinates": [ -122.439623, 37.762098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.437520, 37.762437 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435975, 37.769188 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435718, 37.768951 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.435846, 37.767390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.435803, 37.767288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435589, 37.767628 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435718, 37.767424 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duboce St/Noe St/Duboce Park" }, "geometry": { "type": "Point", "coordinates": [ -122.433701, 37.769426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duboce Ave & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.433658, 37.769222 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duboce Ave & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.433701, 37.769120 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sunset Tunnel East Portal" }, "geometry": { "type": "Point", "coordinates": [ -122.433100, 37.769154 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.433271, 37.767526 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.433572, 37.767424 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435589, 37.765864 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435417, 37.765626 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435460, 37.764303 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.435803, 37.762301 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435288, 37.764167 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435417, 37.762641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.435460, 37.762471 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.435417, 37.762471 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.435288, 37.762573 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.435288, 37.762403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435117, 37.762403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.434902, 37.762539 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.432842, 37.764507 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.433701, 37.763930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.433357, 37.763964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.433014, 37.762674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.441125, 37.761725 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.441125, 37.761623 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Ord St" }, "geometry": { "type": "Point", "coordinates": [ -122.440224, 37.761928 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.441125, 37.760605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.440782, 37.760503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.438293, 37.761623 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.438207, 37.760639 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Eureka St" }, "geometry": { "type": "Point", "coordinates": [ -122.438164, 37.760775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.437305, 37.760707 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.438078, 37.759044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.440438, 37.755041 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.441168, 37.754057 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hoffman Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.440910, 37.754023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Eureka St" }, "geometry": { "type": "Point", "coordinates": [ -122.437863, 37.757585 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.437906, 37.757416 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.437906, 37.755991 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.437735, 37.755821 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "21st St & Douglass St" }, "geometry": { "type": "Point", "coordinates": [ -122.439022, 37.755380 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Douglass St & Alvarado St" }, "geometry": { "type": "Point", "coordinates": [ -122.438765, 37.753548 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.437778, 37.754396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.437606, 37.754226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.435160, 37.760978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434945, 37.760842 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435074, 37.760775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.434859, 37.760876 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434945, 37.759417 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434816, 37.759180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434773, 37.757789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.432928, 37.760978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.432714, 37.761114 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Collingwood St" }, "geometry": { "type": "Point", "coordinates": [ -122.435975, 37.757687 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434645, 37.757653 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.434645, 37.756126 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.434473, 37.755957 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.434516, 37.754667 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.434344, 37.754430 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.473097, 37.752428 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.472968, 37.750562 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.472067, 37.752699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.471981, 37.750833 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474127, 37.748831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474084, 37.748695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473826, 37.748865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.473869, 37.748593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473011, 37.748729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.473912, 37.746999 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.473741, 37.746761 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.473741, 37.745132 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santiago St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473526, 37.745098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.471852, 37.748933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.470779, 37.748899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santiago St & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470522, 37.745098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.470307, 37.745030 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468376, 37.749069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & Cragmont Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467690, 37.749102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ortega St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466488, 37.752903 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "10th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.466531, 37.752733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.465672, 37.752971 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ortega St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465672, 37.752801 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "10th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.466574, 37.750731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "10th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.466402, 37.750867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "10th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.466445, 37.749170 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "10th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.466273, 37.749340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469664, 37.748865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469449, 37.749001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468591, 37.748899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Quintara St & Cragmont Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467089, 37.749001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475543, 37.743334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475457, 37.743130 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473741, 37.743096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taraval St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473440, 37.743232 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475457, 37.741501 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St. & 17th Ave." }, "geometry": { "type": "Point", "coordinates": [ -122.473526, 37.741230 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.471423, 37.743096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.471337, 37.743130 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.470307, 37.743402 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.470179, 37.743198 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.471337, 37.741501 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.471209, 37.741535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.470222, 37.741535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.475543, 37.739024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.475286, 37.739227 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.475457, 37.737598 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.475157, 37.737361 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470522, 37.736512 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th Ave & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.470393, 37.736410 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.470050, 37.741603 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & Forest Side Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468805, 37.741467 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & Forest Side Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468505, 37.741535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & Lenox Way" }, "geometry": { "type": "Point", "coordinates": [ -122.466273, 37.741196 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & West Portal Ave Leave" }, "geometry": { "type": "Point", "coordinates": [ -122.466145, 37.741128 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & WEST PORTAL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.466145, 37.741026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466016, 37.740924 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.465415, 37.741467 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.465887, 37.741026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.465973, 37.740890 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.465887, 37.740924 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.465801, 37.740958 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.465758, 37.740958 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & West portal t" }, "geometry": { "type": "Point", "coordinates": [ -122.465801, 37.740890 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ulloa St & West Portal Ave Arrive" }, "geometry": { "type": "Point", "coordinates": [ -122.465758, 37.740890 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.465672, 37.740958 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Station Inbound" }, "geometry": { "type": "Point", "coordinates": [ -122.465544, 37.741162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.465930, 37.740788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave&Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.465844, 37.740856 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.465801, 37.740822 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.465758, 37.740856 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469063, 37.738107 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469063, 37.738107 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469020, 37.738073 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469063, 37.737870 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.469063, 37.737870 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.467003, 37.739872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.467003, 37.739635 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vicente St & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466788, 37.739702 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vicente St & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466617, 37.739465 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Ave & Claremont Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465072, 37.739872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465286, 37.739567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461381, 37.751138 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461081, 37.750969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Forest Hill Station Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.459192, 37.748186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clarendon Ave & Clarendon Woods S" }, "geometry": { "type": "Point", "coordinates": [ -122.458420, 37.751715 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LAGUNA HONDA Hosp/Clarendon Hall" }, "geometry": { "type": "Point", "coordinates": [ -122.456918, 37.749849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clarendon Ave & Galewood Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.455888, 37.753106 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Olympia Way & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456231, 37.751512 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clarendon Ave & Olympia Way" }, "geometry": { "type": "Point", "coordinates": [ -122.456188, 37.751647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Olympia Way & Dellbrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.454429, 37.751376 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd/opp Forest Hill" }, "geometry": { "type": "Point", "coordinates": [ -122.458935, 37.748390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd/opp Forest Hill" }, "geometry": { "type": "Point", "coordinates": [ -122.458849, 37.748356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd/opp FOREST HILL" }, "geometry": { "type": "Point", "coordinates": [ -122.458806, 37.748288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Forest Hill Station" }, "geometry": { "type": "Point", "coordinates": [ -122.459064, 37.748118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd/Forest Hill Sta" }, "geometry": { "type": "Point", "coordinates": [ -122.458978, 37.748186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Forest Hill Station" }, "geometry": { "type": "Point", "coordinates": [ -122.458978, 37.748186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd/Forest Hill Sta" }, "geometry": { "type": "Point", "coordinates": [ -122.458978, 37.748186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LAGUNA HONDA BLVD & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.458763, 37.748220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd/FOREST HILL STA" }, "geometry": { "type": "Point", "coordinates": [ -122.458849, 37.747915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd/Forest Hill Sta" }, "geometry": { "type": "Point", "coordinates": [ -122.458806, 37.747847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Dewey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.459064, 37.747270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hospital Entr Rd/Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.458677, 37.747134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LAGUNA HONDA Hospital/Main Hosp" }, "geometry": { "type": "Point", "coordinates": [ -122.457132, 37.747813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Vasquez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458162, 37.746048 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Balceta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456446, 37.746490 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Balceta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457132, 37.745404 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Balceta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457218, 37.745302 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "LAGUNA HONDA Hospital/E Parkng Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.454686, 37.747813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Hernandez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455373, 37.746388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Hernandez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455630, 37.746286 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Hernandez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455587, 37.746286 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.453871, 37.745777 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.454085, 37.745709 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & San Pablo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461081, 37.740415 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & San Lorenzo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.463698, 37.739940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Dorchester Way" }, "geometry": { "type": "Point", "coordinates": [ -122.463441, 37.740110 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & San Pablo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460866, 37.740245 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Miraloma Dr & Juanita Way" }, "geometry": { "type": "Point", "coordinates": [ -122.460093, 37.739397 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Miraloma Dr & Marne Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459278, 37.740211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Miraloma Dr & Marne Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459235, 37.740110 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Miraloma Dr & Juanita Way" }, "geometry": { "type": "Point", "coordinates": [ -122.460051, 37.739227 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "126 Miraloma Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.461467, 37.737768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Miraloma Dr & Bengal Aly" }, "geometry": { "type": "Point", "coordinates": [ -122.461338, 37.737870 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Idora Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456660, 37.744182 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Idora Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456446, 37.744012 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Waithman Way" }, "geometry": { "type": "Point", "coordinates": [ -122.456532, 37.741637 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Rex Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457519, 37.740890 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.455802, 37.743503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna Honda Blvd & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.455502, 37.743130 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.455201, 37.743266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.455244, 37.742892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Del Sur Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455802, 37.741976 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MYRA WAY & DALEWOOD" }, "geometry": { "type": "Point", "coordinates": [ -122.453957, 37.736716 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Myra Way & Dalewood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.453828, 37.736750 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475286, 37.734510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd. & 19th Ave." }, "geometry": { "type": "Point", "coordinates": [ -122.475243, 37.734713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.474985, 37.734747 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475243, 37.734578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474513, 37.734781 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.732813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474942, 37.732473 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474813, 37.732134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473741, 37.732032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.473826, 37.731829 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Potral & Sola Blvd NW-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.471552, 37.735053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471895, 37.734781 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471895, 37.734646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sloat Blvd & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471895, 37.734578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.471638, 37.734815 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.471981, 37.734306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.471895, 37.734306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.471681, 37.734340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.471123, 37.735494 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "WEST PORTAL AVE & SLOAT BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.471423, 37.734917 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.471294, 37.735053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.471466, 37.734849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471724, 37.731659 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474985, 37.731184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eucalyptus Dr & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474771, 37.731184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474384, 37.731218 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474728, 37.730980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eucalyptus Dr & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474556, 37.731048 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474384, 37.731014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eucalyptus Dr & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472453, 37.731014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471895, 37.731252 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471852, 37.731285 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.471681, 37.731387 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "JUNIPERO SERRA BLVD & SLOAT BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.471681, 37.731353 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.471724, 37.730980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Saint Francis Blvd & San Fernando Way" }, "geometry": { "type": "Point", "coordinates": [ -122.469835, 37.734713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Saint Francis Blvd & San Fernando Way" }, "geometry": { "type": "Point", "coordinates": [ -122.469621, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Saint Francis Blvd & Santa Ana Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467861, 37.734951 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Saint Francis Blvd & Santa Ana Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.468076, 37.734815 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Saint Francis Blvd & Santa Clara Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466402, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santa Clara Ave & Saint Francis Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.466187, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Santa Clara Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.465801, 37.733220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & San Anselmo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.465544, 37.733152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & San Leandro Way" }, "geometry": { "type": "Point", "coordinates": [ -122.469492, 37.729962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & San Leandro Way" }, "geometry": { "type": "Point", "coordinates": [ -122.469492, 37.729962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & San Leandro Way" }, "geometry": { "type": "Point", "coordinates": [ -122.469106, 37.729996 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Aptos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467904, 37.728400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Aptos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467904, 37.728400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Aptos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.467604, 37.728299 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.727280 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474942, 37.727043 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474856, 37.727212 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474685, 37.727212 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475071, 37.725787 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & HOLLOWAY AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HOLLOWAY AVE & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.721136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & HOLLOWAY Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Avenue & Holloway St" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475243, 37.721102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & HOLLOWAY" }, "geometry": { "type": "Point", "coordinates": [ -122.475114, 37.721001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19TH AVE & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475028, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holloway Ave & Denslowe Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474341, 37.721340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holloway Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472968, 37.721612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crespi Dr & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475328, 37.720220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr. & Crespi Dr." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Crespi Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474942, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cardenas Ave & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475414, 37.719066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Banbury Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474599, 37.719541 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holloway Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472754, 37.721510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holloway Ave & Beverly St" }, "geometry": { "type": "Point", "coordinates": [ -122.471809, 37.721612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beverly St & Garfield St" }, "geometry": { "type": "Point", "coordinates": [ -122.471766, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Beverly St" }, "geometry": { "type": "Point", "coordinates": [ -122.471552, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & Garfield St" }, "geometry": { "type": "Point", "coordinates": [ -122.472281, 37.719575 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Cerritos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466788, 37.727280 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Cerritos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.466788, 37.727246 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Westgate Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.466488, 37.727212 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.469749, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St&Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.469964, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Vernon St" }, "geometry": { "type": "Point", "coordinates": [ -122.467947, 37.719778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St&Vernon St" }, "geometry": { "type": "Point", "coordinates": [ -122.468162, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GARFIELD ST & VICTORIA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.465243, 37.719778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.465458, 37.719643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & San Aleso Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.464557, 37.732304 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & San Jacinto Way" }, "geometry": { "type": "Point", "coordinates": [ -122.463999, 37.732066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Miraloma Dr & Yerba Buena Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460823, 37.735528 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Yerba Buena Ave & Ravenwood Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.460566, 37.735324 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Yerba Buena Ave & Hazelwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459664, 37.734578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Yerba Buena Ave & Hazelwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459707, 37.734408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Yerba Buena Ave & Brentwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459192, 37.733729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Northgate Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.461896, 37.729996 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & El Verano Way" }, "geometry": { "type": "Point", "coordinates": [ -122.461510, 37.730098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Saint Elmo WayE" }, "geometry": { "type": "Point", "coordinates": [ -122.460437, 37.730573 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Yerba Buena Ave & Brentwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458978, 37.733627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Yerba Buena Ave & Saint Elmo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.458720, 37.732643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Yerba Buena Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458549, 37.732643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457776, 37.732270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457690, 37.732100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Faxon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459106, 37.730708 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.457561, 37.731116 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457347, 37.731116 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457690, 37.730878 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Valdez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455845, 37.731285 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Valdez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455673, 37.731455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.464385, 37.725990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.464342, 37.726058 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Fairfield Way" }, "geometry": { "type": "Point", "coordinates": [ -122.464085, 37.726024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Jules Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461424, 37.724972 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Jules Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461424, 37.724938 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Dorado Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.461081, 37.724972 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.463655, 37.719812 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garfield St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.463484, 37.720016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Ashton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.462153, 37.720050 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Jules Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.461338, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GRAFTON AVE & JULES AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.461123, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Faxon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.460136, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.459321, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458119, 37.724395 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458377, 37.724293 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458334, 37.724293 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.723784 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456274, 37.723648 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.454257, 37.723479 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.454214, 37.723445 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave&Lee Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.454214, 37.723445 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.454000, 37.723479 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GRAFTON AVE & Capitol AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.459106, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.458076, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Granada Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.457261, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GRAFTON AVE & PLYMOUTH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.457047, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456274, 37.721951 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.721781 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Grafton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456231, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456274, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave at Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.455931, 37.720152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Grafton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456017, 37.719914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Brighton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.454987, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.454214, 37.720016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Olympia Way & Dellbrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453098, 37.751308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Olympia Way & Panorama Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.452283, 37.751308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Panorama Dr & Starview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.452068, 37.749272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyview Way & Aquavista Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450094, 37.751240 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyview Way & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.450352, 37.749951 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "City View Way & Knollview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.451382, 37.748899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.452455, 37.745777 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Woodside Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.452412, 37.745336 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woodside Ave & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.452240, 37.745641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.451940, 37.745336 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.452111, 37.745098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Shaughnessy Blvd & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.451339, 37.745030 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Skyview Way & City View Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450480, 37.748933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PORTOLA DR/McAteer High School" }, "geometry": { "type": "Point", "coordinates": [ -122.449579, 37.745947 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PARKRIDGE DR & CRESTLINE DR" }, "geometry": { "type": "Point", "coordinates": [ -122.446103, 37.752360 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "74 Crestline Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.446232, 37.751783 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "40 CRESTLINE DR" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.750392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Parkridge Dr & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445803, 37.750426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Hopkins Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443829, 37.752903 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "925 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443442, 37.752089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "956 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443743, 37.751715 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crestline Dr & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445116, 37.749306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Burnett Ave & Crestline Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.444944, 37.749136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Corbett Ave & Cuesta Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.444000, 37.750867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.442842, 37.750867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.442756, 37.750731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6 Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.443485, 37.749985 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Dawnview Way & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.447562, 37.748051 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.447948, 37.746490 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Glenview Dr & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.447777, 37.746693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.447648, 37.746388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Burnett Ave & Dawnview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.445116, 37.748084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Dawnview Way & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445116, 37.747949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Burnett Ave & Dawnview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.444944, 37.748084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DIAMOND HEIGHTS BLVD & PORTOLA" }, "geometry": { "type": "Point", "coordinates": [ -122.444944, 37.746863 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444773, 37.747066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Portola Dr & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.444215, 37.747168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "120 Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.444000, 37.749001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.442670, 37.748254 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clipper St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.444000, 37.746897 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clipper St & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.445030, 37.746727 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUNCAN ST & AMBER DR" }, "geometry": { "type": "Point", "coordinates": [ -122.443485, 37.746048 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.443228, 37.746693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duncan St & Cameo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.443056, 37.745200 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fowler Ave & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.453270, 37.744386 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Fowler Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451425, 37.743503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Evelyn Way" }, "geometry": { "type": "Point", "coordinates": [ -122.451210, 37.743096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "100 O'Shaughnessy Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.450695, 37.744487 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Marietta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.450695, 37.742621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Isola Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450566, 37.741739 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Isola Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450480, 37.741840 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Reposa Way" }, "geometry": { "type": "Point", "coordinates": [ -122.449236, 37.740992 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Reposa Way & Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.449365, 37.740856 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Reposa Way" }, "geometry": { "type": "Point", "coordinates": [ -122.449193, 37.740721 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "555 Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450910, 37.738209 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Myra Way & Molimo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.451768, 37.737734 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Myra Way & Molimo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.451510, 37.737836 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Reposa Way & Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450609, 37.740211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Myra Way & Reposa Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450566, 37.740042 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Reposa Way & Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450480, 37.740211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Myra Way & Omar Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450395, 37.739261 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Myra Way & Omar Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450566, 37.739227 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "555 Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.450738, 37.738209 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Shaughnessy Blvd & Del Vale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446060, 37.741399 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Shaughnessy Blvd & Del Vale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445974, 37.741094 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Gaviota Way" }, "geometry": { "type": "Point", "coordinates": [ -122.448034, 37.739872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Gaviota Way" }, "geometry": { "type": "Point", "coordinates": [ -122.447777, 37.739906 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & El Sereno Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.446275, 37.738990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & El Sereno Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.446060, 37.738956 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Bella Vista Way" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.737700 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Marietta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.446361, 37.737496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "636 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.445889, 37.736852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "636 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.445674, 37.736818 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Shaughnessy Blvd & Malta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.443786, 37.736478 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Shaughnessy Blvd & Malta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.443314, 37.736614 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.442584, 37.752496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.442498, 37.752326 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hoffman Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.440782, 37.752428 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fountain St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.441683, 37.750765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.442627, 37.749272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.442541, 37.749102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hoffman Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.440567, 37.751037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Hoffman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440524, 37.751003 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Hoffman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440953, 37.749340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eureka St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.437606, 37.752801 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Eureka St" }, "geometry": { "type": "Point", "coordinates": [ -122.437391, 37.752801 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Douglass St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.438550, 37.751138 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Douglass St" }, "geometry": { "type": "Point", "coordinates": [ -122.438378, 37.751105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grand View Ave & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.442541, 37.748526 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5157 Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.440224, 37.746931 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duncan St & Amber Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.441425, 37.745200 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duncan St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.440310, 37.745268 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.439880, 37.745268 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.436576, 37.752699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.436404, 37.751274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.436190, 37.751240 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.436404, 37.751105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.436233, 37.751105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.436233, 37.749679 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.436061, 37.749510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.434344, 37.752903 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.434173, 37.752801 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & Elizabeth St" }, "geometry": { "type": "Point", "coordinates": [ -122.434258, 37.752089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & Elizabeth St" }, "geometry": { "type": "Point", "coordinates": [ -122.434087, 37.751919 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.434258, 37.751376 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434216, 37.751274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434044, 37.751206 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.433958, 37.751274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.432027, 37.751410 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.431812, 37.751512 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431812, 37.751342 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.434044, 37.749815 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.433872, 37.749611 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.431684, 37.749679 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.436190, 37.748865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.436018, 37.748695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.436104, 37.747881 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435932, 37.747915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.435846, 37.747134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.436018, 37.747100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435803, 37.746320 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435932, 37.746286 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.435889, 37.745641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.435718, 37.745472 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435632, 37.744691 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Castro St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.433915, 37.748220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.433658, 37.748152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.433529, 37.748084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.431812, 37.748288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Gold Mine Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.437863, 37.743605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Gold Mine Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.437520, 37.743639 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St (south)/Diamond Hts" }, "geometry": { "type": "Point", "coordinates": [ -122.437263, 37.738311 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.437263, 37.738243 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435803, 37.744657 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435675, 37.743266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.435503, 37.743096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.435675, 37.741874 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.435503, 37.741942 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.435760, 37.741603 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.435546, 37.741637 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.435374, 37.741603 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Gold Mine Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.435889, 37.740313 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.435803, 37.740211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Berkeley Way" }, "geometry": { "type": "Point", "coordinates": [ -122.436919, 37.738616 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond Heights Blvd & Berkeley" }, "geometry": { "type": "Point", "coordinates": [ -122.436705, 37.738684 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Conrad St" }, "geometry": { "type": "Point", "coordinates": [ -122.436318, 37.738311 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Conrad St" }, "geometry": { "type": "Point", "coordinates": [ -122.435932, 37.738413 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Addison St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.435718, 37.740042 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Addison St & Farnum St" }, "geometry": { "type": "Point", "coordinates": [ -122.434473, 37.740076 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.434602, 37.738922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.434645, 37.738820 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Arbor St" }, "geometry": { "type": "Point", "coordinates": [ -122.434473, 37.738684 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Arbor St" }, "geometry": { "type": "Point", "coordinates": [ -122.434688, 37.738277 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Sussex St" }, "geometry": { "type": "Point", "coordinates": [ -122.434773, 37.737327 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Sussex St" }, "geometry": { "type": "Point", "coordinates": [ -122.434645, 37.737361 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Surrey St" }, "geometry": { "type": "Point", "coordinates": [ -122.434473, 37.736241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Addison St & Farnum St" }, "geometry": { "type": "Point", "coordinates": [ -122.434258, 37.740211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Addison St & Digby St" }, "geometry": { "type": "Point", "coordinates": [ -122.433615, 37.740008 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Farnum St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.434087, 37.738345 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "164 Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.432842, 37.738175 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Surrey St" }, "geometry": { "type": "Point", "coordinates": [ -122.434344, 37.736105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "33 Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.432199, 37.736852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.448807, 37.734374 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Foerster St & Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.448807, 37.734204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Foerster St & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448978, 37.733152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Foerster St & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448807, 37.733016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Foerster Street & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.448764, 37.731727 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Ridgewood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453313, 37.731625 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Ridgewood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453098, 37.731489 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.451468, 37.731625 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.451253, 37.731489 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.451253, 37.731489 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gennessee St & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.451253, 37.731421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gennessee St & Flood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451210, 37.729962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelan Ave & Judson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.452455, 37.727891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelan Ave & Judson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.452326, 37.727654 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judson Ave & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.451296, 37.728434 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Judson Ave & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.451253, 37.728299 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.449193, 37.731625 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Foerster St & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.448807, 37.731421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.448549, 37.731489 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Foerster St & Flood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448807, 37.729826 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Foerster St & Judson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448764, 37.728502 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.446489, 37.735698 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.446361, 37.735528 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "900 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.734001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "900 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.446361, 37.733967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Stillings Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445502, 37.734578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Melrose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445588, 37.734001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Edna St" }, "geometry": { "type": "Point", "coordinates": [ -122.446489, 37.731659 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Teresita Blvd & Stillings Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445288, 37.734476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Detroit St" }, "geometry": { "type": "Point", "coordinates": [ -122.444644, 37.731659 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Edna St" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.731489 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Detroit St" }, "geometry": { "type": "Point", "coordinates": [ -122.444000, 37.731523 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PHELAN AVE/CCSF (North Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.452283, 37.726058 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PHELAN AVE/CCSF (North Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.452455, 37.725549 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PHELAN AVE/CCSF (South Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.452283, 37.724123 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Harold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453227, 37.723207 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PHELAN LOOP" }, "geometry": { "type": "Point", "coordinates": [ -122.452669, 37.723546 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PHELAN AVE/CCSF (South Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.452455, 37.723852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PHELAN LOOP" }, "geometry": { "type": "Point", "coordinates": [ -122.452669, 37.723479 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Phelan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.452455, 37.723105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.452455, 37.723037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "OCEAN AVE/CCSF Pedestrian Bridge" }, "geometry": { "type": "Point", "coordinates": [ -122.451468, 37.723071 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GENEVA AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.451210, 37.723139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "OCEAN AVE/CCSF Pedestrian Bridge" }, "geometry": { "type": "Point", "coordinates": [ -122.450867, 37.722969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.449794, 37.723037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grafton Ave & Harold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.453012, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mt Vernon Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.451811, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howth St & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451682, 37.719812 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howth St & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.451124, 37.720661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mt Vernon Ave & Louisburg St" }, "geometry": { "type": "Point", "coordinates": [ -122.450953, 37.719371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howth St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450309, 37.721951 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.450008, 37.722155 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.450094, 37.721985 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.449322, 37.722868 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Louisburg St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.449365, 37.721646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Louisburg St & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450137, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave&I-280 on-ramp NE-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.446961, 37.723037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave/Balboa Park Bart Station" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.722969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444987, 37.723037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444730, 37.723105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444816, 37.723071 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444429, 37.723241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447262, 37.721068 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa Park BART/Mezzanine Level" }, "geometry": { "type": "Point", "coordinates": [ -122.447133, 37.721001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447262, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446876, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446833, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa Park BART/Mezzanine level" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446747, 37.720899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Balboa Park BART/Mezzanine level" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446489, 37.720831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446232, 37.721238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447562, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park Bart Station" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.720729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.720729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446790, 37.720695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.720457 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446918, 37.720491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447219, 37.719982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447176, 37.719880 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.447004, 37.720016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.447648, 37.719405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GENEVA AVE & SAN JOSE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GENEVA AVE & SANA JOSE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446618, 37.720593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446661, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446575, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CAMERON BEACH YARD" }, "geometry": { "type": "Point", "coordinates": [ -122.446575, 37.720627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.720491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.446704, 37.720491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Green Yard-San Jose & Ocean" }, "geometry": { "type": "Point", "coordinates": [ -122.445073, 37.722766 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444987, 37.722868 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444901, 37.722935 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444816, 37.722868 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.444773, 37.722834 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & San Jose St" }, "geometry": { "type": "Point", "coordinates": [ -122.444429, 37.722901 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Delano Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445374, 37.720288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Delano Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.445288, 37.720084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave at Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443871, 37.718930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443571, 37.718930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.443571, 37.718726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Elk St" }, "geometry": { "type": "Point", "coordinates": [ -122.440095, 37.735019 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Elk St" }, "geometry": { "type": "Point", "coordinates": [ -122.440095, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Congo St" }, "geometry": { "type": "Point", "coordinates": [ -122.441940, 37.731693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Baden St" }, "geometry": { "type": "Point", "coordinates": [ -122.439666, 37.731693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Acadia St" }, "geometry": { "type": "Point", "coordinates": [ -122.437778, 37.731693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Congo St" }, "geometry": { "type": "Point", "coordinates": [ -122.442155, 37.731523 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440052, 37.729045 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440052, 37.729011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.439923, 37.729011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440095, 37.728842 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Nantucket Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.441039, 37.727755 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Baden St" }, "geometry": { "type": "Point", "coordinates": [ -122.439880, 37.731523 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Circular Ave & Baden St" }, "geometry": { "type": "Point", "coordinates": [ -122.439623, 37.730403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Baden St & Circular Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.439537, 37.730335 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Monterey Blvd & Acadia St" }, "geometry": { "type": "Point", "coordinates": [ -122.437263, 37.731523 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Circular Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.437177, 37.731421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Lippard Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435975, 37.733831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Lippard Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435718, 37.733933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Chenery St" }, "geometry": { "type": "Point", "coordinates": [ -122.433958, 37.734476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Chenery St" }, "geometry": { "type": "Point", "coordinates": [ -122.433872, 37.734476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.432370, 37.734612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Natick St" }, "geometry": { "type": "Point", "coordinates": [ -122.431941, 37.734612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.434344, 37.733356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.434087, 37.733492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Diamond St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.434130, 37.733424 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.434044, 37.733627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave/Glen Park Station" }, "geometry": { "type": "Point", "coordinates": [ -122.433872, 37.732406 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave/Glen Park Station" }, "geometry": { "type": "Point", "coordinates": [ -122.433443, 37.732541 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Circular Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.437005, 37.731353 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.433271, 37.729826 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.433186, 37.729622 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Havelock St" }, "geometry": { "type": "Point", "coordinates": [ -122.441640, 37.726839 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442541, 37.725753 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442412, 37.725923 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442369, 37.725889 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442455, 37.725685 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442412, 37.725685 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442112, 37.725990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & San Juan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.441211, 37.727178 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Otsego Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.441339, 37.723377 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Otsego Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.441254, 37.723275 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Otsego Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440825, 37.723445 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.438679, 37.723682 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.438550, 37.723580 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cayuga Ave & Onondaga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.439752, 37.722053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Onondaga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.437520, 37.721306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.439280, 37.718658 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.439108, 37.719167 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435932, 37.723852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.436275, 37.723377 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.435846, 37.723173 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.435803, 37.722969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Norton St" }, "geometry": { "type": "Point", "coordinates": [ -122.435203, 37.724327 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MISSION ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.434945, 37.724667 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MISSION ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.434773, 37.724599 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.434688, 37.724734 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.434816, 37.724565 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ocean Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.435760, 37.723954 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MISSION ST & OCEAN AVENUE" }, "geometry": { "type": "Point", "coordinates": [ -122.435417, 37.723920 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.435718, 37.723411 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Francis St" }, "geometry": { "type": "Point", "coordinates": [ -122.433658, 37.726364 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Excelsior Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.433529, 37.726364 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Excelsior Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.433615, 37.726194 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Excelsior Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.432199, 37.725549 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.433100, 37.723988 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Ruth St" }, "geometry": { "type": "Point", "coordinates": [ -122.436361, 37.722834 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.437134, 37.721476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.434602, 37.722392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.434301, 37.722426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.432971, 37.721646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.432714, 37.721646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.432413, 37.719201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beach St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.423229, 37.806393 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.422113, 37.806359 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.421212, 37.807038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HYDE STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.420697, 37.806732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.421899, 37.805613 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.806699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.420568, 37.806665 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HYDE STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.420526, 37.805817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HYDE STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.420526, 37.805817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HYDE STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.420526, 37.805817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.420483, 37.805715 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.420483, 37.805647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.420268, 37.805817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.420311, 37.805647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jefferson St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.415547, 37.808326 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jones St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.417393, 37.807275 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.417436, 37.806190 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.417865, 37.805512 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.417607, 37.805512 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.417178, 37.806054 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jefferson St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.413359, 37.808597 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Jefferson St" }, "geometry": { "type": "Point", "coordinates": [ -122.412543, 37.808089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.412543, 37.808055 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beach St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.414131, 37.807411 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.806563 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.413487, 37.806529 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.412372, 37.808123 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beach St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.410827, 37.807851 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.410612, 37.807817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.410312, 37.808360 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.412286, 37.807614 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.412071, 37.806699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.412200, 37.806529 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.411857, 37.805749 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.410612, 37.806902 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.410398, 37.807071 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431512, 37.801511 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431426, 37.801545 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431426, 37.801375 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431254, 37.801375 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.429838, 37.801714 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.429538, 37.801612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.428207, 37.801918 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.427864, 37.801850 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.426577, 37.802121 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.426233, 37.802053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431040, 37.800595 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.800392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.430654, 37.797645 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.430482, 37.797814 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St&Gough St NW-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.428079, 37.800968 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St&Gough St SE-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.427692, 37.800866 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.427392, 37.798086 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.427177, 37.798221 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.425418, 37.805139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.425418, 37.804969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.425289, 37.805173 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.425117, 37.805037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.425375, 37.804868 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave&North Point St SE-NS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.425160, 37.804834 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.425032, 37.804291 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Street & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424989, 37.804122 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.424002, 37.805342 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.423530, 37.805274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.423701, 37.805037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Francisco Street & Polk Street" }, "geometry": { "type": "Point", "coordinates": [ -122.423830, 37.803409 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.424946, 37.802460 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424903, 37.802358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.424860, 37.802358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chestnut St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424903, 37.802223 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.424645, 37.802596 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.422113, 37.805444 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.423272, 37.803681 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.423401, 37.803477 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.423015, 37.801646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.422800, 37.801477 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.424302, 37.800493 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.424431, 37.800358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424259, 37.798594 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424173, 37.798493 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.424088, 37.798459 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.423916, 37.798662 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.422328, 37.799035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.422500, 37.798832 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.422457, 37.798832 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.422457, 37.798696 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.422071, 37.797747 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.422113, 37.796967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.792965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.429538, 37.793168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.427864, 37.793372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.426233, 37.793609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.426276, 37.792558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.791948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.430654, 37.790320 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.429152, 37.792185 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.428980, 37.790557 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.429194, 37.790388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.430868, 37.790218 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.427521, 37.790727 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.427177, 37.790693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.423701, 37.796424 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.424603, 37.793813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.424645, 37.792762 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.423358, 37.796085 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.423401, 37.794898 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.423143, 37.794932 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PACIFIC AVE & VAN NESS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.423100, 37.794932 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422929, 37.794796 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.421770, 37.796187 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.421813, 37.795678 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421556, 37.795305 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.421513, 37.795135 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.421255, 37.795000 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.423015, 37.794186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.423401, 37.793982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.423143, 37.793847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422972, 37.794050 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422457, 37.793101 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.422628, 37.792456 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "JACKSON ST & POLK ST" }, "geometry": { "type": "Point", "coordinates": [ -122.421770, 37.794186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.421427, 37.793711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.421298, 37.794220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.421212, 37.793508 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.421298, 37.793202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.426147, 37.790896 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gough St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.791066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.424474, 37.791914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.424045, 37.791168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422929, 37.792117 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.422457, 37.791439 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422328, 37.791405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.422628, 37.791168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.422285, 37.790455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422371, 37.790388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.421083, 37.791948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.420740, 37.792388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.421169, 37.791541 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.420869, 37.791744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422028, 37.790455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.420826, 37.790659 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.420869, 37.790523 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.422328, 37.789540 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bush St &Van ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421856, 37.788421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.420268, 37.804800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.420139, 37.804800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.419925, 37.802935 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.419710, 37.802867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.419667, 37.801884 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.419581, 37.801918 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.416191, 37.804528 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taylor St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.415247, 37.805342 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taylor St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.415333, 37.805274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TAYLOR STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.415204, 37.804562 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TAYLOR STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.415204, 37.804562 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TAYLOR STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.415204, 37.804562 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TAYLOR STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.415204, 37.804562 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.415977, 37.804223 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.419496, 37.801036 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.419324, 37.801002 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.419367, 37.800222 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.420611, 37.799069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.420568, 37.798967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.800188 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.418981, 37.799273 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.418981, 37.799239 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.419152, 37.799205 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.419152, 37.799137 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.418981, 37.798357 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.418809, 37.798323 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.418809, 37.797407 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.418637, 37.797441 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.417564, 37.799476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.417521, 37.799340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.415891, 37.799544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.415676, 37.799713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taylor St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.415075, 37.804969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taylor St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.414989, 37.804393 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.415161, 37.803816 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Taylor St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.415032, 37.803782 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.414603, 37.803443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.414646, 37.803308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "COLUMBUS AVE & CHESTNUT ST" }, "geometry": { "type": "Point", "coordinates": [ -122.414002, 37.802833 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.413659, 37.802630 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.413573, 37.802697 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.412801, 37.801951 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.412930, 37.801850 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.412672, 37.802121 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.411900, 37.804969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.411685, 37.804834 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.411470, 37.802799 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.411299, 37.802969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.411642, 37.801205 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.411127, 37.801239 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.409711, 37.803138 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.799747 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.414045, 37.799917 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.412758, 37.800934 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.412586, 37.800968 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.412586, 37.799985 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.412586, 37.799985 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.412415, 37.800120 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.412415, 37.800052 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.412372, 37.799035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.412243, 37.799103 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.410398, 37.800527 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.410440, 37.800392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.410655, 37.800222 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.410054, 37.800392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.409968, 37.800426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.412200, 37.798255 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.412028, 37.798221 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.412028, 37.797374 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.411857, 37.797238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.420053, 37.795169 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.419882, 37.795339 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.418594, 37.796526 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.418423, 37.796356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.418423, 37.795407 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418380, 37.795373 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.418208, 37.795576 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418208, 37.795407 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.418294, 37.794627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.418036, 37.794661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.419667, 37.794423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.419839, 37.793440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.419624, 37.792558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.418208, 37.794559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.418079, 37.793643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.416577, 37.795780 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.416749, 37.795610 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.416406, 37.794864 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.416406, 37.794661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.417865, 37.792897 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.417908, 37.792762 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.416320, 37.793847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.416234, 37.793847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.416320, 37.792965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.416062, 37.792965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.419538, 37.791744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.790828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.420568, 37.790693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.418895, 37.790896 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.790727 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pine St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.789675 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.420397, 37.789540 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.420568, 37.789370 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.417479, 37.791982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.417650, 37.791846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.417479, 37.791134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.417564, 37.791032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.417564, 37.790930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.415891, 37.792083 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.415762, 37.792185 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.415762, 37.791134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.415633, 37.791303 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.415676, 37.791100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.417307, 37.790184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bush St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.416620, 37.789167 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.416921, 37.788217 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.415504, 37.790150 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.415333, 37.789234 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.415290, 37.788454 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.414947, 37.795983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.415118, 37.795814 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.414861, 37.795068 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.413487, 37.796017 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.413273, 37.796187 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.413230, 37.795271 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.414732, 37.794050 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.414646, 37.793202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.413015, 37.794288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.412758, 37.793372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.411857, 37.796221 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411771, 37.796153 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.411642, 37.796390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411642, 37.796221 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.411556, 37.795712 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.411685, 37.795610 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jackson St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.411728, 37.795475 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.411513, 37.794627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.411513, 37.794627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.410183, 37.796424 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.410011, 37.796560 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.409797, 37.795339 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.410054, 37.794661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.411556, 37.794593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.411556, 37.794593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.411556, 37.794457 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.411385, 37.794559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.411084, 37.794525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Sproule Ln" }, "geometry": { "type": "Point", "coordinates": [ -122.411900, 37.792694 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.410827, 37.793677 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.409797, 37.793813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.414174, 37.792422 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.414131, 37.791473 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.414131, 37.791371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.412629, 37.791575 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bush St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414989, 37.789302 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bush St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.413874, 37.789472 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.415118, 37.788353 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.413659, 37.788658 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jones St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.413616, 37.788692 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.412329, 37.791744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.410998, 37.791880 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.410998, 37.791778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.411985, 37.788861 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.410355, 37.789065 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Grant St" }, "geometry": { "type": "Point", "coordinates": [ -122.409410, 37.808258 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay St & Midway St" }, "geometry": { "type": "Point", "coordinates": [ -122.409196, 37.806122 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.407908, 37.807377 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Point St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.807275 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.407222, 37.807207 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.406321, 37.806970 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.406235, 37.806800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.406063, 37.806631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.405462, 37.806631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.409668, 37.803308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.408080, 37.803511 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.408080, 37.803409 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.409668, 37.802358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.409539, 37.802223 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.409496, 37.801443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.406535, 37.803715 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lombard St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.406535, 37.803579 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "225 TELEGRAPH Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.406793, 37.803036 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "225 TELEGRAPH Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.406664, 37.803003 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TELEGRAPH Hill Blvd & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.406621, 37.802731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TELEGRAPH Hill Blvd & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.406492, 37.802630 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "COIT TOWER" }, "geometry": { "type": "Point", "coordinates": [ -122.405806, 37.802664 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TELEGRAPH Hill Blvd & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.405763, 37.801850 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "115 TELEGRAPH Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.405720, 37.801782 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.409282, 37.800561 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.409282, 37.800392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.409067, 37.799306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.408895, 37.799239 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.408724, 37.799408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.408638, 37.799137 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407694, 37.800629 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407522, 37.800697 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.408638, 37.797204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.408338, 37.796797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BROADWAY & GRANT AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.407351, 37.797882 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.408295, 37.797611 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.405977, 37.800934 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.406106, 37.800765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.404475, 37.801104 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Union St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.404518, 37.800968 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.406921, 37.798154 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.406492, 37.797645 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406363, 37.797848 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406750, 37.797001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.405763, 37.797340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "COLUMBUS AVE & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405677, 37.797068 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405291, 37.797340 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.405248, 37.797170 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.403789, 37.805207 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Embarcadero & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.403274, 37.805173 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.403316, 37.805037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.403274, 37.803952 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.402973, 37.802358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Battery St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.402029, 37.803003 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.402802, 37.801443 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Battery St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.401857, 37.802189 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.401128, 37.803274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.401042, 37.802969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.399411, 37.801273 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Battery St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.401514, 37.800561 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.402415, 37.799679 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.403960, 37.798154 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.403617, 37.797407 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.401943, 37.798425 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.402372, 37.797577 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402029, 37.797781 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.398939, 37.800629 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Battery St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.401128, 37.798323 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.400742, 37.798560 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Battery St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.400784, 37.796865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pacific Ave & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.408595, 37.796763 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.408338, 37.795780 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.409668, 37.794661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.408295, 37.796255 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.408252, 37.795373 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.409668, 37.793847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.409496, 37.793779 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.409153, 37.793067 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.409453, 37.792965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.409282, 37.792897 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.407780, 37.793745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407565, 37.794084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.407866, 37.793440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407608, 37.793236 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.405033, 37.796153 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.404346, 37.796085 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.404304, 37.796085 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.404776, 37.794728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405977, 37.794288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406321, 37.793440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405977, 37.792524 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.404432, 37.794491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.404861, 37.793575 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.404561, 37.793779 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.404389, 37.792897 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.404304, 37.792728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.404261, 37.792626 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.409453, 37.792083 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.409368, 37.791982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.409325, 37.792219 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.409153, 37.792321 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CALIFORNIA ST & POWELL ST" }, "geometry": { "type": "Point", "coordinates": [ -122.409325, 37.792049 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CALIFORNIA ST & POWELL ST" }, "geometry": { "type": "Point", "coordinates": [ -122.409282, 37.791948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POWELL ST & CALIFORNIA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.409110, 37.792151 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POWELL ST & CALIFORNIA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.409110, 37.792151 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.409067, 37.791100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.408938, 37.791100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407565, 37.792321 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407565, 37.792185 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.408895, 37.790150 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.408724, 37.790184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.408681, 37.789268 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.408681, 37.789065 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.408509, 37.789133 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.408509, 37.788421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.408338, 37.788217 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.407179, 37.789981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.406964, 37.789608 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407050, 37.789506 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.407951, 37.788319 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405977, 37.792388 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406020, 37.788556 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.404389, 37.789845 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POST & GRANT" }, "geometry": { "type": "Point", "coordinates": [ -122.405419, 37.788590 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Columbus Ave & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.403703, 37.795915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Washington St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.402072, 37.795746 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.401686, 37.796085 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402802, 37.794695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.403231, 37.793813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.403102, 37.793847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402930, 37.792795 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.401514, 37.794491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.401557, 37.794050 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.792931 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.401128, 37.794830 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.399025, 37.795102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.401342, 37.794288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.400312, 37.794186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.401128, 37.793338 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & SANSOME ST" }, "geometry": { "type": "Point", "coordinates": [ -122.401299, 37.792999 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.401257, 37.793202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.400999, 37.793168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.400141, 37.793135 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.399840, 37.793304 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.399883, 37.793168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.398939, 37.793270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.404003, 37.791032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pine St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402544, 37.791948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bush St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402158, 37.790930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.403746, 37.789777 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kearny St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.403488, 37.788217 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402415, 37.789031 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POST & MONTGOMERY" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.788997 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402501, 37.788522 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & New Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.788624 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.400870, 37.792049 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pine St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.400098, 37.792321 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bush St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.400956, 37.791100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.400699, 37.790320 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.400613, 37.790354 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sansome St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.400527, 37.790354 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bush St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.399797, 37.791337 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BUSH ST & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.399712, 37.791337 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.399111, 37.791134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.399197, 37.790964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.399154, 37.790896 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.401342, 37.789370 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2ND ST & MARKET ST" }, "geometry": { "type": "Point", "coordinates": [ -122.401257, 37.789268 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.400441, 37.790184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.401342, 37.789099 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TRANS BAY TERMINAL/TERMINAL W" }, "geometry": { "type": "Point", "coordinates": [ -122.400613, 37.788963 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.400656, 37.788624 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.400098, 37.788285 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Broadway & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.398596, 37.799001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "THE EMBARCADERO & BROADWAY" }, "geometry": { "type": "Point", "coordinates": [ -122.397909, 37.799578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "BROADWAY & THE EMBARCADERO" }, "geometry": { "type": "Point", "coordinates": [ -122.397823, 37.799103 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "THE EMBARCADERO & BROADWAY" }, "geometry": { "type": "Point", "coordinates": [ -122.397437, 37.798933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "THE EMBARCADERO/Pier 5" }, "geometry": { "type": "Point", "coordinates": [ -122.396622, 37.797814 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "THE EMBARCADERO/Pier 5" }, "geometry": { "type": "Point", "coordinates": [ -122.396193, 37.797848 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.395678, 37.797102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "THE EMBARCADERO/Pier 1" }, "geometry": { "type": "Point", "coordinates": [ -122.395592, 37.797238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Clay St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.397008, 37.795441 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sacramento St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.397652, 37.794525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Davis St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.397738, 37.793643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.793609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.398682, 37.793440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pine St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.398553, 37.792490 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.397780, 37.793440 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Davis St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.397695, 37.793270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pine St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.397738, 37.792558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Davis St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.397566, 37.792626 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.396836, 37.793542 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Drumm St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.396364, 37.793982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.396150, 37.793711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.396665, 37.792999 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Beale St" }, "geometry": { "type": "Point", "coordinates": [ -122.397051, 37.792592 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MARKET ST & BEALE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.396622, 37.793033 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MARKET ST & DRUMM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.396407, 37.793202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.396193, 37.793474 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.396150, 37.793508 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.395592, 37.796695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.395205, 37.796356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.394476, 37.795034 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "THE EMBARCADERO/Ferry Building" }, "geometry": { "type": "Point", "coordinates": [ -122.393875, 37.795135 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.393575, 37.795034 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Ferry Building" }, "geometry": { "type": "Point", "coordinates": [ -122.393789, 37.794830 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MARKET ST & SPEAR ST" }, "geometry": { "type": "Point", "coordinates": [ -122.395720, 37.793745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MARKET ST & SPEAR ST" }, "geometry": { "type": "Point", "coordinates": [ -122.395635, 37.793677 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SPEAR ST & MARKET ST" }, "geometry": { "type": "Point", "coordinates": [ -122.395635, 37.793643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Spear St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.395549, 37.793609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.394948, 37.794457 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.394948, 37.794288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.394648, 37.794559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.394648, 37.794559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.394648, 37.794559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.394648, 37.794559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "EMBARCADERO & ST" }, "geometry": { "type": "Point", "coordinates": [ -122.394648, 37.794559 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "STEUART ST & FRANCISCO ST" }, "geometry": { "type": "Point", "coordinates": [ -122.394648, 37.794491 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Main St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.395678, 37.792558 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.394562, 37.794457 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.394304, 37.794152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MUNI METRO TNL & DRUMM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.393746, 37.794254 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MUNI METRO TNL & DRUMM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.393746, 37.794254 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Don Chee Way/Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.393489, 37.794084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart & Donchee Way" }, "geometry": { "type": "Point", "coordinates": [ -122.393746, 37.793779 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.393703, 37.793711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Don Chee Way/Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.393489, 37.793915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.394004, 37.792694 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.393446, 37.793474 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.393532, 37.793372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.393360, 37.793270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.393274, 37.793372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission Stt & Steuart St NW-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.393403, 37.793236 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MISSION ST & STEUART STREET S-MB/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.393403, 37.793033 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Front & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.398424, 37.791914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.398167, 37.791948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fremont St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.398167, 37.791676 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beale St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.396708, 37.791778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.397523, 37.789947 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Fremont St" }, "geometry": { "type": "Point", "coordinates": [ -122.396965, 37.790150 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1st St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.397223, 37.789404 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1st St & Natoma St" }, "geometry": { "type": "Point", "coordinates": [ -122.396879, 37.789268 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TRANS BAY TERMINAL/RAMP S" }, "geometry": { "type": "Point", "coordinates": [ -122.396364, 37.789675 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TRANSBAY TERMINAL" }, "geometry": { "type": "Point", "coordinates": [ -122.396407, 37.789506 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1st St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.396064, 37.788556 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Main" }, "geometry": { "type": "Point", "coordinates": [ -122.395506, 37.791541 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Main St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.394991, 37.792015 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.394948, 37.791982 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.394819, 37.791846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Beale St" }, "geometry": { "type": "Point", "coordinates": [ -122.395935, 37.791168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.394390, 37.792422 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Main St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.393618, 37.790862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St. & Beale St." }, "geometry": { "type": "Point", "coordinates": [ -122.393575, 37.790625 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Transbay Temporary Terminal" }, "geometry": { "type": "Point", "coordinates": [ -122.393403, 37.790761 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Main St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.393360, 37.790625 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Main St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.393360, 37.790591 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Main St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.393317, 37.790557 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.393532, 37.790421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fremont St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.395935, 37.789981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fremont St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.395892, 37.789879 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fremont St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.394991, 37.789201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beale St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.394476, 37.789947 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beale St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.394304, 37.789811 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beale St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.394261, 37.789845 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beale St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.394261, 37.789845 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beale St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.394176, 37.789743 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fremont St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.393789, 37.788217 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.392802, 37.793813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.392330, 37.793779 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Steuart St&Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.393188, 37.793101 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tunnel entry-not a stop-use Folsom Stn" }, "geometry": { "type": "Point", "coordinates": [ -122.391472, 37.792728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.391171, 37.792694 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.392545, 37.791405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hward St&Spear" }, "geometry": { "type": "Point", "coordinates": [ -122.392416, 37.791371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.392588, 37.791202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Not a public stop - Use Howard/Spear" }, "geometry": { "type": "Point", "coordinates": [ -122.391257, 37.792422 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & The Embarcadero" }, "geometry": { "type": "Point", "coordinates": [ -122.391129, 37.792355 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.391086, 37.792185 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.391901, 37.789302 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Beale St. & Folsom St." }, "geometry": { "type": "Point", "coordinates": [ -122.393103, 37.788861 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FOLSOM & BEALE" }, "geometry": { "type": "Point", "coordinates": [ -122.392845, 37.788692 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.390141, 37.791100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom & Embarcadero" }, "geometry": { "type": "Point", "coordinates": [ -122.390227, 37.790828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.389841, 37.790761 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.389927, 37.790591 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.389712, 37.790489 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & The Embarcadero" }, "geometry": { "type": "Point", "coordinates": [ -122.388811, 37.789472 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero&Harrison St NW-NS/PS" }, "geometry": { "type": "Point", "coordinates": [ -122.388639, 37.789608 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero&Harrsion St NE-FS/PS" }, "geometry": { "type": "Point", "coordinates": [ -122.388554, 37.789709 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.388511, 37.789574 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.388511, 37.789574 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gateview Ave & Mason Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.377224, 37.828192 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue B & Gateview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.377439, 37.826972 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gateview Ave & Bayside Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.375293, 37.829853 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gateview Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.373490, 37.829853 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "13th St & Gateview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.371988, 37.828430 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue H & 13th St" }, "geometry": { "type": "Point", "coordinates": [ -122.371988, 37.828328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue B & 12th St" }, "geometry": { "type": "Point", "coordinates": [ -122.376323, 37.825480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue B & Halibut Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.375679, 37.824497 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "AVENUE B & Gateview AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.375422, 37.824192 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue B & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.374992, 37.823277 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th St & Avenue C" }, "geometry": { "type": "Point", "coordinates": [ -122.374306, 37.823413 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th St & Avenue D" }, "geometry": { "type": "Point", "coordinates": [ -122.372718, 37.824057 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th St. & Avenue D" }, "geometry": { "type": "Point", "coordinates": [ -122.373919, 37.823548 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th St & Avenue E" }, "geometry": { "type": "Point", "coordinates": [ -122.371473, 37.824599 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue M & 13th St" }, "geometry": { "type": "Point", "coordinates": [ -122.369628, 37.829277 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue M & 10th St" }, "geometry": { "type": "Point", "coordinates": [ -122.368298, 37.827311 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9th St & Avenue H" }, "geometry": { "type": "Point", "coordinates": [ -122.370100, 37.825209 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue H & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.369928, 37.825243 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue H & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.368941, 37.823650 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue M & 8th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.366967, 37.825345 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TREASURE ISLAND RD/GUARD STATION" }, "geometry": { "type": "Point", "coordinates": [ -122.371817, 37.816022 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TREASURE ISLAND RD/GUARD STATION" }, "geometry": { "type": "Point", "coordinates": [ -122.371473, 37.816226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Avenue D" }, "geometry": { "type": "Point", "coordinates": [ -122.369542, 37.818531 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue H & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.367997, 37.822396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue H & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.367826, 37.821955 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue H & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.366452, 37.819955 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue H & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.366366, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Avenue H" }, "geometry": { "type": "Point", "coordinates": [ -122.366152, 37.819921 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California St & Avenue C" }, "geometry": { "type": "Point", "coordinates": [ -122.370143, 37.818328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Treasure Island Rd & Macalla Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.371173, 37.813073 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Macalla St & Treasure Island Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.370915, 37.813242 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Treasure Island Rd & Macalla Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.371044, 37.813140 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Macalla Rd & Treasure Island Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.370872, 37.813174 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Macalla St & Nimitz Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.369885, 37.812056 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Macalla Rd & Nimitz Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.369585, 37.811818 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avenue M & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.364907, 37.822260 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "California Ave & Avenue M" }, "geometry": { "type": "Point", "coordinates": [ -122.364221, 37.820768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "62 Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.364864, 37.812022 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Macalla Rd/Bldg 240" }, "geometry": { "type": "Point", "coordinates": [ -122.364564, 37.811886 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Northgate Rd & Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.363791, 37.811717 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "North Gate Rd and Macalla Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.364306, 37.811344 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hillcrest St & Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.363405, 37.810530 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hillcrest St & Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.363405, 37.810394 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.429881, 37.786589 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.429624, 37.786521 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431383, 37.784520 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431040, 37.784656 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.428722, 37.786725 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.428465, 37.786657 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.427092, 37.786962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.427692, 37.785775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.428164, 37.784859 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.427821, 37.785063 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.426662, 37.785911 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.428980, 37.781942 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.429152, 37.781773 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.427306, 37.782146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.427263, 37.782044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.424946, 37.787233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.424989, 37.786148 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.425117, 37.785436 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Starr King Way & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.424088, 37.785063 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.421684, 37.787844 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421556, 37.787640 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.421856, 37.787403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421470, 37.786589 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.421341, 37.786114 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.422929, 37.785572 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.421556, 37.785809 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.421427, 37.785707 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.421470, 37.785606 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.421341, 37.784927 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421427, 37.784690 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.421255, 37.784690 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.421169, 37.784825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "VAN NESS AVE & OFARRELL ST" }, "geometry": { "type": "Point", "coordinates": [ -122.421212, 37.784520 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.424302, 37.782519 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.424216, 37.782417 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "808 McAllister St" }, "geometry": { "type": "Point", "coordinates": [ -122.425547, 37.779500 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.423873, 37.779704 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.423701, 37.779636 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "McAllister St & Gough st" }, "geometry": { "type": "Point", "coordinates": [ -122.423487, 37.779636 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.420740, 37.783231 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.420912, 37.782519 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421083, 37.781976 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Ave & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420697, 37.780959 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420740, 37.780111 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431426, 37.778652 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.430525, 37.778856 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.429624, 37.778890 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.431383, 37.777024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.431512, 37.776889 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431598, 37.775871 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.776108 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.775600 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.430868, 37.775837 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.429881, 37.776074 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.429194, 37.776040 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.426963, 37.779195 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.426748, 37.779331 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grove St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.426362, 37.777397 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.428293, 37.776278 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.427564, 37.776244 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.426276, 37.776753 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.430825, 37.774277 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.430868, 37.773768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.430782, 37.772173 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.430568, 37.772207 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.430525, 37.772038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.430353, 37.772038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.430224, 37.772072 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.427349, 37.772445 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.427092, 37.772614 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "785 Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.425246, 37.779399 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grove St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.424989, 37.777567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.426147, 37.776549 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grove St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.423315, 37.777770 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.423358, 37.776922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fell St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.423058, 37.775973 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.421684, 37.777126 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oak St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.421985, 37.775091 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.425504, 37.772954 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Page St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.424173, 37.773836 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.424216, 37.772988 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Page St & Octavia Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.423873, 37.773836 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.425847, 37.772784 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Laguna St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.425418, 37.772648 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.424688, 37.770986 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Page St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.422543, 37.774039 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.422585, 37.773191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Haight St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.422328, 37.773089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Page St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.420998, 37.774209 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.421770, 37.773293 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & Mccoppin St" }, "geometry": { "type": "Point", "coordinates": [ -122.422628, 37.771359 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.422028, 37.772886 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mccoppin St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.420826, 37.771800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.420225, 37.787844 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.420096, 37.788014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.420225, 37.787810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.420011, 37.786589 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.419925, 37.786928 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.419581, 37.786827 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sutter St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.418551, 37.788014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.418251, 37.786148 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.785877 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.419667, 37.785029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.784961 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.418036, 37.785097 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.417736, 37.787064 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.416620, 37.786352 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.416277, 37.787267 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.417822, 37.785097 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415805, 37.785402 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.782994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420611, 37.782892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.420568, 37.782316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.419066, 37.783197 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.419024, 37.783062 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.782214 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.420225, 37.780213 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420182, 37.780009 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.420354, 37.779704 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Ave & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.418337, 37.781230 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.419024, 37.780314 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.418723, 37.780179 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.417693, 37.783367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.417436, 37.783231 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.417393, 37.783299 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.417221, 37.782485 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.417135, 37.781705 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415719, 37.783503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415891, 37.782655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.415805, 37.782655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.417436, 37.780518 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.416964, 37.780789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.416878, 37.780586 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St&Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.416878, 37.780382 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415891, 37.780620 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415719, 37.780755 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.415462, 37.780789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.414904, 37.787369 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414603, 37.787471 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414989, 37.786589 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.414732, 37.786453 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jones St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.413445, 37.787810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.412972, 37.787674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.413359, 37.786793 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jones St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.413273, 37.786860 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Leavenworth St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.414560, 37.785504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414474, 37.785572 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ellis St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414303, 37.784724 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ellis St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.413187, 37.784893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.412543, 37.785809 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.412457, 37.783910 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Post St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.411342, 37.787912 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.411685, 37.786996 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.410312, 37.787200 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.409968, 37.787233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.410655, 37.786046 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.409797, 37.786114 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St&Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.411985, 37.785877 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ellis St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.411470, 37.785097 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.410827, 37.784113 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414088, 37.783706 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.782858 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Ave & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.415118, 37.781671 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Ave & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414002, 37.781841 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.412586, 37.783062 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "McAllister St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.413616, 37.780891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mcallister St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.413101, 37.781095 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 7th St N" }, "geometry": { "type": "Point", "coordinates": [ -122.412457, 37.780654 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.412457, 37.780586 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.413187, 37.779840 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.412629, 37.780382 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Golden Gate Ave & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.411942, 37.782078 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Turk St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.409925, 37.783401 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410440, 37.782112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.410269, 37.782349 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "McAllister St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.412200, 37.781196 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.411342, 37.781298 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.412415, 37.780314 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.419839, 37.778720 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420225, 37.777296 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grove St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419753, 37.778211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.419925, 37.777872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Grove St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.418337, 37.778415 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Polk St & Lech Walesa St" }, "geometry": { "type": "Point", "coordinates": [ -122.418251, 37.778042 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.419496, 37.775532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.419496, 37.775532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419410, 37.775226 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Ave & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.775328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.775260 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SOUTH VAN NESS AVE & 12TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.419152, 37.775091 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St/btw Market & Mission" }, "geometry": { "type": "Point", "coordinates": [ -122.418680, 37.775532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.418551, 37.775532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.418594, 37.775396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Larkin St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.416577, 37.778924 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GROVE AND LARKIN" }, "geometry": { "type": "Point", "coordinates": [ -122.416792, 37.778754 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hayes St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.416878, 37.777737 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.416277, 37.777601 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.416234, 37.777601 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.416363, 37.777431 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "9TH St AND MARKET St" }, "geometry": { "type": "Point", "coordinates": [ -122.416320, 37.777397 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.415204, 37.775973 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419324, 37.775057 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness Ave & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.419324, 37.774989 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MARKET ST & VAN NESS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.775057 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MARKET ST & 12TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.775057 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "S. Van Ness Ave. & Market St." }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.774989 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "S. Van Ness Ave. & Market St." }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.774955 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.418637, 37.773327 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.418637, 37.773327 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418509, 37.773021 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "150 Otis St" }, "geometry": { "type": "Point", "coordinates": [ -122.420311, 37.770749 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Otis St & 12th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.772818 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.417350, 37.774582 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.417307, 37.774311 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.417135, 37.774243 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.416921, 37.774039 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.415762, 37.773361 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.415419, 37.772852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hyde St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.415161, 37.779365 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414861, 37.778618 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.414732, 37.778788 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8TH St AND MARKET St" }, "geometry": { "type": "Point", "coordinates": [ -122.414775, 37.778585 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.414603, 37.778517 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.414389, 37.779127 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.413573, 37.777262 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.413058, 37.777262 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.412758, 37.777703 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414346, 37.776481 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.411385, 37.778992 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.410784, 37.779195 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410526, 37.779365 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.411771, 37.776244 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St&Howard" }, "geometry": { "type": "Point", "coordinates": [ -122.411642, 37.776142 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409797, 37.775125 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.772139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414303, 37.771766 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413831, 37.771597 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.413745, 37.772004 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.412672, 37.770850 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.411342, 37.773903 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.409925, 37.774785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410398, 37.772411 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hermann St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.429967, 37.770308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hermann St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.429709, 37.770274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fillmore St & Deboce Ave temp bus terminal" }, "geometry": { "type": "Point", "coordinates": [ -122.430053, 37.769527 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duboce Ave & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.429409, 37.769493 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duboce Ave & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.429409, 37.769426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.429194, 37.769527 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duboce Ave & Church St - Ramp" }, "geometry": { "type": "Point", "coordinates": [ -122.429152, 37.769493 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.429109, 37.769324 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.429066, 37.769324 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431297, 37.767560 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & SANCHEZ ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431126, 37.767696 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.429109, 37.767797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.429066, 37.767831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.429023, 37.767797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.429152, 37.767696 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.429152, 37.767288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.429066, 37.767356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.426190, 37.769799 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Duboce Portal/Not a stop" }, "geometry": { "type": "Point", "coordinates": [ -122.427263, 37.769460 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.427135, 37.768883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.428894, 37.767797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.428637, 37.767831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.428894, 37.767390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.428894, 37.767322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sanchez St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431040, 37.766305 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431426, 37.765694 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431254, 37.765660 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431169, 37.765694 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.430739, 37.766203 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428722, 37.764642 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.428808, 37.764473 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428637, 37.764405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428594, 37.764405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.428551, 37.764608 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.426620, 37.764608 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.426190, 37.764744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428508, 37.762810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428508, 37.762810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.424989, 37.770579 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422457, 37.769833 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422328, 37.770172 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.422156, 37.768408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.422285, 37.767865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421985, 37.766813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.424259, 37.764744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.424002, 37.764880 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.422156, 37.766271 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.422071, 37.764880 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421856, 37.765253 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.421770, 37.765015 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421985, 37.764642 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421684, 37.763421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421813, 37.763116 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.430696, 37.761114 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.430482, 37.761250 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428422, 37.761487 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.428207, 37.761385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.428164, 37.761250 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428207, 37.761216 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.426276, 37.761487 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.428293, 37.759791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.427950, 37.758298 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.427821, 37.758230 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Liberty St" }, "geometry": { "type": "Point", "coordinates": [ -122.428079, 37.757382 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/Liberty St" }, "geometry": { "type": "Point", "coordinates": [ -122.427006, 37.757484 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/Liberty St" }, "geometry": { "type": "Point", "coordinates": [ -122.426877, 37.757246 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.426963, 37.756669 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.426834, 37.756466 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.427692, 37.754803 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Right Of Way/22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.427778, 37.754633 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.425933, 37.761419 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.423959, 37.761623 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.423658, 37.761555 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.421770, 37.761792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421556, 37.762030 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.421427, 37.761691 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421684, 37.761453 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421384, 37.760367 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421513, 37.759892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421384, 37.758264 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421212, 37.758773 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.421041, 37.757178 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.421212, 37.756635 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.420912, 37.755583 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.421041, 37.755074 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.420912, 37.753412 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.420740, 37.753615 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 13th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419796, 37.770477 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419968, 37.768645 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.420053, 37.767831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.419839, 37.768238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "15th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.420182, 37.766712 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419796, 37.767153 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.415676, 37.768476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.415547, 37.768476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419882, 37.766203 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419710, 37.765151 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.419839, 37.765015 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419753, 37.765015 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.419624, 37.765151 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.419538, 37.765151 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419624, 37.764948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.765049 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419367, 37.762641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness &16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.417650, 37.765321 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16 th St & South Van Ness" }, "geometry": { "type": "Point", "coordinates": [ -122.417650, 37.765287 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & South Van Ness" }, "geometry": { "type": "Point", "coordinates": [ -122.417607, 37.765083 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.415247, 37.765592 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.415462, 37.765423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Shotwell St" }, "geometry": { "type": "Point", "coordinates": [ -122.415462, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Shotwell St" }, "geometry": { "type": "Point", "coordinates": [ -122.416062, 37.765219 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.415419, 37.765253 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.417350, 37.762132 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.415290, 37.763862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.412286, 37.770376 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "11th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.411342, 37.769833 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410483, 37.769697 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & Division St" }, "geometry": { "type": "Point", "coordinates": [ -122.410483, 37.769697 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & Division St" }, "geometry": { "type": "Point", "coordinates": [ -122.410913, 37.769120 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Division St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.410741, 37.769358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.410827, 37.768103 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.410698, 37.768476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.413316, 37.765389 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.413015, 37.765524 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414947, 37.762233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410569, 37.765321 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410440, 37.765490 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.410355, 37.765592 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.409840, 37.765728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410312, 37.764235 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410440, 37.764032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.410355, 37.763149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.410183, 37.762946 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.419538, 37.761928 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419496, 37.761792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.760673 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.759825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419024, 37.759112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.419109, 37.758196 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 18 th St" }, "geometry": { "type": "Point", "coordinates": [ -122.417092, 37.761894 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.417006, 37.758942 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.416792, 37.758875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.418895, 37.757517 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.418981, 37.756601 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.418723, 37.755821 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.418809, 37.755176 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.418637, 37.753446 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.418594, 37.754294 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.416706, 37.755753 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.416492, 37.755482 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.415118, 37.761860 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414818, 37.759010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414646, 37.759010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414646, 37.758841 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 20St" }, "geometry": { "type": "Point", "coordinates": [ -122.414818, 37.758773 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410226, 37.761894 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410054, 37.761691 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.410097, 37.760605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409925, 37.760401 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409968, 37.759350 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.414346, 37.755957 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.414517, 37.755482 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.408338, 37.787471 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.408423, 37.787403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.408166, 37.787267 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.408166, 37.786521 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.408166, 37.786352 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.407951, 37.786352 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "ELLIS ST & MASON ST" }, "geometry": { "type": "Point", "coordinates": [ -122.409368, 37.785368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.409539, 37.785097 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.409410, 37.784283 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mason & Turk" }, "geometry": { "type": "Point", "coordinates": [ -122.409368, 37.783944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MASON ST & EDDY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.409325, 37.784079 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Eddy St & Cyril Magnin St" }, "geometry": { "type": "Point", "coordinates": [ -122.408638, 37.784418 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cyril Magnin St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.408595, 37.784317 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cyril Magnin St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.408423, 37.784520 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ellis street & Powell street" }, "geometry": { "type": "Point", "coordinates": [ -122.407994, 37.785436 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.407908, 37.785402 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POWELL STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.407823, 37.784792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POWELL STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.407823, 37.784792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.407823, 37.784656 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POWELL & MARKET TURNTABLE" }, "geometry": { "type": "Point", "coordinates": [ -122.407694, 37.784825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.407694, 37.784825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POWELL STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.784792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POWELL STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.784792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Powell/Market" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.784486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cyril Magnin St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.408209, 37.784181 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407994, 37.784113 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cyril Magnin St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.408252, 37.784011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408166, 37.783910 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cyril Magnin St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.408080, 37.784011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.407351, 37.784690 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.406707, 37.787742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.406492, 37.787674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "O'Farrell St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405634, 37.786657 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405162, 37.786420 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404604, 37.786623 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Stockton St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.406278, 37.785775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406836, 37.784859 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.405934, 37.785673 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.405763, 37.785877 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.405677, 37.785538 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404561, 37.784385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4TH ST & Mission ST" }, "geometry": { "type": "Point", "coordinates": [ -122.404304, 37.784351 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.409668, 37.782858 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408681, 37.783401 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St &Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.783503 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Mary St" }, "geometry": { "type": "Point", "coordinates": [ -122.407136, 37.782112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409110, 37.780755 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408338, 37.781196 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.406664, 37.782960 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.406664, 37.782790 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406664, 37.782756 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406578, 37.782621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jessie St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406492, 37.782655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.404776, 37.781468 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.404776, 37.781230 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geary Blvd & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.403660, 37.788014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.403531, 37.787539 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.403402, 37.787742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.403445, 37.787640 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.403445, 37.787640 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Market St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.403231, 37.787742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.402501, 37.785979 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.401600, 37.786521 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.402115, 37.786386 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.402115, 37.786352 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Minna St" }, "geometry": { "type": "Point", "coordinates": [ -122.401643, 37.786046 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.403960, 37.784656 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.404132, 37.784283 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.400270, 37.787776 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.399883, 37.787878 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & New Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.399068, 37.786216 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & New Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.399282, 37.786080 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.400870, 37.784859 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.400270, 37.784961 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.399111, 37.784011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Third St" }, "geometry": { "type": "Point", "coordinates": [ -122.398810, 37.783978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.398767, 37.784011 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.402587, 37.783062 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.403574, 37.780314 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5TH ST & FOLSOM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.403488, 37.780450 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.403102, 37.780416 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.400870, 37.782180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.401042, 37.781807 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.399926, 37.780687 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.409239, 37.777940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.407908, 37.776889 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407866, 37.776651 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.405334, 37.778652 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.404261, 37.777329 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.406492, 37.775735 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406449, 37.775532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404389, 37.777160 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408552, 37.773870 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.408381, 37.773564 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.407136, 37.772547 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407093, 37.772343 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408209, 37.771461 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.405205, 37.774718 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.405033, 37.774616 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404518, 37.774412 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.405934, 37.771563 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brannan St & 8th ST" }, "geometry": { "type": "Point", "coordinates": [ -122.405248, 37.771325 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402158, 37.778924 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.402072, 37.779331 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.401857, 37.778958 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "6th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.776176 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402244, 37.776176 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.399969, 37.777974 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.398725, 37.776481 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.403402, 37.773293 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.401857, 37.772038 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401986, 37.771699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401686, 37.771732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.399454, 37.773700 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.399454, 37.773496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Howard St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.398639, 37.786623 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.398167, 37.786759 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.398124, 37.786589 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Second Street & Folsom Street" }, "geometry": { "type": "Point", "coordinates": [ -122.396750, 37.785639 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.396536, 37.785775 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.396536, 37.785741 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.396622, 37.785538 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.396536, 37.785504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.396579, 37.785334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.394218, 37.787437 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FREMONT & FOLSOM" }, "geometry": { "type": "Point", "coordinates": [ -122.393618, 37.787980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.395334, 37.784554 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.395463, 37.784215 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd ST & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.395077, 37.784317 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.395034, 37.784113 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Perry St" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.782723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.397695, 37.782451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.397437, 37.782655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.398081, 37.779500 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.393789, 37.783299 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.393489, 37.782858 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brannan St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.394605, 37.780009 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & BRANNAN ST" }, "geometry": { "type": "Point", "coordinates": [ -122.393532, 37.779568 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.392931, 37.786182 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "HARRISON & FREMONT" }, "geometry": { "type": "Point", "coordinates": [ -122.392201, 37.786759 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Harrison St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.390614, 37.788014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.388167, 37.784385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.387996, 37.784656 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.387996, 37.784622 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.392244, 37.781875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.391987, 37.781841 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.390699, 37.780857 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.390699, 37.780654 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "2nd St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.390571, 37.780721 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "The Embarcadero & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.388339, 37.783604 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389970, 37.779806 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389884, 37.779738 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389841, 37.779636 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389584, 37.779602 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": " 4th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.396665, 37.778449 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.396622, 37.778313 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.398596, 37.776549 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.396150, 37.776346 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "5th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.397180, 37.775498 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397223, 37.775464 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397223, 37.775260 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "TOWNSEND ST & 4TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.394648, 37.777296 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.394433, 37.777431 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.395163, 37.777126 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.394991, 37.777194 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.395034, 37.777058 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.394991, 37.777092 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4TH ST & TOWNSEND ST" }, "geometry": { "type": "Point", "coordinates": [ -122.394905, 37.777092 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.394776, 37.777024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4TH ST & TOWNSEND ST" }, "geometry": { "type": "Point", "coordinates": [ -122.394905, 37.776922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.394261, 37.776210 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.394047, 37.776346 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4TH ST & BERRY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.393961, 37.776380 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.393918, 37.776346 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.394047, 37.776278 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4TH ST & BERRY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.393961, 37.776176 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.393875, 37.776312 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.394390, 37.776074 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Berry St" }, "geometry": { "type": "Point", "coordinates": [ -122.393360, 37.775803 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397866, 37.773191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.397995, 37.772920 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.397866, 37.772920 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "King St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397823, 37.773123 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.393188, 37.779297 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.393060, 37.778754 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.392459, 37.778992 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd Street & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.391815, 37.778110 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4TH ST & BERRY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.392802, 37.775498 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & Berry St" }, "geometry": { "type": "Point", "coordinates": [ -122.392845, 37.775294 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Terry A Francois Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.390141, 37.776210 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Terry A Francois Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.389970, 37.776244 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Mission Rock St" }, "geometry": { "type": "Point", "coordinates": [ -122.389755, 37.773021 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389712, 37.772988 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.389798, 37.772648 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Mission Rock St" }, "geometry": { "type": "Point", "coordinates": [ -122.389755, 37.772852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission Bay North & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389627, 37.771190 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.407951, 37.768442 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.407694, 37.768272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.407694, 37.768272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave&15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.767356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408209, 37.766372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407694, 37.765864 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.765728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.765728 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407479, 37.766033 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407351, 37.764744 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407565, 37.764235 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405548, 37.765864 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.404733, 37.766067 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404475, 37.764574 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.404432, 37.763251 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.404304, 37.763319 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404346, 37.762233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Townsend St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.403831, 37.770240 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "8th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.404132, 37.770172 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Division St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.403316, 37.769901 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Division St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.403188, 37.769765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.403059, 37.768747 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.402844, 37.768578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402930, 37.767492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402759, 37.767322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.403831, 37.765965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kansas St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.403660, 37.764846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.403660, 37.764812 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.403488, 37.764846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17TH ST & KANSAS ST" }, "geometry": { "type": "Point", "coordinates": [ -122.403445, 37.764846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402802, 37.766169 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.766339 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Street & Rhode Islandi St" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.766135 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St& Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.402630, 37.766033 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401643, 37.766067 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402716, 37.764880 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.401729, 37.764778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.401686, 37.764812 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.401471, 37.764914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401557, 37.764778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kansas St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.403488, 37.763591 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.402544, 37.763285 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Street & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.399883, 37.766305 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.399712, 37.766237 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.400012, 37.765015 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "17th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.399325, 37.764948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.401385, 37.763523 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401257, 37.762233 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407308, 37.761657 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407050, 37.761860 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409668, 37.759112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407050, 37.759112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404218, 37.762030 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404218, 37.760978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406878, 37.759621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.409539, 37.757517 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.409625, 37.757416 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.409453, 37.756228 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.409496, 37.755753 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.409196, 37.754328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.409325, 37.754158 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.406921, 37.757517 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.406621, 37.757212 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.406793, 37.755889 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Sf General Hospital" }, "geometry": { "type": "Point", "coordinates": [ -122.406707, 37.755210 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "POTRERO AVE/SF General Hospital" }, "geometry": { "type": "Point", "coordinates": [ -122.406492, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.406578, 37.754023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Utah St" }, "geometry": { "type": "Point", "coordinates": [ -122.405334, 37.754328 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Utah St" }, "geometry": { "type": "Point", "coordinates": [ -122.404947, 37.754430 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404089, 37.760741 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402415, 37.761996 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402329, 37.760978 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vermont St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.404089, 37.759689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.403917, 37.759621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.402930, 37.759689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.403145, 37.759587 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.402244, 37.759621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.759451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402029, 37.759621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & Southern Heights Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402072, 37.758501 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Southern Heights Ave & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.401772, 37.758400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401128, 37.760944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401042, 37.759689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Southern Heights Ave & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.401128, 37.758162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Southern Heights Ave & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.400827, 37.758128 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & Southern Heights Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400870, 37.758026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.399111, 37.759757 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.401943, 37.756907 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "176 Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.401857, 37.756194 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.403917, 37.754498 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.403660, 37.754396 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23RD ST & KANSAS ST" }, "geometry": { "type": "Point", "coordinates": [ -122.402673, 37.754464 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kansas St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.402501, 37.754464 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "KANSAS ST & 23RD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.402501, 37.754464 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.401729, 37.754532 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.401686, 37.754362 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401600, 37.753412 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.400827, 37.757450 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Carolina St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.400012, 37.757348 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Carolina St" }, "geometry": { "type": "Point", "coordinates": [ -122.399755, 37.757314 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.399111, 37.757280 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.398896, 37.757212 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & Madera St" }, "geometry": { "type": "Point", "coordinates": [ -122.398853, 37.755923 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & Madera St" }, "geometry": { "type": "Point", "coordinates": [ -122.398725, 37.755787 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "De Haro St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.400613, 37.754905 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.398767, 37.754871 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Street & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.397051, 37.766508 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.396793, 37.766406 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "7th St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.395334, 37.766678 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397695, 37.764981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397823, 37.764778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397609, 37.762641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.397394, 37.762607 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397437, 37.762437 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Texas St" }, "geometry": { "type": "Point", "coordinates": [ -122.395463, 37.762708 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Texas St" }, "geometry": { "type": "Point", "coordinates": [ -122.395163, 37.762641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Pennsylvania Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.393489, 37.762844 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Pennsylvania Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.393231, 37.762742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission Bay South & 4th St SE-FS/ BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.391043, 37.770545 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th Street & 4th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.390914, 37.766881 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "16th St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.390742, 37.766780 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1731 3RD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.389326, 37.769731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Gene Friend Way" }, "geometry": { "type": "Point", "coordinates": [ -122.389455, 37.769324 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Gene Friend Way" }, "geometry": { "type": "Point", "coordinates": [ -122.389326, 37.769561 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "UCSF/Mission Bay" }, "geometry": { "type": "Point", "coordinates": [ -122.389326, 37.769052 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "UCSF/Mission Bay" }, "geometry": { "type": "Point", "coordinates": [ -122.389283, 37.768544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1730 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389369, 37.767831 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.389197, 37.766610 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd/btw 16th and Gene Friend" }, "geometry": { "type": "Point", "coordinates": [ -122.389197, 37.766610 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.389026, 37.767221 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & Minnesota St" }, "geometry": { "type": "Point", "coordinates": [ -122.390871, 37.762878 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mariposa & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389197, 37.764371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.388854, 37.764405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.388768, 37.764439 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.388897, 37.764269 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & MARIPOSA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.388854, 37.764269 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tennessee St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.389669, 37.762912 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third St & Mariposa St." }, "geometry": { "type": "Point", "coordinates": [ -122.388983, 37.764201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.388639, 37.763387 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "18th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388940, 37.763014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.388854, 37.762980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.388854, 37.762708 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.761351 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.397351, 37.761182 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Arkansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.398381, 37.759892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Arkansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.398081, 37.759960 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.396493, 37.761419 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.396364, 37.760164 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.396450, 37.760096 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.396450, 37.759994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.396021, 37.758400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.396150, 37.758128 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & Texas St" }, "geometry": { "type": "Point", "coordinates": [ -122.395463, 37.760062 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Texas St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.395163, 37.758400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Texas St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.395205, 37.758264 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arkansas St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.398081, 37.757484 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arkansas St & Madera St" }, "geometry": { "type": "Point", "coordinates": [ -122.397909, 37.755991 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.398596, 37.754837 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.398639, 37.754701 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.398553, 37.753582 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.398682, 37.753480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & Coral Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.398682, 37.753480 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "1095 CONNECTICUT ST" }, "geometry": { "type": "Point", "coordinates": [ -122.397351, 37.753921 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "23rd St & Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.396793, 37.754701 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Dakota St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.396579, 37.754735 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Dakota St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.396579, 37.754701 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & Turner Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.395763, 37.757280 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & Turner Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.395720, 37.756839 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Mississippi St" }, "geometry": { "type": "Point", "coordinates": [ -122.394004, 37.757653 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & Watchman Way" }, "geometry": { "type": "Point", "coordinates": [ -122.395806, 37.755482 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Missouri St & Watchman Way" }, "geometry": { "type": "Point", "coordinates": [ -122.395763, 37.755516 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "14 Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.395763, 37.753785 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "101 Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.395678, 37.753751 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Iowa St" }, "geometry": { "type": "Point", "coordinates": [ -122.391815, 37.757789 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Iowa St" }, "geometry": { "type": "Point", "coordinates": [ -122.391772, 37.757721 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388768, 37.760571 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.388468, 37.760808 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.388725, 37.760605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & 20TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.388639, 37.760605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.388597, 37.760537 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "20th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388425, 37.760469 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.388597, 37.760401 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Minnesota St" }, "geometry": { "type": "Point", "coordinates": [ -122.390099, 37.757891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Minnesota St" }, "geometry": { "type": "Point", "coordinates": [ -122.390013, 37.757823 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388468, 37.758060 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & 22ND ST" }, "geometry": { "type": "Point", "coordinates": [ -122.388468, 37.758060 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388511, 37.757891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd ST & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388253, 37.758094 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388210, 37.758196 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388124, 37.758026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "22nd St & Pennsylvania Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.393060, 37.757585 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pennsylvania Avenue & 23rd Street" }, "geometry": { "type": "Point", "coordinates": [ -122.393017, 37.755176 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pennsylvania Avenue & 23rd Street" }, "geometry": { "type": "Point", "coordinates": [ -122.392802, 37.755041 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.387910, 37.755719 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388124, 37.755074 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388039, 37.755448 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & 23RD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.388039, 37.755346 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388039, 37.755312 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.429795, 37.751512 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.429581, 37.751647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.427564, 37.751647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.427521, 37.751817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.427349, 37.751783 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.427392, 37.751614 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.427306, 37.749408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.427135, 37.749204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.748186 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431512, 37.746693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431340, 37.746557 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431340, 37.745200 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.744963 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.427092, 37.746999 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.426920, 37.746795 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.425332, 37.751919 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.425289, 37.751817 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.422800, 37.752055 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.423015, 37.751919 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.420740, 37.751885 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.743571 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431083, 37.743334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Noe St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431040, 37.742010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.430825, 37.741908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.429023, 37.741942 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.426620, 37.743605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.426620, 37.743605 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Day St" }, "geometry": { "type": "Point", "coordinates": [ -122.426662, 37.742825 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & Day St" }, "geometry": { "type": "Point", "coordinates": [ -122.426662, 37.742655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.428637, 37.742044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.426791, 37.742044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.426534, 37.742146 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.426534, 37.742112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.426534, 37.742112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Church St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.426491, 37.742248 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.426405, 37.742180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "46 Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431040, 37.737768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bemis St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.431211, 37.736682 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bemis St & Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.429538, 37.737734 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Mateo St" }, "geometry": { "type": "Point", "coordinates": [ -122.428980, 37.736478 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Mateo St" }, "geometry": { "type": "Point", "coordinates": [ -122.429023, 37.736343 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Randall St & Whitney St" }, "geometry": { "type": "Point", "coordinates": [ -122.427607, 37.739702 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Whitney St & Fairmount Street" }, "geometry": { "type": "Point", "coordinates": [ -122.427521, 37.738922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Miguel St" }, "geometry": { "type": "Point", "coordinates": [ -122.427950, 37.737123 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Miguel St" }, "geometry": { "type": "Point", "coordinates": [ -122.427778, 37.737157 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.425761, 37.742044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.425847, 37.741942 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.424474, 37.742180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.424045, 37.742316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421169, 37.743843 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.422071, 37.742451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "30th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.422199, 37.742316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422929, 37.741026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422800, 37.741060 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.422671, 37.741026 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.422543, 37.740856 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.422028, 37.742451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421899, 37.742451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.421856, 37.742451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.425718, 37.739940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.425504, 37.739635 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Fairmount St" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.738922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San jose& Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.424302, 37.739838 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.424431, 37.739567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.424173, 37.739770 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.424345, 37.739397 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose& Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.424088, 37.739872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.424045, 37.739736 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Appleton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424045, 37.739024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Appleton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.423873, 37.738888 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Highland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424216, 37.737089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Highland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424002, 37.737463 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Richland Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.424345, 37.736241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Prospect Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420955, 37.740211 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Prospect Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.420912, 37.740313 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.420611, 37.752360 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.420568, 37.752190 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.420526, 37.752089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.418423, 37.752733 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.418337, 37.752326 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.418551, 37.752190 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.418551, 37.751987 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.420483, 37.750765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.420611, 37.750290 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25TH ST & MISSION ST" }, "geometry": { "type": "Point", "coordinates": [ -122.418509, 37.750697 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.418122, 37.749544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.416406, 37.752326 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.416191, 37.752496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.416191, 37.752462 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.416191, 37.752292 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.417822, 37.749035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "South Van Ness & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.416234, 37.750663 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.416105, 37.749136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.420440, 37.748661 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.420354, 37.748017 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.420225, 37.748220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St. & Valencia St." }, "geometry": { "type": "Point", "coordinates": [ -122.420096, 37.748084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez & Bartlett" }, "geometry": { "type": "Point", "coordinates": [ -122.419024, 37.748220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.418208, 37.748593 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.418380, 37.748254 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.418122, 37.748118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Precita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419109, 37.746965 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Precita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.418852, 37.747134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.420268, 37.746761 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Valencia St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.420096, 37.746659 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Power St" }, "geometry": { "type": "Point", "coordinates": [ -122.419410, 37.746252 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Fair Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419624, 37.745947 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.420311, 37.745098 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.415762, 37.748322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.752564 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414217, 37.752598 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414045, 37.752767 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414131, 37.752462 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413960, 37.752496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.414088, 37.751003 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.413874, 37.750833 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413917, 37.749238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.413874, 37.749069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.413745, 37.749238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.412071, 37.752699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.411771, 37.752598 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.413831, 37.748492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.414002, 37.748356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413831, 37.748152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.413616, 37.748390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom & Cesar Chavz St" }, "geometry": { "type": "Point", "coordinates": [ -122.413788, 37.748084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.413616, 37.748118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Bessie St" }, "geometry": { "type": "Point", "coordinates": [ -122.413659, 37.746897 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Precita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.413530, 37.747100 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Stoneman St" }, "geometry": { "type": "Point", "coordinates": [ -122.413487, 37.745234 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Stoneman St" }, "geometry": { "type": "Point", "coordinates": [ -122.413402, 37.745336 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.411942, 37.748424 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.411642, 37.748220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "C. Chavez St&Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.411385, 37.748356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Alabama St" }, "geometry": { "type": "Point", "coordinates": [ -122.410440, 37.748424 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Florida St" }, "geometry": { "type": "Point", "coordinates": [ -122.409797, 37.748254 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.744318 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Elsie St" }, "geometry": { "type": "Point", "coordinates": [ -122.420011, 37.739940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Elsie St" }, "geometry": { "type": "Point", "coordinates": [ -122.419710, 37.739702 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Bocana St" }, "geometry": { "type": "Point", "coordinates": [ -122.418723, 37.739329 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Bocana St" }, "geometry": { "type": "Point", "coordinates": [ -122.418466, 37.739329 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.416620, 37.739058 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.416406, 37.739092 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ripley St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413187, 37.744182 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ripley St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413015, 37.744148 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ripley St & Alabama St" }, "geometry": { "type": "Point", "coordinates": [ -122.410483, 37.744386 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ripley St & Alabama St" }, "geometry": { "type": "Point", "coordinates": [ -122.410526, 37.744284 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bernal Heights Blvd & Powhattan St" }, "geometry": { "type": "Point", "coordinates": [ -122.411256, 37.741467 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Nevada St & Powhattan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411342, 37.741264 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bernal Heights Blvd & Powhattan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.410698, 37.741535 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bernal Heights Blvd & Bradford St" }, "geometry": { "type": "Point", "coordinates": [ -122.409797, 37.741840 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414646, 37.738854 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414560, 37.738922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413702, 37.739024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413445, 37.738922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.413316, 37.738888 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.413402, 37.738820 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FOLSOM ST & JARBOE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.413487, 37.738277 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & JARBOE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.413273, 37.738243 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Tompkins St" }, "geometry": { "type": "Point", "coordinates": [ -122.413530, 37.737191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Tompkins St" }, "geometry": { "type": "Point", "coordinates": [ -122.413445, 37.737191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Ogden St" }, "geometry": { "type": "Point", "coordinates": [ -122.413530, 37.736071 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Prentiss St" }, "geometry": { "type": "Point", "coordinates": [ -122.412028, 37.739804 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Prentiss St" }, "geometry": { "type": "Point", "coordinates": [ -122.412114, 37.739601 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Nevada St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411427, 37.739940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Nevada St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411342, 37.740076 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Bradford St" }, "geometry": { "type": "Point", "coordinates": [ -122.409754, 37.739804 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CORTLAND AVE & BRONTE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.410183, 37.739736 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Roanoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.430310, 37.735494 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Chenery St & Roanoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.430224, 37.735664 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Rotteck St" }, "geometry": { "type": "Point", "coordinates": [ -122.431297, 37.733220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Still St & Lyell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431340, 37.731862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Milton St" }, "geometry": { "type": "Point", "coordinates": [ -122.429538, 37.733322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Milton St" }, "geometry": { "type": "Point", "coordinates": [ -122.429366, 37.733492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Marsily St" }, "geometry": { "type": "Point", "coordinates": [ -122.427950, 37.733492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "4080 Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.428036, 37.732202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bosworth St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.426705, 37.733729 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.426834, 37.733356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.426834, 37.733356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lyell St & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431340, 37.730675 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rousseau St & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.429667, 37.731421 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Trumbull St" }, "geometry": { "type": "Point", "coordinates": [ -122.429280, 37.730675 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Trumbull St" }, "geometry": { "type": "Point", "coordinates": [ -122.429752, 37.730471 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431426, 37.728910 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431426, 37.728706 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431340, 37.728638 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431254, 37.728672 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431126, 37.728808 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Trumbull St & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.426405, 37.730980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Trumbull St & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.426276, 37.730844 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Lisbon St" }, "geometry": { "type": "Point", "coordinates": [ -122.428808, 37.728502 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Lisbon St" }, "geometry": { "type": "Point", "coordinates": [ -122.428637, 37.728604 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Lisbon St" }, "geometry": { "type": "Point", "coordinates": [ -122.428594, 37.728638 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Craut St" }, "geometry": { "type": "Point", "coordinates": [ -122.428122, 37.728570 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Murray St" }, "geometry": { "type": "Point", "coordinates": [ -122.425933, 37.734069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Richland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424731, 37.735630 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Richland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424431, 37.735935 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.424474, 37.735426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & College Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424088, 37.735256 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Leese St" }, "geometry": { "type": "Point", "coordinates": [ -122.422585, 37.735256 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Agnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421856, 37.735087 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.425890, 37.728740 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.426105, 37.728570 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Trumbull St & Stoneybrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.421942, 37.730980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Gambier St" }, "geometry": { "type": "Point", "coordinates": [ -122.422800, 37.728774 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Gambier St" }, "geometry": { "type": "Point", "coordinates": [ -122.422585, 37.728910 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SILVER AVE & GAMBIER ST" }, "geometry": { "type": "Point", "coordinates": [ -122.422500, 37.728774 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Excelsior Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.430611, 37.724768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.431512, 37.723173 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Excelsior Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.429023, 37.724022 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Athens St & Excelsior Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.427306, 37.723139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431383, 37.720865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431083, 37.720899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.430053, 37.722528 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.429924, 37.722392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.429538, 37.720152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.429495, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.428980, 37.719711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.428594, 37.721679 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.428293, 37.721646 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Athens St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428465, 37.721578 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.427649, 37.721374 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.427778, 37.721306 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & Excelsior Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426491, 37.722901 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.427521, 37.721238 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Munich St" }, "geometry": { "type": "Point", "coordinates": [ -122.427006, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428765, 37.719846 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.428679, 37.719745 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.426190, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426190, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.427220, 37.719032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.427349, 37.718964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.427220, 37.718862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.427092, 37.718964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Athens St & Avalon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426105, 37.724667 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avalon Ave & La Grande Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424388, 37.724768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avalon Ave & La Grande Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.424259, 37.724768 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Avalon Ave & Peru Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.423444, 37.725108 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Peru Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.423272, 37.725210 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Madison St" }, "geometry": { "type": "Point", "coordinates": [ -122.422071, 37.725617 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Madison St" }, "geometry": { "type": "Point", "coordinates": [ -122.422113, 37.725447 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Brazil Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.425890, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.426062, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719371 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719337 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "DUBLIN ST & LAGRANDE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425804, 37.719201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Richland Ave & Murray St" }, "geometry": { "type": "Point", "coordinates": [ -122.420096, 37.735800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Murray St" }, "geometry": { "type": "Point", "coordinates": [ -122.420139, 37.735155 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Arnold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.419753, 37.734985 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Roscoe St" }, "geometry": { "type": "Point", "coordinates": [ -122.418637, 37.735087 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Porter St" }, "geometry": { "type": "Point", "coordinates": [ -122.418251, 37.734917 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd/St Mary's Park bridge" }, "geometry": { "type": "Point", "coordinates": [ -122.420611, 37.732304 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "989 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.418938, 37.732643 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Richland Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.417049, 37.735664 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.416749, 37.734985 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.416964, 37.734849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Anderson St" }, "geometry": { "type": "Point", "coordinates": [ -122.415719, 37.734917 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "945 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.417779, 37.732813 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "909 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.416792, 37.732847 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "831 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.415290, 37.733288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Gates St" }, "geometry": { "type": "Point", "coordinates": [ -122.415762, 37.732541 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.419410, 37.729147 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.729045 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Princeton St" }, "geometry": { "type": "Point", "coordinates": [ -122.416148, 37.729045 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Princeton St" }, "geometry": { "type": "Point", "coordinates": [ -122.416277, 37.728842 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.415075, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "CRESCENT AVE & ELLSWORTH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.415075, 37.734747 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.414861, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ellsworth St & Crescent Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.414947, 37.734713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413831, 37.734680 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Ogden St" }, "geometry": { "type": "Point", "coordinates": [ -122.413659, 37.735800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Crescent Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.413659, 37.734951 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Folsom St & Crescent Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.413745, 37.734849 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413616, 37.734815 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Flosom St" }, "geometry": { "type": "Point", "coordinates": [ -122.413960, 37.733288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "346 Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.413273, 37.733627 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Putnam St" }, "geometry": { "type": "Point", "coordinates": [ -122.411299, 37.734917 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Crescent Ave & Putnam St" }, "geometry": { "type": "Point", "coordinates": [ -122.411170, 37.735019 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.413616, 37.729860 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.413015, 37.729962 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & University St" }, "geometry": { "type": "Point", "coordinates": [ -122.414603, 37.727416 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Felton St" }, "geometry": { "type": "Point", "coordinates": [ -122.414432, 37.727416 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Boylston St" }, "geometry": { "type": "Point", "coordinates": [ -122.410870, 37.730946 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Holyoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.410226, 37.730980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Harvard St" }, "geometry": { "type": "Point", "coordinates": [ -122.420483, 37.725889 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Harvard St" }, "geometry": { "type": "Point", "coordinates": [ -122.420311, 37.725990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.418766, 37.726432 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.418551, 37.726398 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Amherst St" }, "geometry": { "type": "Point", "coordinates": [ -122.416363, 37.727043 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Felton St & Amherst St" }, "geometry": { "type": "Point", "coordinates": [ -122.416534, 37.726907 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.418809, 37.718930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.418637, 37.718726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Burrows St" }, "geometry": { "type": "Point", "coordinates": [ -122.414174, 37.726601 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Burrows St" }, "geometry": { "type": "Point", "coordinates": [ -122.414045, 37.726500 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.413573, 37.725142 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.413402, 37.725006 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.413101, 37.723954 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.412930, 37.723818 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Colby St" }, "geometry": { "type": "Point", "coordinates": [ -122.411470, 37.722969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.410440, 37.723241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.410612, 37.723139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "University St & Woolsey St" }, "geometry": { "type": "Point", "coordinates": [ -122.412543, 37.722732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & University St" }, "geometry": { "type": "Point", "coordinates": [ -122.412415, 37.722732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Colby St" }, "geometry": { "type": "Point", "coordinates": [ -122.411599, 37.722868 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & University St" }, "geometry": { "type": "Point", "coordinates": [ -122.411299, 37.718964 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.411385, 37.718794 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.409282, 37.752869 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409110, 37.753073 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409196, 37.752530 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.408981, 37.752767 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.409110, 37.751308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hampshire St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.407222, 37.752835 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408895, 37.751138 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408938, 37.749713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bryant St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.408767, 37.749544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406707, 37.753005 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406278, 37.753276 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406449, 37.752699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "24th Street & Potrero Avenue" }, "geometry": { "type": "Point", "coordinates": [ -122.406235, 37.753073 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406707, 37.751410 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406363, 37.751274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Potrero Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.406106, 37.751647 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "C. Chavez St&Florida St" }, "geometry": { "type": "Point", "coordinates": [ -122.409582, 37.748390 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cesar Chavez St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.409110, 37.748458 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "228 Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.404432, 37.744725 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kansas St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402244, 37.751919 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401471, 37.752122 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kansas St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.402158, 37.750867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Rhode Island St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.401342, 37.750731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.401128, 37.750731 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.400184, 37.750867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.400055, 37.750765 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403531, 37.747134 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403703, 37.746422 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bradford St & Esmeralda Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.409325, 37.743062 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bradford St & Bernal Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.409410, 37.742892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bradford St & Bernal Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.409410, 37.742010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405248, 37.743334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405205, 37.742892 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Bayshore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.405076, 37.742859 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "380 Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.406707, 37.741331 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Hilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407823, 37.739702 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407136, 37.739702 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cortland Ave & Bayshore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.407222, 37.739567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.407308, 37.738379 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.407007, 37.737734 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.406793, 37.739872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Marengo St" }, "geometry": { "type": "Point", "coordinates": [ -122.406921, 37.738718 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Industrial St & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.406578, 37.738175 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Industrial St & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.406793, 37.737972 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Loomis St" }, "geometry": { "type": "Point", "coordinates": [ -122.404175, 37.742553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Barneveld Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403359, 37.741908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Barneveld Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403102, 37.741908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Toland St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401600, 37.741094 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Toland St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399025, 37.743944 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Toland St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.398853, 37.743911 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Toland St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400999, 37.741501 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Toland St & Mckinnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400484, 37.742316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Industrial St & Elmira St" }, "geometry": { "type": "Point", "coordinates": [ -122.403746, 37.738820 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Industrial St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403059, 37.739159 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Industrial St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401042, 37.739567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Industrial St" }, "geometry": { "type": "Point", "coordinates": [ -122.400570, 37.739533 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.398896, 37.736376 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.398596, 37.752292 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.398424, 37.752394 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.398338, 37.752258 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.398295, 37.752190 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wisconsin St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.398295, 37.751308 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.396407, 37.752564 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.396364, 37.752360 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.396622, 37.752258 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.396536, 37.751274 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.396364, 37.751444 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "26th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.398682, 37.751138 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.397094, 37.749035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.396922, 37.749069 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.396407, 37.749883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Connecticut St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.396235, 37.750019 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Dakota St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.394691, 37.752699 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th St & Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.394862, 37.752530 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "25th Avenue & Dakota Street" }, "geometry": { "type": "Point", "coordinates": [ -122.394733, 37.752360 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Napoleon St" }, "geometry": { "type": "Point", "coordinates": [ -122.396278, 37.747372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Napoleon St" }, "geometry": { "type": "Point", "coordinates": [ -122.395892, 37.747270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.393961, 37.746184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.393875, 37.745981 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pennsylvania Avenue & 25th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.392759, 37.752631 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Pennsylvania Avenue & 25th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.392802, 37.752496 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387867, 37.752564 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.387738, 37.750426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jerrold Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.396793, 37.743334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jerrold Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.396965, 37.742791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jerrold Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.394948, 37.742112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jerrold Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.394733, 37.741705 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.398553, 37.738277 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.398252, 37.738243 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.398639, 37.736343 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.396750, 37.737225 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.396665, 37.737123 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.396407, 37.737191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.394819, 37.736105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394691, 37.736241 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394133, 37.736852 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394090, 37.736648 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.394562, 37.736105 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.390571, 37.744250 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.390485, 37.744046 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jerrold Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.392974, 37.740924 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jerrold Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.392931, 37.740721 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.388597, 37.742994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.388339, 37.742994 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.388039, 37.742757 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387953, 37.742757 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & EVANS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387953, 37.742723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387910, 37.742689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.387867, 37.742655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & EVANS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387867, 37.742621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.388167, 37.742451 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Galvez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.388725, 37.740890 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Jerrold Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.391429, 37.739872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.391300, 37.739770 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Mckinnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.393017, 37.738107 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Mckinnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392974, 37.737870 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newhall St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390528, 37.737598 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newhall St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390528, 37.737530 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newhall St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.391686, 37.736343 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newhall St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.391644, 37.736275 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newcomb Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.391558, 37.736309 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.389283, 37.739329 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.389154, 37.738922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.389154, 37.738922 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Hudson/Innes" }, "geometry": { "type": "Point", "coordinates": [ -122.388940, 37.739940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Hudson/Innes" }, "geometry": { "type": "Point", "coordinates": [ -122.388897, 37.739940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Hudson/Innes" }, "geometry": { "type": "Point", "coordinates": [ -122.388897, 37.739940 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.388725, 37.740313 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Hudson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.388725, 37.740144 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "New Hall & Hudsons SW-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.388425, 37.739974 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "New Hall & Hudson SW-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.388425, 37.739974 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.389841, 37.737225 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kirkwood Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.389669, 37.737972 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Kirkwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.389627, 37.737938 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Kirkwood/La Salle" }, "geometry": { "type": "Point", "coordinates": [ -122.389712, 37.737666 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Kirkwood/La Salle" }, "geometry": { "type": "Point", "coordinates": [ -122.389712, 37.737666 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Kirkwood/La Salle" }, "geometry": { "type": "Point", "coordinates": [ -122.389712, 37.737666 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Boutwell St" }, "geometry": { "type": "Point", "coordinates": [ -122.405891, 37.734883 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Augusta St" }, "geometry": { "type": "Point", "coordinates": [ -122.405591, 37.734272 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405977, 37.732439 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405720, 37.732372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405591, 37.732202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Charter Oak Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404304, 37.733288 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404733, 37.733220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404819, 37.733016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404819, 37.732983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.404389, 37.733084 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.405376, 37.732066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Merrill St" }, "geometry": { "type": "Point", "coordinates": [ -122.409024, 37.731353 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Merrill St" }, "geometry": { "type": "Point", "coordinates": [ -122.408853, 37.731523 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Felton St" }, "geometry": { "type": "Point", "coordinates": [ -122.404733, 37.730131 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404647, 37.730267 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Burrows St & Girard St M.L. King School" }, "geometry": { "type": "Point", "coordinates": [ -122.405033, 37.728061 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Girard ST & Burrows ST" }, "geometry": { "type": "Point", "coordinates": [ -122.404947, 37.728027 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.404733, 37.727348 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.404518, 37.727450 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Augusta St" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.734612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Ledyard St" }, "geometry": { "type": "Point", "coordinates": [ -122.402587, 37.734170 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave&Santa Fe Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401600, 37.734781 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Topeka Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401085, 37.735290 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Silver Ave & Topeka Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400699, 37.735358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bridge View Dr & Scotia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399411, 37.731862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Thornton Dr&Scotia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399497, 37.731693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bridge View Dr & Scotia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399282, 37.731930 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bay Shore Blvd & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403145, 37.730301 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.403703, 37.727993 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.403703, 37.727993 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.403660, 37.727552 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.403574, 37.727348 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403274, 37.727755 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.403274, 37.727654 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Donner Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401471, 37.728502 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Egbert Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401943, 37.728095 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Vesta St & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.399926, 37.730403 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399883, 37.730199 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401042, 37.729147 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Phelps St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400913, 37.729113 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holyoke St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.408466, 37.726296 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holyoke St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.408509, 37.726160 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.407694, 37.726567 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.407479, 37.726703 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holyoke St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.408123, 37.725244 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Bowdoin St" }, "geometry": { "type": "Point", "coordinates": [ -122.409410, 37.723512 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Bowdoin St" }, "geometry": { "type": "Point", "coordinates": [ -122.409625, 37.723411 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.408681, 37.723648 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.408423, 37.723750 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holyoke St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.407994, 37.725074 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Holyoke St & Woolsey St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.724022 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Woolsey St & Holyoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.723886 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.406707, 37.726805 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bacon St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.406492, 37.726941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.409067, 37.719405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.408895, 37.719609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.407093, 37.719914 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.404346, 37.720797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.406921, 37.720118 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.405334, 37.720525 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.405119, 37.720423 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.403016, 37.726398 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Woolsey St" }, "geometry": { "type": "Point", "coordinates": [ -122.402716, 37.725312 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Dwight St" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.724090 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Paul Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.402115, 37.724191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Paul Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401900, 37.723648 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Paul Ave & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401600, 37.723886 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bayshore St & Paul Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.400827, 37.723580 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Paul Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.400613, 37.723648 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Paul Ave & Wheat St" }, "geometry": { "type": "Point", "coordinates": [ -122.400227, 37.723411 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Paul Ave & Crane St" }, "geometry": { "type": "Point", "coordinates": [ -122.399111, 37.723309 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.403102, 37.721102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.403145, 37.720933 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.404132, 37.720695 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Mansell St" }, "geometry": { "type": "Point", "coordinates": [ -122.401257, 37.721612 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401428, 37.721544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.401171, 37.721476 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Mansell St" }, "geometry": { "type": "Point", "coordinates": [ -122.400956, 37.721510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Salinas Ave & Bayshore St" }, "geometry": { "type": "Point", "coordinates": [ -122.399840, 37.721544 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Ward St" }, "geometry": { "type": "Point", "coordinates": [ -122.400441, 37.719405 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Ward St" }, "geometry": { "type": "Point", "coordinates": [ -122.400527, 37.719066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Topeka Ave & Bridge View Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.397652, 37.733322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Bridge View Dr & Topeka Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397695, 37.733220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Topeka Ave & Venus St" }, "geometry": { "type": "Point", "coordinates": [ -122.395935, 37.732032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Topeka Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.395592, 37.731829 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Topeka Ave & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.395291, 37.731184 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Reddy St & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.395077, 37.731014 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Reddy St & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.395420, 37.729792 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Williams Ave & Reddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.395291, 37.729758 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Yosemite Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.393317, 37.727925 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave&Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.392888, 37.735189 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.392931, 37.735053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newhall St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392759, 37.735189 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.392673, 37.735053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newhall St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392201, 37.735800 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.392373, 37.735698 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.392116, 37.735698 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390485, 37.735087 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Oakdale/Palou" }, "geometry": { "type": "Point", "coordinates": [ -122.390871, 37.734374 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Oakdale/Palou" }, "geometry": { "type": "Point", "coordinates": [ -122.390871, 37.734374 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Oakdale/Palou" }, "geometry": { "type": "Point", "coordinates": [ -122.390871, 37.734374 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390742, 37.734815 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390957, 37.734103 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390828, 37.734136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.390828, 37.734035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street at Palou Ave SE" }, "geometry": { "type": "Point", "coordinates": [ -122.390914, 37.733899 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.390871, 37.733865 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Bayview St" }, "geometry": { "type": "Point", "coordinates": [ -122.391601, 37.732304 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Revere/Shafter" }, "geometry": { "type": "Point", "coordinates": [ -122.391558, 37.732304 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Revere/Shafter" }, "geometry": { "type": "Point", "coordinates": [ -122.391515, 37.732270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Revere/Shafter" }, "geometry": { "type": "Point", "coordinates": [ -122.391515, 37.732270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Revere Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.391386, 37.732439 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.391472, 37.732270 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Revere Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.391257, 37.732202 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390356, 37.735426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.390313, 37.734510 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.389197, 37.732915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Revere Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.390313, 37.731693 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lane St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390184, 37.731727 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Revere Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.390056, 37.731659 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lane St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.389069, 37.732915 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.388897, 37.732949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Thomas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392030, 37.730675 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392373, 37.730471 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Williams Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.392974, 37.729385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Williams Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.392888, 37.729283 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & WILLIAMS ST" }, "geometry": { "type": "Point", "coordinates": [ -122.392759, 37.729249 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392673, 37.729283 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392631, 37.729317 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Van Dyke Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392631, 37.729249 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.392802, 37.729181 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Dyke Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.392244, 37.729215 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Yosemite Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.393060, 37.727925 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Dyke Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.390442, 37.728095 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Dyke Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.390270, 37.727891 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Paul Ave & Gould St" }, "geometry": { "type": "Point", "coordinates": [ -122.397952, 37.723037 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Armstrong Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.393532, 37.726941 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394304, 37.725685 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394261, 37.725515 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394261, 37.725515 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394261, 37.725481 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394218, 37.725312 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Egbert Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394991, 37.724191 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Egbert Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.394905, 37.723818 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Fitzgerald Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.395248, 37.723139 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Paul Ave & Gould St" }, "geometry": { "type": "Point", "coordinates": [ -122.397394, 37.722732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Salinas Ave & Gould St" }, "geometry": { "type": "Point", "coordinates": [ -122.398467, 37.721136 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Paul Ave & Carr St" }, "geometry": { "type": "Point", "coordinates": [ -122.396364, 37.722494 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Salinas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.396493, 37.720797 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Ingerson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.396064, 37.721204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397523, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third St & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.397480, 37.718828 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Key St" }, "geometry": { "type": "Point", "coordinates": [ -122.396750, 37.719778 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "PAUL AVE & CARR ST" }, "geometry": { "type": "Point", "coordinates": [ -122.395678, 37.722426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Gilman/Paul" }, "geometry": { "type": "Point", "coordinates": [ -122.395678, 37.722426 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street/Gilman/Paul" }, "geometry": { "type": "Point", "coordinates": [ -122.395635, 37.722460 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Gilman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.395420, 37.722664 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.395420, 37.722460 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Gilman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.395635, 37.722392 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.395635, 37.722358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fitzgerald Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.394862, 37.722901 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fitzgerald Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.393360, 37.722053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.393618, 37.721442 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Dyke Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.388854, 37.727077 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Dyke Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.388554, 37.727043 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fitzgerald Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.391472, 37.720967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.391729, 37.720356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fitzgerald Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.389627, 37.719948 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hawes St & Gilman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.390013, 37.719201 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.386923, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.386880, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.386966, 37.755380 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.386837, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.386794, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.386751, 37.755414 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.383060, 37.755651 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753140 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Muni Metro East/Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.386837, 37.752835 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.387524, 37.750358 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third St & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387609, 37.749102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387481, 37.749102 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third Street & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387481, 37.749001 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Third St & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387438, 37.748967 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3RD ST & ARTHUR AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387309, 37.746048 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "3rd St & Cargo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.387052, 37.745879 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cargo Way & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.386966, 37.746082 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cargo Way & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.386665, 37.745777 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newhall St & Fairfax Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387180, 37.741433 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.386451, 37.741976 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mendell St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.385163, 37.740551 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mendell St & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.383962, 37.742553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mendell St & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.383704, 37.742553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cargo Way & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.383404, 37.743911 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mendell St & Cargo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.383318, 37.743809 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mendell St & Cargo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.383189, 37.743707 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MENDELL ST/Opposite US POST OFFICE" }, "geometry": { "type": "Point", "coordinates": [ -122.384648, 37.741162 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MENDELL ST/US POST OFFICE" }, "geometry": { "type": "Point", "coordinates": [ -122.384477, 37.741094 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.384605, 37.740924 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.384520, 37.740721 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.386580, 37.739024 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.386322, 37.738990 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cashmere St & Whitney Young Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.385893, 37.736614 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.382975, 37.740008 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "EVANS AVE/US POST OFFICE" }, "geometry": { "type": "Point", "coordinates": [ -122.382674, 37.739872 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "EVANS AVE/US Post Office" }, "geometry": { "type": "Point", "coordinates": [ -122.382588, 37.739838 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "EVANS AVE/Opposite US Post Office" }, "geometry": { "type": "Point", "coordinates": [ -122.382846, 37.739736 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.384133, 37.737700 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.384176, 37.737598 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Fairfax Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.381816, 37.738175 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.381086, 37.738786 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Keith St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.381043, 37.738650 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.380829, 37.738786 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Middle Point & Acacia" }, "geometry": { "type": "Point", "coordinates": [ -122.379541, 37.737089 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.379541, 37.736546 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Evans Ave & Middle Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.379284, 37.737700 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.379327, 37.737021 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cashmere St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.386966, 37.735867 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387395, 37.732066 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387352, 37.731862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387052, 37.731862 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Keith St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.386665, 37.732609 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Keith St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.386622, 37.732372 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newcomb Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.386022, 37.733152 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newcomb Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.386065, 37.733016 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newcomb Ave & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.385077, 37.733220 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Cashmere St" }, "geometry": { "type": "Point", "coordinates": [ -122.383533, 37.735969 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cashmere St & Hudson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.383575, 37.735732 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Ardath Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.383060, 37.734713 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Newcomb Ave & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.384863, 37.733050 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "La Salle Ave & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.384820, 37.732983 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Whitney Young Cir & Progress St" }, "geometry": { "type": "Point", "coordinates": [ -122.383361, 37.733356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Whitney Young Cir & Progress St" }, "geometry": { "type": "Point", "coordinates": [ -122.383103, 37.733254 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Revere Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.386580, 37.729588 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.385421, 37.730844 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.385163, 37.730810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Revere Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.386322, 37.729554 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Thomas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.385635, 37.727382 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.383618, 37.729758 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.382717, 37.730165 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Revere Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.384691, 37.728502 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.384605, 37.728400 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.382760, 37.729453 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.379498, 37.735053 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Middle Point Rd & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.379541, 37.734204 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.379541, 37.734035 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Whitney Young Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.382159, 37.733356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Whitney Young Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.381859, 37.733322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Harbor Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.380056, 37.733492 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Harbor Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.379842, 37.733322 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.379928, 37.732507 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Hudson Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.379713, 37.732406 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.379327, 37.735189 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MIDDLE POINT RD & HARE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.379370, 37.734408 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Middle Point Rd E" }, "geometry": { "type": "Point", "coordinates": [ -122.379370, 37.734103 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Northridge Rd & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.378983, 37.731659 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Hunters Point Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.377267, 37.732949 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Hunters Point Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.377181, 37.732711 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "La Salle Ave & Osceola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.381730, 37.731387 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "La Salle Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.381430, 37.730776 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Beatrice Ln" }, "geometry": { "type": "Point", "coordinates": [ -122.380357, 37.730607 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Baldwin Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.381387, 37.729385 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.381430, 37.728706 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Palou Ave & Crespi Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.380228, 37.727993 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kiska Rd & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.379413, 37.731082 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Northridge Rd & Harbor Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.377052, 37.730980 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kiska Rd & Reardon Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.377138, 37.730064 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Oakdale Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.379327, 37.728231 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Van Dyke Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.386794, 37.726126 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Van Dyke Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.386708, 37.726058 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingalls St & Thomas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.385721, 37.727111 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.375894, 37.731998 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.375636, 37.732032 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Fitch St" }, "geometry": { "type": "Point", "coordinates": [ -122.374048, 37.730946 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Kirkwood Ave & Dormitory Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.375293, 37.729894 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Northridge Rd & Dormitory Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.374520, 37.730267 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Fitch St" }, "geometry": { "type": "Point", "coordinates": [ -122.373791, 37.730946 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Earl St" }, "geometry": { "type": "Point", "coordinates": [ -122.372160, 37.729894 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes Ave & Earl St" }, "geometry": { "type": "Point", "coordinates": [ -122.371902, 37.729894 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Earl St & Kirkwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.373147, 37.728808 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Innes St & Donahue St" }, "geometry": { "type": "Point", "coordinates": [ -122.370229, 37.729147 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Donahue St & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.369671, 37.729283 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "SPEAR ST & COCHRANE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.368727, 37.725345 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Spear Ave & Cochrane St" }, "geometry": { "type": "Point", "coordinates": [ -122.367954, 37.725345 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "ROBINSON ST/Bldg 152" }, "geometry": { "type": "Point", "coordinates": [ -122.365594, 37.728774 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "ROBINSON ST/Bldg 152" }, "geometry": { "type": "Point", "coordinates": [ -122.365208, 37.728604 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Galvez Ave & Horne Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.365465, 37.727925 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lockwood St & Bldg 214" }, "geometry": { "type": "Point", "coordinates": [ -122.361002, 37.727382 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "655 John Muir Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497773, 37.717029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "655 John Muir Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.497687, 37.716791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "555 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.496572, 37.716553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "555 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.496529, 37.716452 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "515 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.495370, 37.716248 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "515 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.495413, 37.716078 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Lake Merced Blvd & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.485242, 37.718455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.483311, 37.717368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Arballo Dr & Garces Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.483354, 37.716350 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garces Dr & Bucareli Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.481508, 37.716010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Juan Bautisa Cir." }, "geometry": { "type": "Point", "coordinates": [ -122.478719, 37.718488 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Juan Bautista Cir & Bucareli Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.478762, 37.717979 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Juan Bautista Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.477088, 37.717708 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Juan Bautista Cir & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.477474, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "FONT BLVD & GONZALEZ DR" }, "geometry": { "type": "Point", "coordinates": [ -122.476058, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475929, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475801, 37.716791 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Garces Dr & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.478333, 37.715875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gonzalez Dr & Josepha Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.477174, 37.716010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cambon Dr & Castelo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474470, 37.717266 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cambon Dr & Castelo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.474298, 37.717470 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.473183, 37.718081 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.473011, 37.717334 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Cambon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474599, 37.715908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Cambon Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.474470, 37.716044 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Font Blvd & Cambon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.474298, 37.715908 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Junipero Serra Blvd & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.472410, 37.717776 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472839, 37.717402 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.472281, 37.716893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.471681, 37.716214 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456231, 37.718455 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.456102, 37.718183 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Thrift St" }, "geometry": { "type": "Point", "coordinates": [ -122.456102, 37.717742 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Thrift St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.717572 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Montana St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.716452 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Montana St" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.716553 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Minerva St" }, "geometry": { "type": "Point", "coordinates": [ -122.456059, 37.716010 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Plymouth Ave & Minerva St" }, "geometry": { "type": "Point", "coordinates": [ -122.456145, 37.715875 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448678, 37.718522 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448678, 37.718488 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.448635, 37.718285 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450395, 37.716316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450352, 37.716282 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450438, 37.716112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.450395, 37.716078 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Niagra Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.443314, 37.716893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442412, 37.717674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Alemany Blvd & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.442412, 37.717674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.441082, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.441211, 37.716520 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.441168, 37.716486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440825, 37.716655 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.440910, 37.716486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mission St & Amazon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440438, 37.717165 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.440953, 37.716350 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "GENEVA AVE & MISSION ST" }, "geometry": { "type": "Point", "coordinates": [ -122.440782, 37.716418 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "London St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.440224, 37.716180 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.434773, 37.716112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Naples St & France Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.433572, 37.717674 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Moscow St & France Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431169, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Russia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.430139, 37.718183 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Russia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.429881, 37.718149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428207, 37.717572 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Prague St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.428379, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "MANSELL ST & PERSIA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.425718, 37.718319 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422800, 37.717810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Persia Ave & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.422543, 37.717810 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.414474, 37.718149 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.414260, 37.718047 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Visitacion Valley Middle School" }, "geometry": { "type": "Point", "coordinates": [ -122.413960, 37.716214 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Delta St & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407479, 37.717776 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.407222, 37.717843 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Delta St & Tioga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.407737, 37.717300 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tioga Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.407651, 37.717165 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tioga Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405806, 37.716689 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Tioga Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405763, 37.716621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405248, 37.717368 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.405462, 37.717232 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "356 Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404389, 37.717063 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "367 Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.404132, 37.716893 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.402329, 37.716316 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.402201, 37.716112 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.400270, 37.716621 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.400227, 37.716486 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399840, 37.717029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "San Bruno Ave & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.399969, 37.716723 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.401257, 37.716384 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Wilde Ave & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.400999, 37.716282 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingerson Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.391000, 37.718047 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Ingerson Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.389240, 37.717029 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.388296, 37.718251 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Bill Walsh Way" }, "geometry": { "type": "Point", "coordinates": [ -122.387009, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Gilman Ave & Giants Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.387009, 37.717504 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Castro Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.435331, 37.762708 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Castro Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.435246, 37.762641 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Forest Hill Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.458634, 37.748356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Montgomery Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.402158, 37.788794 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Montgomery Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.401943, 37.788726 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Embarcadero Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.396579, 37.793033 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Embarcadero Station" }, "geometry": { "type": "Point", "coordinates": [ -122.396450, 37.793168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Embarcadero Station" }, "geometry": { "type": "Point", "coordinates": [ -122.396407, 37.793168 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Civic Center Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.412543, 37.780348 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Van Ness Station Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.419367, 37.775260 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Van Ness Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.775159 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Van Ness Station" }, "geometry": { "type": "Point", "coordinates": [ -122.419195, 37.775091 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Van Ness Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.419281, 37.775057 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Civic Center Station/Outbd" }, "geometry": { "type": "Point", "coordinates": [ -122.415032, 37.778686 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Civic Center Station/Downtn" }, "geometry": { "type": "Point", "coordinates": [ -122.414818, 37.778551 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Church Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.429323, 37.767356 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Church Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.429194, 37.767221 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Powell Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.407823, 37.784317 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "subway", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "Metro Powell Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.407737, 37.784215 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } +{ "type": "Feature", "tippecanoe": { "layer": "muni", "minzoom": 11, "maxzoom": 11 }, "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.240014, 37.820023 ] } } diff --git a/tile.cpp b/tile.cpp index 0020b46..2752634 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1372,7 +1372,7 @@ void *run_prefilter(void *v) { decode_meta(sf.m, sf.keys, sf.values, rpa->stringpool + rpa->pool_off[sf.segment], tmp_layer, tmp_feature); tmp_layer.features.push_back(tmp_feature); - layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true, sf.index, sf.seq, sf.extent); + layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true, false, sf.index, sf.seq, sf.extent); } if (fclose(rpa->prefilter_fp) != 0) { diff --git a/write_json.cpp b/write_json.cpp index 4060182..e3660ce 100644 --- a/write_json.cpp +++ b/write_json.cpp @@ -24,7 +24,7 @@ struct lonlat { } }; -void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name, unsigned long long index, long long sequence, long long extent) { +void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name, bool zoom, unsigned long long index, long long sequence, long long extent) { for (size_t f = 0; f < layer.features.size(); f++) { mvt_feature const &feat = layer.features[f]; @@ -38,7 +38,7 @@ void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, fprintf(fp, ", \"id\": %llu", feat.id); } - if (name || index != 0 || sequence != 0 || extent != 0) { + if (name || zoom || index != 0 || sequence != 0 || extent != 0) { bool need_comma = false; fprintf(fp, ", \"tippecanoe\": { "); @@ -52,6 +52,15 @@ void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, need_comma = true; } + if (zoom) { + if (need_comma) { + fprintf(fp, ", "); + } + fprintf(fp, "\"minzoom\": %u, ", z); + fprintf(fp, "\"maxzoom\": %u", z); + need_comma = true; + } + if (index != 0) { if (need_comma) { fprintf(fp, ", "); diff --git a/write_json.hpp b/write_json.hpp index 20b6a89..6b4d6ad 100644 --- a/write_json.hpp +++ b/write_json.hpp @@ -1,2 +1,2 @@ -void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name, unsigned long long index, long long sequence, long long extent); +void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, unsigned y, bool comma, bool name, bool zoom, unsigned long long index, long long sequence, long long extent); void fprintq(FILE *f, const char *s); From ae4f03d92b413f3e23762690efdcda0947788134 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 28 Mar 2017 17:15:41 -0700 Subject: [PATCH 44/52] Add missing #include --- plugin.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin.cpp b/plugin.cpp index c7ebff6..6631844 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include "main.hpp" #include "mvt.hpp" #include "mbtiles.hpp" From 263a1b9e5f0c28dcdd1b4c2da382176e3a584ad6 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 4 May 2017 10:25:53 -0700 Subject: [PATCH 45/52] Add sample filter to limit tiles to a bounding box --- README.md | 9 +++++++++ filters/limit-tiles-to-bbox | 27 +++++++++++++++++++++++++++ man/tippecanoe.1 | 13 +++++++++++++ 3 files changed, 49 insertions(+) create mode 100755 filters/limit-tiles-to-bbox diff --git a/README.md b/README.md index 93e26ea..ef5ba87 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,7 @@ resolution is obtained than by using a smaller _maxzoom_ or _detail_. The pre- and post-filter commands allow you to do optional filtering or transformation on the features of each tile as it is created. They are shell commands, run with the zoom level, X, and Y as the `$1`, `$2`, and `$3` arguments. +Future versions of Tippecanoe may add additional arguments for more context. The features are provided to the filter as a series of newline-delimited GeoJSON objects on the standard input, and `tippecanoe` expects to read another @@ -243,6 +244,14 @@ contain `index`, `sequence`, and `extent` elements, which must be passed through ``` tippecanoe -o countries.mbtiles -z5 -C 'mkdir -p tiles/$1/$2; tee tiles/$1/$2/$3.geojson' ne_10m_admin_0_countries.json +``` + + * Make a tileset of the Natural Earth countries to zoom level 5, but including only those tiles that + intersect the [bounding box of Germany](https://www.flickr.com/places/info/23424829). + (The `limit-tiles-to-bbox` script is [in the Tippecanoe source directory](filters/limit-tiles-to-bbox)].) + +``` +tippecanoe -o countries.mbtiles -z5 -C './filters/limit-tiles-to-bbox 5.8662 47.2702 15.0421 55.0581 $*' ne_10m_admin_0_countries.json ``` Environment diff --git a/filters/limit-tiles-to-bbox b/filters/limit-tiles-to-bbox new file mode 100755 index 0000000..d34e229 --- /dev/null +++ b/filters/limit-tiles-to-bbox @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +use Math::Trig; +use strict; + +# http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames +sub getTileNumber { + my ($lat, $lon, $zoom) = @_; + my $xtile = int(($lon + 180) / 360 * 2 ** $zoom); + my $ytile = int((1 - log(tan(deg2rad($lat)) + sec(deg2rad($lat))) / pi) / 2 * 2 ** $zoom); + return ($xtile, $ytile); +} + +my ($minlon, $minlat, $maxlon, $maxlat, $z, $x, $y) = @ARGV; + +my ($x1, $y1) = getTileNumber($maxlat, $minlon, $z); +my ($x2, $y2) = getTileNumber($minlat, $maxlon, $z); + +if ($x >= $x1 && $x <= $x2 && $y >= $y1 && $y <= $y2) { + while () { + print; + } +} else { + while () { + + } +} diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index 5228a87..bd02431 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -273,6 +273,7 @@ If you don't specify, it will use \fB\fC/tmp\fR\&. .PP The pre\- and post\-filter commands allow you to do optional filtering or transformation on the features of each tile as it is created. They are shell commands, run with the zoom level, X, and Y as the \fB\fC$1\fR, \fB\fC$2\fR, and \fB\fC$3\fR arguments. +Future versions of Tippecanoe may add additional arguments for more context. .PP The features are provided to the filter as a series of newline\-delimited GeoJSON objects on the standard input, and \fB\fCtippecanoe\fR expects to read another @@ -298,6 +299,18 @@ to files in a \fB\fCtiles/z/x/y.geojson\fR directory hierarchy. tippecanoe \-o countries.mbtiles \-z5 \-C 'mkdir \-p tiles/$1/$2; tee tiles/$1/$2/$3.geojson' ne_10m_admin_0_countries.json .fi .RE +.RS +.IP \(bu 2 +Make a tileset of the Natural Earth countries to zoom level 5, but including only those tiles that +intersect the bounding box of Germany \[la]https://www.flickr.com/places/info/23424829\[ra]\&. +(The \fB\fClimit\-tiles\-to\-bbox\fR script is in the Tippecanoe source directory \[la]filters/limit-tiles-to-bbox\[ra]].) +.RE +.PP +.RS +.nf +tippecanoe \-o countries.mbtiles \-z5 \-C './filters/limit\-tiles\-to\-bbox 5.8662 47.2702 15.0421 55.0581 $*' ne_10m_admin_0_countries.json +.fi +.RE .SH Environment .PP Tippecanoe ordinarily uses as many parallel threads as the operating system claims that CPUs are available. From 24bde0be03c408e349a3168a6b980de70d2ba3cd Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 4 May 2017 10:39:48 -0700 Subject: [PATCH 46/52] Fix formatting --- README.md | 6 +++--- man/tippecanoe.1 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ef5ba87..dce516f 100644 --- a/README.md +++ b/README.md @@ -217,8 +217,8 @@ resolution is obtained than by using a smaller _maxzoom_ or _detail_. ### Filters - * -C _command_ or --prefilter=_command_: Specify a shell filter command to be run at the start of assembling each tile - * -c _command_ or --postfilter=_command_: Specify a shell filter command to be run at the end of assembling each tile + * `-C` _command_ or `--prefilter=`_command_: Specify a shell filter command to be run at the start of assembling each tile + * `-c` _command_ or `--postfilter=`_command_: Specify a shell filter command to be run at the end of assembling each tile The pre- and post-filter commands allow you to do optional filtering or transformation on the features of each tile as it is created. They are shell commands, run with the zoom level, X, and Y as the `$1`, `$2`, and `$3` arguments. @@ -248,7 +248,7 @@ tippecanoe -o countries.mbtiles -z5 -C 'mkdir -p tiles/$1/$2; tee tiles/$1/$2/$3 * Make a tileset of the Natural Earth countries to zoom level 5, but including only those tiles that intersect the [bounding box of Germany](https://www.flickr.com/places/info/23424829). - (The `limit-tiles-to-bbox` script is [in the Tippecanoe source directory](filters/limit-tiles-to-bbox)].) + (The `limit-tiles-to-bbox` script is [in the Tippecanoe source directory](filters/limit-tiles-to-bbox).) ``` tippecanoe -o countries.mbtiles -z5 -C './filters/limit-tiles-to-bbox 5.8662 47.2702 15.0421 55.0581 $*' ne_10m_admin_0_countries.json diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index bd02431..3383097 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -266,9 +266,9 @@ If you don't specify, it will use \fB\fC/tmp\fR\&. .SS Filters .RS .IP \(bu 2 -\-C \fIcommand\fP or \-\-prefilter=\fIcommand\fP: Specify a shell filter command to be run at the start of assembling each tile +\fB\fC\-C\fR \fIcommand\fP or \fB\fC\-\-prefilter=\fR\fIcommand\fP: Specify a shell filter command to be run at the start of assembling each tile .IP \(bu 2 -\-c \fIcommand\fP or \-\-postfilter=\fIcommand\fP: Specify a shell filter command to be run at the end of assembling each tile +\fB\fC\-c\fR \fIcommand\fP or \fB\fC\-\-postfilter=\fR\fIcommand\fP: Specify a shell filter command to be run at the end of assembling each tile .RE .PP The pre\- and post\-filter commands allow you to do optional filtering or transformation on the features of each tile @@ -303,7 +303,7 @@ tippecanoe \-o countries.mbtiles \-z5 \-C 'mkdir \-p tiles/$1/$2; tee tiles/$1/$ .IP \(bu 2 Make a tileset of the Natural Earth countries to zoom level 5, but including only those tiles that intersect the bounding box of Germany \[la]https://www.flickr.com/places/info/23424829\[ra]\&. -(The \fB\fClimit\-tiles\-to\-bbox\fR script is in the Tippecanoe source directory \[la]filters/limit-tiles-to-bbox\[ra]].) +(The \fB\fClimit\-tiles\-to\-bbox\fR script is in the Tippecanoe source directory \[la]filters/limit-tiles-to-bbox\[ra]\&.) .RE .PP .RS From 6a505cdba7b36ddacf9fad7484b06556a25f2c72 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 7 Jul 2017 17:37:27 -0700 Subject: [PATCH 47/52] Add an example of a zoom level filter --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index ada2d1d..f86b5ba 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,12 @@ tippecanoe -o countries.mbtiles -z5 -C 'mkdir -p tiles/$1/$2; tee tiles/$1/$2/$3 ``` tippecanoe -o countries.mbtiles -z5 -C './filters/limit-tiles-to-bbox 5.8662 47.2702 15.0421 55.0581 $*' ne_10m_admin_0_countries.json +``` + + * Make a tileset of TIGER roads in Tippecanoe County, leaving out all but primary and secondary roads (as [classified by TIGER](https://www.census.gov/geo/reference/mtfcc.html)) below zoom level 11. + +``` +tippecanoe -o roads.mbtiles -c 'if [ $1 -lt 11 ]; then grep "\"MTFCC\": \"S1[12]00\""; else cat; fi' tl_2016_18157_roads.json ``` Environment From eebc8f763918c91a9e437e1c9208e9b98e4afa29 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 8 Aug 2017 11:58:51 -0700 Subject: [PATCH 48/52] Remember to close polygons before sending them to the prefilter --- plugin.cpp | 2 +- tile.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugin.cpp b/plugin.cpp index 7175d70..9e6bf83 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -52,7 +52,7 @@ void *run_writer(void *a) { } for (size_t i = 0; i < wa->layers->size(); i++) { - layer_to_geojson(fp, (*(wa->layers))[i], wa->z, wa->x, wa->y, false, true, false, 0, 0, 0, false); + layer_to_geojson(fp, (*(wa->layers))[i], wa->z, wa->x, wa->y, false, true, false, 0, 0, 0, true); } if (fclose(fp) != 0) { diff --git a/tile.cpp b/tile.cpp index 89b1db6..5c81356 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1355,6 +1355,10 @@ void *run_prefilter(void *v) { tmp_layer.extent = 1LL << 32; tmp_layer.name = (*(rpa->layer_unmaps))[sf.segment][sf.layer]; + if (sf.t == VT_POLYGON) { + sf.geometry = close_poly(sf.geometry); + } + mvt_feature tmp_feature; tmp_feature.type = sf.t; tmp_feature.geometry = to_feature(sf.geometry); @@ -1375,7 +1379,7 @@ void *run_prefilter(void *v) { decode_meta(sf.m, sf.keys, sf.values, rpa->stringpool + rpa->pool_off[sf.segment], tmp_layer, tmp_feature); tmp_layer.features.push_back(tmp_feature); - layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true, false, sf.index, sf.seq, sf.extent, false); + layer_to_geojson(rpa->prefilter_fp, tmp_layer, 0, 0, 0, false, true, false, sf.index, sf.seq, sf.extent, true); } if (fclose(rpa->prefilter_fp) != 0) { From 635429cd87bf7101b4e51222257cec51625ecd5b Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 8 Aug 2017 13:38:18 -0700 Subject: [PATCH 49/52] Fix dangling pointer. Defer tilestats generation until tiling if filtering. --- geojson.cpp | 18 +- geojson.hpp | 3 +- main.cpp | 17 +- plugin.cpp | 12 +- plugin.hpp | 2 +- tests/filter/rename | 3 + .../-yNAME_-z4_-C.%tests%filter%rename.json | 1256 ++++++++++++ .../-yNAME_-z5_-c.%tests%filter%rename.json | 1772 +++++++++++++++++ tile.cpp | 2 +- write_json.cpp | 4 +- 10 files changed, 3065 insertions(+), 24 deletions(-) create mode 100755 tests/filter/rename create mode 100644 tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json create mode 100644 tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json diff --git a/geojson.cpp b/geojson.cpp index 77724fb..b504335 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -95,7 +95,7 @@ static long long parse_geometry1(int t, json_object *j, long long *bbox, drawvec return geom.size(); } -int serialize_geometry(json_object *geometry, json_object *properties, json_object *id, const char *reading, int line, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set *exclude, std::set *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, const char *fname, int basezoom, int layer, double droprate, long long *file_bbox, json_object *tippecanoe, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, json_object *feature, std::map *layermap, std::string layername, bool uses_gamma, std::map const *attribute_types, double *dist_sum, size_t *dist_count, bool want_dist) { +int serialize_geometry(json_object *geometry, json_object *properties, json_object *id, const char *reading, int line, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set *exclude, std::set *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, const char *fname, int basezoom, int layer, double droprate, long long *file_bbox, json_object *tippecanoe, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, json_object *feature, std::map *layermap, std::string layername, bool uses_gamma, std::map const *attribute_types, double *dist_sum, size_t *dist_count, bool want_dist, bool filters) { json_object *geometry_type = json_hash_get(geometry, "type"); if (geometry_type == NULL) { static int warned = 0; @@ -271,8 +271,10 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje attrib.type = metatype[m - 1]; attrib.string = metaval[m - 1]; - auto fk = layermap->find(layername); - add_to_file_keys(fk->second.file_keys, metakey[m - 1], attrib); + if (!filters) { + auto fk = layermap->find(layername); + add_to_file_keys(fk->second.file_keys, metakey[m - 1], attrib); + } } } } @@ -466,7 +468,7 @@ void check_crs(json_object *j, const char *reading) { } } -void parse_json(json_pull *jp, const char *reading, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set *exclude, std::set *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, char *fname, int basezoom, int layer, double droprate, long long *file_bbox, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, std::map *layermap, std::string layername, bool uses_gamma, std::map const *attribute_types, double *dist_sum, size_t *dist_count, bool want_dist) { +void parse_json(json_pull *jp, const char *reading, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set *exclude, std::set *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, char *fname, int basezoom, int layer, double droprate, long long *file_bbox, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, std::map *layermap, std::string layername, bool uses_gamma, std::map const *attribute_types, double *dist_sum, size_t *dist_count, bool want_dist, bool filters) { long long found_hashes = 0; long long found_features = 0; long long found_geometries = 0; @@ -534,7 +536,7 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se } found_geometries++; - serialize_geometry(j, NULL, NULL, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, NULL, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma, attribute_types, dist_sum, dist_count, want_dist); + serialize_geometry(j, NULL, NULL, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, NULL, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma, attribute_types, dist_sum, dist_count, want_dist, filters); json_free(j); continue; } @@ -577,10 +579,10 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se if (geometries != NULL) { size_t g; for (g = 0; g < geometries->length; g++) { - serialize_geometry(geometries->array[g], properties, id, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, tippecanoe, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma, attribute_types, dist_sum, dist_count, want_dist); + serialize_geometry(geometries->array[g], properties, id, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, tippecanoe, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma, attribute_types, dist_sum, dist_count, want_dist, filters); } } else { - serialize_geometry(geometry, properties, id, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, tippecanoe, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma, attribute_types, dist_sum, dist_count, want_dist); + serialize_geometry(geometry, properties, id, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, tippecanoe, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma, attribute_types, dist_sum, dist_count, want_dist, filters); } json_free(j); @@ -592,7 +594,7 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se void *run_parse_json(void *v) { struct parse_json_args *pja = (struct parse_json_args *) v; - parse_json(pja->jp, pja->reading, pja->layer_seq, pja->progress_seq, pja->metapos, pja->geompos, pja->indexpos, pja->exclude, pja->include, pja->exclude_all, pja->metafile, pja->geomfile, pja->indexfile, pja->poolfile, pja->treefile, pja->fname, pja->basezoom, pja->layer, pja->droprate, pja->file_bbox, pja->segment, pja->initialized, pja->initial_x, pja->initial_y, pja->readers, pja->maxzoom, pja->layermap, *pja->layername, pja->uses_gamma, pja->attribute_types, pja->dist_sum, pja->dist_count, pja->want_dist); + parse_json(pja->jp, pja->reading, pja->layer_seq, pja->progress_seq, pja->metapos, pja->geompos, pja->indexpos, pja->exclude, pja->include, pja->exclude_all, pja->metafile, pja->geomfile, pja->indexfile, pja->poolfile, pja->treefile, pja->fname, pja->basezoom, pja->layer, pja->droprate, pja->file_bbox, pja->segment, pja->initialized, pja->initial_x, pja->initial_y, pja->readers, pja->maxzoom, pja->layermap, *pja->layername, pja->uses_gamma, pja->attribute_types, pja->dist_sum, pja->dist_count, pja->want_dist, pja->filters); return NULL; } diff --git a/geojson.hpp b/geojson.hpp index 288aaef..7107b1d 100644 --- a/geojson.hpp +++ b/geojson.hpp @@ -42,12 +42,13 @@ struct parse_json_args { double *dist_sum; size_t *dist_count; bool want_dist; + bool filters; }; struct json_pull *json_begin_map(char *map, long long len); void json_end_map(struct json_pull *jp); -void parse_json(json_pull *jp, const char *reading, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set *exclude, std::set *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, char *fname, int basezoom, int layer, double droprate, long long *file_bbox, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, std::map *layermap, std::string layername, bool uses_gamma, std::map const *attribute_types, double *dist_sum, size_t *dist_count, bool want_dist); +void parse_json(json_pull *jp, const char *reading, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set *exclude, std::set *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, char *fname, int basezoom, int layer, double droprate, long long *file_bbox, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, std::map *layermap, std::string layername, bool uses_gamma, std::map const *attribute_types, double *dist_sum, size_t *dist_count, bool want_dist, bool filters); void *run_parse_json(void *v); #endif diff --git a/main.cpp b/main.cpp index 3aecd8a..93caade 100644 --- a/main.cpp +++ b/main.cpp @@ -373,7 +373,7 @@ void *run_sort(void *v) { return NULL; } -void do_read_parallel(char *map, long long len, long long initial_offset, const char *reading, struct reader *reader, volatile long long *progress_seq, std::set *exclude, std::set *include, int exclude_all, char *fname, int basezoom, int source, int nlayers, std::vector > *layermaps, double droprate, int *initialized, unsigned *initial_x, unsigned *initial_y, int maxzoom, std::string layername, bool uses_gamma, std::map const *attribute_types, int separator, double *dist_sum, size_t *dist_count, bool want_dist) { +void do_read_parallel(char *map, long long len, long long initial_offset, const char *reading, struct reader *reader, volatile long long *progress_seq, std::set *exclude, std::set *include, int exclude_all, char *fname, int basezoom, int source, int nlayers, std::vector > *layermaps, double droprate, int *initialized, unsigned *initial_x, unsigned *initial_y, int maxzoom, std::string layername, bool uses_gamma, std::map const *attribute_types, int separator, double *dist_sum, size_t *dist_count, bool want_dist, bool filters) { long long segs[CPUS + 1]; segs[0] = 0; segs[CPUS] = len; @@ -439,6 +439,7 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const pja[i].dist_sum = &(dist_sums[i]); pja[i].dist_count = &(dist_counts[i]); pja[i].want_dist = want_dist; + pja[i].filters = filters; if (pthread_create(&pthreads[i], NULL, run_parse_json, &pja[i]) != 0) { perror("pthread_create"); @@ -490,6 +491,7 @@ struct read_parallel_arg { double *dist_sum; size_t *dist_count; bool want_dist; + bool filters; }; void *run_read_parallel(void *v) { @@ -511,7 +513,7 @@ void *run_read_parallel(void *v) { } madvise(map, rpa->len, MADV_RANDOM); // sequential, but from several pointers at once - do_read_parallel(map, rpa->len, rpa->offset, rpa->reading, rpa->reader, rpa->progress_seq, rpa->exclude, rpa->include, rpa->exclude_all, rpa->fname, rpa->basezoom, rpa->source, rpa->nlayers, rpa->layermaps, rpa->droprate, rpa->initialized, rpa->initial_x, rpa->initial_y, rpa->maxzoom, rpa->layername, rpa->uses_gamma, rpa->attribute_types, rpa->separator, rpa->dist_sum, rpa->dist_count, rpa->want_dist); + do_read_parallel(map, rpa->len, rpa->offset, rpa->reading, rpa->reader, rpa->progress_seq, rpa->exclude, rpa->include, rpa->exclude_all, rpa->fname, rpa->basezoom, rpa->source, rpa->nlayers, rpa->layermaps, rpa->droprate, rpa->initialized, rpa->initial_x, rpa->initial_y, rpa->maxzoom, rpa->layername, rpa->uses_gamma, rpa->attribute_types, rpa->separator, rpa->dist_sum, rpa->dist_count, rpa->want_dist, rpa->filters); madvise(map, rpa->len, MADV_DONTNEED); if (munmap(map, rpa->len) != 0) { @@ -528,7 +530,7 @@ void *run_read_parallel(void *v) { return NULL; } -void start_parsing(int fd, FILE *fp, long long offset, long long len, volatile int *is_parsing, pthread_t *parallel_parser, bool &parser_created, const char *reading, struct reader *reader, volatile long long *progress_seq, std::set *exclude, std::set *include, int exclude_all, char *fname, int basezoom, int source, int nlayers, std::vector > &layermaps, double droprate, int *initialized, unsigned *initial_x, unsigned *initial_y, int maxzoom, std::string layername, bool uses_gamma, std::map const *attribute_types, int separator, double *dist_sum, size_t *dist_count, bool want_dist) { +void start_parsing(int fd, FILE *fp, long long offset, long long len, volatile int *is_parsing, pthread_t *parallel_parser, bool &parser_created, const char *reading, struct reader *reader, volatile long long *progress_seq, std::set *exclude, std::set *include, int exclude_all, char *fname, int basezoom, int source, int nlayers, std::vector > &layermaps, double droprate, int *initialized, unsigned *initial_x, unsigned *initial_y, int maxzoom, std::string layername, bool uses_gamma, std::map const *attribute_types, int separator, double *dist_sum, size_t *dist_count, bool want_dist, bool filters) { // This has to kick off an intermediate thread to start the parser threads, // so the main thread can get back to reading the next input stage while // the intermediate thread waits for the completion of the parser threads. @@ -570,6 +572,7 @@ void start_parsing(int fd, FILE *fp, long long offset, long long len, volatile i rpa->dist_sum = dist_sum; rpa->dist_count = dist_count; rpa->want_dist = want_dist; + rpa->filters = filters; if (pthread_create(parallel_parser, NULL, run_read_parallel, rpa) != 0) { perror("pthread_create"); @@ -1257,7 +1260,7 @@ int read_input(std::vector &sources, char *fname, int maxzoom, int minzo } if (map != NULL && map != MAP_FAILED && read_parallel_this) { - do_read_parallel(map, st.st_size - off, overall_offset, reading.c_str(), reader, &progress_seq, exclude, include, exclude_all, fname, basezoom, layer, nlayers, &layermaps, droprate, initialized, initial_x, initial_y, maxzoom, sources[layer].layer, uses_gamma, attribute_types, read_parallel_this, &dist_sum, &dist_count, guess_maxzoom); + do_read_parallel(map, st.st_size - off, overall_offset, reading.c_str(), reader, &progress_seq, exclude, include, exclude_all, fname, basezoom, layer, nlayers, &layermaps, droprate, initialized, initial_x, initial_y, maxzoom, sources[layer].layer, uses_gamma, attribute_types, read_parallel_this, &dist_sum, &dist_count, guess_maxzoom, prefilter != NULL || postfilter != NULL); overall_offset += st.st_size - off; checkdisk(reader, CPUS); @@ -1333,7 +1336,7 @@ int read_input(std::vector &sources, char *fname, int maxzoom, int minzo } fflush(readfp); - start_parsing(readfd, readfp, initial_offset, ahead, &is_parsing, ¶llel_parser, parser_created, reading.c_str(), reader, &progress_seq, exclude, include, exclude_all, fname, basezoom, layer, nlayers, layermaps, droprate, initialized, initial_x, initial_y, maxzoom, sources[layer].layer, gamma != 0, attribute_types, read_parallel_this, &dist_sum, &dist_count, guess_maxzoom); + start_parsing(readfd, readfp, initial_offset, ahead, &is_parsing, ¶llel_parser, parser_created, reading.c_str(), reader, &progress_seq, exclude, include, exclude_all, fname, basezoom, layer, nlayers, layermaps, droprate, initialized, initial_x, initial_y, maxzoom, sources[layer].layer, gamma != 0, attribute_types, read_parallel_this, &dist_sum, &dist_count, guess_maxzoom, prefilter != NULL || postfilter != NULL); initial_offset += ahead; overall_offset += ahead; @@ -1370,7 +1373,7 @@ int read_input(std::vector &sources, char *fname, int maxzoom, int minzo fflush(readfp); if (ahead > 0) { - start_parsing(readfd, readfp, initial_offset, ahead, &is_parsing, ¶llel_parser, parser_created, reading.c_str(), reader, &progress_seq, exclude, include, exclude_all, fname, basezoom, layer, nlayers, layermaps, droprate, initialized, initial_x, initial_y, maxzoom, sources[layer].layer, gamma != 0, attribute_types, read_parallel_this, &dist_sum, &dist_count, guess_maxzoom); + start_parsing(readfd, readfp, initial_offset, ahead, &is_parsing, ¶llel_parser, parser_created, reading.c_str(), reader, &progress_seq, exclude, include, exclude_all, fname, basezoom, layer, nlayers, layermaps, droprate, initialized, initial_x, initial_y, maxzoom, sources[layer].layer, gamma != 0, attribute_types, read_parallel_this, &dist_sum, &dist_count, guess_maxzoom, prefilter != NULL || postfilter != NULL); if (parser_created) { if (pthread_join(parallel_parser, NULL) != 0) { @@ -1387,7 +1390,7 @@ int read_input(std::vector &sources, char *fname, int maxzoom, int minzo long long layer_seq = overall_offset; json_pull *jp = json_begin_file(fp); - parse_json(jp, reading.c_str(), &layer_seq, &progress_seq, &reader[0].metapos, &reader[0].geompos, &reader[0].indexpos, exclude, include, exclude_all, reader[0].metafile, reader[0].geomfile, reader[0].indexfile, reader[0].poolfile, reader[0].treefile, fname, basezoom, layer, droprate, reader[0].file_bbox, 0, &initialized[0], &initial_x[0], &initial_y[0], reader, maxzoom, &layermaps[0], sources[layer].layer, uses_gamma, attribute_types, &dist_sum, &dist_count, guess_maxzoom); + parse_json(jp, reading.c_str(), &layer_seq, &progress_seq, &reader[0].metapos, &reader[0].geompos, &reader[0].indexpos, exclude, include, exclude_all, reader[0].metafile, reader[0].geomfile, reader[0].indexfile, reader[0].poolfile, reader[0].treefile, fname, basezoom, layer, droprate, reader[0].file_bbox, 0, &initialized[0], &initial_x[0], &initial_y[0], reader, maxzoom, &layermaps[0], sources[layer].layer, uses_gamma, attribute_types, &dist_sum, &dist_count, guess_maxzoom, prefilter != NULL || postfilter != NULL); json_end(jp); overall_offset = layer_seq; checkdisk(reader, CPUS); diff --git a/plugin.cpp b/plugin.cpp index 9e6bf83..2c33b68 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -82,6 +82,7 @@ static std::vector to_feature(drawvec &geom) { return out; } +// Reads from the postfilter std::vector parse_layers(int fd, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps, int extent) { std::map ret; @@ -277,7 +278,8 @@ std::vector parse_layers(int fd, int z, unsigned x, unsigned y, std:: return final; } -serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps) { +// Reads from the prefilter +serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps, bool postfilter) { serial_feature sf; while (1) { @@ -470,7 +472,9 @@ serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std:: attrib.string = v.s; attrib.type = v.type; - add_to_file_keys(fk->second.file_keys, std::string(properties->keys[i]->string), attrib); + if (!postfilter) { + add_to_file_keys(fk->second.file_keys, std::string(properties->keys[i]->string), attrib); + } } } @@ -597,7 +601,7 @@ std::vector filter_layers(const char *filter, std::vector exit(EXIT_FAILURE); } - layers = parse_layers(read_from, z, x, y, layermaps, tiling_seg, layer_unmaps, extent); + std::vector nlayers = parse_layers(read_from, z, x, y, layermaps, tiling_seg, layer_unmaps, extent); while (1) { int stat_loc; @@ -616,5 +620,5 @@ std::vector filter_layers(const char *filter, std::vector exit(EXIT_FAILURE); } - return layers; + return nlayers; } diff --git a/plugin.hpp b/plugin.hpp index ec87a31..595e7f1 100644 --- a/plugin.hpp +++ b/plugin.hpp @@ -1,3 +1,3 @@ std::vector filter_layers(const char *filter, std::vector &layer, unsigned z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps, int extent); void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y); -serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps); +serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector> *layermaps, size_t tiling_seg, std::vector> *layer_unmaps, bool filters); diff --git a/tests/filter/rename b/tests/filter/rename new file mode 100755 index 0000000..2f59715 --- /dev/null +++ b/tests/filter/rename @@ -0,0 +1,3 @@ +#!/bin/sh + +sed 's/"layer": "[^"]*"/"layer": "renamed"/' diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json new file mode 100644 index 0000000..bfb6639 --- /dev/null +++ b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json @@ -0,0 +1,1256 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-175.220565,-41.299974,179.216647,64.150024", +"center": "11.250000,48.378236,4", +"description": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {} }, { \"id\": \"renamed\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"in\",\"count\": 243,\"geometry\": \"Point\",\"attributeCount\": 0,\"attributes\": []},{\"layer\": \"renamed\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"maxzoom": "4", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.392578, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.470703, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.298828, 7.188101 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.873047, -9.362353 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.253906, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.780541 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.916992, -9.405710 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.968936 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.254883, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.342773, 7.144499 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.231934, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.656250, -25.284438 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.763901 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.286621, 12.168226 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.855469, 34.034453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.249512, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.771973, -13.966054 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.546387, 55.689972 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.797363, 41.343825 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.081543, 44.449468 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.161621, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.886177 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.276855, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.519531, 15.601875 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.579084 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.541504, 12.983148 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.169922, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.446622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.364746, 7.122696 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.996338, 39.749434 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.350342, 29.831114 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.159180, -16.488765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.675049, -33.440609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.636963, -23.553917 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.233154, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.479609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.007080, 14.008696 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.622803, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.523438, 10.660608 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.917923 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.844482, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.600342, 13.464422 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.153742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.830795 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.424072, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.804199, -1.274309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.905762, -24.637031 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.476807, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.124268, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.172607, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.528519 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.489983 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.525635, 9.091249 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.875216 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.059586 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.287842, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.568251 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.262695, 52.086257 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.840636 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.459717, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.683779 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.423340, 42.000325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.553711, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.609278 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.491455, -20.159098 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.966309, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.244156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.189941, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.502407 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.552490, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.575195, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.108398, 19.777042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.908447, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.921097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.436085 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.907959, 47.923705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.124971 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.692995 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.111795 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.743774, -13.838080 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.185425, 33.993473 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.278557 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.532837, 14.626109 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.676187 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.445193 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.474399 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.369995, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.014160, 38.903858 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.354736, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.425659, 43.703622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.403320, -34.597042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.264282, -19.036156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.922363, -15.776395 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.055437 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.106230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.655210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.840081 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.979614, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.656418 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.805054, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.326175 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.656982, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.337433 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.151347 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.078247, -22.568366 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.429565, -33.916013 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.309448, -4.324501 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.119894 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.902400 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.910889, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.124878, 49.614269 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.135864, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.137425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.526248 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.994873, 52.254709 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.996094, 45.801999 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.906365 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.077759, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.468045 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.813843, 41.331451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.670320 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.919237 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.642024 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.165299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.129761, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.195679, -26.465656 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.355469, -3.370856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.811456 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.178785 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.236694, -11.700652 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.574707, 4.833733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.930054, 15.337167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.693848, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.054831 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.502319, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.293335, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.344296 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.559204, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.724731, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.510376, -18.911483 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.971802, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.647017 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.239229 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.289405 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.234758 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.952861 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.854126, 6.937333 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.195435, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.497332 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.810747 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.167862 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.788765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.595825, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.694946, 3.173425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.675715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.975952, 14.610163 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.023451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.570705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.189331, -9.459899 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.034494 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.759521, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.944458, -9.432806 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.130191 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.106344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } } +] } +] } +] } diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json b/tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json new file mode 100644 index 0000000..92d0bbe --- /dev/null +++ b/tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json @@ -0,0 +1,1772 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-175.220565,-41.299974,179.216647,64.150024", +"center": "16.875000,44.951199,5", +"description": "tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {} }, { \"id\": \"renamed\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"in\",\"count\": 243,\"geometry\": \"Point\",\"attributeCount\": 0,\"attributes\": []},{\"layer\": \"renamed\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"maxzoom": "5", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.460938, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.873047, 4.915833 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.253906, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.554688, 14.944785 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.915833 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.231934, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.355957, 18.562947 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.532715, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.212891, -25.700938 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.146973, 33.706063 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.893941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.344971, 18.552532 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.172607, 6.806444 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.917923 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.153742 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.040283, 12.125264 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.173808 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.456543, 44.824708 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.609278 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.157959, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.842285, 21.043491 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.907959, 47.923705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.208984, -8.515836 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.278557 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.264282, -19.036156 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.337433 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.151347 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.078247, -22.568366 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.119894 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.919237 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.642024 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.971802, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.239229 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.167862 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.023451 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.189331, -9.459899 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.759521, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.944458, -9.432806 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.138307 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.741028, -13.840747 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 5, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.417908, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.182678, 33.993473 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 5, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.276765 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 6, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.988098, 39.743098 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 7, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.530090, 14.623451 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 7, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.673711 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.342102, 29.823966 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.086609, 9.939093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.253613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.206238, 13.712704 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.272888, 12.157486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.367249, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 8, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.422913, 43.703622 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.447485 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.211486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.601065 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.211486 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.769714, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.544721 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.903259, 18.474399 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.351990, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.011414, 38.901721 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.984680, 40.753499 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 9, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.704041, 45.419660 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.400574, -34.599302 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.261536, -19.038752 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.920471, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.652510 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.803717 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 10, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.718201, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.850281, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.388855, 15.302730 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.213074, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.052751 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.103555 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.628723, -23.556434 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.919617, -15.779039 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 11, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.837349 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 12, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.228455, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 13, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.518982, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.476501, 14.719104 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.976868, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.592102, 13.456408 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.150149 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.802307, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.276184, 6.820080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.323440 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.553114 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.653738 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.374880 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.654236, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.148865, 38.726233 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.603182 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.403039 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.335793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.503614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.553114 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.731873, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.780823, 3.751893 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.456482, 0.387265 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.112122, 13.520508 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.045959, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.870135 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.138611, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.918379 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.135556 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.741336 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.503614 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.081194 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.913635, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.331360, 50.835432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.127625, 49.612490 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.870135 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 16, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.747375, 59.919237 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.432312, -33.916013 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.080994, -22.568366 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.256029 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.312195, -4.327240 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.230286, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.117208 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.900175 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.056079 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.998840, 45.800084 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.439270, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.904321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.080505, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.382874, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.466019 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.464783, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.816589, 41.329389 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.668300 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.431580, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.560120, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.524577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.997620, 52.253027 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 17, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.560120, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 18 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.644521 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.167764 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.226624, -25.703413 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.132507, -26.315575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.198425, -26.465656 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.413967 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.814071 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.055847, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.358215, -3.373598 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.577454, 4.830997 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.321348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.247864, 30.052454 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.006653, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.985340 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.167073 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.095276, 44.435741 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.006653, 41.108330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.315247, 54.684947 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.561951, 53.902720 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 18, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.930725, 60.178404 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.727478, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.239441, -11.703341 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.812439, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.181516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.696594, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.063416, 9.560126 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.932800, 15.334518 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.146057, 11.595741 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.505066, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.296082, 33.502469 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.185168 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.342002 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.788513, 41.728280 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 19, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.513123, -18.914082 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.974548, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.644521 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.236766 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.286921 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.232274 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.858704, 40.398856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 20, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.788513, 41.728280 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.499695, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.592834, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 21, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.950695 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.168376 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.853088, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.198181, 28.601403 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.771667, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.703778 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 22, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.856873, 6.934606 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.901887 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.720005 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.321838, 22.497332 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 23, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.808765 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 24, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.116638, 19.769288 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.786135 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 24, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.170593 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.697693, 3.170683 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.598572, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.035801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.552689 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.673353 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 25, "y": 11 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.930725, 4.885731 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 14 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.978699, 14.607505 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 13 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.219848 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.566467, 25.035839 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 26, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.932907 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 27, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.752258, 39.023451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.568528 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 28, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.972839, -37.816293 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 28, "y": 12 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.752896 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.032245 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.748840, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.192078, -9.462608 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.947205, -9.435515 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.918247 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 20 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 19 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.762268, -36.846659 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 17 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.132801 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 16 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 15 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.378479, 7.103618 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.015442, 1.340210 ] } } +] } +] } +] } diff --git a/tile.cpp b/tile.cpp index 5c81356..03a6858 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1532,7 +1532,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s if (prefilter == NULL) { sf = next_feature(geoms, geompos_in, metabase, meta_off, z, tx, ty, initial_x, initial_y, &original_features, &unclipped_features, nextzoom, maxzoom, minzoom, max_zoom_increment, pass, passes, along, alongminus, buffer, within, &first_time, line_detail, geomfile, geompos, &oprogress, todo, fname, child_shards); } else { - sf = parse_feature(prefilter_jp, z, tx, ty, layermaps, tiling_seg, layer_unmaps); + sf = parse_feature(prefilter_jp, z, tx, ty, layermaps, tiling_seg, layer_unmaps, postfilter != NULL); } if (sf.t < 0) { diff --git a/write_json.cpp b/write_json.cpp index 0c03d2b..0c4d8b5 100644 --- a/write_json.cpp +++ b/write_json.cpp @@ -96,11 +96,11 @@ void layer_to_geojson(FILE *fp, mvt_layer const &layer, unsigned z, unsigned x, } if (feat.tags[t] >= layer.keys.size()) { - fprintf(stderr, "Error: out of bounds feature key\n"); + fprintf(stderr, "Error: out of bounds feature key (%u in %zu)\n", feat.tags[t], layer.keys.size()); exit(EXIT_FAILURE); } if (feat.tags[t + 1] >= layer.values.size()) { - fprintf(stderr, "Error: out of bounds feature value\n"); + fprintf(stderr, "Error: out of bounds feature value (%u in %zu)\n", feat.tags[t + 1], layer.values.size()); exit(EXIT_FAILURE); } From 200f6777ba62cac39fd90ac0ea6f5c5fce445f40 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 8 Aug 2017 16:32:48 -0700 Subject: [PATCH 50/52] Fix layer list in tilestats when filtering and tile-joining. (The feature count when filtering will be the sum of features across tiles instead of filters from the original input, since the filter reader doesn't know what the original input feature set was.) --- CHANGELOG.md | 4 + geojson.cpp | 54 +- mbtiles.cpp | 4 + plugin.cpp | 26 + tests/join-population/joined-i.mbtiles.json | 2 +- tests/join-population/joined.mbtiles.json | 2 +- .../just-macarthur.mbtiles.json | 2 +- .../merged-folder.mbtiles.json | 2 +- tests/join-population/merged.mbtiles.json | 2 +- .../join-population/no-macarthur.mbtiles.json | 2 +- .../raw-merged-folder-compare/metadata.json | 2 +- tests/join-population/windows.mbtiles.json | 2 +- .../out/-yNAME_-Ccat_-z5.json | 2 +- .../-yNAME_-z4_-C.%tests%filter%remove.json | 1256 +++++++++++++++++ .../-yNAME_-z4_-C.%tests%filter%rename.json | 2 +- ...ilter%rename_-c.%tests%filter%rename2.json | 1256 +++++++++++++++++ .../-yNAME_-z5_-c.%tests%filter%rename.json | 2 +- .../out/-yNAME_-z5_-ccat.json | 2 +- .../-z4_-yNAME_-c.%tests%filter%remove.json | 1256 +++++++++++++++++ tile-join.cpp | 8 + version.hpp | 2 +- 21 files changed, 3851 insertions(+), 39 deletions(-) create mode 100644 tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%remove.json create mode 100644 tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename_-c.%tests%filter%rename2.json create mode 100644 tests/ne_110m_populated_places/out/-z4_-yNAME_-c.%tests%filter%remove.json diff --git a/CHANGELOG.md b/CHANGELOG.md index e5e72aa..1beb269 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.22.0 + +* Add options to filter each tile's contents through a shell pipeline + ## 1.21.0 * Generate layer, feature, and attribute statistics as part of tileset metadata diff --git a/geojson.cpp b/geojson.cpp index b504335..1328cef 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -200,36 +200,38 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje long long bbox[] = {LLONG_MAX, LLONG_MAX, LLONG_MIN, LLONG_MIN}; - if (tippecanoe_layername.size() != 0) { - if (layermap->count(tippecanoe_layername) == 0) { - layermap->insert(std::pair(tippecanoe_layername, layermap_entry(layermap->size()))); - } + if (!filters) { + if (tippecanoe_layername.size() != 0) { + if (layermap->count(tippecanoe_layername) == 0) { + layermap->insert(std::pair(tippecanoe_layername, layermap_entry(layermap->size()))); + } - auto ai = layermap->find(tippecanoe_layername); - if (ai != layermap->end()) { - layer = ai->second.id; - layername = tippecanoe_layername; + auto ai = layermap->find(tippecanoe_layername); + if (ai != layermap->end()) { + layer = ai->second.id; + layername = tippecanoe_layername; - if (mb_geometry[t] == VT_POINT) { - ai->second.points++; - } else if (mb_geometry[t] == VT_LINE) { - ai->second.lines++; - } else if (mb_geometry[t] == VT_POLYGON) { - ai->second.polygons++; + if (mb_geometry[t] == VT_POINT) { + ai->second.points++; + } else if (mb_geometry[t] == VT_LINE) { + ai->second.lines++; + } else if (mb_geometry[t] == VT_POLYGON) { + ai->second.polygons++; + } + } else { + fprintf(stderr, "Internal error: can't find layer name %s\n", tippecanoe_layername.c_str()); + exit(EXIT_FAILURE); } } else { - fprintf(stderr, "Internal error: can't find layer name %s\n", tippecanoe_layername.c_str()); - exit(EXIT_FAILURE); - } - } else { - auto fk = layermap->find(layername); - if (fk != layermap->end()) { - if (mb_geometry[t] == VT_POINT) { - fk->second.points++; - } else if (mb_geometry[t] == VT_LINE) { - fk->second.lines++; - } else if (mb_geometry[t] == VT_POLYGON) { - fk->second.polygons++; + auto fk = layermap->find(layername); + if (fk != layermap->end()) { + if (mb_geometry[t] == VT_POINT) { + fk->second.points++; + } else if (mb_geometry[t] == VT_LINE) { + fk->second.lines++; + } else if (mb_geometry[t] == VT_POLYGON) { + fk->second.polygons++; + } } } } diff --git a/mbtiles.cpp b/mbtiles.cpp index ca547e6..ddab94a 100644 --- a/mbtiles.cpp +++ b/mbtiles.cpp @@ -531,6 +531,10 @@ std::map merge_layermaps(std::vectorsecond.points + map->second.lines + map->second.polygons == 0) { + continue; + } + std::string layername = map->first; if (trunc) { layername = truncate16(layername, 256); diff --git a/plugin.cpp b/plugin.cpp index 2c33b68..bf44979 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -234,6 +234,10 @@ std::vector parse_layers(int fd, int z, unsigned x, unsigned y, std:: } auto fk = layermap.find(layername); + if (fk == layermap.end()) { + fprintf(stderr, "Internal error: layer %s not found\n", layername.c_str()); + exit(EXIT_FAILURE); + } if (z < fk->second.minzoom) { fk->second.minzoom = z; } @@ -241,6 +245,14 @@ std::vector parse_layers(int fd, int z, unsigned x, unsigned y, std:: fk->second.maxzoom = z; } + if (feature.type == mvt_point) { + fk->second.points++; + } else if (feature.type == mvt_linestring) { + fk->second.lines++; + } else if (feature.type == mvt_polygon) { + fk->second.polygons++; + } + for (size_t i = 0; i < properties->length; i++) { int tp = -1; std::string s; @@ -448,6 +460,10 @@ serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std:: } auto fk = layermap.find(layername); + if (fk == layermap.end()) { + fprintf(stderr, "Internal error: layer %s not found\n", layername.c_str()); + exit(EXIT_FAILURE); + } sf.layer = fk->second.id; if (z < fk->second.minzoom) { @@ -457,6 +473,16 @@ serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std:: fk->second.maxzoom = z; } + if (!postfilter) { + if (sf.t == mvt_point) { + fk->second.points++; + } else if (sf.t == mvt_linestring) { + fk->second.lines++; + } else if (sf.t == mvt_polygon) { + fk->second.polygons++; + } + } + for (size_t i = 0; i < properties->length; i++) { serial_val v; v.type = -1; diff --git a/tests/join-population/joined-i.mbtiles.json b/tests/join-population/joined-i.mbtiles.json index 4dec571..f3aa93e 100644 --- a/tests/join-population/joined-i.mbtiles.json +++ b/tests/join-population/joined-i.mbtiles.json @@ -3,7 +3,7 @@ "center": "-122.299805,37.892187,12", "description": "tests/join-population/tabblock_06001420.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\", \"population\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 162,\"type\": \"number\",\"values\": [10019,10125,10320,10339,10769,10776,10975,11206,11297,11306,11372,11825,11928,11997,1201,12044,12062,12213,12579,12945,13013,13106,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14523,14541,14557,1457,14593,14639,14791,14799,14980,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,17210,17230,17265,17308,17581,17622,17780,17893,18064,18095,18377,18586,18637,1878,18897,19453,19544,19676,19773,19818,19896,20277,20386,20486],\"min\": 280.000000,\"max\": 412555.000000},{\"attribute\": \"AWATER10\",\"count\": 1,\"type\": \"number\",\"values\": [0],\"min\": 0.000000,\"max\": 0.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 72,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1026\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3023\",\"3024\",\"3026\",\"3027\",\"3028\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 162,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836932\",\"+37.8837071\",\"+37.8838362\",\"+37.8838753\",\"+37.8839739\",\"+37.8840099\",\"+37.8840797\",\"+37.8843388\",\"+37.8843696\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8848967\",\"+37.8849195\",\"+37.8853070\",\"+37.8853080\",\"+37.8854489\",\"+37.8854914\",\"+37.8856461\",\"+37.8858112\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8863229\",\"+37.8863390\",\"+37.8864607\",\"+37.8864950\",\"+37.8865962\",\"+37.8866087\",\"+37.8868308\",\"+37.8872385\",\"+37.8875706\",\"+37.8877891\",\"+37.8879459\",\"+37.8880279\",\"+37.8882387\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888488\",\"+37.8888596\",\"+37.8888638\",\"+37.8889080\",\"+37.8889300\",\"+37.8889340\",\"+37.8890070\",\"+37.8890495\",\"+37.8891261\",\"+37.8891773\",\"+37.8892518\",\"+37.8893267\",\"+37.8894113\",\"+37.8895187\",\"+37.8895455\",\"+37.8896695\",\"+37.8898284\",\"+37.8899556\",\"+37.8900585\",\"+37.8901108\",\"+37.8901660\",\"+37.8901726\",\"+37.8902095\",\"+37.8902144\",\"+37.8902784\",\"+37.8906969\",\"+37.8908584\",\"+37.8910287\",\"+37.8911018\",\"+37.8912006\",\"+37.8912058\",\"+37.8913200\",\"+37.8914257\",\"+37.8915386\",\"+37.8916581\",\"+37.8917135\",\"+37.8917853\",\"+37.8918042\",\"+37.8918093\",\"+37.8918237\"]},{\"attribute\": \"INTPTLON10\",\"count\": 162,\"type\": \"string\",\"values\": [\"-122.2823713\",\"-122.2826890\",\"-122.2830673\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2844715\",\"-122.2845719\",\"-122.2848310\",\"-122.2850205\",\"-122.2851750\",\"-122.2856099\",\"-122.2859011\",\"-122.2859716\",\"-122.2863490\",\"-122.2863663\",\"-122.2866366\",\"-122.2868653\",\"-122.2869139\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2883823\",\"-122.2886022\",\"-122.2886289\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913917\",\"-122.2914745\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921539\",\"-122.2923093\",\"-122.2923947\",\"-122.2926742\",\"-122.2927567\",\"-122.2927774\",\"-122.2928119\",\"-122.2928245\",\"-122.2929060\",\"-122.2932964\",\"-122.2933649\",\"-122.2934559\",\"-122.2934770\",\"-122.2935084\",\"-122.2935928\",\"-122.2936333\",\"-122.2941575\",\"-122.2942136\",\"-122.2943382\",\"-122.2944181\",\"-122.2944569\",\"-122.2945038\",\"-122.2949725\",\"-122.2950398\",\"-122.2951842\",\"-122.2952863\",\"-122.2953196\",\"-122.2953591\",\"-122.2955660\",\"-122.2958883\",\"-122.2960301\",\"-122.2960835\",\"-122.2961445\",\"-122.2961756\",\"-122.2962204\",\"-122.2964053\",\"-122.2964744\",\"-122.2967302\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 72,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1026\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3023\",\"Block 3024\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"population\",\"count\": 73,\"type\": \"number\",\"values\": [1,10,11,1118,113,116,12,13,133,145,15,16,17,18,19,2,21,212,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,4,40,41,414,42,43,44,45,46,47,49,50,51,53,54,55,56,57,58,60,62,63,64,65,66,68,69,7,70,73,82,83,84,86,87,9,90,91,98],\"min\": 1.000000,\"max\": 1118.000000}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\", \"population\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 1000,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 162,\"type\": \"number\",\"values\": [10019,10125,10320,10339,10769,10776,10975,11206,11297,11306,11372,11825,11928,11997,1201,12044,12062,12213,12579,12945,13013,13106,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14523,14541,14557,1457,14593,14639,14791,14799,14980,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,17210,17230,17265,17308,17581,17622,17780,17893,18064,18095,18377,18586,18637,1878,18897,19453,19544,19676,19773,19818,19896,20277,20386,20486],\"min\": 280.000000,\"max\": 412555.000000},{\"attribute\": \"AWATER10\",\"count\": 1,\"type\": \"number\",\"values\": [0],\"min\": 0.000000,\"max\": 0.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 72,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1026\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3023\",\"3024\",\"3026\",\"3027\",\"3028\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 162,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836932\",\"+37.8837071\",\"+37.8838362\",\"+37.8838753\",\"+37.8839739\",\"+37.8840099\",\"+37.8840797\",\"+37.8843388\",\"+37.8843696\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8848967\",\"+37.8849195\",\"+37.8853070\",\"+37.8853080\",\"+37.8854489\",\"+37.8854914\",\"+37.8856461\",\"+37.8858112\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8863229\",\"+37.8863390\",\"+37.8864607\",\"+37.8864950\",\"+37.8865962\",\"+37.8866087\",\"+37.8868308\",\"+37.8872385\",\"+37.8875706\",\"+37.8877891\",\"+37.8879459\",\"+37.8880279\",\"+37.8882387\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888488\",\"+37.8888596\",\"+37.8888638\",\"+37.8889080\",\"+37.8889300\",\"+37.8889340\",\"+37.8890070\",\"+37.8890495\",\"+37.8891261\",\"+37.8891773\",\"+37.8892518\",\"+37.8893267\",\"+37.8894113\",\"+37.8895187\",\"+37.8895455\",\"+37.8896695\",\"+37.8898284\",\"+37.8899556\",\"+37.8900585\",\"+37.8901108\",\"+37.8901660\",\"+37.8901726\",\"+37.8902095\",\"+37.8902144\",\"+37.8902784\",\"+37.8906969\",\"+37.8908584\",\"+37.8910287\",\"+37.8911018\",\"+37.8912006\",\"+37.8912058\",\"+37.8913200\",\"+37.8914257\",\"+37.8915386\",\"+37.8916581\",\"+37.8917135\",\"+37.8917853\",\"+37.8918042\",\"+37.8918093\",\"+37.8918237\"]},{\"attribute\": \"INTPTLON10\",\"count\": 162,\"type\": \"string\",\"values\": [\"-122.2823713\",\"-122.2826890\",\"-122.2830673\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2844715\",\"-122.2845719\",\"-122.2848310\",\"-122.2850205\",\"-122.2851750\",\"-122.2856099\",\"-122.2859011\",\"-122.2859716\",\"-122.2863490\",\"-122.2863663\",\"-122.2866366\",\"-122.2868653\",\"-122.2869139\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2883823\",\"-122.2886022\",\"-122.2886289\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913917\",\"-122.2914745\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921539\",\"-122.2923093\",\"-122.2923947\",\"-122.2926742\",\"-122.2927567\",\"-122.2927774\",\"-122.2928119\",\"-122.2928245\",\"-122.2929060\",\"-122.2932964\",\"-122.2933649\",\"-122.2934559\",\"-122.2934770\",\"-122.2935084\",\"-122.2935928\",\"-122.2936333\",\"-122.2941575\",\"-122.2942136\",\"-122.2943382\",\"-122.2944181\",\"-122.2944569\",\"-122.2945038\",\"-122.2949725\",\"-122.2950398\",\"-122.2951842\",\"-122.2952863\",\"-122.2953196\",\"-122.2953591\",\"-122.2955660\",\"-122.2958883\",\"-122.2960301\",\"-122.2960835\",\"-122.2961445\",\"-122.2961756\",\"-122.2962204\",\"-122.2964053\",\"-122.2964744\",\"-122.2967302\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 72,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1026\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3023\",\"Block 3024\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"population\",\"count\": 73,\"type\": \"number\",\"values\": [1,10,11,1118,113,116,12,13,133,145,15,16,17,18,19,2,21,212,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,4,40,41,414,42,43,44,45,46,47,49,50,51,53,54,55,56,57,58,60,62,63,64,65,66,68,69,7,70,73,82,83,84,86,87,9,90,91,98],\"min\": 1.000000,\"max\": 1118.000000}]}]}}", "maxzoom": "12", "minzoom": "0", "name": "tests/join-population/tabblock_06001420.mbtiles", diff --git a/tests/join-population/joined.mbtiles.json b/tests/join-population/joined.mbtiles.json index e383183..d07996b 100644 --- a/tests/join-population/joined.mbtiles.json +++ b/tests/join-population/joined.mbtiles.json @@ -3,7 +3,7 @@ "center": "-122.299805,37.892187,12", "description": "tests/join-population/tabblock_06001420.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\", \"population\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]},{\"attribute\": \"population\",\"count\": 73,\"type\": \"number\",\"values\": [1,10,11,1118,113,116,12,13,133,145,15,16,17,18,19,2,21,212,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,4,40,41,414,42,43,44,45,46,47,49,50,51,53,54,55,56,57,58,60,62,63,64,65,66,68,69,7,70,73,82,83,84,86,87,9,90,91,98],\"min\": 1.000000,\"max\": 1118.000000}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\", \"population\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 1484,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]},{\"attribute\": \"population\",\"count\": 73,\"type\": \"number\",\"values\": [1,10,11,1118,113,116,12,13,133,145,15,16,17,18,19,2,21,212,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,4,40,41,414,42,43,44,45,46,47,49,50,51,53,54,55,56,57,58,60,62,63,64,65,66,68,69,7,70,73,82,83,84,86,87,9,90,91,98],\"min\": 1.000000,\"max\": 1118.000000}]}]}}", "maxzoom": "12", "minzoom": "0", "name": "tests/join-population/tabblock_06001420.mbtiles", diff --git a/tests/join-population/just-macarthur.mbtiles.json b/tests/join-population/just-macarthur.mbtiles.json index 263b200..34f4803 100644 --- a/tests/join-population/just-macarthur.mbtiles.json +++ b/tests/join-population/just-macarthur.mbtiles.json @@ -4,7 +4,7 @@ "center": "-122.299805,37.892187,12", "description": "macarthur description", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"macarthur\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"macarthur\",\"count\": 169,\"geometry\": \"LineString\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]}]}}", "maxzoom": "12", "minzoom": "0", "name": "macarthur name", diff --git a/tests/join-population/merged-folder.mbtiles.json b/tests/join-population/merged-folder.mbtiles.json index 4001efe..6ce7d22 100644 --- a/tests/join-population/merged-folder.mbtiles.json +++ b/tests/join-population/merged-folder.mbtiles.json @@ -3,7 +3,7 @@ "center": "-122.299805,37.892187,12", "description": "tests/join-population/tabblock_06001420-folder", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} }, { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"macarthur\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]},{\"layer\": \"tabblock_06001420\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} }, { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"macarthur\",\"count\": 169,\"geometry\": \"LineString\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]},{\"layer\": \"tabblock_06001420\",\"count\": 1484,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}", "maxzoom": "12", "minzoom": "0", "name": "tests/join-population/macarthur-folder + tests/join-population/macarthur2-folder + tests/join-population/tabblock_06001420-folder", diff --git a/tests/join-population/merged.mbtiles.json b/tests/join-population/merged.mbtiles.json index 9c4739d..bac5080 100644 --- a/tests/join-population/merged.mbtiles.json +++ b/tests/join-population/merged.mbtiles.json @@ -3,7 +3,7 @@ "center": "-122.299805,37.892187,12", "description": "tests/join-population/tabblock_06001420.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} }, { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"macarthur\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]},{\"layer\": \"tabblock_06001420\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} }, { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"macarthur\",\"count\": 169,\"geometry\": \"LineString\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]},{\"layer\": \"tabblock_06001420\",\"count\": 1484,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}", "maxzoom": "12", "minzoom": "0", "name": "tests/join-population/macarthur.mbtiles + tests/join-population/macarthur2.mbtiles + tests/join-population/tabblock_06001420.mbtiles", diff --git a/tests/join-population/no-macarthur.mbtiles.json b/tests/join-population/no-macarthur.mbtiles.json index abf4837..56adeae 100644 --- a/tests/join-population/no-macarthur.mbtiles.json +++ b/tests/join-population/no-macarthur.mbtiles.json @@ -3,7 +3,7 @@ "center": "-122.299805,37.892187,12", "description": "tests/join-population/tabblock_06001420.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 1484,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}", "maxzoom": "12", "minzoom": "0", "name": "tests/join-population/macarthur.mbtiles + tests/join-population/macarthur2.mbtiles + tests/join-population/tabblock_06001420.mbtiles", diff --git a/tests/join-population/raw-merged-folder-compare/metadata.json b/tests/join-population/raw-merged-folder-compare/metadata.json index 7dae77a..1c0e3b8 100644 --- a/tests/join-population/raw-merged-folder-compare/metadata.json +++ b/tests/join-population/raw-merged-folder-compare/metadata.json @@ -8,5 +8,5 @@ "bounds": "-122.343750,37.695438,-122.104097,37.926868", "type": "overlay", "format": "pbf", - "json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} }, { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"macarthur\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]},{\"layer\": \"tabblock_06001420\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}" + "json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 11, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} }, { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"GEOID10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"macarthur\",\"count\": 169,\"geometry\": \"LineString\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 5,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Blvd\",\"Macarthur Fwy\",\"W Macarthur\",\"W Macarthur Blvd\"]},{\"attribute\": \"LINEARID\",\"count\": 43,\"type\": \"string\",\"values\": [\"1102155930810\",\"1102156217102\",\"1102156241736\",\"1102156248968\",\"1102156510290\",\"1102157509691\",\"1102157651658\",\"1102406970092\",\"1102406970093\",\"1102406970094\",\"1102406970095\",\"1102407366406\",\"1102638069562\",\"1102638078801\",\"1102654601627\",\"1102654601663\",\"1102654602215\",\"1102954189105\",\"1102954918511\",\"1103690383700\",\"1103690474249\",\"1103690474250\",\"1103690483026\",\"1103690483032\",\"1103717593123\",\"1104469713187\",\"1104469713198\",\"1104474748623\",\"1104475134288\",\"1104475134436\",\"1104485605278\",\"1104485645649\",\"1104485773833\",\"1104486090991\",\"1104486392881\",\"1105089436004\",\"1105089465114\",\"1105089465116\",\"1105281275434\",\"1105281275687\",\"1105281275688\",\"1105281275689\",\"1105281275692\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]},{\"layer\": \"tabblock_06001420\",\"count\": 1484,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 257,\"type\": \"number\",\"values\": [0,10019,10125,1018,1027,10320,10339,1037,1060,10769,10776,1094,10961,10975,11206,11282,11297,11306,11372,11825,11921,11928,11997,1201,12044,12062,1214,12213,1246,12579,1269,12945,13013,13106,1324,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14453,14523,14539,14541,14557,14565,1457,14593,1461,14639,1466,14791,14799,14980,1509,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,1704,17210,17230,17265,17308],\"min\": 0.000000,\"max\": 542505.000000},{\"attribute\": \"AWATER10\",\"count\": 4,\"type\": \"number\",\"values\": [0,1111196,1632801,24],\"min\": 0.000000,\"max\": 1632801.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 82,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1025\",\"1026\",\"1027\",\"1028\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"2016\",\"2017\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3011\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3022\",\"3023\",\"3024\",\"3025\",\"3026\",\"3027\",\"3028\",\"3029\",\"3030\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"GEOID10\",\"count\": 260,\"type\": \"string\",\"values\": [\"060014201001000\",\"060014201001001\",\"060014201001002\",\"060014201001003\",\"060014201001004\",\"060014201001005\",\"060014201001006\",\"060014201001007\",\"060014201001008\",\"060014201001009\",\"060014201001010\",\"060014201001011\",\"060014201001012\",\"060014201001013\",\"060014201001014\",\"060014201001015\",\"060014201001016\",\"060014201001017\",\"060014201001018\",\"060014201001019\",\"060014201002000\",\"060014201002001\",\"060014201002002\",\"060014201002003\",\"060014201002004\",\"060014201002005\",\"060014201002006\",\"060014201002007\",\"060014201002008\",\"060014201002009\",\"060014201002010\",\"060014201002011\",\"060014201002012\",\"060014201002013\",\"060014201002014\",\"060014201002015\",\"060014201003000\",\"060014201003001\",\"060014201003002\",\"060014201003003\",\"060014201003004\",\"060014201003005\",\"060014201003006\",\"060014201003007\",\"060014201003008\",\"060014202001000\",\"060014202001001\",\"060014202001002\",\"060014202001003\",\"060014202001004\",\"060014202001005\",\"060014202001006\",\"060014202001007\",\"060014202001008\",\"060014202001009\",\"060014202001010\",\"060014202001011\",\"060014202001012\",\"060014202001013\",\"060014202001014\",\"060014202002000\",\"060014202002001\",\"060014202002002\",\"060014202002003\",\"060014202002004\",\"060014202002005\",\"060014202002006\",\"060014202002007\",\"060014202002008\",\"060014202002009\",\"060014202002010\",\"060014202002011\",\"060014202002012\",\"060014202003000\",\"060014202003001\",\"060014202003002\",\"060014202003003\",\"060014202003004\",\"060014202003005\",\"060014202003006\",\"060014202003007\",\"060014202003008\",\"060014202003009\",\"060014202003010\",\"060014202003011\",\"060014202003012\",\"060014203001000\",\"060014203001001\",\"060014203001002\",\"060014203001003\",\"060014203001004\",\"060014203001005\",\"060014203001006\",\"060014203001007\",\"060014203001008\",\"060014203001009\",\"060014203001010\",\"060014203001011\",\"060014203001012\",\"060014203001013\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 260,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834653\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836558\",\"+37.8836932\",\"+37.8837071\",\"+37.8837458\",\"+37.8838362\",\"+37.8838716\",\"+37.8838753\",\"+37.8839314\",\"+37.8839739\",\"+37.8839955\",\"+37.8840099\",\"+37.8840797\",\"+37.8841984\",\"+37.8842028\",\"+37.8843388\",\"+37.8843696\",\"+37.8844362\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8847579\",\"+37.8848967\",\"+37.8849026\",\"+37.8849195\",\"+37.8849426\",\"+37.8853070\",\"+37.8853080\",\"+37.8853992\",\"+37.8854489\",\"+37.8854914\",\"+37.8856449\",\"+37.8856461\",\"+37.8856733\",\"+37.8858112\",\"+37.8858279\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8862375\",\"+37.8862789\",\"+37.8863229\",\"+37.8863390\",\"+37.8864397\",\"+37.8864607\",\"+37.8864950\",\"+37.8865874\",\"+37.8865962\",\"+37.8866087\",\"+37.8867580\",\"+37.8868308\",\"+37.8869296\",\"+37.8870993\",\"+37.8871632\",\"+37.8872385\",\"+37.8872675\",\"+37.8873248\",\"+37.8873799\",\"+37.8874129\",\"+37.8875706\",\"+37.8877645\",\"+37.8877763\",\"+37.8877891\",\"+37.8878520\",\"+37.8878852\",\"+37.8878859\",\"+37.8879165\",\"+37.8879459\",\"+37.8880279\",\"+37.8881229\",\"+37.8882387\",\"+37.8883258\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885068\",\"+37.8885114\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888233\",\"+37.8888488\"]},{\"attribute\": \"INTPTLON10\",\"count\": 260,\"type\": \"string\",\"values\": [\"-122.2823202\",\"-122.2823713\",\"-122.2826795\",\"-122.2826890\",\"-122.2829474\",\"-122.2830673\",\"-122.2832122\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2838288\",\"-122.2839247\",\"-122.2839734\",\"-122.2844715\",\"-122.2845719\",\"-122.2845906\",\"-122.2848310\",\"-122.2850205\",\"-122.2850766\",\"-122.2850935\",\"-122.2851750\",\"-122.2856099\",\"-122.2856518\",\"-122.2856823\",\"-122.2859011\",\"-122.2859716\",\"-122.2861793\",\"-122.2863241\",\"-122.2863490\",\"-122.2863663\",\"-122.2866157\",\"-122.2866366\",\"-122.2868181\",\"-122.2868653\",\"-122.2869139\",\"-122.2870554\",\"-122.2870824\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2875914\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2881508\",\"-122.2882217\",\"-122.2882377\",\"-122.2883131\",\"-122.2883823\",\"-122.2883829\",\"-122.2884737\",\"-122.2886022\",\"-122.2886289\",\"-122.2886774\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894711\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2895731\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2905730\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913154\",\"-122.2913507\",\"-122.2913917\",\"-122.2914745\",\"-122.2914849\",\"-122.2915924\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921162\",\"-122.2921539\",\"-122.2922894\",\"-122.2923093\",\"-122.2923947\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 82,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1025\",\"Block 1026\",\"Block 1027\",\"Block 1028\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 2016\",\"Block 2017\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3011\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3022\",\"Block 3023\",\"Block 3024\",\"Block 3025\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3029\",\"Block 3030\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 2,\"type\": \"string\",\"values\": [\"R\",\"U\"]}]}]}}" } diff --git a/tests/join-population/windows.mbtiles.json b/tests/join-population/windows.mbtiles.json index 32baa14..f0000ed 100644 --- a/tests/join-population/windows.mbtiles.json +++ b/tests/join-population/windows.mbtiles.json @@ -3,7 +3,7 @@ "center": "-122.167969,37.833010,10", "description": "tests/join-population/macarthur.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 10, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"macarthur\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 3,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Fwy\",\"W Macarthur\"]},{\"attribute\": \"LINEARID\",\"count\": 4,\"type\": \"string\",\"values\": [\"1102156510290\",\"1104486392881\",\"first\",\"second\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"macarthur\", \"description\": \"\", \"minzoom\": 5, \"maxzoom\": 10, \"fields\": {\"FULLNAME\": \"String\", \"LINEARID\": \"String\", \"MTFCC\": \"String\", \"RTTYP\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"macarthur\",\"count\": 90,\"geometry\": \"LineString\",\"attributeCount\": 4,\"attributes\": [{\"attribute\": \"FULLNAME\",\"count\": 3,\"type\": \"string\",\"values\": [\"Macarthur\",\"Macarthur Fwy\",\"W Macarthur\"]},{\"attribute\": \"LINEARID\",\"count\": 4,\"type\": \"string\",\"values\": [\"1102156510290\",\"1104486392881\",\"first\",\"second\"]},{\"attribute\": \"MTFCC\",\"count\": 2,\"type\": \"string\",\"values\": [\"S1100\",\"S1400\"]},{\"attribute\": \"RTTYP\",\"count\": 1,\"type\": \"string\",\"values\": [\"M\"]}]}]}}", "maxzoom": "10", "minzoom": "5", "name": "tests/join-population/macarthur.mbtiles", diff --git a/tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json b/tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json index 5ccc7db..5d32145 100644 --- a/tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json +++ b/tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json @@ -3,7 +3,7 @@ "center": "16.875000,44.951199,5", "description": "tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json.check.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 243,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 476,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", "maxzoom": "5", "minzoom": "0", "name": "tests/ne_110m_populated_places/out/-yNAME_-Ccat_-z5.json.check.mbtiles", diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%remove.json b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%remove.json new file mode 100644 index 0000000..4389b33 --- /dev/null +++ b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%remove.json @@ -0,0 +1,1256 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-175.220565,-41.299974,179.216647,64.150024", +"center": "11.250000,48.378236,4", +"description": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%remove.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"unknown\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"unknown\",\"count\": 448,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"maxzoom": "4", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%remove.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.392578, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.470703, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.298828, 7.188101 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.873047, -9.362353 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.253906, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.780541 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.916992, -9.405710 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.968936 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.254883, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.342773, 7.144499 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.231934, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.656250, -25.284438 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.763901 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.286621, 12.168226 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.855469, 34.034453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.249512, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.771973, -13.966054 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.546387, 55.689972 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.797363, 41.343825 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.081543, 44.449468 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.161621, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.886177 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.276855, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.519531, 15.601875 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.579084 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.541504, 12.983148 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.169922, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.446622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.364746, 7.122696 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.996338, 39.749434 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.350342, 29.831114 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.159180, -16.488765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.675049, -33.440609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.636963, -23.553917 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.233154, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.479609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.007080, 14.008696 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.622803, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.523438, 10.660608 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.917923 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.844482, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.600342, 13.464422 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.153742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.830795 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.424072, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.804199, -1.274309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.905762, -24.637031 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.476807, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.124268, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.172607, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.528519 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.489983 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.525635, 9.091249 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.875216 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.059586 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.287842, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.568251 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.262695, 52.086257 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.840636 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.459717, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.683779 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.423340, 42.000325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.553711, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.609278 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.491455, -20.159098 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.966309, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.244156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.189941, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.502407 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.552490, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.575195, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.108398, 19.777042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.908447, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.921097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.436085 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.907959, 47.923705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.124971 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.692995 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.111795 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.743774, -13.838080 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.185425, 33.993473 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.278557 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.532837, 14.626109 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.676187 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.445193 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.474399 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.369995, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.014160, 38.903858 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.354736, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.425659, 43.703622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.403320, -34.597042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.264282, -19.036156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.922363, -15.776395 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.055437 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.106230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.655210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.840081 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.979614, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.656418 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.805054, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.326175 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.656982, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.337433 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.151347 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.078247, -22.568366 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.429565, -33.916013 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.309448, -4.324501 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.119894 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.902400 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.910889, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.124878, 49.614269 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.135864, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.137425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.526248 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.994873, 52.254709 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.996094, 45.801999 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.906365 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.077759, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.468045 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.813843, 41.331451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.670320 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.919237 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.642024 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.165299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.129761, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.195679, -26.465656 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.355469, -3.370856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.811456 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.178785 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.236694, -11.700652 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.574707, 4.833733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.930054, 15.337167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.693848, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.054831 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.502319, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.293335, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.344296 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.559204, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.724731, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.510376, -18.911483 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.971802, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.647017 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.239229 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.289405 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.234758 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.952861 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.854126, 6.937333 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.195435, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.497332 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.810747 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.167862 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.788765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.595825, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.694946, 3.173425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.675715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.975952, 14.610163 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.023451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.570705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.189331, -9.459899 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.034494 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.759521, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.944458, -9.432806 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.130191 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.106344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } } +] } +] } +] } diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json index bfb6639..e18b9b3 100644 --- a/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json +++ b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json @@ -3,7 +3,7 @@ "center": "11.250000,48.378236,4", "description": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json.check.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {} }, { \"id\": \"renamed\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"in\",\"count\": 243,\"geometry\": \"Point\",\"attributeCount\": 0,\"attributes\": []},{\"layer\": \"renamed\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"renamed\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"renamed\",\"count\": 448,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", "maxzoom": "4", "minzoom": "0", "name": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename.json.check.mbtiles", diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename_-c.%tests%filter%rename2.json b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename_-c.%tests%filter%rename2.json new file mode 100644 index 0000000..99fb322 --- /dev/null +++ b/tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename_-c.%tests%filter%rename2.json @@ -0,0 +1,1256 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-175.220565,-41.299974,179.216647,64.150024", +"center": "11.250000,48.378236,4", +"description": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename_-c.%tests%filter%rename2.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"renamed_again\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"renamed_again\",\"count\": 448,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"maxzoom": "4", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-yNAME_-z4_-C.%tests%filter%rename_-c.%tests%filter%rename2.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.392578, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.470703, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.298828, 7.188101 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.873047, -9.362353 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.253906, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.780541 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.916992, -9.405710 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.968936 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.254883, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.342773, 7.144499 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.231934, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.656250, -25.284438 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.763901 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.286621, 12.168226 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.855469, 34.034453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.249512, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.771973, -13.966054 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.546387, 55.689972 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.797363, 41.343825 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.081543, 44.449468 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.161621, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.886177 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.276855, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.519531, 15.601875 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.579084 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.541504, 12.983148 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.169922, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.446622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.364746, 7.122696 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.996338, 39.749434 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.350342, 29.831114 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.159180, -16.488765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.675049, -33.440609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.636963, -23.553917 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.233154, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.479609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.007080, 14.008696 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.622803, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.523438, 10.660608 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.917923 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.844482, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.600342, 13.464422 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.153742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.830795 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.424072, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.804199, -1.274309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.905762, -24.637031 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.476807, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.124268, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.172607, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.528519 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.489983 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.525635, 9.091249 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.875216 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.059586 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.287842, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.568251 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.262695, 52.086257 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.840636 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.459717, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.683779 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.423340, 42.000325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.553711, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.609278 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.491455, -20.159098 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.966309, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.244156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.189941, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.502407 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.552490, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.575195, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.108398, 19.777042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.908447, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.921097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.436085 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.907959, 47.923705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.124971 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.692995 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.111795 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.743774, -13.838080 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.185425, 33.993473 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.278557 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.532837, 14.626109 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.676187 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.445193 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.474399 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.369995, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.014160, 38.903858 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.354736, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.425659, 43.703622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.403320, -34.597042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.264282, -19.036156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.922363, -15.776395 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.055437 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.106230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.655210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.840081 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.979614, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.656418 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.805054, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.326175 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.656982, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.337433 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.151347 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.078247, -22.568366 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.429565, -33.916013 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.309448, -4.324501 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.119894 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.902400 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.910889, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.124878, 49.614269 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.135864, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.137425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.526248 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.994873, 52.254709 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.996094, 45.801999 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.906365 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.077759, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.468045 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.813843, 41.331451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.670320 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.919237 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.642024 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.165299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.129761, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.195679, -26.465656 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.355469, -3.370856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.811456 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.178785 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.236694, -11.700652 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.574707, 4.833733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.930054, 15.337167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.693848, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.054831 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.502319, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.293335, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.344296 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.559204, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.724731, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.510376, -18.911483 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.971802, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.647017 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.239229 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.289405 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.234758 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.952861 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.854126, 6.937333 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.195435, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.497332 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.810747 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.167862 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.788765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.595825, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.694946, 3.173425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.675715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.975952, 14.610163 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.023451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.570705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.189331, -9.459899 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.034494 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.759521, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.944458, -9.432806 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.130191 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "renamed_again", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.106344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } } +] } +] } +] } diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json b/tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json index 92d0bbe..3ec4437 100644 --- a/tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json +++ b/tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json @@ -3,7 +3,7 @@ "center": "16.875000,44.951199,5", "description": "tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json.check.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {} }, { \"id\": \"renamed\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 2,\"layers\": [{\"layer\": \"in\",\"count\": 243,\"geometry\": \"Point\",\"attributeCount\": 0,\"attributes\": []},{\"layer\": \"renamed\",\"count\": 0,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"renamed\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"renamed\",\"count\": 476,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", "maxzoom": "5", "minzoom": "0", "name": "tests/ne_110m_populated_places/out/-yNAME_-z5_-c.%tests%filter%rename.json.check.mbtiles", diff --git a/tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json b/tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json index 0caa219..d732be7 100644 --- a/tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json +++ b/tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json @@ -3,7 +3,7 @@ "center": "16.875000,44.951199,5", "description": "tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json.check.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 243,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 476,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", "maxzoom": "5", "minzoom": "0", "name": "tests/ne_110m_populated_places/out/-yNAME_-z5_-ccat.json.check.mbtiles", diff --git a/tests/ne_110m_populated_places/out/-z4_-yNAME_-c.%tests%filter%remove.json b/tests/ne_110m_populated_places/out/-z4_-yNAME_-c.%tests%filter%remove.json new file mode 100644 index 0000000..2ab0849 --- /dev/null +++ b/tests/ne_110m_populated_places/out/-z4_-yNAME_-c.%tests%filter%remove.json @@ -0,0 +1,1256 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-175.220565,-41.299974,179.216647,64.150024", +"center": "11.250000,48.378236,4", +"description": "tests/ne_110m_populated_places/out/-z4_-yNAME_-c.%tests%filter%remove.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"unknown\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 4, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"unknown\",\"count\": 448,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}", +"maxzoom": "4", +"minzoom": "0", +"name": "tests/ne_110m_populated_places/out/-z4_-yNAME_-c.%tests%filter%remove.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.392578, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.470703, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.298828, 7.188101 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.873047, -9.362353 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.253906, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.780541 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.271484, 8.494105 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.916992, -9.405710 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.961191 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.968936 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.254883, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.342773, 7.144499 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.231934, -21.125498 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.656250, -25.284438 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -74.003906, 40.763901 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.286621, 12.168226 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.633789, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.855469, 34.034453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.249512, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.771973, -13.966054 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.113281, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.546387, 55.689972 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.797363, 41.343825 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.081543, 44.449468 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.161621, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.514648, 9.102097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.886177 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.276855, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.519531, 15.601875 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.579084 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.169922, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.541504, 12.983148 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.897461, 11.566144 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.169922, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.446622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.364746, 7.122696 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.996338, 39.749434 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.350342, 29.831114 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.282140 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.159180, -16.488765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.675049, -33.440609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.636963, -23.553917 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.233154, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.479609 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.007080, 14.008696 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.622803, 13.111580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.523438, 10.660608 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.992920, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.917923 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.844482, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.600342, 13.464422 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.331644 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 3, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.153742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.830795 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.424072, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.804199, -1.274309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.905762, -24.637031 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.476807, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.124268, -26.313113 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.172607, 32.898038 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.528519 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.489983 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.525635, 9.091249 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.448242, 0.395505 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.875216 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.059586 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.287842, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.574463, 0.329588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.055176, 9.568251 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.262695, 52.086257 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.840636 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.504503 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.459717, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.683779 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.808350, 41.335576 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.423340, 42.000325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.553711, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.112469 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.609278 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.491455, -20.159098 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.384766, 33.348885 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.966309, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.244156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.524661 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.189941, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.502407 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.552490, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.575195, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.108398, 19.777042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.908447, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.921097 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.563965, 16.436085 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 2 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.907959, 47.923705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.124971 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.692995 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.111795 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Nukualofa" }, "geometry": { "type": "Point", "coordinates": [ -175.220947, -21.135745 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Apia" }, "geometry": { "type": "Point", "coordinates": [ -171.743774, -13.838080 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.185425, 33.993473 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.123779, 49.278557 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.532837, 14.626109 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.676187 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -71.625366, -33.045508 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santiago" }, "geometry": { "type": "Point", "coordinates": [ -70.669556, -33.445193 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lima" }, "geometry": { "type": "Point", "coordinates": [ -77.052612, -12.044693 ] } } +, +{ "type": "Feature", "properties": { "NAME": "La Paz" }, "geometry": { "type": "Point", "coordinates": [ -68.153687, -16.494032 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tegucigalpa" }, "geometry": { "type": "Point", "coordinates": [ -87.220459, 14.104613 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Managua" }, "geometry": { "type": "Point", "coordinates": [ -86.275635, 12.157486 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingston" }, "geometry": { "type": "Point", "coordinates": [ -76.772461, 17.978733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Santo Domingo" }, "geometry": { "type": "Point", "coordinates": [ -69.906006, 18.474399 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.369995, 23.135309 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.014160, 38.903858 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nassau" }, "geometry": { "type": "Point", "coordinates": [ -77.354736, 25.085599 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 4, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.425659, 43.703622 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Buenos Aires" }, "geometry": { "type": "Point", "coordinates": [ -58.403320, -34.597042 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sucre" }, "geometry": { "type": "Point", "coordinates": [ -65.264282, -19.036156 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -47.922363, -15.776395 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 5, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.303443 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint John's" }, "geometry": { "type": "Point", "coordinates": [ -61.853027, 17.119793 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Castries" }, "geometry": { "type": "Point", "coordinates": [ -61.001587, 14.003367 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.055437 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bridgetown" }, "geometry": { "type": "Point", "coordinates": [ -59.617310, 13.106230 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port-of-Spain" }, "geometry": { "type": "Point", "coordinates": [ -61.517944, 10.655210 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.840081 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Rio de Janeiro" }, "geometry": { "type": "Point", "coordinates": [ -43.231201, -22.922982 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 6, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.918246 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.979614, 18.088423 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bissau" }, "geometry": { "type": "Point", "coordinates": [ -15.600586, 11.867351 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Freetown" }, "geometry": { "type": "Point", "coordinates": [ -13.238525, 8.472372 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.656418 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monrovia" }, "geometry": { "type": "Point", "coordinates": [ -10.805054, 6.315299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abidjan" }, "geometry": { "type": "Point", "coordinates": [ -4.042969, 5.326175 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Laayoune" }, "geometry": { "type": "Point", "coordinates": [ -13.200073, 27.152033 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -9.151611, 38.728376 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rabat" }, "geometry": { "type": "Point", "coordinates": [ -6.838989, 34.025348 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.656982, 26.120918 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dublin" }, "geometry": { "type": "Point", "coordinates": [ -6.251221, 53.337433 ] } } +, +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 7, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Reykjavík" }, "geometry": { "type": "Point", "coordinates": [ -21.950684, 64.151347 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Windhoek" }, "geometry": { "type": "Point", "coordinates": [ 17.078247, -22.568366 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cape Town" }, "geometry": { "type": "Point", "coordinates": [ 18.429565, -33.916013 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.309448, -4.324501 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 1.219482, 6.135093 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Porto-Novo" }, "geometry": { "type": "Point", "coordinates": [ 2.614746, 6.484525 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lagos" }, "geometry": { "type": "Point", "coordinates": [ 3.389282, 6.446318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abuja" }, "geometry": { "type": "Point", "coordinates": [ 7.531128, 9.085824 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Libreville" }, "geometry": { "type": "Point", "coordinates": [ 9.453735, 0.390012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.045776, 12.119894 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 11.513672, 3.869735 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangui" }, "geometry": { "type": "Point", "coordinates": [ 18.555908, 4.368320 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.902400 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } } +, +{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.910889, 52.352119 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.124878, 49.614269 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Andorra" }, "geometry": { "type": "Point", "coordinates": [ 1.516113, 42.500453 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.135864, 46.210250 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.137425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.526248 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.994873, 52.254709 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ljubljana" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 46.057985 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.996094, 45.801999 ] } } +, +{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.906365 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bratislava" }, "geometry": { "type": "Point", "coordinates": [ 17.116699, 48.151428 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.077759, 47.502359 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.468045 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tirana" }, "geometry": { "type": "Point", "coordinates": [ 19.813843, 41.331451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.670320 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.919237 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Stockholm" }, "geometry": { "type": "Point", "coordinates": [ 18.094482, 59.352796 ] } } +, +{ "type": "Feature", "properties": { "NAME": "København" }, "geometry": { "type": "Point", "coordinates": [ 12.557373, 55.680682 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Gaborone" }, "geometry": { "type": "Point", "coordinates": [ 25.911255, -24.642024 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Johannesburg" }, "geometry": { "type": "Point", "coordinates": [ 28.026123, -26.165299 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bloemfontein" }, "geometry": { "type": "Point", "coordinates": [ 26.229858, -29.118574 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maseru" }, "geometry": { "type": "Point", "coordinates": [ 27.482300, -29.315141 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mbabane" }, "geometry": { "type": "Point", "coordinates": [ 31.129761, -26.313113 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lobamba" }, "geometry": { "type": "Point", "coordinates": [ 31.195679, -26.465656 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.953106 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.355469, -3.370856 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.811456 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dodoma" }, "geometry": { "type": "Point", "coordinates": [ 35.749512, -6.178785 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.236694, -11.700652 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.574707, 4.833733 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Asmara" }, "geometry": { "type": "Point", "coordinates": [ 38.930054, 15.337167 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Djibouti" }, "geometry": { "type": "Point", "coordinates": [ 43.143311, 11.598432 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.693848, 9.037003 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ankara" }, "geometry": { "type": "Point", "coordinates": [ 32.860107, 39.930801 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 31.245117, 30.054831 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.502319, 33.874976 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 36.293335, 33.504759 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baghdad" }, "geometry": { "type": "Point", "coordinates": [ 44.390259, 33.344296 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Minsk" }, "geometry": { "type": "Point", "coordinates": [ 27.559204, 53.904338 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sofia" }, "geometry": { "type": "Point", "coordinates": [ 23.312988, 42.686473 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 4 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tallinn" }, "geometry": { "type": "Point", "coordinates": [ 24.724731, 59.433903 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.510376, -18.911483 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.400948 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tehran" }, "geometry": { "type": "Point", "coordinates": [ 51.421509, 35.675147 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.971802, 29.372602 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 46.768799, 24.647017 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manama" }, "geometry": { "type": "Point", "coordinates": [ 50.581055, 26.239229 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Doha" }, "geometry": { "type": "Point", "coordinates": [ 51.531372, 25.289405 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 55.277710, 25.234758 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.365845, 24.467151 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Ashgabat" }, "geometry": { "type": "Point", "coordinates": [ 58.381348, 37.952861 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Muscat" }, "geometry": { "type": "Point", "coordinates": [ 58.590088, 23.614329 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Colombo" }, "geometry": { "type": "Point", "coordinates": [ 79.854126, 6.937333 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } } +, +{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.195435, 28.603814 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.497332 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.810747 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.825562, -6.167862 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.788765 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.595825, 17.968283 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 104.913940, 11.555380 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.694946, 3.173425 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Chengdu" }, "geometry": { "type": "Point", "coordinates": [ 104.067993, 30.675715 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 5 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.913452, 47.920024 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.579224, -8.559294 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.975952, 14.610163 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Beijing" }, "geometry": { "type": "Point", "coordinates": [ 116.383667, 39.935013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Taipei" }, "geometry": { "type": "Point", "coordinates": [ 121.563721, 25.035839 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.023451 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Seoul" }, "geometry": { "type": "Point", "coordinates": [ 126.996460, 37.570705 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Sydney" }, "geometry": { "type": "Point", "coordinates": [ 151.182861, -33.916013 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.189331, -9.459899 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Kyoto" }, "geometry": { "type": "Point", "coordinates": [ 135.747070, 35.034494 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.688533 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 10 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 9 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Auckland" }, "geometry": { "type": "Point", "coordinates": [ 174.759521, -36.844461 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.298444 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 8 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.944458, -9.432806 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Port Vila" }, "geometry": { "type": "Point", "coordinates": [ 168.316040, -17.732991 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.214478, -8.515836 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Suva" }, "geometry": { "type": "Point", "coordinates": [ 178.439941, -18.130191 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 7 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "unknown", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.106344 ] } } +, +{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } } +] } +] } +] } diff --git a/tile-join.cpp b/tile-join.cpp index dbc8e35..36cb366 100644 --- a/tile-join.cpp +++ b/tile-join.cpp @@ -237,6 +237,14 @@ void handle(std::string message, int z, unsigned x, unsigned y, std::map file_keys->second.maxzoom) { file_keys->second.maxzoom = z; } + + if (feat.type == mvt_point) { + file_keys->second.points++; + } else if (feat.type == mvt_linestring) { + file_keys->second.lines++; + } else if (feat.type == mvt_polygon) { + file_keys->second.polygons++; + } } } } diff --git a/version.hpp b/version.hpp index f553260..c544fe4 100644 --- a/version.hpp +++ b/version.hpp @@ -1,6 +1,6 @@ #ifndef VERSION_HPP #define VERSION_HPP -#define VERSION "tippecanoe v1.21.0\n" +#define VERSION "tippecanoe v1.22.0\n" #endif From 915b1481ad79bb40976b3ff2759bb1337ab69cb6 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 9 Aug 2017 10:26:47 -0700 Subject: [PATCH 51/52] Forgot to check in this file --- tests/filter/remove | 3 +++ tests/filter/rename2 | 3 +++ 2 files changed, 6 insertions(+) create mode 100755 tests/filter/remove create mode 100755 tests/filter/rename2 diff --git a/tests/filter/remove b/tests/filter/remove new file mode 100755 index 0000000..bd2d314 --- /dev/null +++ b/tests/filter/remove @@ -0,0 +1,3 @@ +#!/bin/sh + +sed 's/"layer": "[^"]*",*//' diff --git a/tests/filter/rename2 b/tests/filter/rename2 new file mode 100755 index 0000000..e9355be --- /dev/null +++ b/tests/filter/rename2 @@ -0,0 +1,3 @@ +#!/bin/sh + +sed 's/"layer": "[^"]*"/"layer": "renamed_again"/' From e453e323210458b9e2ba70a5cb7c41b51f61b332 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 9 Aug 2017 11:30:16 -0700 Subject: [PATCH 52/52] Fix test flakiness for filtered tile-join, and some other warnings. --- decode.cpp | 2 -- tests/join-population/joined-i.mbtiles.json | 2 +- tile-join.cpp | 13 +++++++------ tile.cpp | 4 ++-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/decode.cpp b/decode.cpp index 1871dd2..dd3cc36 100644 --- a/decode.cpp +++ b/decode.cpp @@ -24,7 +24,6 @@ int maxzoom = 32; bool force = false; void handle(std::string message, int z, unsigned x, unsigned y, int describe, std::set const &to_decode, bool pipeline) { - int within = 0; mvt_tile tile; bool was_compressed; @@ -80,7 +79,6 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe, st printf(", \"features\": [\n"); first_layer = false; - within = 0; } } diff --git a/tests/join-population/joined-i.mbtiles.json b/tests/join-population/joined-i.mbtiles.json index f3aa93e..aa2c609 100644 --- a/tests/join-population/joined-i.mbtiles.json +++ b/tests/join-population/joined-i.mbtiles.json @@ -3,7 +3,7 @@ "center": "-122.299805,37.892187,12", "description": "tests/join-population/tabblock_06001420.mbtiles", "format": "pbf", -"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 3, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\", \"population\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 1000,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 162,\"type\": \"number\",\"values\": [10019,10125,10320,10339,10769,10776,10975,11206,11297,11306,11372,11825,11928,11997,1201,12044,12062,12213,12579,12945,13013,13106,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14523,14541,14557,1457,14593,14639,14791,14799,14980,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,17210,17230,17265,17308,17581,17622,17780,17893,18064,18095,18377,18586,18637,1878,18897,19453,19544,19676,19773,19818,19896,20277,20386,20486],\"min\": 280.000000,\"max\": 412555.000000},{\"attribute\": \"AWATER10\",\"count\": 1,\"type\": \"number\",\"values\": [0],\"min\": 0.000000,\"max\": 0.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 72,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1026\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3023\",\"3024\",\"3026\",\"3027\",\"3028\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 162,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836932\",\"+37.8837071\",\"+37.8838362\",\"+37.8838753\",\"+37.8839739\",\"+37.8840099\",\"+37.8840797\",\"+37.8843388\",\"+37.8843696\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8848967\",\"+37.8849195\",\"+37.8853070\",\"+37.8853080\",\"+37.8854489\",\"+37.8854914\",\"+37.8856461\",\"+37.8858112\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8863229\",\"+37.8863390\",\"+37.8864607\",\"+37.8864950\",\"+37.8865962\",\"+37.8866087\",\"+37.8868308\",\"+37.8872385\",\"+37.8875706\",\"+37.8877891\",\"+37.8879459\",\"+37.8880279\",\"+37.8882387\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888488\",\"+37.8888596\",\"+37.8888638\",\"+37.8889080\",\"+37.8889300\",\"+37.8889340\",\"+37.8890070\",\"+37.8890495\",\"+37.8891261\",\"+37.8891773\",\"+37.8892518\",\"+37.8893267\",\"+37.8894113\",\"+37.8895187\",\"+37.8895455\",\"+37.8896695\",\"+37.8898284\",\"+37.8899556\",\"+37.8900585\",\"+37.8901108\",\"+37.8901660\",\"+37.8901726\",\"+37.8902095\",\"+37.8902144\",\"+37.8902784\",\"+37.8906969\",\"+37.8908584\",\"+37.8910287\",\"+37.8911018\",\"+37.8912006\",\"+37.8912058\",\"+37.8913200\",\"+37.8914257\",\"+37.8915386\",\"+37.8916581\",\"+37.8917135\",\"+37.8917853\",\"+37.8918042\",\"+37.8918093\",\"+37.8918237\"]},{\"attribute\": \"INTPTLON10\",\"count\": 162,\"type\": \"string\",\"values\": [\"-122.2823713\",\"-122.2826890\",\"-122.2830673\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2844715\",\"-122.2845719\",\"-122.2848310\",\"-122.2850205\",\"-122.2851750\",\"-122.2856099\",\"-122.2859011\",\"-122.2859716\",\"-122.2863490\",\"-122.2863663\",\"-122.2866366\",\"-122.2868653\",\"-122.2869139\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2883823\",\"-122.2886022\",\"-122.2886289\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913917\",\"-122.2914745\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921539\",\"-122.2923093\",\"-122.2923947\",\"-122.2926742\",\"-122.2927567\",\"-122.2927774\",\"-122.2928119\",\"-122.2928245\",\"-122.2929060\",\"-122.2932964\",\"-122.2933649\",\"-122.2934559\",\"-122.2934770\",\"-122.2935084\",\"-122.2935928\",\"-122.2936333\",\"-122.2941575\",\"-122.2942136\",\"-122.2943382\",\"-122.2944181\",\"-122.2944569\",\"-122.2945038\",\"-122.2949725\",\"-122.2950398\",\"-122.2951842\",\"-122.2952863\",\"-122.2953196\",\"-122.2953591\",\"-122.2955660\",\"-122.2958883\",\"-122.2960301\",\"-122.2960835\",\"-122.2961445\",\"-122.2961756\",\"-122.2962204\",\"-122.2964053\",\"-122.2964744\",\"-122.2967302\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 72,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1026\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3023\",\"Block 3024\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"population\",\"count\": 73,\"type\": \"number\",\"values\": [1,10,11,1118,113,116,12,13,133,145,15,16,17,18,19,2,21,212,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,4,40,41,414,42,43,44,45,46,47,49,50,51,53,54,55,56,57,58,60,62,63,64,65,66,68,69,7,70,73,82,83,84,86,87,9,90,91,98],\"min\": 1.000000,\"max\": 1118.000000}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"tabblock_06001420\", \"description\": \"\", \"minzoom\": 4, \"maxzoom\": 12, \"fields\": {\"ALAND10\": \"Number\", \"AWATER10\": \"Number\", \"BLOCKCE10\": \"String\", \"COUNTYFP10\": \"String\", \"FUNCSTAT10\": \"String\", \"INTPTLAT10\": \"String\", \"INTPTLON10\": \"String\", \"MTFCC10\": \"String\", \"NAME10\": \"String\", \"STATEFP10\": \"String\", \"TRACTCE10\": \"String\", \"UACE10\": \"String\", \"UATYP10\": \"String\", \"UR10\": \"String\", \"population\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"tabblock_06001420\",\"count\": 1000,\"geometry\": \"Polygon\",\"attributeCount\": 15,\"attributes\": [{\"attribute\": \"ALAND10\",\"count\": 162,\"type\": \"number\",\"values\": [10019,10125,10320,10339,10769,10776,10975,11206,11297,11306,11372,11825,11928,11997,1201,12044,12062,12213,12579,12945,13013,13106,13452,13985,14000,14042,14044,14053,14087,14101,14158,14169,14185,14193,14219,14237,14270,14291,14449,14452,14523,14541,14557,1457,14593,14639,14791,14799,14980,15100,15240,15260,15494,15574,15665,15730,15921,15930,15974,16117,16120,16165,16183,16238,16246,16253,16332,16353,16431,16453,16535,16537,16605,16635,16691,16994,17210,17230,17265,17308,17581,17622,17780,17893,18064,18095,18377,18586,18637,1878,18897,19453,19544,19676,19773,19818,19896,20277,20386,20486],\"min\": 280.000000,\"max\": 412555.000000},{\"attribute\": \"AWATER10\",\"count\": 1,\"type\": \"number\",\"values\": [0],\"min\": 0.000000,\"max\": 0.000000},{\"attribute\": \"BLOCKCE10\",\"count\": 72,\"type\": \"string\",\"values\": [\"1000\",\"1001\",\"1002\",\"1003\",\"1004\",\"1005\",\"1006\",\"1007\",\"1008\",\"1009\",\"1010\",\"1011\",\"1012\",\"1013\",\"1014\",\"1015\",\"1016\",\"1017\",\"1018\",\"1019\",\"1020\",\"1021\",\"1022\",\"1023\",\"1024\",\"1026\",\"1029\",\"1030\",\"1031\",\"2000\",\"2001\",\"2002\",\"2003\",\"2004\",\"2005\",\"2006\",\"2007\",\"2008\",\"2009\",\"2010\",\"2011\",\"2012\",\"2013\",\"2014\",\"2015\",\"3000\",\"3001\",\"3002\",\"3003\",\"3004\",\"3005\",\"3006\",\"3007\",\"3008\",\"3009\",\"3010\",\"3012\",\"3013\",\"3014\",\"3015\",\"3016\",\"3017\",\"3018\",\"3019\",\"3020\",\"3021\",\"3023\",\"3024\",\"3026\",\"3027\",\"3028\",\"3031\"]},{\"attribute\": \"COUNTYFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"001\"]},{\"attribute\": \"FUNCSTAT10\",\"count\": 1,\"type\": \"string\",\"values\": [\"S\"]},{\"attribute\": \"INTPTLAT10\",\"count\": 162,\"type\": \"string\",\"values\": [\"+37.8827246\",\"+37.8828579\",\"+37.8829654\",\"+37.8832245\",\"+37.8833234\",\"+37.8834620\",\"+37.8834818\",\"+37.8834939\",\"+37.8835272\",\"+37.8835363\",\"+37.8835790\",\"+37.8836932\",\"+37.8837071\",\"+37.8838362\",\"+37.8838753\",\"+37.8839739\",\"+37.8840099\",\"+37.8840797\",\"+37.8843388\",\"+37.8843696\",\"+37.8846770\",\"+37.8847438\",\"+37.8847470\",\"+37.8848967\",\"+37.8849195\",\"+37.8853070\",\"+37.8853080\",\"+37.8854489\",\"+37.8854914\",\"+37.8856461\",\"+37.8858112\",\"+37.8859970\",\"+37.8861594\",\"+37.8861944\",\"+37.8861973\",\"+37.8863229\",\"+37.8863390\",\"+37.8864607\",\"+37.8864950\",\"+37.8865962\",\"+37.8866087\",\"+37.8868308\",\"+37.8872385\",\"+37.8875706\",\"+37.8877891\",\"+37.8879459\",\"+37.8880279\",\"+37.8882387\",\"+37.8883323\",\"+37.8883405\",\"+37.8884164\",\"+37.8884185\",\"+37.8884410\",\"+37.8884411\",\"+37.8884580\",\"+37.8885408\",\"+37.8886165\",\"+37.8886345\",\"+37.8887349\",\"+37.8887826\",\"+37.8888488\",\"+37.8888596\",\"+37.8888638\",\"+37.8889080\",\"+37.8889300\",\"+37.8889340\",\"+37.8890070\",\"+37.8890495\",\"+37.8891261\",\"+37.8891773\",\"+37.8892518\",\"+37.8893267\",\"+37.8894113\",\"+37.8895187\",\"+37.8895455\",\"+37.8896695\",\"+37.8898284\",\"+37.8899556\",\"+37.8900585\",\"+37.8901108\",\"+37.8901660\",\"+37.8901726\",\"+37.8902095\",\"+37.8902144\",\"+37.8902784\",\"+37.8906969\",\"+37.8908584\",\"+37.8910287\",\"+37.8911018\",\"+37.8912006\",\"+37.8912058\",\"+37.8913200\",\"+37.8914257\",\"+37.8915386\",\"+37.8916581\",\"+37.8917135\",\"+37.8917853\",\"+37.8918042\",\"+37.8918093\",\"+37.8918237\"]},{\"attribute\": \"INTPTLON10\",\"count\": 162,\"type\": \"string\",\"values\": [\"-122.2823713\",\"-122.2826890\",\"-122.2830673\",\"-122.2834249\",\"-122.2836511\",\"-122.2837239\",\"-122.2837979\",\"-122.2844715\",\"-122.2845719\",\"-122.2848310\",\"-122.2850205\",\"-122.2851750\",\"-122.2856099\",\"-122.2859011\",\"-122.2859716\",\"-122.2863490\",\"-122.2863663\",\"-122.2866366\",\"-122.2868653\",\"-122.2869139\",\"-122.2870976\",\"-122.2871259\",\"-122.2872058\",\"-122.2872753\",\"-122.2873239\",\"-122.2873798\",\"-122.2875836\",\"-122.2876349\",\"-122.2877473\",\"-122.2877578\",\"-122.2878360\",\"-122.2879267\",\"-122.2879697\",\"-122.2883823\",\"-122.2886022\",\"-122.2886289\",\"-122.2886965\",\"-122.2887646\",\"-122.2887874\",\"-122.2889102\",\"-122.2890200\",\"-122.2892190\",\"-122.2894724\",\"-122.2895305\",\"-122.2895702\",\"-122.2896635\",\"-122.2897641\",\"-122.2899595\",\"-122.2901174\",\"-122.2903402\",\"-122.2904413\",\"-122.2905229\",\"-122.2906157\",\"-122.2909643\",\"-122.2909809\",\"-122.2911376\",\"-122.2912175\",\"-122.2913917\",\"-122.2914745\",\"-122.2918172\",\"-122.2919263\",\"-122.2920141\",\"-122.2921539\",\"-122.2923093\",\"-122.2923947\",\"-122.2926742\",\"-122.2927567\",\"-122.2927774\",\"-122.2928119\",\"-122.2928245\",\"-122.2929060\",\"-122.2932964\",\"-122.2933649\",\"-122.2934559\",\"-122.2934770\",\"-122.2935084\",\"-122.2935928\",\"-122.2936333\",\"-122.2941575\",\"-122.2942136\",\"-122.2943382\",\"-122.2944181\",\"-122.2944569\",\"-122.2945038\",\"-122.2949725\",\"-122.2950398\",\"-122.2951842\",\"-122.2952863\",\"-122.2953196\",\"-122.2953591\",\"-122.2955660\",\"-122.2958883\",\"-122.2960301\",\"-122.2960835\",\"-122.2961445\",\"-122.2961756\",\"-122.2962204\",\"-122.2964053\",\"-122.2964744\",\"-122.2967302\"]},{\"attribute\": \"MTFCC10\",\"count\": 1,\"type\": \"string\",\"values\": [\"G5040\"]},{\"attribute\": \"NAME10\",\"count\": 72,\"type\": \"string\",\"values\": [\"Block 1000\",\"Block 1001\",\"Block 1002\",\"Block 1003\",\"Block 1004\",\"Block 1005\",\"Block 1006\",\"Block 1007\",\"Block 1008\",\"Block 1009\",\"Block 1010\",\"Block 1011\",\"Block 1012\",\"Block 1013\",\"Block 1014\",\"Block 1015\",\"Block 1016\",\"Block 1017\",\"Block 1018\",\"Block 1019\",\"Block 1020\",\"Block 1021\",\"Block 1022\",\"Block 1023\",\"Block 1024\",\"Block 1026\",\"Block 1029\",\"Block 1030\",\"Block 1031\",\"Block 2000\",\"Block 2001\",\"Block 2002\",\"Block 2003\",\"Block 2004\",\"Block 2005\",\"Block 2006\",\"Block 2007\",\"Block 2008\",\"Block 2009\",\"Block 2010\",\"Block 2011\",\"Block 2012\",\"Block 2013\",\"Block 2014\",\"Block 2015\",\"Block 3000\",\"Block 3001\",\"Block 3002\",\"Block 3003\",\"Block 3004\",\"Block 3005\",\"Block 3006\",\"Block 3007\",\"Block 3008\",\"Block 3009\",\"Block 3010\",\"Block 3012\",\"Block 3013\",\"Block 3014\",\"Block 3015\",\"Block 3016\",\"Block 3017\",\"Block 3018\",\"Block 3019\",\"Block 3020\",\"Block 3021\",\"Block 3023\",\"Block 3024\",\"Block 3026\",\"Block 3027\",\"Block 3028\",\"Block 3031\"]},{\"attribute\": \"STATEFP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"06\"]},{\"attribute\": \"TRACTCE10\",\"count\": 6,\"type\": \"string\",\"values\": [\"420100\",\"420200\",\"420300\",\"420400\",\"420500\",\"420600\"]},{\"attribute\": \"UACE10\",\"count\": 1,\"type\": \"string\",\"values\": [\"78904\"]},{\"attribute\": \"UATYP10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"UR10\",\"count\": 1,\"type\": \"string\",\"values\": [\"U\"]},{\"attribute\": \"population\",\"count\": 73,\"type\": \"number\",\"values\": [1,10,11,1118,113,116,12,13,133,145,15,16,17,18,19,2,21,212,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,4,40,41,414,42,43,44,45,46,47,49,50,51,53,54,55,56,57,58,60,62,63,64,65,66,68,69,7,70,73,82,83,84,86,87,9,90,91,98],\"min\": 1.000000,\"max\": 1118.000000}]}]}}", "maxzoom": "12", "minzoom": "0", "name": "tests/join-population/tabblock_06001420.mbtiles", diff --git a/tile-join.cpp b/tile-join.cpp index 36cb366..ebfed4f 100644 --- a/tile-join.cpp +++ b/tile-join.cpp @@ -92,12 +92,6 @@ void handle(std::string message, int z, unsigned x, unsigned y, std::map(layer.name, layermap_entry(layermap.size()))); - auto file_keys = layermap.find(layer.name); - file_keys->second.minzoom = z; - file_keys->second.maxzoom = z; - } auto file_keys = layermap.find(layer.name); for (size_t f = 0; f < layer.features.size(); f++) { @@ -207,6 +201,13 @@ void handle(std::string message, int z, unsigned x, unsigned y, std::map(layer.name, layermap_entry(layermap.size()))); + file_keys = layermap.find(layer.name); + file_keys->second.minzoom = z; + file_keys->second.maxzoom = z; + } + // To keep attributes in their original order instead of alphabetical for (auto k : key_order) { auto fa = attributes.find(k); diff --git a/tile.cpp b/tile.cpp index 03a6858..a495ee4 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1468,8 +1468,8 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s FILE *prefilter_fp = NULL; pthread_t prefilter_writer; run_prefilter_args rpa; // here so it stays in scope until joined - FILE *prefilter_read_fp; - json_pull *prefilter_jp; + FILE *prefilter_read_fp = NULL; + json_pull *prefilter_jp = NULL; if (prefilter != NULL) { setup_filter(prefilter, &prefilter_write, &prefilter_read, &prefilter_pid, z, tx, ty);