diff --git a/.travis.yml b/.travis.yml index cd4c519..ca0c544 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,8 @@ install: export CXXFLAGS="--coverage -g"; export CFLAGS="--coverage -g"; export LDFLAGS="--coverage"; + elif [[ $(uname -s) == 'Linux' ]]; then + export CXX=clang++; fi; - make diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f3c803..3738b2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.9.16 + +* Switch to protozero as the library for reading and writing protocol buffers + ## 1.9.15 * Add option not to clip features diff --git a/Makefile b/Makefile index 37c23d8..57a2346 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ MANDIR ?= $(PREFIX)/share/man/man1/ CC := $(CC) CXX := $(CXX) CFLAGS := $(CFLAGS) -CXXFLAGS := $(CXXFLAGS) +CXXFLAGS := $(CXXFLAGS) -std=c++11 LDFLAGS := $(LDFLAGS) all: tippecanoe tippecanoe-enumerate tippecanoe-decode tile-join @@ -24,28 +24,25 @@ install: tippecanoe tippecanoe-enumerate tippecanoe-decode tile-join man/tippecanoe.1: README.md md2man-roff README.md > man/tippecanoe.1 -vector_tile.pb.cc vector_tile.pb.h: vector_tile.proto - protoc --cpp_out=. vector_tile.proto - PG= H = $(shell find . '(' -name '*.h' -o -name '*.hh' ')') C = $(shell find . '(' -name '*.c' -o -name '*.cc' ')') -INCLUDES = -I/usr/local/include +INCLUDES = -I/usr/local/include -I. LIBS = -L/usr/local/lib -tippecanoe: geojson.o jsonpull.o vector_tile.pb.o tile.o clip.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o - $(CXX) $(PG) $(LIBS) -O3 -g -Wall $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lprotobuf-lite -lsqlite3 -lpthread +tippecanoe: geojson.o jsonpull.o tile.o clip.o pool.o mbtiles.o geometry.o projection.o memfile.o clipper/clipper.o mvt.o + $(CXX) $(PG) $(LIBS) -O3 -g -Wall $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread tippecanoe-enumerate: enumerate.o $(CC) $(PG) $(LIBS) -O3 -g -Wall $(CFLAGS) -o $@ $^ $(LDFLAGS) -lsqlite3 -tippecanoe-decode: decode.o vector_tile.pb.o projection.o - $(CXX) $(PG) $(LIBS) -O3 -g -Wall $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lprotobuf-lite -lsqlite3 +tippecanoe-decode: decode.o projection.o mvt.o + $(CXX) $(PG) $(LIBS) -O3 -g -Wall $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -tile-join: tile-join.o vector_tile.pb.o projection.o pool.o mbtiles.o - $(CXX) $(PG) $(LIBS) -O3 -g -Wall $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lprotobuf-lite -lsqlite3 +tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o + $(CXX) $(PG) $(LIBS) -O3 -g -Wall $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 libjsonpull.a: jsonpull.o ar rc $@ $^ diff --git a/README.md b/README.md index e868cd4..56804c2 100644 --- a/README.md +++ b/README.md @@ -231,16 +231,12 @@ lower resolutions before failing if it still doesn't fit. Development ----------- -Requires protoc and sqlite3. Rebuilding the manpage +Requires sqlite3 (should already be installed on MacOS). Rebuilding the manpage uses md2man (`gem install md2man`). -MacOS: - - brew install protobuf - Linux: - sudo apt-get install libprotobuf-dev protobuf-compiler libsqlite3-dev + sudo apt-get install libsqlite3-dev Then build: diff --git a/decode.cc b/decode.cc index 5905e93..8ea0712 100644 --- a/decode.cc +++ b/decode.cc @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include #include #include @@ -10,53 +12,13 @@ #include #include #include -#include "vector_tile.pb.h" +#include "mvt.hh" #include "tile.h" extern "C" { #include "projection.h" } -// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp -inline bool is_compressed(std::string const &data) { - return data.size() > 2 && (((uint8_t) data[0] == 0x78 && (uint8_t) data[1] == 0x9C) || ((uint8_t) data[0] == 0x1F && (uint8_t) data[1] == 0x8B)); -} - -// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp -inline int decompress(std::string const &input, std::string &output) { - z_stream inflate_s; - inflate_s.zalloc = Z_NULL; - inflate_s.zfree = Z_NULL; - inflate_s.opaque = Z_NULL; - inflate_s.avail_in = 0; - inflate_s.next_in = Z_NULL; - if (inflateInit2(&inflate_s, 32 + 15) != Z_OK) { - fprintf(stderr, "error: %s\n", inflate_s.msg); - } - inflate_s.next_in = (Bytef *) input.data(); - inflate_s.avail_in = input.size(); - size_t length = 0; - do { - output.resize(length + 2 * input.size()); - inflate_s.avail_out = 2 * input.size(); - inflate_s.next_out = (Bytef *) (output.data() + length); - int ret = inflate(&inflate_s, Z_FINISH); - if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) { - fprintf(stderr, "error: %s\n", inflate_s.msg); - return 0; - } - - length += (2 * input.size() - inflate_s.avail_out); - } while (inflate_s.avail_out == 0); - inflateEnd(&inflate_s); - output.resize(length); - return 1; -} - -int dezig(unsigned n) { - return (n >> 1) ^ (-(n & 1)); -} - void printq(const char *s) { putchar('"'); for (; *s; s++) { @@ -84,23 +46,10 @@ struct draw { }; void handle(std::string message, int z, unsigned x, unsigned y, int describe) { - GOOGLE_PROTOBUF_VERIFY_VERSION; int within = 0; + mvt_tile tile; - // https://github.com/mapbox/mapnik-vector-tile/blob/master/examples/c%2B%2B/tileinfo.cpp - mapnik::vector::tile tile; - - if (is_compressed(message)) { - std::string uncompressed; - decompress(message, uncompressed); - google::protobuf::io::ArrayInputStream stream(uncompressed.c_str(), uncompressed.length()); - google::protobuf::io::CodedInputStream codedstream(&stream); - codedstream.SetTotalBytesLimit(10 * 67108864, 5 * 67108864); - if (!tile.ParseFromCodedStream(&codedstream)) { - fprintf(stderr, "Couldn't decompress tile %d/%u/%u\n", z, x, y); - exit(EXIT_FAILURE); - } - } else if (!tile.ParseFromString(message)) { + if (!tile.decode(message)) { fprintf(stderr, "Couldn't parse tile %d/%u/%u\n", z, x, y); exit(EXIT_FAILURE); } @@ -113,9 +62,9 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { printf(", \"features\": [\n"); - for (int l = 0; l < tile.layers_size(); l++) { - mapnik::vector::tile_layer layer = tile.layers(l); - int extent = layer.extent(); + 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) { @@ -124,16 +73,15 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { printf("{ \"type\": \"FeatureCollection\""); printf(", \"properties\": { \"layer\": "); - printq(layer.name().c_str()); + printq(layer.name.c_str()); printf(" }"); printf(", \"features\": [\n"); within = 0; } - for (int f = 0; f < layer.features_size(); f++) { - mapnik::vector::tile_feature feat = layer.features(f); - int px = 0, py = 0; + for (size_t f = 0; f < layer.features.size(); f++) { + mvt_feature &feat = layer.features[f]; if (within) { printf(",\n"); @@ -143,46 +91,55 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { printf("{ \"type\": \"Feature\""); printf(", \"properties\": { "); - for (int t = 0; t + 1 < feat.tags_size(); t += 2) { + for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) { if (t != 0) { printf(", "); } - const char *key = layer.keys(feat.tags(t)).c_str(); - mapnik::vector::tile_value const &val = layer.values(feat.tags(t + 1)); + 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); + } - if (val.has_string_value()) { + 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.has_int_value()) { + printq(val.string_value.c_str()); + } else if (val.type == mvt_int) { printq(key); - printf(": %lld", (long long) val.int_value()); - } else if (val.has_double_value()) { + printf(": %lld", (long long) val.numeric_value.int_value); + } else if (val.type == mvt_double) { printq(key); - double v = val.double_value(); + double v = val.numeric_value.double_value; if (v == (long long) v) { printf(": %lld", (long long) v); } else { printf(": %g", v); } - } else if (val.has_float_value()) { + } else if (val.type == mvt_float) { printq(key); - double v = val.float_value(); + double v = val.numeric_value.float_value; if (v == (long long) v) { printf(": %lld", (long long) v); } else { printf(": %g", v); } - } else if (val.has_sint_value()) { + } else if (val.type == mvt_sint) { printq(key); - printf(": %lld", (long long) val.sint_value()); - } else if (val.has_uint_value()) { + printf(": %lld", (long long) val.numeric_value.sint_value); + } else if (val.type == mvt_uint) { printq(key); - printf(": %lld", (long long) val.uint_value()); - } else if (val.has_bool_value()) { + printf(": %lld", (long long) val.numeric_value.uint_value); + } else if (val.type == mvt_bool) { printq(key); - printf(": %s", val.bool_value() ? "true" : "false"); + printf(": %s", val.numeric_value.bool_value ? "true" : "false"); } } @@ -190,32 +147,26 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { std::vector ops; - for (int g = 0; g < feat.geometry_size(); g++) { - uint32_t geom = feat.geometry(g); - uint32_t op = geom & 7; - uint32_t count = geom >> 3; + 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) { - for (size_t k = 0; k < count; k++) { - px += dezig(feat.geometry(g + 1)); - py += dezig(feat.geometry(g + 2)); - g += 2; + long long scale = 1LL << (32 - z); + long long wx = scale * x + (scale / extent) * px; + long long wy = scale * y + (scale / extent) * py; - 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; + tile2latlon(wx, wy, 32, &lat, &lon); - double lat, lon; - tile2latlon(wx, wy, 32, &lat, &lon); - - ops.push_back(draw(op, lon, lat)); - } + ops.push_back(draw(op, lon, lat)); } else { ops.push_back(draw(op, 0, 0)); } } - if (feat.type() == VT_POINT) { + if (feat.type == VT_POINT) { if (ops.size() == 1) { printf("\"type\": \"Point\", \"coordinates\": [ %f, %f ]", ops[0].lon, ops[0].lat); } else { @@ -228,7 +179,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { } printf(" ]"); } - } else if (feat.type() == VT_LINE) { + } else if (feat.type == VT_LINE) { int movetos = 0; for (size_t i = 0; i < ops.size(); i++) { if (ops[i].op == VT_MOVETO) { @@ -264,7 +215,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { } printf(" ] ]"); } - } else if (feat.type() == VT_POLYGON) { + } else if (feat.type == VT_POLYGON) { std::vector > rings; std::vector areas; diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index e4114c8..bfc79dd 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -267,22 +267,14 @@ If a tile is larger than 500K, it will try encoding that tile at progressively lower resolutions before failing if it still doesn't fit. .SH Development .PP -Requires protoc and sqlite3. Rebuilding the manpage +Requires sqlite3 (should already be installed on MacOS). Rebuilding the manpage uses md2man (\fB\fCgem install md2man\fR). .PP -MacOS: -.PP -.RS -.nf -brew install protobuf -.fi -.RE -.PP Linux: .PP .RS .nf -sudo apt\-get install libprotobuf\-dev protobuf\-compiler libsqlite3\-dev +sudo apt\-get install libsqlite3\-dev .fi .RE .PP diff --git a/mvt.cc b/mvt.cc new file mode 100644 index 0000000..f1c0357 --- /dev/null +++ b/mvt.cc @@ -0,0 +1,409 @@ +#include +#include +#include +#include +#include +#include +#include "mvt.hh" +#include "protozero/pbf_reader.hpp" +#include "protozero/pbf_writer.hpp" + +mvt_geometry::mvt_geometry(int op, long long x, long long y) { + this->op = op; + this->x = x; + this->y = y; +} + +// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp +bool is_compressed(std::string const &data) { + return data.size() > 2 && (((uint8_t) data[0] == 0x78 && (uint8_t) data[1] == 0x9C) || ((uint8_t) data[0] == 0x1F && (uint8_t) data[1] == 0x8B)); +} + +// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp +int decompress(std::string const &input, std::string &output) { + z_stream inflate_s; + inflate_s.zalloc = Z_NULL; + inflate_s.zfree = Z_NULL; + inflate_s.opaque = Z_NULL; + inflate_s.avail_in = 0; + inflate_s.next_in = Z_NULL; + if (inflateInit2(&inflate_s, 32 + 15) != Z_OK) { + fprintf(stderr, "error: %s\n", inflate_s.msg); + } + inflate_s.next_in = (Bytef *) input.data(); + inflate_s.avail_in = input.size(); + size_t length = 0; + do { + output.resize(length + 2 * input.size()); + inflate_s.avail_out = 2 * input.size(); + inflate_s.next_out = (Bytef *) (output.data() + length); + int ret = inflate(&inflate_s, Z_FINISH); + if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) { + fprintf(stderr, "error: %s\n", inflate_s.msg); + return 0; + } + + length += (2 * input.size() - inflate_s.avail_out); + } while (inflate_s.avail_out == 0); + inflateEnd(&inflate_s); + output.resize(length); + return 1; +} + +// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp +int compress(std::string const &input, std::string &output) { + z_stream deflate_s; + deflate_s.zalloc = Z_NULL; + deflate_s.zfree = Z_NULL; + deflate_s.opaque = Z_NULL; + deflate_s.avail_in = 0; + deflate_s.next_in = Z_NULL; + deflateInit2(&deflate_s, Z_BEST_COMPRESSION, Z_DEFLATED, 31, 8, Z_DEFAULT_STRATEGY); + deflate_s.next_in = (Bytef *) input.data(); + deflate_s.avail_in = input.size(); + size_t length = 0; + do { + size_t increase = input.size() / 2 + 1024; + output.resize(length + increase); + deflate_s.avail_out = increase; + deflate_s.next_out = (Bytef *) (output.data() + length); + int ret = deflate(&deflate_s, Z_FINISH); + if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) { + return -1; + } + length += (increase - deflate_s.avail_out); + } while (deflate_s.avail_out == 0); + deflateEnd(&deflate_s); + output.resize(length); + return 0; +} + +int dezig(unsigned n) { + return (n >> 1) ^ (-(n & 1)); +} + +bool mvt_tile::decode(std::string &message) { + layers.clear(); + std::string src; + + if (is_compressed(message)) { + std::string uncompressed; + decompress(message, uncompressed); + src = uncompressed; + } else { + src = message; + } + + protozero::pbf_reader reader(src); + + while (reader.next()) { + switch (reader.tag()) { + case 3: /* layer */ + { + protozero::pbf_reader layer_reader(reader.get_message()); + mvt_layer layer; + + while (layer_reader.next()) { + switch (layer_reader.tag()) { + case 1: /* name */ + layer.name = layer_reader.get_string(); + break; + + case 3: /* key */ + layer.keys.push_back(layer_reader.get_string()); + break; + + case 4: /* value */ + { + protozero::pbf_reader value_reader(layer_reader.get_message()); + mvt_value value; + + while (value_reader.next()) { + switch (value_reader.tag()) { + case 1: /* string */ + value.type = mvt_string; + value.string_value = value_reader.get_string(); + break; + + case 2: /* float */ + value.type = mvt_float; + value.numeric_value.float_value = value_reader.get_float(); + break; + + case 3: /* double */ + value.type = mvt_double; + value.numeric_value.double_value = value_reader.get_double(); + break; + + case 4: /* int */ + value.type = mvt_int; + value.numeric_value.int_value = value_reader.get_int64(); + break; + + case 5: /* uint */ + value.type = mvt_uint; + value.numeric_value.uint_value = value_reader.get_uint64(); + break; + + case 6: /* sint */ + value.type = mvt_sint; + value.numeric_value.sint_value = value_reader.get_sint64(); + break; + + case 7: /* bool */ + value.type = mvt_bool; + value.numeric_value.bool_value = value_reader.get_bool(); + break; + + default: + value_reader.skip(); + break; + } + } + + layer.values.push_back(value); + break; + } + + case 5: /* extent */ + layer.extent = layer_reader.get_uint32(); + break; + + case 2: /* feature */ + { + protozero::pbf_reader feature_reader(layer_reader.get_message()); + mvt_feature feature; + std::vector geoms; + + while (feature_reader.next()) { + switch (feature_reader.tag()) { + case 2: /* tag */ + { + auto pi = feature_reader.get_packed_uint32(); + for (auto it = pi.first; it != pi.second; ++it) { + feature.tags.push_back(*it); + } + break; + } + + case 3: /* feature type */ + feature.type = feature_reader.get_enum(); + break; + + case 4: /* geometry */ + { + auto pi = feature_reader.get_packed_uint32(); + for (auto it = pi.first; it != pi.second; ++it) { + geoms.push_back(*it); + } + break; + } + + default: + feature_reader.skip(); + break; + } + } + + long long px = 0, py = 0; + for (size_t g = 0; g < geoms.size(); g++) { + uint32_t geom = geoms[g]; + uint32_t op = geom & 7; + uint32_t count = geom >> 3; + + if (op == mvt_moveto || op == mvt_lineto) { + for (size_t k = 0; k < count && g + 2 < geoms.size(); k++) { + px += dezig(geoms[g + 1]); + py += dezig(geoms[g + 2]); + g += 2; + + feature.geometry.push_back(mvt_geometry(op, px, py)); + } + } else { + feature.geometry.push_back(mvt_geometry(op, 0, 0)); + } + } + + layer.features.push_back(feature); + break; + } + + default: + layer_reader.skip(); + break; + } + } + + for (size_t i = 0; i < layer.keys.size(); i++) { + layer.key_map.insert(std::pair(layer.keys[i], i)); + } + for (size_t i = 0; i < layer.values.size(); i++) { + layer.value_map.insert(std::pair(layer.values[i], i)); + } + + layers.push_back(layer); + break; + } + + default: + reader.skip(); + break; + } + } + + return true; +} + +std::string mvt_tile::encode() { + std::string data; + + protozero::pbf_writer writer(data); + + for (size_t i = 0; i < layers.size(); i++) { + std::string layer_string; + protozero::pbf_writer layer_writer(layer_string); + + layer_writer.add_uint32(15, layers[i].version); /* version */ + layer_writer.add_string(1, layers[i].name); /* name */ + layer_writer.add_uint32(5, layers[i].extent); /* extent */ + + for (size_t j = 0; j < layers[i].keys.size(); j++) { + layer_writer.add_string(3, layers[i].keys[j]); /* key */ + } + + for (size_t v = 0; v < layers[i].values.size(); v++) { + std::string value_string; + protozero::pbf_writer value_writer(value_string); + mvt_value &pbv = layers[i].values[v]; + + if (pbv.type == mvt_string) { + value_writer.add_string(1, pbv.string_value); + } else if (pbv.type == mvt_float) { + value_writer.add_float(2, pbv.numeric_value.float_value); + } else if (pbv.type == mvt_double) { + value_writer.add_double(3, pbv.numeric_value.double_value); + } else if (pbv.type == mvt_int) { + value_writer.add_int64(4, pbv.numeric_value.int_value); + } else if (pbv.type == mvt_uint) { + value_writer.add_uint64(5, pbv.numeric_value.uint_value); + } else if (pbv.type == mvt_sint) { + value_writer.add_sint64(6, pbv.numeric_value.sint_value); + } else if (pbv.type == mvt_bool) { + value_writer.add_bool(7, pbv.numeric_value.bool_value); + } + + layer_writer.add_message(4, value_string); + } + + for (size_t f = 0; f < layers[i].features.size(); f++) { + std::string feature_string; + protozero::pbf_writer feature_writer(feature_string); + + feature_writer.add_enum(3, layers[i].features[f].type); + feature_writer.add_packed_uint32(2, std::begin(layers[i].features[f].tags), std::end(layers[i].features[f].tags)); + + std::vector geometry; + + int px = 0, py = 0; + int cmd_idx = -1; + int cmd = -1; + int length = 0; + + std::vector &geom = layers[i].features[f].geometry; + + for (size_t g = 0; g < geom.size(); g++) { + int op = geom[g].op; + + if (op != cmd) { + if (cmd_idx >= 0) { + geometry[cmd_idx] = (length << 3) | (cmd & ((1 << 3) - 1)); + } + + cmd = op; + length = 0; + cmd_idx = geometry.size(); + geometry.push_back(0); + } + + if (op == mvt_moveto || op == mvt_lineto) { + long long wwx = geom[g].x; + long long wwy = geom[g].y; + + int dx = wwx - px; + int dy = wwy - py; + + geometry.push_back((dx << 1) ^ (dx >> 31)); + geometry.push_back((dy << 1) ^ (dy >> 31)); + + px = wwx; + py = wwy; + length++; + } else if (op == mvt_closepath) { + length++; + } else { + fprintf(stderr, "\nInternal error: corrupted geometry\n"); + exit(EXIT_FAILURE); + } + } + + if (cmd_idx >= 0) { + geometry[cmd_idx] = (length << 3) | (cmd & ((1 << 3) - 1)); + } + + feature_writer.add_packed_uint32(4, std::begin(geometry), std::end(geometry)); + layer_writer.add_message(2, feature_string); + } + + writer.add_message(3, layer_string); + } + + std::string compressed; + compress(data, compressed); + + return compressed; +} + +bool mvt_value::operator<(const mvt_value &o) const { + if (type < o.type) { + return true; + } + if (type == o.type) { + if ((type == mvt_string && string_value < o.string_value) || + (type == mvt_float && numeric_value.float_value < o.numeric_value.float_value) || + (type == mvt_double && numeric_value.double_value < o.numeric_value.double_value) || + (type == mvt_int && numeric_value.int_value < o.numeric_value.int_value) || + (type == mvt_uint && numeric_value.uint_value < o.numeric_value.uint_value) || + (type == mvt_sint && numeric_value.sint_value < o.numeric_value.sint_value) || + (type == mvt_bool && numeric_value.bool_value < o.numeric_value.bool_value)) { + return true; + } + } + + return false; +} + +void mvt_layer::tag(mvt_feature &feature, std::string key, mvt_value value) { + size_t ko, vo; + + std::map::iterator ki = key_map.find(key); + std::map::iterator vi = value_map.find(value); + + if (ki == key_map.end()) { + ko = keys.size(); + keys.push_back(key); + key_map.insert(std::pair(key, ko)); + } else { + ko = ki->second; + } + + if (vi == value_map.end()) { + vo = values.size(); + values.push_back(value); + value_map.insert(std::pair(value, vo)); + } else { + vo = vi->second; + } + + feature.tags.push_back(ko); + feature.tags.push_back(vo); +} diff --git a/mvt.hh b/mvt.hh new file mode 100644 index 0000000..ce6361d --- /dev/null +++ b/mvt.hh @@ -0,0 +1,81 @@ +struct mvt_value; +struct mvt_layer; + +enum mvt_operation { + mvt_moveto = 1, + mvt_lineto = 2, + mvt_closepath = 7 +}; + +struct mvt_geometry { + int /* mvt_operation */ op; + long long x; + long long y; + + mvt_geometry(int op, long long x, long long y); +}; + +enum mvt_geometry_type { + mvt_point = 1, + mvt_linestring = 2, + mvt_polygon = 3 +}; + +struct mvt_feature { + std::vector tags; + int /* mvt_geometry_type */ type; + std::vector geometry; +}; + +enum mvt_value_type { + mvt_string, + mvt_float, + mvt_double, + mvt_int, + mvt_uint, + mvt_sint, + mvt_bool +}; + +struct mvt_value { + mvt_value_type type; + std::string string_value; + union { + float float_value; + double double_value; + long long int_value; + unsigned long long uint_value; + long long sint_value; + bool bool_value; + } numeric_value; + + bool operator<(const mvt_value &o) const; +}; + +struct mvt_layer { + int version; + std::string name; + std::vector features; + std::vector keys; + std::vector values; + int 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); + + // For tracking the key-value constants already used in this layer + std::map key_map; + std::map value_map; +}; + +struct mvt_tile { + std::vector layers; + + std::string encode(); + bool decode(std::string &message); +}; + +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); diff --git a/protozero/byteswap.hpp b/protozero/byteswap.hpp new file mode 100644 index 0000000..a018c1c --- /dev/null +++ b/protozero/byteswap.hpp @@ -0,0 +1,71 @@ +#ifndef PROTOZERO_BYTESWAP_HPP +#define PROTOZERO_BYTESWAP_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file byteswap.hpp + * + * @brief Contains functions to swap bytes in values (for different endianness). + */ + +#include +#include + +#include + +namespace protozero { + +/** + * Swap N byte value between endianness formats. This template function must + * be specialized to actually work. + */ +template +inline void byteswap(const char* /*data*/, char* /*result*/) { + static_assert(N == 1, "Can only swap 4 or 8 byte values"); +} + +/** + * Swap 4 byte value (int32_t, uint32_t, float) between endianness formats. + */ +template <> +inline void byteswap<4>(const char* data, char* result) { +#ifdef PROTOZERO_USE_BUILTIN_BSWAP + *reinterpret_cast(result) = __builtin_bswap32(*reinterpret_cast(data)); +#else + result[3] = data[0]; + result[2] = data[1]; + result[1] = data[2]; + result[0] = data[3]; +#endif +} + +/** + * Swap 8 byte value (int64_t, uint64_t, double) between endianness formats. + */ +template <> +inline void byteswap<8>(const char* data, char* result) { +#ifdef PROTOZERO_USE_BUILTIN_BSWAP + *reinterpret_cast(result) = __builtin_bswap64(*reinterpret_cast(data)); +#else + result[7] = data[0]; + result[6] = data[1]; + result[5] = data[2]; + result[4] = data[3]; + result[3] = data[4]; + result[2] = data[5]; + result[1] = data[6]; + result[0] = data[7]; +#endif +} + +} // end namespace protozero + +#endif // PROTOZERO_BYTESWAP_HPP diff --git a/protozero/config.hpp b/protozero/config.hpp new file mode 100644 index 0000000..8465c96 --- /dev/null +++ b/protozero/config.hpp @@ -0,0 +1,59 @@ +#ifndef PROTOZERO_CONFIG_HPP +#define PROTOZERO_CONFIG_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +#include + +/** + * @file config.hpp + * + * @brief Contains macro checks for different configurations. + */ + +#define PROTOZERO_LITTLE_ENDIAN 1234 +#define PROTOZERO_BIG_ENDIAN 4321 + +// Find out which byte order the machine has. +#if defined(__BYTE_ORDER) +# if (__BYTE_ORDER == __LITTLE_ENDIAN) +# define PROTOZERO_BYTE_ORDER PROTOZERO_LITTLE_ENDIAN +# endif +# if (__BYTE_ORDER == __BIG_ENDIAN) +# define PROTOZERO_BYTE_ORDER PROTOZERO_BIG_ENDIAN +# endif +#else +// This probably isn't a very good default, but might do until we figure +// out something better. +# define PROTOZERO_BYTE_ORDER PROTOZERO_LITTLE_ENDIAN +#endif + +// On some ARM machines and depending on compiler settings access to unaligned +// floating point values will result in a SIGBUS. Do not use the bare pointers +// in this case. +#if PROTOZERO_BYTE_ORDER == PROTOZERO_LITTLE_ENDIAN +# if !defined(__arm__) && !defined(_M_ARM) +# ifndef PROTOZERO_DO_NOT_USE_BARE_POINTER +# define PROTOZERO_USE_BARE_POINTER_FOR_PACKED_FIXED +# endif +# endif +#endif + +// Check whether __builtin_bswap is available +#if defined(__GNUC__) || defined(__clang__) +# define PROTOZERO_USE_BUILTIN_BSWAP +#endif + +// Wrapper for assert() used for testing +#ifndef protozero_assert +# define protozero_assert(x) assert(x) +#endif + +#endif // PROTOZERO_CONFIG_HPP diff --git a/protozero/exception.hpp b/protozero/exception.hpp new file mode 100644 index 0000000..5c7ab54 --- /dev/null +++ b/protozero/exception.hpp @@ -0,0 +1,68 @@ +#ifndef PROTOZERO_EXCEPTION_HPP +#define PROTOZERO_EXCEPTION_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file exception.hpp + * + * @brief Contains the exceptions used in the protozero library. + */ + +#include + +/** + * @brief All parts of the protozero header-only library are in this namespace. + */ +namespace protozero { + +/** + * All exceptions explicitly thrown by the functions of the protozero library + * derive from this exception. + */ +struct exception : std::exception { + /// Returns the explanatory string. + const char *what() const noexcept override { return "pbf exception"; } +}; + +/** + * This exception is thrown when parsing a varint thats larger than allowed. + * This should never happen unless the data is corrupted. + */ +struct varint_too_long_exception : exception { + /// Returns the explanatory string. + const char *what() const noexcept override { return "varint too long exception"; } +}; + +/** + * This exception is thrown when the wire type of a pdf field is unknown. + * This should never happen unless the data is corrupted. + */ +struct unknown_pbf_wire_type_exception : exception { + /// Returns the explanatory string. + const char *what() const noexcept override { return "unknown pbf field type exception"; } +}; + +/** + * This exception is thrown when we are trying to read a field and there + * are not enough bytes left in the buffer to read it. Almost all functions + * of the pbf_reader class can throw this exception. + * + * This should never happen unless the data is corrupted or you have + * initialized the pbf_reader object with incomplete data. + */ +struct end_of_buffer_exception : exception { + /// Returns the explanatory string. + const char *what() const noexcept override { return "end of buffer exception"; } +}; + +} // end namespace protozero + +#endif // PROTOZERO_EXCEPTION_HPP diff --git a/protozero/pbf_builder.hpp b/protozero/pbf_builder.hpp new file mode 100644 index 0000000..548f4ce --- /dev/null +++ b/protozero/pbf_builder.hpp @@ -0,0 +1,139 @@ +#ifndef PROTOZERO_PBF_BUILDER_HPP +#define PROTOZERO_PBF_BUILDER_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file pbf_builder.hpp + * + * @brief Contains the pbf_builder template class. + */ + +#include + +#include +#include + +namespace protozero { + +/** + * The pbf_builder is used to write PBF formatted messages into a buffer. It + * is based on the pbf_writer class and has all the same methods. The + * difference is that while the pbf_writer class takes an integer tag, + * this template class takes a tag of the template type T. The idea is that + * T will be an enumeration value and this helps reduce the possibility of + * programming errors. + * + * Almost all methods in this class can throw an std::bad_alloc exception if + * the std::string used as a buffer wants to resize. + * + * Read the tutorial to understand how this class is used. + */ +template +class pbf_builder : public pbf_writer { + + static_assert(std::is_same::type>::value, + "T must be enum with underlying type protozero::pbf_tag_type"); + +public: + + using enum_type = T; + + pbf_builder(std::string& data) noexcept : + pbf_writer(data) { + } + + template + pbf_builder(pbf_writer& parent_writer, P tag) noexcept : + pbf_writer(parent_writer, pbf_tag_type(tag)) { + } + +/// @cond INTERNAL +#define PROTOZERO_WRITER_WRAP_ADD_SCALAR(name, type) \ + inline void add_##name(T tag, type value) { \ + pbf_writer::add_##name(pbf_tag_type(tag), value); \ + } + + PROTOZERO_WRITER_WRAP_ADD_SCALAR(bool, bool) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(enum, int32_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(int32, int32_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(sint32, int32_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(uint32, uint32_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(int64, int64_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(sint64, int64_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(uint64, uint64_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(fixed32, uint32_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(sfixed32, int32_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(fixed64, uint64_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(sfixed64, int64_t) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(float, float) + PROTOZERO_WRITER_WRAP_ADD_SCALAR(double, double) + +#undef PROTOZERO_WRITER_WRAP_ADD_SCALAR +/// @endcond + + inline void add_bytes(T tag, const char* value, std::size_t size) { + pbf_writer::add_bytes(pbf_tag_type(tag), value, size); + } + + inline void add_bytes(T tag, const std::string& value) { + pbf_writer::add_bytes(pbf_tag_type(tag), value); + } + + inline void add_string(T tag, const char* value, std::size_t size) { + pbf_writer::add_string(pbf_tag_type(tag), value, size); + } + + inline void add_string(T tag, const std::string& value) { + pbf_writer::add_string(pbf_tag_type(tag), value); + } + + inline void add_string(T tag, const char* value) { + pbf_writer::add_string(pbf_tag_type(tag), value); + } + + inline void add_message(T tag, const char* value, std::size_t size) { + pbf_writer::add_message(pbf_tag_type(tag), value, size); + } + + inline void add_message(T tag, const std::string& value) { + pbf_writer::add_message(pbf_tag_type(tag), value); + } + +/// @cond INTERNAL +#define PROTOZERO_WRITER_WRAP_ADD_PACKED(name) \ + template \ + inline void add_packed_##name(T tag, InputIterator first, InputIterator last) { \ + pbf_writer::add_packed_##name(pbf_tag_type(tag), first, last); \ + } + + PROTOZERO_WRITER_WRAP_ADD_PACKED(bool) + PROTOZERO_WRITER_WRAP_ADD_PACKED(enum) + PROTOZERO_WRITER_WRAP_ADD_PACKED(int32) + PROTOZERO_WRITER_WRAP_ADD_PACKED(sint32) + PROTOZERO_WRITER_WRAP_ADD_PACKED(uint32) + PROTOZERO_WRITER_WRAP_ADD_PACKED(int64) + PROTOZERO_WRITER_WRAP_ADD_PACKED(sint64) + PROTOZERO_WRITER_WRAP_ADD_PACKED(uint64) + PROTOZERO_WRITER_WRAP_ADD_PACKED(fixed32) + PROTOZERO_WRITER_WRAP_ADD_PACKED(sfixed32) + PROTOZERO_WRITER_WRAP_ADD_PACKED(fixed64) + PROTOZERO_WRITER_WRAP_ADD_PACKED(sfixed64) + PROTOZERO_WRITER_WRAP_ADD_PACKED(float) + PROTOZERO_WRITER_WRAP_ADD_PACKED(double) + +#undef PROTOZERO_WRITER_WRAP_ADD_PACKED +/// @endcond + +}; + +} // end namespace protozero + +#endif // PROTOZERO_PBF_BUILDER_HPP diff --git a/protozero/pbf_message.hpp b/protozero/pbf_message.hpp new file mode 100644 index 0000000..45f01c1 --- /dev/null +++ b/protozero/pbf_message.hpp @@ -0,0 +1,94 @@ +#ifndef PROTOZERO_PBF_MESSAGE_HPP +#define PROTOZERO_PBF_MESSAGE_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file pbf_message.hpp + * + * @brief Contains the pbf_message class. + */ + +#include + +#include +#include + +namespace protozero { + +/** + * This class represents a protobuf message. Either a top-level message or + * a nested sub-message. Top-level messages can be created from any buffer + * with a pointer and length: + * + * @code + * enum class Message : protozero::pbf_tag_type { + * ... + * }; + * + * std::string buffer; + * // fill buffer... + * pbf_message message(buffer.data(), buffer.size()); + * @endcode + * + * Sub-messages are created using get_message(): + * + * @code + * enum class SubMessage : protozero::pbf_tag_type { + * ... + * }; + * + * pbf_message message(...); + * message.next(); + * pbf_message submessage = message.get_message(); + * @endcode + * + * All methods of the pbf_message class except get_bytes() and get_string() + * provide the strong exception guarantee, ie they either succeed or do not + * change the pbf_message object they are called on. Use the get_data() method + * instead of get_bytes() or get_string(), if you need this guarantee. + * + * This template class is based on the pbf_reader class and has all the same + * methods. The difference is that whereever the pbf_reader class takes an + * integer tag, this template class takes a tag of the template type T. + * + * Read the tutorial to understand how this class is used. + */ +template +class pbf_message : public pbf_reader { + + static_assert(std::is_same::type>::value, "T must be enum with underlying type protozero::pbf_tag_type"); + +public: + + using enum_type = T; + + template + pbf_message(Args&&... args) noexcept : + pbf_reader(std::forward(args)...) { + } + + inline bool next() { + return pbf_reader::next(); + } + + inline bool next(T tag) { + return pbf_reader::next(pbf_tag_type(tag)); + } + + inline T tag() const noexcept { + return T(pbf_reader::tag()); + } + +}; + +} // end namespace protozero + +#endif // PROTOZERO_PBF_MESSAGE_HPP diff --git a/protozero/pbf_reader.hpp b/protozero/pbf_reader.hpp new file mode 100644 index 0000000..58b3884 --- /dev/null +++ b/protozero/pbf_reader.hpp @@ -0,0 +1,1077 @@ +#ifndef PROTOZERO_PBF_READER_HPP +#define PROTOZERO_PBF_READER_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file pbf_reader.hpp + * + * @brief Contains the pbf_reader class. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#if PROTOZERO_BYTE_ORDER != PROTOZERO_LITTLE_ENDIAN +# include +#endif + +namespace protozero { + +/** + * This class represents a protobuf message. Either a top-level message or + * a nested sub-message. Top-level messages can be created from any buffer + * with a pointer and length: + * + * @code + * std::string buffer; + * // fill buffer... + * pbf_reader message(buffer.data(), buffer.size()); + * @endcode + * + * Sub-messages are created using get_message(): + * + * @code + * pbf_reader message(...); + * message.next(); + * pbf_reader submessage = message.get_message(); + * @endcode + * + * All methods of the pbf_reader class except get_bytes() and get_string() + * provide the strong exception guarantee, ie they either succeed or do not + * change the pbf_reader object they are called on. Use the get_data() method + * instead of get_bytes() or get_string(), if you need this guarantee. + */ +class pbf_reader { + + // A pointer to the next unread data. + const char *m_data = nullptr; + + // A pointer to one past the end of data. + const char *m_end = nullptr; + + // The wire type of the current field. + pbf_wire_type m_wire_type = pbf_wire_type::unknown; + + // The tag of the current field. + pbf_tag_type m_tag = 0; + + // Copy N bytes from src to dest on little endian machines, on big endian + // swap the bytes in the process. + template + static void copy_or_byteswap(const char* src, void* dest) noexcept { +#if PROTOZERO_BYTE_ORDER == PROTOZERO_LITTLE_ENDIAN + memcpy(dest, src, N); +#else + byteswap(src, reinterpret_cast(dest)); +#endif + } + + template + inline T get_fixed() { + T result; + skip_bytes(sizeof(T)); + copy_or_byteswap(m_data - sizeof(T), &result); + return result; + } + +#ifdef PROTOZERO_USE_BARE_POINTER_FOR_PACKED_FIXED + + template + using const_fixed_iterator = const T*; + + template + inline std::pair, const_fixed_iterator> create_fixed_iterator_pair(const char* first, const char* last) { + return std::make_pair(reinterpret_cast(first), + reinterpret_cast(last)); + } + +#else + + template + class const_fixed_iterator : public std::iterator { + + const char* m_data; + const char* m_end; + + public: + + const_fixed_iterator() noexcept : + m_data(nullptr), + m_end(nullptr) { + } + + const_fixed_iterator(const char *data, const char* end) noexcept : + m_data(data), + m_end(end) { + } + + const_fixed_iterator(const const_fixed_iterator&) noexcept = default; + const_fixed_iterator(const_fixed_iterator&&) noexcept = default; + + const_fixed_iterator& operator=(const const_fixed_iterator&) noexcept = default; + const_fixed_iterator& operator=(const_fixed_iterator&&) noexcept = default; + + ~const_fixed_iterator() noexcept = default; + + T operator*() { + T result; + copy_or_byteswap(m_data , &result); + return result; + } + + const_fixed_iterator& operator++() { + m_data += sizeof(T); + return *this; + } + + const_fixed_iterator operator++(int) { + const const_fixed_iterator tmp(*this); + ++(*this); + return tmp; + } + + bool operator==(const const_fixed_iterator& rhs) const noexcept { + return m_data == rhs.m_data && m_end == rhs.m_end; + } + + bool operator!=(const const_fixed_iterator& rhs) const noexcept { + return !(*this == rhs); + } + + }; // class const_fixed_iterator + + template + inline std::pair, const_fixed_iterator> create_fixed_iterator_pair(const char* first, const char* last) { + return std::make_pair(const_fixed_iterator(first, last), + const_fixed_iterator(last, last)); + } + +#endif + + template + inline std::pair, const_fixed_iterator> packed_fixed() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + auto len = get_len_and_skip(); + protozero_assert(len % sizeof(T) == 0); + return create_fixed_iterator_pair(m_data-len, m_data); + } + + template inline T get_varint(); + template inline T get_svarint(); + + inline pbf_length_type get_length() { return get_varint(); } + + inline void skip_bytes(pbf_length_type len); + + inline pbf_length_type get_len_and_skip(); + +public: + + /** + * Construct a pbf_reader message from a data pointer and a length. The pointer + * will be stored inside the pbf_reader object, no data is copied. So you must + * make sure the buffer stays valid as long as the pbf_reader object is used. + * + * The buffer must contain a complete protobuf message. + * + * @post There is no current field. + */ + inline pbf_reader(const char *data, std::size_t length) noexcept; + + /** + * Construct a pbf_reader message from a data pointer and a length. The pointer + * will be stored inside the pbf_reader object, no data is copied. So you must + * make sure the buffer stays valid as long as the pbf_reader object is used. + * + * The buffer must contain a complete protobuf message. + * + * @post There is no current field. + */ + inline pbf_reader(std::pair data) noexcept; + + /** + * Construct a pbf_reader message from a std::string. A pointer to the string + * internals will be stored inside the pbf_reader object, no data is copied. + * So you must make sure the string is unchanged as long as the pbf_reader + * object is used. + * + * The string must contain a complete protobuf message. + * + * @post There is no current field. + */ + inline pbf_reader(const std::string& data) noexcept; + + /** + * pbf_reader can be default constructed and behaves like it has an empty + * buffer. + */ + inline pbf_reader() noexcept = default; + + /// pbf_reader messages can be copied trivially. + inline pbf_reader(const pbf_reader&) noexcept = default; + + /// pbf_reader messages can be moved trivially. + inline pbf_reader(pbf_reader&&) noexcept = default; + + /// pbf_reader messages can be copied trivially. + inline pbf_reader& operator=(const pbf_reader& other) noexcept = default; + + /// pbf_reader messages can be moved trivially. + inline pbf_reader& operator=(pbf_reader&& other) noexcept = default; + + inline ~pbf_reader() = default; + + /** + * In a boolean context the pbf_reader class evaluates to `true` if there are + * still fields available and to `false` if the last field has been read. + */ + inline operator bool() const noexcept; + + /** + * Return the length in bytes of the current message. If you have + * already called next() and/or any of the get_*() functions, this will + * return the remaining length. + * + * This can, for instance, be used to estimate the space needed for a + * buffer. Of course you have to know reasonably well what data to expect + * and how it is encoded for this number to have any meaning. + */ + std::size_t length() const noexcept { + return std::size_t(m_end - m_data); + } + + /** + * Set next field in the message as the current field. This is usually + * called in a while loop: + * + * @code + * pbf_reader message(...); + * while (message.next()) { + * // handle field + * } + * @endcode + * + * @returns `true` if there is a next field, `false` if not. + * @pre There must be no current field. + * @post If it returns `true` there is a current field now. + */ + inline bool next(); + + /** + * Set next field with given tag in the message as the current field. + * Fields with other tags are skipped. This is usually called in a while + * loop for repeated fields: + * + * @code + * pbf_reader message(...); + * while (message.next(17)) { + * // handle field + * } + * @endcode + * + * or you can call it just once to get the one field with this tag: + * + * @code + * pbf_reader message(...); + * if (message.next(17)) { + * // handle field + * } + * @endcode + * + * @returns `true` if there is a next field with this tag. + * @pre There must be no current field. + * @post If it returns `true` there is a current field now with the given tag. + */ + inline bool next(pbf_tag_type tag); + + /** + * The tag of the current field. The tag is the field number from the + * description in the .proto file. + * + * Call next() before calling this function to set the current field. + * + * @returns tag of the current field. + * @pre There must be a current field (ie. next() must have returned `true`). + */ + inline pbf_tag_type tag() const noexcept; + + /** + * Get the wire type of the current field. The wire types are: + * + * * 0 - varint + * * 1 - 64 bit + * * 2 - length-delimited + * * 5 - 32 bit + * + * All other types are illegal. + * + * Call next() before calling this function to set the current field. + * + * @returns wire type of the current field. + * @pre There must be a current field (ie. next() must have returned `true`). + */ + inline pbf_wire_type wire_type() const noexcept; + + /** + * Check the wire type of the current field. + * + * @returns `true` if the current field has the given wire type. + * @pre There must be a current field (ie. next() must have returned `true`). + */ + inline bool has_wire_type(pbf_wire_type type) const noexcept; + + /** + * Consume the current field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @post The current field was consumed and there is no current field now. + */ + inline void skip(); + + ///@{ + /** + * @name Scalar field accessor functions + */ + + /** + * Consume and return value of current "bool" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "bool". + * @post The current field was consumed and there is no current field now. + */ + inline bool get_bool(); + + /** + * Consume and return value of current "enum" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "enum". + * @post The current field was consumed and there is no current field now. + */ + inline int32_t get_enum() { + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + return get_varint(); + } + + /** + * Consume and return value of current "int32" varint field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "int32". + * @post The current field was consumed and there is no current field now. + */ + inline int32_t get_int32() { + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + return get_varint(); + } + + /** + * Consume and return value of current "sint32" varint field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "sint32". + * @post The current field was consumed and there is no current field now. + */ + inline int32_t get_sint32() { + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + return get_svarint(); + } + + /** + * Consume and return value of current "uint32" varint field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "uint32". + * @post The current field was consumed and there is no current field now. + */ + inline uint32_t get_uint32() { + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + return get_varint(); + } + + /** + * Consume and return value of current "int64" varint field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "int64". + * @post The current field was consumed and there is no current field now. + */ + inline int64_t get_int64() { + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + return get_varint(); + } + + /** + * Consume and return value of current "sint64" varint field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "sint64". + * @post The current field was consumed and there is no current field now. + */ + inline int64_t get_sint64() { + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + return get_svarint(); + } + + /** + * Consume and return value of current "uint64" varint field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "uint64". + * @post The current field was consumed and there is no current field now. + */ + inline uint64_t get_uint64() { + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + return get_varint(); + } + + /** + * Consume and return value of current "fixed32" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "fixed32". + * @post The current field was consumed and there is no current field now. + */ + inline uint32_t get_fixed32(); + + /** + * Consume and return value of current "sfixed32" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "sfixed32". + * @post The current field was consumed and there is no current field now. + */ + inline int32_t get_sfixed32(); + + /** + * Consume and return value of current "fixed64" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "fixed64". + * @post The current field was consumed and there is no current field now. + */ + inline uint64_t get_fixed64(); + + /** + * Consume and return value of current "sfixed64" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "sfixed64". + * @post The current field was consumed and there is no current field now. + */ + inline int64_t get_sfixed64(); + + /** + * Consume and return value of current "float" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "float". + * @post The current field was consumed and there is no current field now. + */ + inline float get_float(); + + /** + * Consume and return value of current "double" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "double". + * @post The current field was consumed and there is no current field now. + */ + inline double get_double(); + + /** + * Consume and return value of current "bytes" or "string" field. + * + * @returns A pair with a pointer to the data and the length of the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "bytes" or "string". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_data(); + + /** + * Consume and return value of current "bytes" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "bytes". + * @post The current field was consumed and there is no current field now. + */ + inline std::string get_bytes(); + + /** + * Consume and return value of current "string" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "string". + * @post The current field was consumed and there is no current field now. + */ + inline std::string get_string(); + + /** + * Consume and return value of current "message" field. + * + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "message". + * @post The current field was consumed and there is no current field now. + */ + inline pbf_reader get_message() { + return pbf_reader(get_data()); + } + + ///@} + +private: + + template + class const_varint_iterator : public std::iterator { + + protected: + + const char* m_data; + const char* m_end; + + public: + + const_varint_iterator() noexcept : + m_data(nullptr), + m_end(nullptr) { + } + + const_varint_iterator(const char *data, const char* end) noexcept : + m_data(data), + m_end(end) { + } + + const_varint_iterator(const const_varint_iterator&) noexcept = default; + const_varint_iterator(const_varint_iterator&&) noexcept = default; + + const_varint_iterator& operator=(const const_varint_iterator&) noexcept = default; + const_varint_iterator& operator=(const_varint_iterator&&) noexcept = default; + + ~const_varint_iterator() noexcept = default; + + T operator*() { + const char* d = m_data; // will be thrown away + return static_cast(decode_varint(&d, m_end)); + } + + const_varint_iterator& operator++() { + // Ignore the result, we call decode_varint() just for the + // side-effect of updating m_data. + decode_varint(&m_data, m_end); + return *this; + } + + const_varint_iterator operator++(int) { + const const_varint_iterator tmp(*this); + ++(*this); + return tmp; + } + + bool operator==(const const_varint_iterator& rhs) const noexcept { + return m_data == rhs.m_data && m_end == rhs.m_end; + } + + bool operator!=(const const_varint_iterator& rhs) const noexcept { + return !(*this == rhs); + } + + }; // class const_varint_iterator + + template + class const_svarint_iterator : public const_varint_iterator { + + public: + + const_svarint_iterator() noexcept : + const_varint_iterator() { + } + + const_svarint_iterator(const char *data, const char* end) noexcept : + const_varint_iterator(data, end) { + } + + const_svarint_iterator(const const_svarint_iterator&) = default; + const_svarint_iterator(const_svarint_iterator&&) = default; + + const_svarint_iterator& operator=(const const_svarint_iterator&) = default; + const_svarint_iterator& operator=(const_svarint_iterator&&) = default; + + ~const_svarint_iterator() = default; + + T operator*() { + const char* d = this->m_data; // will be thrown away + return static_cast(decode_zigzag64(decode_varint(&d, this->m_end))); + } + + const_svarint_iterator& operator++() { + // Ignore the result, we call decode_varint() just for the + // side-effect of updating m_data. + decode_varint(&this->m_data, this->m_end); + return *this; + } + + const_svarint_iterator operator++(int) { + const const_svarint_iterator tmp(*this); + ++(*this); + return tmp; + } + + }; // class const_svarint_iterator + +public: + + /// Forward iterator for iterating over bool (int32 varint) values. + typedef const_varint_iterator< int32_t> const_bool_iterator; + + /// Forward iterator for iterating over enum (int32 varint) values. + typedef const_varint_iterator< int32_t> const_enum_iterator; + + /// Forward iterator for iterating over int32 (varint) values. + typedef const_varint_iterator< int32_t> const_int32_iterator; + + /// Forward iterator for iterating over sint32 (varint) values. + typedef const_svarint_iterator const_sint32_iterator; + + /// Forward iterator for iterating over uint32 (varint) values. + typedef const_varint_iterator const_uint32_iterator; + + /// Forward iterator for iterating over int64 (varint) values. + typedef const_varint_iterator< int64_t> const_int64_iterator; + + /// Forward iterator for iterating over sint64 (varint) values. + typedef const_svarint_iterator const_sint64_iterator; + + /// Forward iterator for iterating over uint64 (varint) values. + typedef const_varint_iterator const_uint64_iterator; + + ///@{ + /** + * @name Repeated packed field accessor functions + */ + + /** + * Consume current "repeated packed bool" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed bool". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_bool(); + + /** + * Consume current "repeated packed enum" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed enum". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_enum(); + + /** + * Consume current "repeated packed int32" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed int32". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_int32(); + + /** + * Consume current "repeated packed sint32" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed sint32". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_sint32(); + + /** + * Consume current "repeated packed uint32" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed uint32". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_uint32(); + + /** + * Consume current "repeated packed int64" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed int64". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_int64(); + + /** + * Consume current "repeated packed sint64" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed sint64". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_sint64(); + + /** + * Consume current "repeated packed uint64" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed uint64". + * @post The current field was consumed and there is no current field now. + */ + inline std::pair get_packed_uint64(); + + /** + * Consume current "repeated packed fixed32" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed fixed32". + * @post The current field was consumed and there is no current field now. + */ + inline auto get_packed_fixed32() -> decltype(packed_fixed()) { + return packed_fixed(); + } + + /** + * Consume current "repeated packed sfixed32" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed sfixed32". + * @post The current field was consumed and there is no current field now. + */ + inline auto get_packed_sfixed32() -> decltype(packed_fixed()) { + return packed_fixed(); + } + + /** + * Consume current "repeated packed fixed64" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed fixed64". + * @post The current field was consumed and there is no current field now. + */ + inline auto get_packed_fixed64() -> decltype(packed_fixed()) { + return packed_fixed(); + } + + /** + * Consume current "repeated packed sfixed64" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed sfixed64". + * @post The current field was consumed and there is no current field now. + */ + inline auto get_packed_sfixed64() -> decltype(packed_fixed()) { + return packed_fixed(); + } + + /** + * Consume current "repeated packed float" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed float". + * @post The current field was consumed and there is no current field now. + */ + inline auto get_packed_float() -> decltype(packed_fixed()) { + return packed_fixed(); + } + + /** + * Consume current "repeated packed double" field. + * + * @returns a pair of iterators to the beginning and one past the end of + * the data. + * @pre There must be a current field (ie. next() must have returned `true`). + * @pre The current field must be of type "repeated packed double". + * @post The current field was consumed and there is no current field now. + */ + inline auto get_packed_double() -> decltype(packed_fixed()) { + return packed_fixed(); + } + + ///@} + +}; // class pbf_reader + +pbf_reader::pbf_reader(const char *data, std::size_t length) noexcept + : m_data(data), + m_end(data + length), + m_wire_type(pbf_wire_type::unknown), + m_tag(0) { +} + +pbf_reader::pbf_reader(std::pair data) noexcept + : m_data(data.first), + m_end(data.first + data.second), + m_wire_type(pbf_wire_type::unknown), + m_tag(0) { +} + +pbf_reader::pbf_reader(const std::string& data) noexcept + : m_data(data.data()), + m_end(data.data() + data.size()), + m_wire_type(pbf_wire_type::unknown), + m_tag(0) { +} + +pbf_reader::operator bool() const noexcept { + return m_data < m_end; +} + +bool pbf_reader::next() { + if (m_data == m_end) { + return false; + } + + auto value = get_varint(); + m_tag = value >> 3; + + // tags 0 and 19000 to 19999 are not allowed as per + // https://developers.google.com/protocol-buffers/docs/proto + protozero_assert(((m_tag > 0 && m_tag < 19000) || (m_tag > 19999 && m_tag <= ((1 << 29) - 1))) && "tag out of range"); + + m_wire_type = pbf_wire_type(value & 0x07); + switch (m_wire_type) { + case pbf_wire_type::varint: + case pbf_wire_type::fixed64: + case pbf_wire_type::length_delimited: + case pbf_wire_type::fixed32: + break; + default: + throw unknown_pbf_wire_type_exception(); + } + + return true; +} + +bool pbf_reader::next(pbf_tag_type requested_tag) { + while (next()) { + if (m_tag == requested_tag) { + return true; + } else { + skip(); + } + } + return false; +} + +pbf_tag_type pbf_reader::tag() const noexcept { + return m_tag; +} + +pbf_wire_type pbf_reader::wire_type() const noexcept { + return m_wire_type; +} + +bool pbf_reader::has_wire_type(pbf_wire_type type) const noexcept { + return wire_type() == type; +} + +void pbf_reader::skip_bytes(pbf_length_type len) { + if (m_data + len > m_end) { + throw end_of_buffer_exception(); + } + m_data += len; + +// In debug builds reset the tag to zero so that we can detect (some) +// wrong code. +#ifndef NDEBUG + m_tag = 0; +#endif +} + +void pbf_reader::skip() { + protozero_assert(tag() != 0 && "call next() before calling skip()"); + switch (wire_type()) { + case pbf_wire_type::varint: + (void)get_uint32(); // called for the side-effect of skipping value + break; + case pbf_wire_type::fixed64: + skip_bytes(8); + break; + case pbf_wire_type::length_delimited: + skip_bytes(get_length()); + break; + case pbf_wire_type::fixed32: + skip_bytes(4); + break; + default: + protozero_assert(false && "can not be here because next() should have thrown already"); + } +} + +pbf_length_type pbf_reader::get_len_and_skip() { + auto len = get_length(); + skip_bytes(len); + return len; +} + +template +T pbf_reader::get_varint() { + return static_cast(decode_varint(&m_data, m_end)); +} + +template +T pbf_reader::get_svarint() { + protozero_assert((has_wire_type(pbf_wire_type::varint) || has_wire_type(pbf_wire_type::length_delimited)) && "not a varint"); + return static_cast(decode_zigzag64(decode_varint(&m_data, m_end))); +} + +uint32_t pbf_reader::get_fixed32() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::fixed32) && "not a 32-bit fixed"); + return get_fixed(); +} + +int32_t pbf_reader::get_sfixed32() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::fixed32) && "not a 32-bit fixed"); + return get_fixed(); +} + +uint64_t pbf_reader::get_fixed64() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::fixed64) && "not a 64-bit fixed"); + return get_fixed(); +} + +int64_t pbf_reader::get_sfixed64() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::fixed64) && "not a 64-bit fixed"); + return get_fixed(); +} + +float pbf_reader::get_float() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::fixed32) && "not a 32-bit fixed"); + return get_fixed(); +} + +double pbf_reader::get_double() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::fixed64) && "not a 64-bit fixed"); + return get_fixed(); +} + +bool pbf_reader::get_bool() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::varint) && "not a varint"); + protozero_assert((*m_data & 0x80) == 0 && "not a 1 byte varint"); + skip_bytes(1); + return m_data[-1] != 0; // -1 okay because we incremented m_data the line before +} + +std::pair pbf_reader::get_data() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + protozero_assert(has_wire_type(pbf_wire_type::length_delimited) && "not of type string, bytes or message"); + auto len = get_len_and_skip(); + return std::make_pair(m_data-len, len); +} + +std::string pbf_reader::get_bytes() { + auto d = get_data(); + return std::string(d.first, d.second); +} + +std::string pbf_reader::get_string() { + return get_bytes(); +} + +std::pair pbf_reader::get_packed_bool() { + return get_packed_int32(); +} + +std::pair pbf_reader::get_packed_enum() { + return get_packed_int32(); +} + +std::pair pbf_reader::get_packed_int32() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + auto len = get_len_and_skip(); + return std::make_pair(pbf_reader::const_int32_iterator(m_data-len, m_data), + pbf_reader::const_int32_iterator(m_data, m_data)); +} + +std::pair pbf_reader::get_packed_uint32() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + auto len = get_len_and_skip(); + return std::make_pair(pbf_reader::const_uint32_iterator(m_data-len, m_data), + pbf_reader::const_uint32_iterator(m_data, m_data)); +} + +std::pair pbf_reader::get_packed_sint32() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + auto len = get_len_and_skip(); + return std::make_pair(pbf_reader::const_sint32_iterator(m_data-len, m_data), + pbf_reader::const_sint32_iterator(m_data, m_data)); +} + +std::pair pbf_reader::get_packed_int64() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + auto len = get_len_and_skip(); + return std::make_pair(pbf_reader::const_int64_iterator(m_data-len, m_data), + pbf_reader::const_int64_iterator(m_data, m_data)); +} + +std::pair pbf_reader::get_packed_uint64() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + auto len = get_len_and_skip(); + return std::make_pair(pbf_reader::const_uint64_iterator(m_data-len, m_data), + pbf_reader::const_uint64_iterator(m_data, m_data)); +} + +std::pair pbf_reader::get_packed_sint64() { + protozero_assert(tag() != 0 && "call next() before accessing field value"); + auto len = get_len_and_skip(); + return std::make_pair(pbf_reader::const_sint64_iterator(m_data-len, m_data), + pbf_reader::const_sint64_iterator(m_data, m_data)); +} + +} // end namespace protozero + +#endif // PROTOZERO_PBF_READER_HPP diff --git a/protozero/pbf_writer.hpp b/protozero/pbf_writer.hpp new file mode 100644 index 0000000..422e147 --- /dev/null +++ b/protozero/pbf_writer.hpp @@ -0,0 +1,837 @@ +#ifndef PROTOZERO_PBF_WRITER_HPP +#define PROTOZERO_PBF_WRITER_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file pbf_writer.hpp + * + * @brief Contains the pbf_writer class. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#if PROTOZERO_BYTE_ORDER != PROTOZERO_LITTLE_ENDIAN +# include +#endif + +namespace protozero { + +namespace detail { + + template class packed_field_varint; + template class packed_field_svarint; + template class packed_field_fixed; + +} // end namespace detail + +/** + * The pbf_writer is used to write PBF formatted messages into a buffer. + * + * Almost all methods in this class can throw an std::bad_alloc exception if + * the std::string used as a buffer wants to resize. + */ +class pbf_writer { + + // A pointer to a string buffer holding the data already written to the + // PBF message. For default constructed writers or writers that have been + // rolled back, this is a nullptr. + std::string* m_data; + + // A pointer to a parent writer object if this is a submessage. If this + // is a top-level writer, it is a nullptr. + pbf_writer* m_parent_writer; + + // This is usually 0. If there is an open submessage, this is set in the + // parent to the rollback position, ie. the last position before the + // submessage was started. This is the position where the header of the + // submessage starts. + std::size_t m_rollback_pos = 0; + + // This is usually 0. If there is an open submessage, this is set in the + // parent to the position where the data of the submessage is written to. + std::size_t m_pos = 0; + + inline void add_varint(uint64_t value) { + protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage"); + protozero_assert(m_data); + write_varint(std::back_inserter(*m_data), value); + } + + inline void add_field(pbf_tag_type tag, pbf_wire_type type) { + protozero_assert(((tag > 0 && tag < 19000) || (tag > 19999 && tag <= ((1 << 29) - 1))) && "tag out of range"); + uint32_t b = (tag << 3) | uint32_t(type); + add_varint(b); + } + + inline void add_tagged_varint(pbf_tag_type tag, uint64_t value) { + add_field(tag, pbf_wire_type::varint); + add_varint(value); + } + + template + inline void add_fixed(T value) { + protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage"); + protozero_assert(m_data); +#if PROTOZERO_BYTE_ORDER == PROTOZERO_LITTLE_ENDIAN + m_data->append(reinterpret_cast(&value), sizeof(T)); +#else + auto size = m_data->size(); + m_data->resize(size + sizeof(T)); + byteswap(reinterpret_cast(&value), const_cast(m_data->data() + size)); +#endif + } + + template + inline void add_packed_fixed(pbf_tag_type tag, It first, It last, std::input_iterator_tag) { + if (first == last) { + return; + } + + pbf_writer sw(*this, tag); + + while (first != last) { + sw.add_fixed(*first++); + } + } + + template + inline void add_packed_fixed(pbf_tag_type tag, It first, It last, std::forward_iterator_tag) { + if (first == last) { + return; + } + + auto length = std::distance(first, last); + add_length_varint(tag, sizeof(T) * pbf_length_type(length)); + reserve(sizeof(T) * std::size_t(length)); + + while (first != last) { + add_fixed(*first++); + } + } + + template + inline void add_packed_varint(pbf_tag_type tag, It first, It last) { + if (first == last) { + return; + } + + pbf_writer sw(*this, tag); + + while (first != last) { + sw.add_varint(uint64_t(*first++)); + } + } + + template + inline void add_packed_svarint(pbf_tag_type tag, It first, It last) { + if (first == last) { + return; + } + + pbf_writer sw(*this, tag); + + while (first != last) { + sw.add_varint(encode_zigzag64(*first++)); + } + } + + // The number of bytes to reserve for the varint holding the length of + // a length-delimited field. The length has to fit into pbf_length_type, + // and a varint needs 8 bit for every 7 bit. + static const int reserve_bytes = sizeof(pbf_length_type) * 8 / 7 + 1; + + // If m_rollpack_pos is set to this special value, it means that when + // the submessage is closed, nothing needs to be done, because the length + // of the submessage has already been written correctly. + static const std::size_t size_is_known = std::numeric_limits::max(); + + inline void open_submessage(pbf_tag_type tag, std::size_t size) { + protozero_assert(m_pos == 0); + protozero_assert(m_data); + if (size == 0) { + m_rollback_pos = m_data->size(); + add_field(tag, pbf_wire_type::length_delimited); + m_data->append(std::size_t(reserve_bytes), '\0'); + } else { + m_rollback_pos = size_is_known; + add_length_varint(tag, pbf_length_type(size)); + reserve(size); + } + m_pos = m_data->size(); + } + + inline void rollback_submessage() { + protozero_assert(m_pos != 0); + protozero_assert(m_rollback_pos != size_is_known); + protozero_assert(m_data); + m_data->resize(m_rollback_pos); + m_pos = 0; + } + + inline void commit_submessage() { + protozero_assert(m_pos != 0); + protozero_assert(m_rollback_pos != size_is_known); + protozero_assert(m_data); + auto length = pbf_length_type(m_data->size() - m_pos); + + protozero_assert(m_data->size() >= m_pos - reserve_bytes); + auto n = write_varint(m_data->begin() + long(m_pos) - reserve_bytes, length); + + m_data->erase(m_data->begin() + long(m_pos) - reserve_bytes + n, m_data->begin() + long(m_pos)); + m_pos = 0; + } + + inline void close_submessage() { + protozero_assert(m_data); + if (m_pos == 0 || m_rollback_pos == size_is_known) { + return; + } + if (m_data->size() - m_pos == 0) { + rollback_submessage(); + } else { + commit_submessage(); + } + } + + inline void add_length_varint(pbf_tag_type tag, pbf_length_type length) { + add_field(tag, pbf_wire_type::length_delimited); + add_varint(length); + } + +public: + + /** + * Create a writer using the given string as a data store. The pbf_writer + * stores a reference to that string and adds all data to it. The string + * doesn't have to be empty. The pbf_writer will just append data. + */ + inline explicit pbf_writer(std::string& data) noexcept : + m_data(&data), + m_parent_writer(nullptr), + m_pos(0) { + } + + /** + * Create a writer without a data store. In this form the writer can not + * be used! + */ + inline pbf_writer() noexcept : + m_data(nullptr), + m_parent_writer(nullptr), + m_pos(0) { + } + + /** + * Construct a pbf_writer for a submessage from the pbf_writer of the + * parent message. + * + * @param parent_writer The pbf_writer + * @param tag Tag (field number) of the field that will be written + * @param size Optional size of the submessage in bytes (use 0 for unknown). + * Setting this allows some optimizations but is only possible in + * a few very specific cases. + */ + inline pbf_writer(pbf_writer& parent_writer, pbf_tag_type tag, std::size_t size=0) : + m_data(parent_writer.m_data), + m_parent_writer(&parent_writer), + m_pos(0) { + m_parent_writer->open_submessage(tag, size); + } + + /// A pbf_writer object can be copied + pbf_writer(const pbf_writer&) noexcept = default; + + /// A pbf_writer object can be copied + pbf_writer& operator=(const pbf_writer&) noexcept = default; + + /// A pbf_writer object can be moved + inline pbf_writer(pbf_writer&&) noexcept = default; + + /// A pbf_writer object can be moved + inline pbf_writer& operator=(pbf_writer&&) noexcept = default; + + inline ~pbf_writer() { + if (m_parent_writer) { + m_parent_writer->close_submessage(); + } + } + + /** + * Reserve size bytes in the underlying message store in addition to + * whatever the message store already holds. So unlike + * the `std::string::reserve()` method this is not an absolute size, + * but additional memory that should be reserved. + * + * @param size Number of bytes to reserve in underlying message store. + */ + void reserve(std::size_t size) { + protozero_assert(m_data); + m_data->reserve(m_data->size() + size); + } + + inline void rollback() { + protozero_assert(m_parent_writer && "you can't call rollback() on a pbf_writer without a parent"); + protozero_assert(m_pos == 0 && "you can't call rollback() on a pbf_writer that has an open nested submessage"); + m_parent_writer->rollback_submessage(); + m_data = nullptr; + } + + ///@{ + /** + * @name Scalar field writer functions + */ + + /** + * Add "bool" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_bool(pbf_tag_type tag, bool value) { + add_field(tag, pbf_wire_type::varint); + protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage"); + protozero_assert(m_data); + m_data->append(1, value); + } + + /** + * Add "enum" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_enum(pbf_tag_type tag, int32_t value) { + add_tagged_varint(tag, uint64_t(value)); + } + + /** + * Add "int32" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_int32(pbf_tag_type tag, int32_t value) { + add_tagged_varint(tag, uint64_t(value)); + } + + /** + * Add "sint32" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_sint32(pbf_tag_type tag, int32_t value) { + add_tagged_varint(tag, encode_zigzag32(value)); + } + + /** + * Add "uint32" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_uint32(pbf_tag_type tag, uint32_t value) { + add_tagged_varint(tag, value); + } + + /** + * Add "int64" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_int64(pbf_tag_type tag, int64_t value) { + add_tagged_varint(tag, uint64_t(value)); + } + + /** + * Add "sint64" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_sint64(pbf_tag_type tag, int64_t value) { + add_tagged_varint(tag, encode_zigzag64(value)); + } + + /** + * Add "uint64" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_uint64(pbf_tag_type tag, uint64_t value) { + add_tagged_varint(tag, value); + } + + /** + * Add "fixed32" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_fixed32(pbf_tag_type tag, uint32_t value) { + add_field(tag, pbf_wire_type::fixed32); + add_fixed(value); + } + + /** + * Add "sfixed32" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_sfixed32(pbf_tag_type tag, int32_t value) { + add_field(tag, pbf_wire_type::fixed32); + add_fixed(value); + } + + /** + * Add "fixed64" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_fixed64(pbf_tag_type tag, uint64_t value) { + add_field(tag, pbf_wire_type::fixed64); + add_fixed(value); + } + + /** + * Add "sfixed64" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_sfixed64(pbf_tag_type tag, int64_t value) { + add_field(tag, pbf_wire_type::fixed64); + add_fixed(value); + } + + /** + * Add "float" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_float(pbf_tag_type tag, float value) { + add_field(tag, pbf_wire_type::fixed32); + add_fixed(value); + } + + /** + * Add "double" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_double(pbf_tag_type tag, double value) { + add_field(tag, pbf_wire_type::fixed64); + add_fixed(value); + } + + /** + * Add "bytes" field to data. + * + * @param tag Tag (field number) of the field + * @param value Pointer to value to be written + * @param size Number of bytes to be written + */ + inline void add_bytes(pbf_tag_type tag, const char* value, std::size_t size) { + protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage"); + protozero_assert(m_data); + protozero_assert(size <= std::numeric_limits::max()); + add_length_varint(tag, pbf_length_type(size)); + m_data->append(value, size); + } + + /** + * Add "bytes" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_bytes(pbf_tag_type tag, const std::string& value) { + add_bytes(tag, value.data(), value.size()); + } + + /** + * Add "string" field to data. + * + * @param tag Tag (field number) of the field + * @param value Pointer to value to be written + * @param size Number of bytes to be written + */ + inline void add_string(pbf_tag_type tag, const char* value, std::size_t size) { + add_bytes(tag, value, size); + } + + /** + * Add "string" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written + */ + inline void add_string(pbf_tag_type tag, const std::string& value) { + add_bytes(tag, value.data(), value.size()); + } + + /** + * Add "string" field to data. Bytes from the value are written until + * a null byte is encountered. The null byte is not added. + * + * @param tag Tag (field number) of the field + * @param value Pointer to value to be written + */ + inline void add_string(pbf_tag_type tag, const char* value) { + add_bytes(tag, value, std::strlen(value)); + } + + /** + * Add "message" field to data. + * + * @param tag Tag (field number) of the field + * @param value Pointer to message to be written + * @param size Length of the message + */ + inline void add_message(pbf_tag_type tag, const char* value, std::size_t size) { + add_bytes(tag, value, size); + } + + /** + * Add "message" field to data. + * + * @param tag Tag (field number) of the field + * @param value Value to be written. The value must be a complete message. + */ + inline void add_message(pbf_tag_type tag, const std::string& value) { + add_bytes(tag, value.data(), value.size()); + } + + ///@} + + ///@{ + /** + * @name Repeated packed field writer functions + */ + + /** + * Add "repeated packed bool" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to bool. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_bool(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_varint(tag, first, last); + } + + /** + * Add "repeated packed enum" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to int32_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_enum(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_varint(tag, first, last); + } + + /** + * Add "repeated packed int32" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to int32_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_int32(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_varint(tag, first, last); + } + + /** + * Add "repeated packed sint32" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to int32_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_sint32(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_svarint(tag, first, last); + } + + /** + * Add "repeated packed uint32" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to uint32_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_uint32(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_varint(tag, first, last); + } + + /** + * Add "repeated packed int64" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to int64_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_int64(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_varint(tag, first, last); + } + + /** + * Add "repeated packed sint64" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to int64_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_sint64(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_svarint(tag, first, last); + } + + /** + * Add "repeated packed uint64" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to uint64_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_uint64(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_varint(tag, first, last); + } + + /** + * Add "repeated packed fixed32" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to uint32_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_fixed32(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_fixed(tag, first, last, + typename std::iterator_traits::iterator_category()); + } + + /** + * Add "repeated packed sfixed32" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to int32_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_sfixed32(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_fixed(tag, first, last, + typename std::iterator_traits::iterator_category()); + } + + /** + * Add "repeated packed fixed64" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to uint64_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_fixed64(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_fixed(tag, first, last, + typename std::iterator_traits::iterator_category()); + } + + /** + * Add "repeated packed sfixed64" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to int64_t. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_sfixed64(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_fixed(tag, first, last, + typename std::iterator_traits::iterator_category()); + } + + /** + * Add "repeated packed float" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to float. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_float(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_fixed(tag, first, last, + typename std::iterator_traits::iterator_category()); + } + + /** + * Add "repeated packed double" field to data. + * + * @tparam InputIterator An type satisfying the InputIterator concept. + * Dereferencing the iterator must yield a type assignable to double. + * @param tag Tag (field number) of the field + * @param first Iterator pointing to the beginning of the data + * @param last Iterator pointing one past the end of data + */ + template + inline void add_packed_double(pbf_tag_type tag, InputIterator first, InputIterator last) { + add_packed_fixed(tag, first, last, + typename std::iterator_traits::iterator_category()); + } + + ///@} + + template friend class detail::packed_field_varint; + template friend class detail::packed_field_svarint; + template friend class detail::packed_field_fixed; + +}; // class pbf_writer + +namespace detail { + + class packed_field { + + protected: + + pbf_writer m_writer; + + public: + + packed_field(pbf_writer& parent_writer, pbf_tag_type tag) : + m_writer(parent_writer, tag) { + } + + packed_field(pbf_writer& parent_writer, pbf_tag_type tag, std::size_t size) : + m_writer(parent_writer, tag, size) { + } + + void rollback() { + m_writer.rollback(); + } + + }; // class packed_field + + template + class packed_field_fixed : public packed_field { + + public: + + packed_field_fixed(pbf_writer& parent_writer, pbf_tag_type tag) : + packed_field(parent_writer, tag) { + } + + packed_field_fixed(pbf_writer& parent_writer, pbf_tag_type tag, std::size_t size) : + packed_field(parent_writer, tag, size * sizeof(T)) { + } + + void add_element(T value) { + m_writer.add_fixed(value); + } + + }; // class packed_field_fixed + + template + class packed_field_varint : public packed_field { + + public: + + packed_field_varint(pbf_writer& parent_writer, pbf_tag_type tag) : + packed_field(parent_writer, tag) { + } + + void add_element(T value) { + m_writer.add_varint(uint64_t(value)); + } + + }; // class packed_field_varint + + template + class packed_field_svarint : public packed_field { + + public: + + packed_field_svarint(pbf_writer& parent_writer, pbf_tag_type tag) : + packed_field(parent_writer, tag) { + } + + void add_element(T value) { + m_writer.add_varint(encode_zigzag64(value)); + } + + }; // class packed_field_svarint + +} // end namespace detail + +using packed_field_bool = detail::packed_field_varint; +using packed_field_enum = detail::packed_field_varint; +using packed_field_int32 = detail::packed_field_varint; +using packed_field_sint32 = detail::packed_field_svarint; +using packed_field_uint32 = detail::packed_field_varint; +using packed_field_int64 = detail::packed_field_varint; +using packed_field_sint64 = detail::packed_field_svarint; +using packed_field_uint64 = detail::packed_field_varint; +using packed_field_fixed32 = detail::packed_field_fixed; +using packed_field_sfixed32 = detail::packed_field_fixed; +using packed_field_fixed64 = detail::packed_field_fixed; +using packed_field_sfixed64 = detail::packed_field_fixed; +using packed_field_float = detail::packed_field_fixed; +using packed_field_double = detail::packed_field_fixed; + +} // end namespace protozero + +#endif // PROTOZERO_PBF_WRITER_HPP diff --git a/protozero/types.hpp b/protozero/types.hpp new file mode 100644 index 0000000..6856b3d --- /dev/null +++ b/protozero/types.hpp @@ -0,0 +1,49 @@ +#ifndef PROTOZERO_TYPES_HPP +#define PROTOZERO_TYPES_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file types.hpp + * + * @brief Contains the declaration of low-level types used in the pbf format. + */ + +#include + +namespace protozero { + + /** + * The type used for field tags (field numbers). + */ + typedef uint32_t pbf_tag_type; + + /** + * The type used to encode type information. + * See the table on + * https://developers.google.com/protocol-buffers/docs/encoding + */ + enum class pbf_wire_type : uint32_t { + varint = 0, // int32/64, uint32/64, sint32/64, bool, enum + fixed64 = 1, // fixed64, sfixed64, double + length_delimited = 2, // string, bytes, embedded messages, + // packed repeated fields + fixed32 = 5, // fixed32, sfixed32, float + unknown = 99 // used for default setting in this library + }; + + /** + * The type used for length values, such as the length of a field. + */ + typedef uint32_t pbf_length_type; + +} // end namespace protozero + +#endif // PROTOZERO_TYPES_HPP diff --git a/protozero/varint.hpp b/protozero/varint.hpp new file mode 100644 index 0000000..4242df9 --- /dev/null +++ b/protozero/varint.hpp @@ -0,0 +1,132 @@ +#ifndef PROTOZERO_VARINT_HPP +#define PROTOZERO_VARINT_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +/** + * @file varint.hpp + * + * @brief Contains low-level varint and zigzag encoding and decoding functions. + */ + +#include + +#include + +namespace protozero { + +/** + * The maximum length of a 64bit varint. + */ +constexpr const int8_t max_varint_length = sizeof(uint64_t) * 8 / 7 + 1; + +// from https://github.com/facebook/folly/blob/master/folly/Varint.h +/** + * Decode a 64bit varint. + * + * Strong exception guarantee: if there is an exception the data pointer will + * not be changed. + * + * @param[in,out] data Pointer to pointer to the input data. After the function + * returns this will point to the next data to be read. + * @param[in] end Pointer one past the end of the input data. + * @returns The decoded integer + * @throws varint_too_long_exception if the varint is longer then the maximum + * length that would fit in a 64bit int. Usually this means your data + * is corrupted or you are trying to read something as a varint that + * isn't. + * @throws end_of_buffer_exception if the *end* of the buffer was reached + * before the end of the varint. + */ +inline uint64_t decode_varint(const char** data, const char* end) { + const int8_t* begin = reinterpret_cast(*data); + const int8_t* iend = reinterpret_cast(end); + const int8_t* p = begin; + uint64_t val = 0; + + if (iend - begin >= max_varint_length) { // fast path + do { + int64_t b; + b = *p++; val = uint64_t((b & 0x7f) ); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 7); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 14); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 21); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 28); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 35); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 42); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 49); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 56); if (b >= 0) break; + b = *p++; val |= uint64_t((b & 0x7f) << 63); if (b >= 0) break; + throw varint_too_long_exception(); + } while (false); + } else { + int shift = 0; + while (p != iend && *p < 0) { + val |= uint64_t(*p++ & 0x7f) << shift; + shift += 7; + } + if (p == iend) { + throw end_of_buffer_exception(); + } + val |= uint64_t(*p++) << shift; + } + + *data = reinterpret_cast(p); + return val; +} + +/** + * Varint-encode a 64bit integer. + */ +template +inline int write_varint(OutputIterator data, uint64_t value) { + int n=1; + + while (value >= 0x80) { + *data++ = char((value & 0x7f) | 0x80); + value >>= 7; + ++n; + } + *data++ = char(value); + + return n; +} + +/** + * ZigZag encodes a 32 bit integer. + */ +inline uint32_t encode_zigzag32(int32_t value) noexcept { + return (static_cast(value) << 1) ^ (static_cast(value >> 31)); +} + +/** + * ZigZag encodes a 64 bit integer. + */ +inline uint64_t encode_zigzag64(int64_t value) noexcept { + return (static_cast(value) << 1) ^ (static_cast(value >> 63)); +} + +/** + * Decodes a 32 bit ZigZag-encoded integer. + */ +inline int32_t decode_zigzag32(uint32_t value) noexcept { + return int32_t(value >> 1) ^ -int32_t(value & 1); +} + +/** + * Decodes a 64 bit ZigZag-encoded integer. + */ +inline int64_t decode_zigzag64(uint64_t value) noexcept { + return int64_t(value >> 1) ^ -int64_t(value & 1); +} + +} // end namespace protozero + +#endif // PROTOZERO_VARINT_HPP diff --git a/protozero/version.hpp b/protozero/version.hpp new file mode 100644 index 0000000..7b60e2e --- /dev/null +++ b/protozero/version.hpp @@ -0,0 +1,22 @@ +#ifndef PROTOZERO_VERSION_HPP +#define PROTOZERO_VERSION_HPP + +/***************************************************************************** + +protozero - Minimalistic protocol buffer decoder and encoder in C++. + +This file is from https://github.com/mapbox/protozero where you can find more +documentation. + +*****************************************************************************/ + +#define PROTOZERO_VERSION_MAJOR 1 +#define PROTOZERO_VERSION_MINOR 3 +#define PROTOZERO_VERSION_PATCH 0 + +#define PROTOZERO_VERSION_CODE (PROTOZERO_VERSION_MAJOR * 10000 + PROTOZERO_VERSION_MINOR * 100 + PROTOZERO_VERSION_PATCH) + +#define PROTOZERO_VERSION_STRING "1.3.0" + + +#endif // PROTOZERO_VERSION_HPP diff --git a/tests/muni/out/-z1_-Z1_-ao_-P.json b/tests/muni/out/-z1_-Z1_-ao_-P.json new file mode 100644 index 0000000..9470287 --- /dev/null +++ b/tests/muni/out/-z1_-Z1_-ao_-P.json @@ -0,0 +1,9238 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-122.538670,37.705764,-12.240000,37.836443", +"center": "-90.000000,37.836443,1", +"description": "tests/muni/out/-z1_-Z1_-ao_-P.json.check.mbtiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"muni\", \"description\": \"\", \"minzoom\": 1, \"maxzoom\": 1, \"fields\": {\"name\": \"String\"} } ] }", +"maxzoom": "1", +"minzoom": "1", +"name": "tests/muni/out/-z1_-Z1_-ao_-P.json.check.mbtiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "muni" }, "features": [ +{ "type": "Feature", "properties": { "name": " 4th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": " Conzelman Rd & Mccullough Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "100 O'Shaughnessy Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "101 Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "1095 CONNECTICUT ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "10th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "10th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "10th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "10th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "10th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "1100 Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "1100 Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "115 TELEGRAPH Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "117 Warren Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "11th St/btw Market & Mission" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "120 Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "126 Miraloma Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "13th St & Gateview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "14 Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th Avenue & Geary Boulevard" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "14th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "14th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "14th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "14th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "14th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Alpine Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & SANCHEZ ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "14th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "150 Otis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th Ave & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "15th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16 th St & South Van Ness" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "164 Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "1650 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "1650 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "1697 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "1697 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Lomita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Avenue at Lawton Street" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Shotwell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Shotwell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & South Van Ness" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th St& Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Street & 4th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Street & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Street & Rhode Islandi St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "16th Street & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "170 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "1701 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "1721 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "1725 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "1730 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "1731 3RD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "1750 Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "176 Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "1798 Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17TH ST & KANSAS ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "17th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "17th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "17th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Belvedere St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "17th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "1800 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Eureka St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Minnesota St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Pennsylvania Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Pennsylvania Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Texas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Texas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "18th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19 Ave & Juda St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "190 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "1900 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "1901 Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19TH AVE & HOLLOWAY" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19TH AVE & HOLLOWAY Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19TH AVE & LINCOLN WAY" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19TH AVE & LINCOLN WAY" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19TH AVE & HOLLOWAY AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19TH AVE & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Banbury Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Crespi Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "19th Avenue & Holloway St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "1st St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "1st St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "1st St & Natoma St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "20th Av/Macy's Stonestown" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "20th Av/Macy's Stonestown" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "20th Ave & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "20th Ave & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "20th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "20th Ave & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Arkansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Arkansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Collingwood St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Eureka St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Kansas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Missouri St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Texas St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "20th St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "210 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "211 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "21st St & Douglass St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "220 Halleck St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "225 TELEGRAPH Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "225 TELEGRAPH Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "228 Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Carolina St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Iowa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Iowa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Minnesota St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Minnesota St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Mississippi St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Pennsylvania Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "22nd St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23RD ST & KANSAS ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Eureka St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Utah St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Utah St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Vermont St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "23rd St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Douglass St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Hoffman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "24th Street & Potrero Avenue" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25TH ST & MISSION ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & El Camino Del Mar" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & El Camino Del Mar" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Lake St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Ave & Lake St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "25th Avenue & Dakota Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Dakota St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Hoffman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Potrero Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "25th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "26th St & Wisconsin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "274 Sagamore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "280 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "281 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "29th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "2ND ST & MARKET ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd ST & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "2nd St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "30th St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "320 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "32ND AVE & ANZA St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "32nd Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "32nd Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "32nd Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "32nd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "32nd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "32nd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33 Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "33rd Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "341 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "345 Warren Dr E" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "346 Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "356 Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "367 Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "36th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "37th AVE & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "37th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "380 Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3800 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "3800 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "3801 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "3947 San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "39th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "39th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "39th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & 20TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & 22ND ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & 23RD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & ARTHUR AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & BRANNAN ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & EVANS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & EVANS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & MARIPOSA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3RD ST & WILLIAMS ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd ST & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Bayview St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Cargo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Egbert Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Egbert Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Fitzgerald Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Galvez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Gene Friend Way" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Gene Friend Way" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Gilman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Gilman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Hudson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Ingerson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Key St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Kirkwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Minna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Perry St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Salinas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Terry A Francois Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Terry A Francois Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Thomas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Van Dyke Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Yosemite Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd St & Yosemite Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd Street & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "3rd/btw 16th and Gene Friend" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "40 CRESTLINE DR" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "400 Warren Dr E" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4080 Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "414 Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "415 Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "42nd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "43rd Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "43rd Ave & Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "455 Warren Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "45th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "45th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "45th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "45th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46 Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "46th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "47th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "47th Ave & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "48th Ave & Juda St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "48th Ave & Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "48th Ave & Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "49ERS DRIVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "49ERS DRIVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "4TH ST & BERRY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4TH ST & BERRY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4TH ST & BERRY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4TH ST & Mission ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4TH ST & TOWNSEND ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4TH ST & TOWNSEND ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Berry St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Berry St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & King St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "4th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "50 THOMAS MELLON DR" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "500 Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "513 Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "513 Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "515 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "515 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "5157 Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "539 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "555 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "555 John Muir Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "555 Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "555 Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "5TH ST & FOLSOM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "5th St &Stevenson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6 Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "62 Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "636 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "636 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "655 John Muir Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "655 John Muir Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Cornwall St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Fulton" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Fulton" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "6th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "74 Crestline Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "785 Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "795 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "7th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "800 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "808 McAllister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "831 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "8TH St AND MARKET St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th Ave & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th Ave & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "8th St&Howard" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "90 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "900 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "900 Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "902 Point Lobos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "909 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "91 Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "925 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "945 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "956 Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "957 Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "957 Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "989 Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "9TH AVE & LAWTON ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9TH St AND MARKET St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & KIRKHAM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Lincoln Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "9th Ave. & Irving St." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "9th St & Avenue C" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "9th St & Avenue D" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "9th St & Avenue E" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "9th St & Avenue H" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "9th St. & Avenue D" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "ARGUELLO BLVD & EUCLID AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "ASHBURY ST & CLAYTON ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "AVENUE B & Gateview AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Addison St & Digby St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Addison St & Farnum St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Addison St & Farnum St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Addison St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Alana Way & Executive Park Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Crystal St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Flosom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Gates St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Orizaba Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & St Charles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Alemany Blvd/St Mary's Park bridge" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Alexander Dr & Conzelman Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Anza Blvd & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Anza Blvd & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Anza St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Anza St&32 AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arballo Dr & Acevedo Ave ." }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Arballo Dr & Garces Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Arballo Dr & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Arballo Dr & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Arballo Dr & Pinto Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Arch St & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Arch St&Alemany St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Euclid Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arguello Blvd & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arkansas St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arkansas St & Madera St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Arleta Ave & Alpha St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Arleta Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Armory Rd & Herbst Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Armstrong Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Piedmont St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Piedmont St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ashbury St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Athens St & Avalon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Athens St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Athens St & Excelsior Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Avalon Ave & La Grande Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Avalon Ave & La Grande Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Avalon Ave & Peru Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue B & 12th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue B & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue B & Gateview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue B & Halibut Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue H & 13th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue H & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue H & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue H & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue H & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue H & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue H & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue M & 10th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue M & 13th St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue M & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Avenue M & 8th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BATTERY Alexander/FIELD RD" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BATTERY St & GREENWICH St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "BAY SHORE BLVD & SUNNYDALE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "BAY St & WEBSTER St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "BOWLEY ST & GIBSON RD" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "BROADWAY & GRANT AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "BROADWAY & THE EMBARCADERO" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "BUENA VISTA TER & BUENA VISTA AVE E" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "BUNKER RD/Miwok Trail" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BUNKER RD/Miwok Trail" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BUNKER RD/Rifle Range" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BUNKER RD/Rifle Range" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BUNKER RD/Stables" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BUNKER RD/Stables" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "BUSH ST & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bacon St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Baden St & Circular Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Baker St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa Park BART/Mezzanine Level" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa Park BART/Mezzanine level" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa Park BART/Mezzanine level" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Balboa St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Battery St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Battery St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Battery St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Battery St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Battery St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Augusta St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Blanken Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Blanken Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Boutwell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Campbell Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Hester Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Hester Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Leland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Marengo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Tunnel Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd/Arleta/Blanken" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd/Arleta/Blanken" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Shore Blvd/Arleta/Blanken" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay St & Midway St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bay Street & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bayshore St & Paul Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Beach St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beach St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beach St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beach St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beach St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beach St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beale St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beale St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beale St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beale St. & Folsom St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beale St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beale St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Beale St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bemis St & Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bemis St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bernal Heights Blvd & Bradford St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bernal Heights Blvd & Powhattan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bernal Heights Blvd & Powhattan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Beverly St & Garfield St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Gillette Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Gillette Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Nueva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Nueva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Peninsula Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Peninsula Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Tunnel Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Blanken Ave & Tunnel Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Elk St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Elk St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Lippard Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Lippard Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Marsily St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Milton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Milton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bosworth St & Rotteck St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bowley St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bradford St & Bernal Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bradford St & Bernal Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bradford St & Esmeralda Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brannan St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Brannan St & 8th ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Munich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Brazil Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bridge View Dr & Scotia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bridge View Dr & Scotia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bridge View Dr & Topeka Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Broad St & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Broad St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Broad St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Broad St & Orizaba Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Broad St & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Broad St & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broadway & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broderick St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broderick St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broderick St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broderick St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broderick St & Jefferson St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Broderick St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood Way & Arch ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood Way & Church Access Rd SW-NS-SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood Way & Grace SE-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood Way & St Charles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood Way & Summit Way NW-FS/sb" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood Way & Summit Way SE-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood way & Chumasero Dr W-NW/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Brotherhood way & Grace community Church NE-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & Division St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & Division St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bryant St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Buchanan St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Buchanan St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Buckingham Way & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Buckingham Way & Winston Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Buena Vista Ave E & Buena Vista Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Buena Vista Ave E & Buena Vista Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Buena Vista Ter & Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Buena Vista Ter & Roosevelt Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Bunker Rd & Field Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Burnett Ave & Crestline Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Burnett Ave & Dawnview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Burnett Ave & Dawnview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Burrows St & Girard St M.L. King School" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Bush St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bush St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bush St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bush St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bush St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bush St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Bush St &Van ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "C. Chavez St&Florida St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "C. Chavez St&Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "CALIFORNIA ST & FUNSTON AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "CALIFORNIA ST & POWELL ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "CALIFORNIA ST & POWELL ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "CAMERON BEACH YARD" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "COIT TOWER" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "COLUMBUS AVE & CHESTNUT ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "COLUMBUS AVE & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "CONCOURSE DR/Academy of Sciences" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "CONZELMAN RD/Kirby Cove" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "CONZELMAN RD/Kirby Cove" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "CORTLAND AVE & BRONTE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "CRESCENT AVE & ELLSWORTH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cabrillo St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California Ave & Avenue M" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Avenue C" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Avenue D" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Avenue H" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Cherry St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Cherry St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Commonwealth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Laurel St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Laurel St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Maple St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & SANSOME ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "California St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Cambon Dr & Castelo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Cambon Dr & Castelo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Cambon Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Candlestick Park/49ers Stadium" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Cardenas Ave & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cargo Way & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cargo Way & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cargo Way & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Carl St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carl St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carl St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carl St & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carl St & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carl St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carl St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carmel St & Belvedere St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carmel St & Twin Peaks Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Carolina St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cashmere St & Hudson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cashmere St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cashmere St & Whitney Young Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & Elizabeth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & Elizabeth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Castro St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cayuga Ave & Onondaga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Central Ave & McAllister St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Central Ave & McAllister St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez & Bartlett" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Alabama St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Florida St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cesar Chavez St. & Valencia St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Fairmount St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Mateo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Mateo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Miguel St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Miguel St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Natick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Roanoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chenery St & Roanoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Mallorca Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chestnut St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Chicago Way & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chicago Way & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chicago Way & Naylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chicago Way & Naylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chicago Way & South Hill Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chumasero Dr & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chumasero Dr & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chumasero Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chumasero Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chumasero Dr & Galindo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Chumasero Dr & Galindo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Day St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Day St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Liberty St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Church St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Circular Ave & Baden St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Circular Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Circular Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "City View Way & Knollview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Clarendon Ave & Clarendon Woods S" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Clarendon Ave & Galewood Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Clarendon Ave & Olympia Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Clarendon Ave & Panorama Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clay St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Carmel St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Corbett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clayton St & Twin Peaks Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 14 Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 18th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 2nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 2nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clement St & Legion Of Honor Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Clipper St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Clipper St & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Alma St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Alma St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Carmel St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Parnassus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cole St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Columbus Ave & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Connecticut St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Conzelman Rd & Mccullough Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Conzelman Rd/GGNRA entrance sign" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Conzelman Rd/GGNRA entrance sign" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Cuesta Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Danvers St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Douglass St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Graystone Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Graystone Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Hattie St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Hopkins Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Iron Aly" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Mars St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Mars St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Ord St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Romain St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Corbett Ave & Romain St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cordova Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Cordova Ave & Winding Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Cordova Ave & Winding Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Cornwall St & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Bayshore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Bocana St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Bocana St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Bradford St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Elsie St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Elsie St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Hilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Prentiss St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Prentiss St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Prospect Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cortland Ave & Prospect Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Corwall St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Agnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Anderson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Arnold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & College Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Ellsworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Leese St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Murray St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Porter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Putnam St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Putnam St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crescent Ave & Roscoe St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crespi Dr & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crespi Dr & Varela Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Crestline Dr & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Cross Over Dr & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cross Over Dr&Lincoln St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Curtis St & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Cyril Magnin St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cyril Magnin St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cyril Magnin St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cyril Magnin St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Cyril Magnin St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "DIAMOND HEIGHTS BLVD & PORTOLA" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "DUBLIN ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "DUBLIN ST & LAGRANDE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "DUNCAN ST & AMBER DR" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Dakota St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Dakota St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Dakota St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Daly City BART West Station Rd." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Daly City Bart Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Davis St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Davis St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Davis St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Dawnview Way & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Dawnview Way & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "De Haro St & Southern Heights Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Delta St & Tioga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Delta St & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Addison St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Berkeley" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Berkeley Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Diamond St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Gold Mine Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Gold Mine Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond Heights Blvd & Gold Mine Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Arbor St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Arbor St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Chenery St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Chenery St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Conrad St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Conrad St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Surrey St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Surrey St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Sussex St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St & Sussex St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Diamond St (south)/Diamond Hts" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Divisadero St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Division St & Bryant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Division St & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Division St & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Don Chee Way/Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Don Chee Way/Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Donahue St & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Douglass St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Douglass St & Alvarado St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Drumm St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Duboce Ave & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Duboce Ave & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Duboce Ave & Church St - Ramp" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Duboce Ave & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Duboce Ave & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Duboce Portal/Not a stop" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Duboce St/Noe St/Duboce Park" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Duncan St & Amber Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Duncan St & Cameo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Duncan St & Diamond Heights Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "ELLIS ST & MASON ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "EMBARCADERO & ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "EVANS AVE/Opposite US Post Office" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "EVANS AVE/US POST OFFICE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "EVANS AVE/US Post Office" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Earl St & Kirkwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Cyril Magnin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eddy St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ellis St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ellis St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ellis St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ellis street & Powell street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ellsworth St & Crescent Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Embarcadero & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Eucalyptus Dr & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Eucalyptus Dr & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Eucalyptus Dr & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Iris Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Iris Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Jordan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Jordan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Euclid Ave & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Eureka St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Middle Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Napoleon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Napoleon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Evans Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Excelsior Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Excelsior Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Excelsior Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Excelsior Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Executive Park Blvd & Blanken Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Executive Park Blvd & Thomas Mellon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "FIELD RD/Nike Site" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "FIELD RD/Youth Hostel" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "FOLSOM & BEALE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "FOLSOM ST & JARBOE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "FONT BLVD & GONZALEZ DR" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "FORT MASON/Bus isl nr guard gate" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "FREMONT & FOLSOM" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "FULTON ST & 31ST AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "FUNSTON AVE & LAKE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fairfax Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Farnum St & Moffitt St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Fell St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Amherst St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Amherst St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Harvard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Harvard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Madison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Madison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & Peru Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Felton St & University St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Field Rd & Bodsworth Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Field Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Field Rd & Light House" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Field Rd/Visitor Center" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Cervantes Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Deboce Ave temp bus terminal" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Jefferson St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fillmore St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fitzgerald Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Fitzgerald Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Fitzgerald Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Fitzgerald Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Foerster St & Flood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Foerster St & Judson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Foerster St & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Foerster St & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Foerster St & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Foerster St & Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Foerster Street & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom & Cesar Chavz St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom & Embarcadero" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 20St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Bessie St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Crescent Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Crescent Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & JARBOE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Ogden St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Ogden St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Precita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Stoneman St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Stoneman St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Third St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Tompkins St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Folsom St & Tompkins St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Arballo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Arballo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Cambon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Cambon Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Chumasero Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Chumasero Dr W-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Juan Bautisa Cir." }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Juan Bautista Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Mary Ward Hall" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Mary Ward Hall" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Serrano Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Serrano Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Serrano Dr NS/W-SB" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Tapia Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Font Blvd & Tapia Dr NS/W/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Forest Hill Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Forest Hill Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Forest Hill Station Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Fort Cronkhite Parking Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Fort Mason access road/Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fountain St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Fowler Ave & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Francisco Street & Polk Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Masonic St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Frederick St & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fremont St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fremont St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fremont St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fremont St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fremont St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Front & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton S t& 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton S t& 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 18th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 18th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 38th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & 8th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Great Hwy" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Park Presidio" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St & Stanyan StW" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton St t& 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Fulton Street & Shrader Street" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Funston Ave & Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "GARFIELD ST & VICTORIA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "GENEVA AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "GENEVA AVE & MISSION ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "GENEVA AVE & SAN JOSE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "GENEVA AVE & SANA JOSE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "GOLDEN GATE BRIDGE/TOLL PLAZA" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "GOLDEN GATE BRIDGE/TOLL PLAZA" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "GRAFTON AVE & Capitol AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "GRAFTON AVE & JULES AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "GRAFTON AVE & PLYMOUTH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "GREAT HWY/near Beach Chalet" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "GREAT HWY/near Beach Chalet" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "GROVE AND LARKIN" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Galvez Ave & Horne Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garces Dr & Bucareli Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Garces Dr & Gonzalez Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Garces Dr & Grijalva Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St & Beverly St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St & Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St & Vernon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St&Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Garfield St&Vernon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gateview Ave & Bayside Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Gateview Ave & Mason Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Gateview Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 3rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 3rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Collins St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Commonwealth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Park Presidio Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Spruce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & St Joseph'S Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geary Blvd & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Castelo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Castelo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Cielito Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Cielito Dr E" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Delano Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Delano Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Esquina Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Munich St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Rio Verde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Rio Verde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave at Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave&Carter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave&Carter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave/Balboa Park BART" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Ave/Balboa Park Bart Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Geneva Street & Schwerin Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Gennessee St & Flood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gennessee St & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gilman Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gilman Ave & Bill Walsh Way" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Gilman Ave & Giants Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Gilman Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Gilman Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gilman Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gilman St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Girard ST & Burrows ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Glenview Dr & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Ave & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Ave & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Ave & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Ave & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Ave & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Br Tunnel/Merchant Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Br Tunnel/Merchant Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Bridge/Parking Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Golden Gate Bridge/Parking Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Gonzalez Dr & Cardenas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gonzalez Dr & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Gonzalez Dr & Josepha Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Gonzalez Dr. & Crespi Dr." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Gough St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Ashton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Brighton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Faxon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Granada Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Harold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Jules Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grafton Ave at Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Graham St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Graham St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Graham St & Moraga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Graham St & Moraga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grand View Ave & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Great Hwy & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Green St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Green Yard-San Jose & Ocean" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Grove St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Grove St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Grove St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Grove St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Grove St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "HALLECK ST/Army Headquarters" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "HARRISON & FREMONT" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "HOLLOWAY AVE & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "HYDE STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "HYDE STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "HYDE STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "HYDE STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hahn St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Hahn St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Hahn St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Hahn St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Buena Vista East Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Buena Vista West Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Haight St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Halleck St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Halleck St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Halleck St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hampshire St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Harrison St & The Embarcadero" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hawes St & Gilman Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Ashbury St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hayes St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Herbst Rd & Amory Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Herbst Rd & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hermann St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hermann St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hillcrest St & Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hillcrest St & Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hoffman Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hoffman Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hoffman Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holloway Ave & Beverly St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holloway Ave & Denslowe Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holloway Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holloway Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holyoke St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holyoke St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holyoke St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holyoke St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Holyoke St & Woolsey St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hospital Entr Rd/Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & New Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & New Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St & The Embarcadero" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Howard St. & Beale St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Howth St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Howth St & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Howth St & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Ardath Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Cashmere St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Whitney Young Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hudson Ave & Whitney Young Cir" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Hward St&Spear" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Hyde St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Industrial St & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Industrial St & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Industrial St & Elmira St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Industrial St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Industrial St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Beatrice Ln" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Harbor Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Harbor Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Thomas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Thomas Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Van Dyke Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingalls St & Van Dyke Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingerson Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Ingerson Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Earl St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Earl St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Fitch St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Fitch St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Hunters Point Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Hunters Point Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes Ave & Middle Point Rd E" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Innes St & Donahue St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St & 2nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Irving St. & 9th Ave." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "JACKSON ST & POLK ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "JAMESTOWN AVE & CANDLESTICK PARK" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "JAMESTOWN AVE & LANSDALE AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "JUNIPERO SERRA BLVD & SLOAT BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "JUNIPERO SERRA BLVD/S.F. Golf Club" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "JUNIPERO SERRA RAMP & BROTHERHOOD WAY" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jackson St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jefferson St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jefferson St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jefferson St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jerrold Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jerrold Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jerrold Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jerrold Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jerrold Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jerrold Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jerrold Ave & Selby St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jessie St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "John Muir Dr & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "John Muir Dr & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Jones St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Jones St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Jones St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Jones St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Juan Bautista Cir & Bucareli Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Juan Bautista Cir & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Juan Bautista Cir & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 6th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judah/La Playa/Ocean Beach" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Judson Ave & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Judson Ave & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Garfield St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Palmetto Av" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Junipero Serra Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "KANSAS ST & 23RD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Kansas St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Kansas St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Kansas St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Kansas St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Kansas St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Kearny St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Keith St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Keith St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Keith St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "King St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Kirkwood Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Kirkwood Ave & Dormitory Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Kiska Rd & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Kiska Rd & Reardon Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "LAGUNA HONDA BLVD & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "LAGUNA HONDA Hosp/Clarendon Hall" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "LAGUNA HONDA Hospital/E Parkng Lot" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "LAGUNA HONDA Hospital/Main Hosp" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "LAKE MERCED BLVD & Font DR" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "LAKE MERCED BLVD & LAKE MERCED HILLS BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "LAKE MERCED BLVD & LAKE MERCED HILLS BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "LEGION OF HONOR" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "LEGION OF HONOR" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "LETTERMAN DR & LINCOLN BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "LETTERMAN DR & LOMBARD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "LETTERMAN DR/Tides Bldg" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "LETTERMAN HOSPITAL" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "LINC. WAY & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "LINCOLN WAY & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "LINCOLN&9AV(NEW STOP)" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "La Playa St & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "La Playa St & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "La Playa St & Cabrillo St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "La Playa St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "La Salle Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "La Salle Ave & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "La Salle Ave & Osceola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Balceta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Balceta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Dewey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Idora Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Idora Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Noriega StE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd & Vasquez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd/FOREST HILL STA" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd/Forest Hill Sta" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd/Forest Hill Sta" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd/Forest Hill Sta" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd/opp FOREST HILL" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd/opp Forest Hill" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna Honda Blvd/opp Forest Hill" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Laguna St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced & Middlefield Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced & Middlefield Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced Blvd & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced Blvd & Brotherhood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced Blvd & Font Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced Blvd & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced Blvd & Higuera Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Lake Merced Blvd/SFSU" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lane St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lane St & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Larkin St&Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & Lomita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lawton St & Lomita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Leavenworth St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Legion Of Honor Dr & Clement St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Leland Ave@Alpha St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Leland Ave@Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Anza St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Bowley Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Bowley St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Cowles St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Girard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Girard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Graham St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Halleck St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Pershing Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Pershing Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Stillwell Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd & Storey Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Blvd&Girard Rd NW-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 11th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 19TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 3rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 5th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 7th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & Great Hwy" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lincoln Way & La Playa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Lockwood St & Bldg 214" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard & Richardson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St&Gough St NW-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Lombard St&Gough St SE-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "London St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Louisburg St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Louisburg St & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lower Great Hwy & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lyell St & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Lyon St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MANSELL ST & PERSIA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "MARKET ST & 12TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "MARKET ST & BEALE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MARKET ST & DRUMM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MARKET ST & SPEAR ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MARKET ST & SPEAR ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MARKET ST & VAN NESS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "MASON ST & EDDY ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "MASON ST (PRESIDIO)/Bldg B639" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MASON ST (PRESIDIO)/Bldg B639" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MASON ST (PRESIDIO)/Bldg B650" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MASON ST (PRESIDIO)/Bldg B650" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MASON ST (PRESIDIO)/PX" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MASON ST (PRESIDIO)/PX" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MENDELL ST/Opposite US POST OFFICE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "MENDELL ST/US POST OFFICE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "MIDDLE POINT RD & HARE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "MISSION ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "MISSION ST & BRAZIL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "MISSION ST & OCEAN AVENUE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "MISSION ST & STEUART STREET S-MB/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MITCHELL RD/Visitor's Center" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "MUNI METRO TNL & DRUMM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MUNI METRO TNL & DRUMM ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "MYRA WAY & DALEWOOD" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Macalla Rd & Nimitz Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Macalla Rd & Treasure Island Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Macalla Rd/Bldg 240" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Macalla St & Nimitz Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Macalla St & Treasure Island Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Main St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Main St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Main St & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Main St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Main St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Main St. & Howard St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & John F Shelley Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & University St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mansell St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Marina Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Marina Blvd & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mariposa & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 7th St N" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Beale St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Castro St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Church St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Clayton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Dolores St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Drumm St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Guerrero St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & New Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Noe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Sanchez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Steuart St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Market St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Marview Way & Panorama Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason & Turk" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St (Presidio)/Presidio Bank" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mason St (Presidio)/Presidio Bank" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Golden Gate Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Masonic Ave & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "McAllister S t& Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "McAllister St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "McAllister St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "McAllister St & Gough st" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "McAllister St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "McAllister St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "McAllister St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcallister St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mccoppin St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mccullough Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Mccullough Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Mccullough Rd & Conzelman Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Mccullough Rd & Conzelman Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcdowell Ave & Cowles St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcdowell Ave & Cowles St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mcdowell Ave & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mendell St & Cargo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mendell St & Cargo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mendell St & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mendell St & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mendell St & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Merchant St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Merchant St & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Castro Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Castro Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Church Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Church Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Civic Center Station/Downtn" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Civic Center Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Civic Center Station/Outbd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Embarcadero Station" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Embarcadero Station" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Embarcadero Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Forest Hill Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Montgomery Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Montgomery Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Powell Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Powell Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Van Ness Station" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Van Ness Station/Downtown" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Metro Van Ness Station/Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Middle Point & Acacia" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Middle Point Rd & Innes Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Middle Point Rd & West Point Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Miraloma Dr & Bengal Aly" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Miraloma Dr & Juanita Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Miraloma Dr & Juanita Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Miraloma Dr & Marne Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Miraloma Dr & Marne Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Miraloma Dr & Yerba Buena Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission Bay North & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission Bay South & 4th St SE-FS/ BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 11th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 13th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 1st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 2nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & 9th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Acton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Allison St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Amazon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Appleton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Appleton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Beale St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Bosworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Evergreen St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Excelsior Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Fair Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Flournoy" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Flournoy St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Foote Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Francis St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Fremont St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & GoeThe St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Guttenberg St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Highland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Highland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Lawrence Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Lowell St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Lowell St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Main" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Main St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Mary St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Murray St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Norton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Oliver St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Onondaga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Power St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Precita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Precita Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Richland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Richland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Ruth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & San Jose St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Sickles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & South Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Spear St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Trumbull St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Trumbull St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Valencia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Whittier St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission St & Whittier St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Mission Stt & Steuart St NW-FS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & Turner Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & Turner Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & Watchman Way" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Missouri St & Watchman Way" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Mitchell Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Mitchell Rd & Bunker Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.563477, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Acadia St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Acadia St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Baden St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Baden St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Congo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Congo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Detroit St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Detroit St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Edna St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Edna St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & El Verano Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Faxon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Gennessee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Northgate Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Ridgewood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Ridgewood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Saint Elmo WayE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & San Aleso Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & San Anselmo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & San Jacinto Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Valdez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Monterey Blvd & Valdez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Montgomery St & Moraga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Montgomery St (Presidio)/Bldg 102" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Montgomery St (Presidio)/Bldg 102" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Moraga Ave & Graham St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Moraga Ave & Graham St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Moraga Ave & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Morse St & Lowell St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Moscow St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Moscow St & Excelsior Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Moscow St & France Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Moscow St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Moscow St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Moscow St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mt Vernon Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Mt Vernon Ave & Louisburg St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Muni Metro East/Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Munich St & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Munich St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Munich St & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Myra Way & Dalewood Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Myra Way & Molimo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Myra Way & Molimo Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Myra Way & Omar Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Myra Way & Omar Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Myra Way & Reposa Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Amazon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Brunswick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Curtis St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & France Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Italy Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Naples St & Seville St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Nevada St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Nevada St & Cortland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Nevada St & Powhattan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "New Hall & Hudson SW-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "New Hall & Hudsons SW-FS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newcomb Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newcomb Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newcomb Ave & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newcomb Ave & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newcomb Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newhall St & Fairfax Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newhall St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newhall St & La Salle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newhall St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newhall St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newhall St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Newhall St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Niagra Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 27th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 28th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 29th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noe St & 30th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 25th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 38th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Noriega St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "North Gate Rd and Macalla Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "North Point St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Northgate Rd & Macalla St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Northridge Rd & Dormitory Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Northridge Rd & Harbor Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Northridge Rd & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Not a public stop" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Not a public stop - Use Howard/Spear" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Farrell St&Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Shaughnessy Blvd & Del Vale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Shaughnessy Blvd & Del Vale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Shaughnessy Blvd & Malta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Shaughnessy Blvd & Malta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "O'Shaughnessy Blvd & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "OCEAN AVE/CCSF Pedestrian Bridge" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "OCEAN AVE/CCSF Pedestrian Bridge" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oak St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Baldwin Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Barneveld Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Barneveld Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Bayshore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Griffith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Loomis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Mendell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakdale Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Oakpark Dr & Forest Knolls Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Aptos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Aptos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Aptos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Cerritos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Cerritos Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Dorado Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Fairfield Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Harold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Howth St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Jules Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Jules Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Junipero Serra Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Lee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Miramar Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Otsego Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Otsego Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Otsego Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Phelan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & San Jose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & San Jose St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & San Leandro Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & San Leandro Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & San Leandro Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Victoria St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave & Westgate Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave&I-280 on-ramp NE-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave&Lee Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ocean Ave/Balboa Park Bart Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Olympia Way & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Olympia Way & Dellbrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Olympia Way & Dellbrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Olympia Way & Panorama Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Orizaba Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Ortega St & 10th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ortega St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ortega St & 9th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Otis St & 12th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "PACIFIC AVE & VAN NESS AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "PARK PRESIDIO BLVD & California ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "PARKRIDGE DR & CRESTLINE DR" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PAUL AVE & CARR ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PHELAN AVE/CCSF (North Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PHELAN AVE/CCSF (North Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PHELAN AVE/CCSF (South Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PHELAN AVE/CCSF (South Entrance)" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PHELAN LOOP" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PHELAN LOOP" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "PLYMOUTH AVE & BROAD ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "PORTOLA DR/McAteer High School" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "POST & GRANT" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "POST & MONTGOMERY" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "POTRERO AVE/SF General Hospital" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "POWELL & MARKET TURNTABLE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "POWELL ST & CALIFORNIA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "POWELL ST & CALIFORNIA ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "POWELL STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "POWELL STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "POWELL STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "POWELL STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pacific Ave & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Page St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Page St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Page St & Octavia Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Page St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Crespi Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Hawes St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Industrial St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Quint St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave & Rankin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Palou Ave&Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Panorama Dr & Dellbrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Panorama Dr & Starview Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Hill Ave & Buena Vista East" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Presidio & California Street" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Presidio Blvd & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Presidio Blvd & Balboa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Presidio Blvd & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Presidio Blvd & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Presidio Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Park Presidio Blvd & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parkridge Dr & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & 4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Cole St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Hillway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Shrader St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave & Willard St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Parnassus Ave &4th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Paul Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Paul Ave & Carr St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Paul Ave & Crane St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Paul Ave & Gould St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Paul Ave & Gould St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Paul Ave & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Paul Ave & Wheat St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Pennsylvania Avenue & 23rd Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Pennsylvania Avenue & 23rd Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Pennsylvania Avenue & 25th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Pennsylvania Avenue & 25th Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Athens St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Madrid St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Naples St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Paris St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia Ave & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Persia St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelan Ave & Judson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelan Ave & Judson Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Donner Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Egbert Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Mckinnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Mckinnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Phelps St & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Pine St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pine St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pine St & Front St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pine St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Pine St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Grafton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Grafton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Holloway Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Lobos St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Lobos St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Mangels Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Minerva St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Minerva St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Montana St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Montana St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Sagamore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Sagamore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Thrift St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Thrift St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Plymouth Ave & Yerba Buena Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & El Camino Del Mar" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Point Lobos Ave & Merrie Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Lech Walesa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Polk St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Ave & Claremont Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Burnett Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Clarendon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Clipper St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Del Sur Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Dorchester Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Laguna Honda Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Rex Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & San Lorenzo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & San Pablo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & San Pablo Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Waithman Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Portola Dr & Woodside Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Post St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Potrero Ave&15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Bush St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Jefferson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Powell/Market" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Brazil Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Cordova Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Drake St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Persia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Prague St & Russia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Barnard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Barnard Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Letterman Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Letterman Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Lincoln Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Simonds Loop" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Blvd & Sumner Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Transit Center" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio Transit Center NS-??/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Presidio YMCA Center N-MB/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "PresidioBlvd&Letterman Dr.SE-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 12th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 16th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 27th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 29th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 31st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 33rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & Cragmont Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & Cragmont Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Quintara St & Funston Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "REFERENCE & REFERENCE" }, "geometry": { "type": "Point", "coordinates": [ -12.260742, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "ROBINSON ST/Bldg 152" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "ROBINSON ST/Bldg 152" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Randall St & Whitney St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Randolph & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Randolph St & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Randolph St & Arch St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Randolph St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Randolph St & Bright St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Randolph St & Byxbee St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Raymond Ave & Alpha St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Raymond Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Raymond Ave & Elliot St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Raymond Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Raymond Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Reddy St & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Reddy St & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Reposa Way & Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Reposa Way & Myra Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Reposa Way & Teresita Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Revere Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Revere Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Revere Ave & Ingalls St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Revere Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Revere Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Revere Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Revere Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & Alameda St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rhode Island St & Southern Heights Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Richardson Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Richardson Ave & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Richland Ave & Andover St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Richland Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Richland Ave & Murray St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/Eucalyptus Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/Liberty St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/Liberty St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Right Of Way/Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ripley St & Alabama St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ripley St & Alabama St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ripley St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ripley St & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Rivera St & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Rivera St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Rivera St & 48th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & Clifford Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & Lower Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & Lower Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way & Museum Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Roosevelt Way&Buena Vista Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Rousseau St & Cayuga Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Russia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Russia Ave & Moscow St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Campbell Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Campbell Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Leland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Leland Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Rutland St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "S. Van Ness Ave. & Market St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "S. Van Ness Ave. & Market St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN BRUNO AVE & BAYSHORE BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN BRUNO AVE & BAYSHORE BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN BRUNO AVE & SOMERSET ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SAN JOSE AVE & GENEVA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SILVER AVE & GAMBIER ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SLOAT BLVD & 47TH AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SOUTH VAN NESS AVE & 12TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "SPEAR ST & COCHRANE ST" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "SPEAR ST & MARKET ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "STEUART ST & FRANCISCO ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "SUNNYDALE AVE & BAYSHORE BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "SUNNYDALE AVE & PERSIA AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "SUNNYDALE AVE/MCLAREN SCHOOL" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "SUNNYDALE AVE/MCLAREN SCHOOL" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Battery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Cherry St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Davis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Sproule Ln" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Walnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sacramento St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sagamore St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sagamore St & Capitol Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sagamore St & Orizaba Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sagamore St & Plymouth Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Saint Francis Blvd & San Fernando Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Saint Francis Blvd & San Fernando Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Saint Francis Blvd & Santa Ana Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Saint Francis Blvd & Santa Ana Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Saint Francis Blvd & Santa Clara Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Salinas Ave & Bayshore St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Salinas Ave & Gould St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Arleta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Dwight St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Felton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Mansell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Mansell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Paul Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Paul Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Silver Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Somerset St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Ward St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Ward St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Wilde Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Bruno Ave & Woolsey St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Broad St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Farallones St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Havelock St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Lakeview Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Mt Vernon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Nantucket Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Niagra Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Randolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Sadowa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & San Juan Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Rosa Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Santa Ynez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave & Sickles Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave/Glen Park Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose Ave/Glen Park Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San Jose& Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "San jose& Randall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sanchez St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sansome St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Santa Clara Ave & Monterey Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Santa Clara Ave & Saint Francis Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Santiago St & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Santiago St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Blythdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Brookdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Santos St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sawyer St & Visitacion Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Geneva Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Macdonald Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Sunnydale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Schwerin St & Velasco Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Scott St & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Second Street & Folsom Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sf General Hospital" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Shrader St & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Shrader St & Haight St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sickles Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sickles Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Augusta St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Boylston St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Cambridge St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Charter Oak Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Craut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Gambier St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Gambier St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Holyoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Ledyard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Lisbon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Lisbon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Lisbon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Merrill St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Merrill St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Palou Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Princeton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Princeton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Revere Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & San Bruno Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Topeka Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave & Topeka Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Silver Ave&Santa Fe Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyline Blvd & Harding Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyline Blvd & Harding Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyline Blvd & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyline Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyline Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyline Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyline Blvd & Zoo Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyview Way & Aquavista Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyview Way & City View Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Skyview Way & Glenview Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 21st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 34th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 36th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 37th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 39th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 41st Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 43rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 45th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Clearfield Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Constanso Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Crestlake Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & El Mirasol Pl" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Everglade Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Forest View Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Paraiso Pl" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Skyline Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Sylvan Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & Vale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sloat Blvd. & 19th Ave." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "South Hill Blvd & Chicago Way" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "South Hill Blvd & Prague St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "South Hill Blvd & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "South Hill Blvd & Rolph St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 18 th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness &16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness Ave & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness Ave & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "South Van Ness Ave & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Southern Heights Ave & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Southern Heights Ave & De Haro St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Southern Heights Ave & Rhode Island St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Spear Ave & Cochrane St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Spear St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "St Charles Ave & Alemany Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "St Charles Ave & Belle Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Carl St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Frederick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Fulton St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Hayes St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stanyan St & Waller St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Starr King Way & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steiner St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart & Donchee Way" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Steuart St&Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Still St & Lyell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Beach St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Ellis St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Lombard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Stockton St & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Cora St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Cora St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Garrison Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Santos St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Talbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunnydale Ave & Talbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Irving St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Judah St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Kirkham St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Lawton St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Moraga St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Noriega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Ocean Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Ortega St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Pacheco St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Quintara St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Rivera St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Santiago St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Taraval St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Wawona St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Yorba St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Blvd & Yorba St" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Sunset Tunnel East Portal" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Octavia St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Presidio Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Scott St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Sutter St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "TAYLOR STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TAYLOR STREET TURNABLE IN IB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TAYLOR STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TAYLOR STREET TURNABLE OUT OB" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TEA GARDEN DR/DeYoung Museum" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "TELEGRAPH Hill Blvd & Filbert St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TELEGRAPH Hill Blvd & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TELEGRAPH Hill Blvd & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "THE EMBARCADERO & BROADWAY" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "THE EMBARCADERO & BROADWAY" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "THE EMBARCADERO/Ferry Building" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "THE EMBARCADERO/Pier 1" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "THE EMBARCADERO/Pier 5" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "THE EMBARCADERO/Pier 5" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TOWNSEND ST & 4TH ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "TRANS BAY TERMINAL/RAMP S" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TRANS BAY TERMINAL/TERMINAL W" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TRANSBAY TERMINAL" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TREASURE ISLAND RD/GUARD STATION" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "TREASURE ISLAND RD/GUARD STATION" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 17th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 19th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 22nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 23rd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 24th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 26th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 28th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 32nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 35th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 40th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 42nd Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 44th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & 46th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taraval St & Sunset Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Taylor St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Taylor St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Taylor St & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Taylor St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Taylor St & Francisco St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Tennessee St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Bella Vista Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & El Sereno Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & El Sereno Ct" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Evelyn Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Foerster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Fowler Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Gaviota Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Gaviota Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Isola Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Isola Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Marietta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Marietta Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Melrose Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Reposa Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Reposa Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Stillings Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Teresita Blvd & Stillings Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Texas St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Texas St & Sierra St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Brannan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Ferry Building" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Folsom St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Grant St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Green St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Harrison St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Howard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Mission St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Townsend St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero & Washington St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero&Harrison St NW-NS/PS" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "The Embarcadero&Harrsion St NE-FS/PS" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Third St & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third St & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third St & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third St & Mariposa St." }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Carroll Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Evans Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Le Conte Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Marin St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Mission Rock St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Mission Rock St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street & Williams Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street at Palou Ave SE" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Gilman/Paul" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Gilman/Paul" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Hudson/Innes" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Hudson/Innes" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Hudson/Innes" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Kirkwood/La Salle" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Kirkwood/La Salle" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Kirkwood/La Salle" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Oakdale/Palou" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Oakdale/Palou" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Oakdale/Palou" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Revere/Shafter" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Revere/Shafter" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Third Street/Revere/Shafter" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Thornton Dr&Scotia Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Tioga Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Tioga Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Tioga Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Toland St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Toland St & Jerrold Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Toland St & Mckinnon Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Toland St & Newcomb Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Toland St & Oakdale Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Topeka Ave & Bridge View Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Topeka Ave & Newhall St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Topeka Ave & Thornton Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Topeka Ave & Venus St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 4th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 5th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 6th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 7th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Townsend St & 8th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Transbay Temporary Terminal" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Treasure Island Rd & Macalla Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Treasure Island Rd & Macalla Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Trumbull St & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Trumbull St & Congdon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Trumbull St & Stoneybrook Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Tunnel entry-not a stop-use Folsom Stn" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Arguello Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Broderick St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Central Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Chabot Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Chabot Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Parker Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Roselyn Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Roselyn Ter" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Stanyan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Turk St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "UCSF/Mission Bay" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "UCSF/Mission Bay" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "US101 Offramp/Sausalito Lateral Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.857507 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & Forest Side Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & Forest Side Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & Lenox Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & WEST PORTAL AVE" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & West Portal Ave Arrive" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & West Portal Ave Leave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St & West portal t" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Ulloa St. & 17th Ave." }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Baker St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Columbus Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Divisadero St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Grant Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Kearny St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Lyon St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Montgomery St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Pierce St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & STEINER ST" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Steiner St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Stockton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Union St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Bacon St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Burrows St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Burrows St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Felton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Wayland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "University St & Woolsey St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Upper Ter & Buena Vista Ave West" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Upper Ter & Masonic Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "V.A. HOSPITAL" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "V.A. Hospital" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "VAN NESS AVE & OFARRELL ST" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 14th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 15th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 16th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 21st St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 24th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & Cesar Chavez St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & Duboce Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & Duncan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Valencia St & Mccoppin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Dyke Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Dyke Ave & Jennings St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Dyke Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Dyke Ave & Keith St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Dyke Ave & Lane St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Bay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Broadway" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Clay St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Eddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Geary Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Greenwich St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Grove St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Jackson St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Market St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Mcallister St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & North Point St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & O'Farrell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Oak St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Pacific Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Pine St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Post St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Sacramento St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Sutter St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Turk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Union St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave & Vallejo St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Ave&North Point St SE-NS/BZ" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Van Ness Station Outbound" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & 17th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & 18th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & 19th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vermont St & Mariposa St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Vesta St & Phelps St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Vicente St & 30th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Vicente St & 47th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Vicente St & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Vicente St & West Portal Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Bay Shore Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Britton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Britton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Cora St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Hahn St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Sawyer St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Ave & Schwerin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Visitacion Valley Middle School" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "WEST PORTAL AVE & SLOAT BLVD" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Walnut St & California St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Warren Dr & Christopher Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Warren Dr & Devonshire Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Warren Dr & Locksley Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Warren Dr & Oakpark Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Buchanan St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Fillmore St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Franklin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Gough St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Hyde St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Jones St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Laguna St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Larkin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Leavenworth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Mason St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Polk St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Powell St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Sansome St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Taylor St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Van Ness Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Washington St & Webster St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "Wawona/46th Ave /SF Zoo" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Webster St & Chestnut St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.822802 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & 14th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & 15th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Sloat Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave & Vicente St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Ave&Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Station" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal Station Inbound" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Portal/Sloat/St Francis Circle" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "West Potral & Sola Blvd NW-NS/SB" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Whitney St & Fairmount Street" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Whitney Young Cir & Progress St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Whitney Young Cir & Progress St" }, "geometry": { "type": "Point", "coordinates": [ -122.387695, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Brussels St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Delta St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Girard St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Goettingen St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Wilde Ave & Rutland St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.718590 ] } } +, +{ "type": "Feature", "properties": { "name": "Williams Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Williams Ave & 3rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Williams Ave & Reddy St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Winston Dr & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Winston Dr & 20th Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Winston Dr & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Winston Dr & Buckingham Way" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Winston Dr & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Winston Dr & Lake Merced Blvd" }, "geometry": { "type": "Point", "coordinates": [ -122.519531, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & 20th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & 22nd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & 23rd St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & 25th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & 26th St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & Connecticut St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & Coral Rd" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & Madera St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Wisconsin St & Madera St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.788081 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Balceta Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Hernandez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Hernandez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Hernandez Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Portola Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woodside Ave & Ulloa St" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Bowdoin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Bowdoin St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Colby St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Colby St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Dartmouth St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Hamilton St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & Holyoke St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Woolsey St & University St" }, "geometry": { "type": "Point", "coordinates": [ -122.431641, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Yerba Buena Ave & Brentwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Yerba Buena Ave & Brentwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Yerba Buena Ave & Hazelwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Yerba Buena Ave & Hazelwood Ave" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Yerba Buena Ave & Ravenwood Dr" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +, +{ "type": "Feature", "properties": { "name": "Yerba Buena Ave & Saint Elmo Way" }, "geometry": { "type": "Point", "coordinates": [ -122.475586, 37.753344 ] } } +] } +] } +] } diff --git a/tile-join.cc b/tile-join.cc index 8eedd8d..21d67c4 100644 --- a/tile-join.cc +++ b/tile-join.cc @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -8,7 +9,7 @@ #include #include #include -#include "vector_tile.pb.h" +#include "mvt.hh" #include "tile.h" extern "C" { @@ -26,99 +27,25 @@ struct stats { double minlat, minlon, maxlat, maxlon; }; -// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp -inline bool is_compressed(std::string const &data) { - return data.size() > 2 && (((uint8_t) data[0] == 0x78 && (uint8_t) data[1] == 0x9C) || ((uint8_t) data[0] == 0x1F && (uint8_t) data[1] == 0x8B)); -} - -// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp -inline int decompress(std::string const &input, std::string &output) { - z_stream inflate_s; - inflate_s.zalloc = Z_NULL; - inflate_s.zfree = Z_NULL; - inflate_s.opaque = Z_NULL; - inflate_s.avail_in = 0; - inflate_s.next_in = Z_NULL; - if (inflateInit2(&inflate_s, 32 + 15) != Z_OK) { - fprintf(stderr, "error: %s\n", inflate_s.msg); - } - inflate_s.next_in = (Bytef *) input.data(); - inflate_s.avail_in = input.size(); - size_t length = 0; - do { - output.resize(length + 2 * input.size()); - inflate_s.avail_out = 2 * input.size(); - inflate_s.next_out = (Bytef *) (output.data() + length); - int ret = inflate(&inflate_s, Z_FINISH); - if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) { - fprintf(stderr, "error: %s\n", inflate_s.msg); - return 0; - } - - length += (2 * input.size() - inflate_s.avail_out); - } while (inflate_s.avail_out == 0); - inflateEnd(&inflate_s); - output.resize(length); - return 1; -} - -// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp -static inline int compress(std::string const &input, std::string &output) { - z_stream deflate_s; - deflate_s.zalloc = Z_NULL; - deflate_s.zfree = Z_NULL; - deflate_s.opaque = Z_NULL; - deflate_s.avail_in = 0; - deflate_s.next_in = Z_NULL; - deflateInit2(&deflate_s, Z_BEST_COMPRESSION, Z_DEFLATED, 31, 8, Z_DEFAULT_STRATEGY); - deflate_s.next_in = (Bytef *) input.data(); - deflate_s.avail_in = input.size(); - size_t length = 0; - do { - size_t increase = input.size() / 2 + 1024; - output.resize(length + increase); - deflate_s.avail_out = increase; - deflate_s.next_out = (Bytef *) (output.data() + length); - int ret = deflate(&deflate_s, Z_FINISH); - if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) { - return -1; - } - length += (increase - deflate_s.avail_out); - } while (deflate_s.avail_out == 0); - deflateEnd(&deflate_s); - output.resize(length); - return 0; -} - void handle(std::string message, int z, unsigned x, unsigned y, struct pool **file_keys, char ***layernames, int *nlayers, sqlite3 *outdb, std::vector &header, std::map > &mapping, struct pool *exclude, int ifmatched) { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - // https://github.com/mapbox/mapnik-vector-tile/blob/master/examples/c%2B%2B/tileinfo.cpp - mapnik::vector::tile tile; - mapnik::vector::tile outtile; + mvt_tile tile; + mvt_tile outtile; int features_added = 0; - if (is_compressed(message)) { - std::string uncompressed; - decompress(message, uncompressed); - if (!tile.ParseFromString(uncompressed)) { - fprintf(stderr, "Couldn't decompress tile %d/%u/%u\n", z, x, y); - exit(EXIT_FAILURE); - } - } else if (!tile.ParseFromString(message)) { - fprintf(stderr, "Couldn't parse tile %d/%u/%u\n", z, x, y); + if (!tile.decode(message)) { + fprintf(stderr, "Couldn't decompress tile %d/%u/%u\n", z, x, y); exit(EXIT_FAILURE); } - for (int l = 0; l < tile.layers_size(); l++) { - mapnik::vector::tile_layer layer = tile.layers(l); - mapnik::vector::tile_layer *outlayer = outtile.add_layers(); + for (size_t l = 0; l < tile.layers.size(); l++) { + mvt_layer &layer = tile.layers[l]; + mvt_layer outlayer; - outlayer->set_name(layer.name()); - outlayer->set_version(layer.version()); - outlayer->set_extent(layer.extent()); + outlayer.name = layer.name; + outlayer.version = layer.version; + outlayer.extent = layer.extent; - const char *ln = layer.name().c_str(); + const char *ln = layer.name.c_str(); int ll; for (ll = 0; ll < *nlayers; ll++) { @@ -148,50 +75,46 @@ void handle(std::string message, int z, unsigned x, unsigned y, struct pool **fi *nlayers = ll + 1; } - struct pool keys, values; - pool_init(&keys, 0); - pool_init(&values, 0); - - for (int f = 0; f < layer.features_size(); f++) { - mapnik::vector::tile_feature feat = layer.features(f); - std::vector feature_tags; + for (size_t f = 0; f < layer.features.size(); f++) { + mvt_feature feat = layer.features[f]; + mvt_feature outfeature; int matched = 0; - for (int t = 0; t + 1 < feat.tags_size(); t += 2) { - const char *key = layer.keys(feat.tags(t)).c_str(); - mapnik::vector::tile_value const &val = layer.values(feat.tags(t + 1)); + for (int t = 0; t + 1 < feat.tags.size(); t += 2) { + const char *key = layer.keys[feat.tags[t]].c_str(); + mvt_value &val = layer.values[feat.tags[t + 1]]; char *value; int type = -1; - if (val.has_string_value()) { - value = strdup(val.string_value().c_str()); + if (val.type == mvt_string) { + value = strdup(val.string_value.c_str()); if (value == NULL) { perror("Out of memory"); exit(EXIT_FAILURE); } type = VT_STRING; - } else if (val.has_int_value()) { - if (asprintf(&value, "%lld", (long long) val.int_value()) >= 0) { + } else if (val.type == mvt_int) { + if (asprintf(&value, "%lld", (long long) val.numeric_value.int_value) >= 0) { type = VT_NUMBER; } - } else if (val.has_double_value()) { - if (asprintf(&value, "%g", val.double_value()) >= 0) { + } else if (val.type == mvt_double) { + if (asprintf(&value, "%g", val.numeric_value.double_value) >= 0) { type = VT_NUMBER; } - } else if (val.has_float_value()) { - if (asprintf(&value, "%g", val.float_value()) >= 0) { + } else if (val.type == mvt_float) { + if (asprintf(&value, "%g", val.numeric_value.float_value) >= 0) { type = VT_NUMBER; } - } else if (val.has_bool_value()) { - if (asprintf(&value, "%s", val.bool_value() ? "true" : "false") >= 0) { + } else if (val.type == mvt_bool) { + if (asprintf(&value, "%s", val.numeric_value.bool_value ? "true" : "false") >= 0) { type = VT_BOOLEAN; } - } else if (val.has_sint_value()) { - if (asprintf(&value, "%lld", (long long) val.sint_value()) >= 0) { + } else if (val.type == mvt_sint) { + if (asprintf(&value, "%lld", (long long) val.numeric_value.sint_value) >= 0) { type = VT_NUMBER; } - } else if (val.has_uint_value()) { - if (asprintf(&value, "%llu", (long long) val.uint_value()) >= 0) { + } else if (val.type == mvt_uint) { + if (asprintf(&value, "%llu", (long long) val.numeric_value.uint_value) >= 0) { type = VT_NUMBER; } } else { @@ -212,32 +135,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, struct pool **fi pool(&((*file_keys)[ll]), copy, type); } - struct pool_val *k, *v; - - if (is_pooled(&keys, key, VT_STRING)) { - k = pool(&keys, key, VT_STRING); - } else { - char *copy = strdup(key); - if (copy == NULL) { - perror("Out of memory"); - exit(EXIT_FAILURE); - } - k = pool(&keys, copy, VT_STRING); - } - - if (is_pooled(&values, value, type)) { - v = pool(&values, value, type); - } else { - char *copy = strdup(value); - if (copy == NULL) { - perror("Out of memory"); - exit(EXIT_FAILURE); - } - v = pool(&values, copy, type); - } - - feature_tags.push_back(k->n); - feature_tags.push_back(v->n); + outlayer.tag(outfeature, layer.keys[feat.tags[t]], val); } if (header.size() > 0 && strcmp(key, header[0].c_str()) == 0) { @@ -261,7 +159,6 @@ void handle(std::string message, int z, unsigned x, unsigned y, struct pool **fi } const char *sjoinkey = joinkey.c_str(); - const char *sjoinval = joinval.c_str(); if (!is_pooled(exclude, sjoinkey, VT_STRING)) { if (!is_pooled(&((*file_keys)[ll]), sjoinkey, type)) { @@ -273,32 +170,16 @@ void handle(std::string message, int z, unsigned x, unsigned y, struct pool **fi pool(&((*file_keys)[ll]), copy, type); } - struct pool_val *k, *v; - - if (is_pooled(&keys, sjoinkey, VT_STRING)) { - k = pool(&keys, sjoinkey, VT_STRING); + mvt_value outval; + if (type == VT_STRING) { + outval.type = mvt_string; + outval.string_value = joinval; } else { - char *copy = strdup(sjoinkey); - if (copy == NULL) { - perror("Out of memory"); - exit(EXIT_FAILURE); - } - k = pool(&keys, copy, VT_STRING); + outval.type = mvt_double; + outval.numeric_value.double_value = atof(joinval.c_str()); } - if (is_pooled(&values, sjoinval, type)) { - v = pool(&values, sjoinval, type); - } else { - char *copy = strdup(sjoinval); - if (copy == NULL) { - perror("Out of memory"); - exit(EXIT_FAILURE); - } - v = pool(&values, copy, type); - } - - feature_tags.push_back(k->n); - feature_tags.push_back(v->n); + outlayer.tag(outfeature, joinkey, outval); } } } @@ -308,50 +189,22 @@ void handle(std::string message, int z, unsigned x, unsigned y, struct pool **fi } if (matched || !ifmatched) { - mapnik::vector::tile_feature *outfeature = outlayer->add_features(); - outfeature->set_type(feat.type()); - - for (int g = 0; g < feat.geometry_size(); g++) { - outfeature->add_geometry(feat.geometry(g)); - } - - for (size_t i = 0; i < feature_tags.size(); i++) { - outfeature->add_tags(feature_tags[i]); - } + outfeature.type = feat.type; + outfeature.geometry = feat.geometry; features_added++; + outlayer.features.push_back(outfeature); } } - struct pool_val *pv; - for (pv = keys.head; pv != NULL; pv = pv->next) { - outlayer->add_keys(pv->s, strlen(pv->s)); - } - for (pv = values.head; pv != NULL; pv = pv->next) { - mapnik::vector::tile_value *tv = outlayer->add_values(); - - if (pv->type == VT_NUMBER) { - tv->set_double_value(atof(pv->s)); - } else if (pv->type == VT_BOOLEAN) { - tv->set_bool_value(pv->s[0] == 't'); - } else { - tv->set_string_value(pv->s); - } - } - - pool_free_strings(&keys); - pool_free_strings(&values); + outtile.layers.push_back(outlayer); } if (features_added == 0) { return; } - std::string s; - std::string compressed; - - outtile.SerializeToString(&s); - compress(s, compressed); + std::string compressed = outtile.encode(); if (compressed.size() > 500000) { fprintf(stderr, "Tile %d/%u/%u size is %lld, >500000. Skipping this tile\n.", z, x, y, (long long) compressed.size()); diff --git a/tile.cc b/tile.cc index ff3cf46..a249ed1 100644 --- a/tile.cc +++ b/tile.cc @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -18,7 +19,7 @@ #include #include #include -#include "vector_tile.pb.h" +#include "mvt.hh" #include "geometry.hh" extern "C" { @@ -37,104 +38,36 @@ extern "C" { pthread_mutex_t db_lock = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t var_lock = PTHREAD_MUTEX_INITIALIZER; -// https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_compression.hpp -static inline int compress(std::string const &input, std::string &output) { - z_stream deflate_s; - deflate_s.zalloc = Z_NULL; - deflate_s.zfree = Z_NULL; - deflate_s.opaque = Z_NULL; - deflate_s.avail_in = 0; - deflate_s.next_in = Z_NULL; - deflateInit2(&deflate_s, Z_BEST_COMPRESSION, Z_DEFLATED, 31, 8, Z_DEFAULT_STRATEGY); - deflate_s.next_in = (Bytef *) input.data(); - deflate_s.avail_in = input.size(); - size_t length = 0; - do { - size_t increase = input.size() / 2 + 1024; - output.resize(length + increase); - deflate_s.avail_out = increase; - deflate_s.next_out = (Bytef *) (output.data() + length); - int ret = deflate(&deflate_s, Z_FINISH); - if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) { - return -1; - } - length += (increase - deflate_s.avail_out); - } while (deflate_s.avail_out == 0); - deflateEnd(&deflate_s); - output.resize(length); - return 0; +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; } -int to_feature(drawvec &geom, mapnik::vector::tile_feature *feature) { - int px = 0, py = 0; - int cmd_idx = -1; - int cmd = -1; - int length = 0; - int drew = 0; - int i; - - int n = geom.size(); - for (i = 0; i < n; i++) { - int op = geom[i].op; - - if (op != cmd) { - if (cmd_idx >= 0) { - if (feature != NULL) { - feature->set_geometry(cmd_idx, (length << CMD_BITS) | (cmd & ((1 << CMD_BITS) - 1))); - } - } - - cmd = op; - length = 0; - - if (feature != NULL) { - cmd_idx = feature->geometry_size(); - feature->add_geometry(0); - } - } - - if (op == VT_MOVETO || op == VT_LINETO) { - long long wwx = geom[i].x; - long long wwy = geom[i].y; - - int dx = wwx - px; - int dy = wwy - py; - - if (feature != NULL) { - feature->add_geometry((dx << 1) ^ (dx >> 31)); - feature->add_geometry((dy << 1) ^ (dy >> 31)); - } - - px = wwx; - py = wwy; - length++; - - if (op == VT_LINETO && (dx != 0 || dy != 0)) { - drew = 1; - } - } else if (op == VT_CLOSEPATH) { - length++; - } else { - fprintf(stderr, "\nInternal error: corrupted geometry\n"); - exit(EXIT_FAILURE); +bool draws_something(drawvec &geom) { + for (size_t i = 1; i < geom.size(); i++) { + if (geom[i].op == VT_LINETO && (geom[i].x != geom[i - 1].x || geom[i].y != geom[i - 1].y)) { + return true; } } - if (cmd_idx >= 0) { - if (feature != NULL) { - feature->set_geometry(cmd_idx, (length << CMD_BITS) | (cmd & ((1 << CMD_BITS) - 1))); - } - } - - return drew; + return false; } +int metacmp(int m1, char **meta1, char *stringpool1, int m2, char **meta2, char *stringpool2); int coalindexcmp(const struct coalesce *c1, const struct coalesce *c2); +static int is_integer(const char *s, long long *v); struct coalesce { int type; drawvec geom; - std::vector meta; + int m; + char *meta; + char *stringpool; unsigned long long index; unsigned long long index2; bool coalesced; @@ -165,21 +98,10 @@ int coalcmp(const void *v1, const void *v2) { return cmp; } - for (size_t i = 0; i < c1->meta.size() && i < c2->meta.size(); i++) { - cmp = c1->meta[i] - c2->meta[i]; + char *m1 = c1->meta; + char *m2 = c2->meta; - if (cmp != 0) { - return cmp; - } - } - - if (c1->meta.size() < c2->meta.size()) { - return -1; - } else if (c1->meta.size() > c2->meta.size()) { - return 1; - } else { - return 0; - } + return metacmp(c1->m, &m1, c1->stringpool, c2->m, &m2, c2->stringpool); } int coalindexcmp(const struct coalesce *c1, const struct coalesce *c2) { @@ -202,38 +124,65 @@ int coalindexcmp(const struct coalesce *c1, const struct coalesce *c2) { return cmp; } -struct pool_val *retrieve_string(char **f, struct pool *p, char *stringpool) { - struct pool_val *ret; +mvt_value retrieve_string(char **f, char *stringpool, int *otype) { long long off; - deserialize_long_long(f, &off); - ret = pool(p, stringpool + off + 1, stringpool[off]); - return ret; + int type = stringpool[off]; + char *s = stringpool + off + 1; + + if (otype != NULL) { + *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 { + tv.type = mvt_double; + tv.numeric_value.double_value = atof(s); + } + } 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; } -void decode_meta(int m, char **meta, char *stringpool, struct pool *keys, struct pool *values, struct pool *file_keys, std::vector *intmeta) { +void decode_meta(int m, char **meta, char *stringpool, mvt_layer &layer, mvt_feature &feature, struct pool *file_keys) { int i; for (i = 0; i < m; i++) { - struct pool_val *key = retrieve_string(meta, keys, stringpool); - struct pool_val *value = retrieve_string(meta, values, stringpool); + int otype; + mvt_value key = retrieve_string(meta, stringpool, NULL); + mvt_value value = retrieve_string(meta, stringpool, &otype); - intmeta->push_back(key->n); - intmeta->push_back(value->n); + layer.tag(feature, key.string_value, value); - if (!is_pooled(file_keys, key->s, value->type)) { + if (!is_pooled(file_keys, key.string_value.c_str(), otype)) { if (pthread_mutex_lock(&var_lock) != 0) { perror("pthread_mutex_lock"); exit(EXIT_FAILURE); } // Dup to retain after munmap - char *copy = strdup(key->s); + char *copy = strdup(key.string_value.c_str()); if (copy == NULL) { perror("Out of memory"); exit(EXIT_FAILURE); } - pool(file_keys, copy, value->type); + pool(file_keys, copy, otype); if (pthread_mutex_unlock(&var_lock) != 0) { perror("pthread_mutex_unlock"); @@ -243,6 +192,51 @@ void decode_meta(int m, char **meta, char *stringpool, struct pool *keys, struct } } +int metacmp(int m1, char **meta1, char *stringpool1, int m2, char **meta2, char *stringpool2) { + // XXX + // Ideally this would make identical features compare the same lexically + // even if their attributes were declared in different orders in different instances. + // In practice, this is probably good enough to put "identical" features together. + + int i; + for (i = 0; i < m1 && i < m2; i++) { + mvt_value key1 = retrieve_string(meta1, stringpool1, NULL); + mvt_value key2 = retrieve_string(meta2, stringpool2, NULL); + + if (key1.string_value < key2.string_value) { + return -1; + } else if (key1.string_value > key2.string_value) { + return 1; + } + + long long off1; + deserialize_long_long(meta1, &off1); + int type1 = stringpool1[off1]; + char *s1 = stringpool1 + off1 + 1; + + long long off2; + deserialize_long_long(meta2, &off2); + int type2 = stringpool2[off2]; + char *s2 = stringpool2 + off2 + 1; + + if (type1 != type2) { + return type1 - type2; + } + int cmp = strcmp(s1, s2); + if (s1 != s2) { + return cmp; + } + } + + if (m1 < m2) { + return -1; + } else if (m1 > m2) { + return 1; + } else { + return 0; + } +} + static int is_integer(const char *s, long long *v) { errno = 0; char *endptr; @@ -274,75 +268,6 @@ static int is_integer(const char *s, long long *v) { return 1; } -mapnik::vector::tile create_tile(char **layernames, int line_detail, std::vector > &features, long long *count, struct pool **keys, struct pool **values, int nlayers) { - mapnik::vector::tile tile; - - int i; - for (i = 0; i < nlayers; i++) { - if (features[i].size() == 0) { - continue; - } - - mapnik::vector::tile_layer *layer = tile.add_layers(); - - layer->set_name(layernames[i]); - layer->set_version(1); - layer->set_extent(1 << line_detail); - - for (size_t x = 0; x < features[i].size(); x++) { - if (features[i][x].type == VT_LINE || features[i][x].type == VT_POLYGON) { - features[i][x].geom = remove_noop(features[i][x].geom, features[i][x].type, 0); - } - - mapnik::vector::tile_feature *feature = layer->add_features(); - - if (features[i][x].type == VT_POINT) { - feature->set_type(mapnik::vector::tile::Point); - } else if (features[i][x].type == VT_LINE) { - feature->set_type(mapnik::vector::tile::LineString); - } else if (features[i][x].type == VT_POLYGON) { - feature->set_type(mapnik::vector::tile::Polygon); - } else { - feature->set_type(mapnik::vector::tile::Unknown); - } - - to_feature(features[i][x].geom, feature); - *count += features[i][x].geom.size(); - - for (size_t y = 0; y < features[i][x].meta.size(); y++) { - feature->add_tags(features[i][x].meta[y]); - } - } - - struct pool_val *pv; - for (pv = keys[i]->head; pv != NULL; pv = pv->next) { - layer->add_keys(pv->s, strlen(pv->s)); - } - for (pv = values[i]->head; pv != NULL; pv = pv->next) { - mapnik::vector::tile_value *tv = layer->add_values(); - - if (pv->type == VT_NUMBER) { - long long v; - if (is_integer(pv->s, &v)) { - if (v >= 0) { - tv->set_int_value(v); - } else { - tv->set_sint_value(v); - } - } else { - tv->set_double_value(atof(pv->s)); - } - } else if (pv->type == VT_BOOLEAN) { - tv->set_bool_value(pv->s[0] == 't'); - } else { - tv->set_string_value(pv->s); - } - } - } - - return tile; -} - struct sll { char *name; long long val; @@ -626,19 +551,6 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s // This only loops if the tile data didn't fit, in which case the detail // goes down and the progress indicator goes backward for the next try. for (line_detail = detail; line_detail >= min_detail || line_detail == detail; line_detail--, oprogress = 0) { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - struct pool keys1[nlayers], values1[nlayers]; - struct pool *keys[nlayers], *values[nlayers]; - int i; - for (i = 0; i < nlayers; i++) { - pool_init(&keys1[i], 0); - pool_init(&values1[i], 0); - - keys[i] = &keys1[i]; - values[i] = &values1[i]; - } - long long count = 0; double accum_area = 0; @@ -659,7 +571,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s std::vector partials; std::vector > features; - for (i = 0; i < nlayers; i++) { + for (size_t i = 0; i < nlayers; i++) { features.push_back(std::vector()); } @@ -905,21 +817,18 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } } - // This is serial because decode_meta() unifies duplicates for (size_t i = 0; i < partials.size(); i++) { std::vector geoms = partials[i].geoms; partials[i].geoms.clear(); // avoid keeping two copies in memory long long layer = partials[i].layer; signed char t = partials[i].t; - int segment = partials[i].segment; long long original_seq = partials[i].original_seq; // A complex polygon may have been split up into multiple geometries. // Break them out into multiple features if necessary. for (size_t j = 0; j < geoms.size(); j++) { - if (t == VT_POINT || to_feature(geoms[j], NULL)) { + if (t == VT_POINT || draws_something(geoms[j])) { struct coalesce c; - char *meta = partials[i].meta; c.type = t; c.index = partials[i].index; @@ -927,8 +836,10 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s c.geom = geoms[j]; 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]; - decode_meta(partials[i].m, &meta, stringpool + pool_off[segment], keys[layer], values[layer], file_keys[layer], &c.meta); features[layer].push_back(c); } } @@ -996,6 +907,35 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } } + mvt_tile tile; + + for (size_t j = 0; j < features.size(); j++) { + mvt_layer layer; + + layer.name = layernames[j]; + layer.version = 2; + layer.extent = 1 << line_detail; + + for (size_t x = 0; x < features[j].size(); x++) { + mvt_feature feature; + + if (features[j][x].type == VT_LINE || features[j][x].type == VT_POLYGON) { + features[j][x].geom = remove_noop(features[j][x].geom, features[j][x].type, 0); + } + + feature.type = features[j][x].type; + feature.geometry = to_feature(features[j][x].geom); + count += features[j][x].geom.size(); + + decode_meta(features[j][x].m, &features[j][x].meta, features[j][x].stringpool, layer, feature, file_keys[j]); + layer.features.push_back(feature); + } + + if (layer.features.size() > 0) { + tile.layers.push_back(layer); + } + } + 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"); @@ -1013,19 +953,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s return -1; } - mapnik::vector::tile tile = create_tile(layernames, line_detail, features, &count, keys, values, nlayers); - - int i; - for (i = 0; i < nlayers; i++) { - pool_free(&keys1[i]); - pool_free(&values1[i]); - } - - std::string s; - std::string compressed; - - tile.SerializeToString(&s); - compress(s, compressed); + std::string compressed = tile.encode(); if (compressed.size() > 500000 && !prevent[P_KILOBYTE_LIMIT]) { if (!quiet) { @@ -1058,12 +986,6 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s return count; } } else { - int i; - for (i = 0; i < nlayers; i++) { - pool_free(&keys1[i]); - pool_free(&values1[i]); - } - return count; } } diff --git a/version.h b/version.h index b2e7e4a..afc21f2 100644 --- a/version.h +++ b/version.h @@ -1 +1 @@ -#define VERSION "tippecanoe v1.9.15\n" +#define VERSION "tippecanoe v1.9.16\n"