Add the ability to tippecanoe-decode into EPSG:3857 instead of WGS84

This commit is contained in:
Eric Fischer 2016-06-28 15:18:27 -07:00
parent e48e2152cc
commit 5d06f01e28
8 changed files with 136 additions and 30 deletions

View File

@ -101,6 +101,9 @@ pbf-test:
./tippecanoe-decode tests/pbf/11-328-791.vector.pbf 11 328 791 > tests/pbf/11-328-791.vector.pbf.out
cmp tests/pbf/11-328-791.json tests/pbf/11-328-791.vector.pbf.out
rm tests/pbf/11-328-791.vector.pbf.out
./tippecanoe-decode -t EPSG:3857 tests/pbf/11-328-791.vector.pbf 11 328 791 > tests/pbf/11-328-791.3857.vector.pbf.out
cmp tests/pbf/11-328-791.3857.json tests/pbf/11-328-791.3857.vector.pbf.out
rm tests/pbf/11-328-791.3857.vector.pbf.out
join-test:
./tippecanoe -f -z9 -z12 -o tests/join-population/tabblock_06001420.mbtiles tests/join-population/tabblock_06001420.json

View File

@ -351,3 +351,7 @@ If you decode an entire file, you get a nested `FeatureCollection` identifying e
tile and layer separately. Note that the same features generally appear at all zooms,
so the output for the file will have many copies of the same features at different
resolutions.
### Options
* -t _projection_: Specify the projection of the output data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).

View File

@ -165,7 +165,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
long long wy = scale * y + (scale / extent) * py;
double lat, lon;
tile2lonlat(wx, wy, 32, &lon, &lat);
projection->unproject(wx, wy, 32, &lon, &lat);
ops.push_back(lonlat(op, lon, lat, px, py));
} else {
@ -455,17 +455,24 @@ void decode(char *fname, int z, unsigned x, unsigned y) {
}
void usage(char **argv) {
fprintf(stderr, "Usage: %s file.mbtiles zoom x y\n", argv[0]);
fprintf(stderr, "Usage: %s [-t projection] file.mbtiles zoom x y\n", argv[0]);
exit(EXIT_FAILURE);
}
int main(int argc, char **argv) {
extern int optind;
// extern char *optarg;
extern char *optarg;
int i;
while ((i = getopt(argc, argv, "")) != -1) {
usage(argv);
while ((i = getopt(argc, argv, "t:")) != -1) {
switch (i) {
case 't':
set_projection_or_exit(optarg);
break;
default:
usage(argv);
}
}
if (argc == optind + 4) {

View File

@ -1705,14 +1705,6 @@ static bool has_name(struct option *long_options, int *pl) {
return false;
}
struct projection projections[] = {
{"EPSG:4326", lonlat2tile, "urn:ogc:def:crs:OGC:1.3:CRS84"},
{"EPSG:3857", epsg3857totile, "urn:ogc:def:crs:EPSG::3857"},
{NULL, NULL},
};
struct projection *projection = &projections[0];
int main(int argc, char **argv) {
#ifdef MTRACE
mtrace();
@ -1987,23 +1979,9 @@ int main(int argc, char **argv) {
read_parallel = 1;
break;
case 's': {
struct projection *p;
for (p = projections; p->name != NULL; p++) {
if (strcmp(p->name, optarg) == 0) {
projection = p;
break;
}
if (strcmp(p->alias, optarg) == 0) {
projection = p;
break;
}
}
if (p->name == NULL) {
fprintf(stderr, "Unknown projection (-s): %s\n", optarg);
exit(EXIT_FAILURE);
}
} break;
case 's':
set_projection_or_exit(optarg);
break;
default: {
int width = 7 + strlen(argv[0]);

View File

@ -410,3 +410,8 @@ If you decode an entire file, you get a nested \fB\fCFeatureCollection\fR identi
tile and layer separately. Note that the same features generally appear at all zooms,
so the output for the file will have many copies of the same features at different
resolutions.
.SS Options
.RS
.IP \(bu 2
\-t \fIprojection\fP: Specify the projection of the output data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).
.RE

View File

@ -1,7 +1,17 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include "projection.hpp"
struct projection projections[] = {
{"EPSG:4326", lonlat2tile, tile2lonlat, "urn:ogc:def:crs:OGC:1.3:CRS84"},
{"EPSG:3857", epsg3857totile, tiletoepsg3857, "urn:ogc:def:crs:EPSG::3857"},
{NULL, NULL},
};
struct projection *projection = &projections[0];
// http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
void lonlat2tile(double lon, double lat, int zoom, long long *x, long long *y) {
// Must limit latitude somewhere to prevent overflow.
@ -48,6 +58,16 @@ void epsg3857totile(double ix, double iy, int zoom, long long *x, long long *y)
}
}
void tiletoepsg3857(long long ix, long long iy, int zoom, double *ox, double *oy) {
if (zoom != 0) {
ix <<= (32 - zoom);
iy <<= (32 - zoom);
}
*ox = (ix - (1LL << 31)) * M_PI * 6378137.0 / (1LL << 31);
*oy = ((1LL << 32) - 1 - iy - (1LL << 31)) * M_PI * 6378137.0 / (1LL << 31);
}
unsigned long long encode(unsigned int wx, unsigned int wy) {
unsigned long long out = 0;
@ -72,3 +92,21 @@ void decode(unsigned long long index, unsigned *wx, unsigned *wy) {
*wy |= ((index >> (64 - 2 * (i + 1) + 0)) & 1) << (32 - (i + 1));
}
}
void set_projection_or_exit(const char *optarg) {
struct projection *p;
for (p = projections; p->name != NULL; p++) {
if (strcmp(p->name, optarg) == 0) {
projection = p;
break;
}
if (strcmp(p->alias, optarg) == 0) {
projection = p;
break;
}
}
if (p->name == NULL) {
fprintf(stderr, "Unknown projection (-s): %s\n", optarg);
exit(EXIT_FAILURE);
}
}

View File

@ -1,13 +1,17 @@
void lonlat2tile(double lon, double lat, int zoom, long long *x, long long *y);
void epsg3857totile(double ix, double iy, int zoom, long long *x, long long *y);
void tile2lonlat(long long x, long long y, int zoom, double *lon, double *lat);
void tiletoepsg3857(long long x, long long y, int zoom, double *ox, double *oy);
unsigned long long encode(unsigned int wx, unsigned int wy);
void decode(unsigned long long index, unsigned *wx, unsigned *wy);
void set_projection_or_exit(const char *optarg);
struct projection {
const char *name;
void (*project)(double ix, double iy, int zoom, long long *ox, long long *oy);
void (*unproject)(long long ix, long long iy, int zoom, double *ox, double *oy);
const char *alias;
};
extern struct projection *projection;
extern struct projection projections[];

View File

@ -0,0 +1,67 @@
{ "type": "FeatureCollection", "properties": { "zoom": 11, "x": 328, "y": 791 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "macarthur", "version": 1, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "LINEARID": "1104485645649", "FULLNAME": "W Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13612111.421538, 4555240.804753 ], [ -13612183.081252, 4555231.250125 ], [ -13612426.724279, 4555159.590410 ], [ -13612522.270565, 4555145.258468 ], [ -13612646.480736, 4555111.817268 ], [ -13612665.589993, 4555130.926525 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104485605278", "FULLNAME": "W Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13612087.534966, 4555197.808925 ], [ -13612092.312281, 4555207.363553 ], [ -13612197.413195, 4555197.808925 ], [ -13612350.287251, 4555150.035782 ], [ -13612484.052051, 4555097.485325 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102156217102", "FULLNAME": "W Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13612054.093766, 4555216.918182 ], [ -13611858.223882, 4555207.363553 ], [ -13611633.690111, 4555173.922353 ], [ -13611232.395712, 4555092.708011 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102157651658", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13611222.841084, 4555092.708011 ], [ -13611232.395712, 4555092.708011 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104475134288", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609288.028805, 4554079.917386 ], [ -13609316.692691, 4554247.123385 ], [ -13609359.688519, 4554323.560414 ], [ -13609536.449147, 4554481.211784 ], [ -13609550.781090, 4554505.098356 ], [ -13609660.659318, 4554605.421955 ], [ -13609708.432461, 4554638.863155 ], [ -13609842.197260, 4554696.190927 ], [ -13609966.407431, 4554739.186755 ], [ -13610343.815259, 4554849.064983 ], [ -13610534.907829, 4554958.943211 ], [ -13610678.227257, 4555001.939040 ], [ -13611829.559996, 4555226.472810 ], [ -13611996.765995, 4555245.582067 ], [ -13612111.421538, 4555240.804753 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104475134436", "FULLNAME": "W Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609288.028805, 4554079.917386 ], [ -13609316.692691, 4554247.123385 ], [ -13609359.688519, 4554323.560414 ], [ -13609536.449147, 4554481.211784 ], [ -13609550.781090, 4554505.098356 ], [ -13609627.218118, 4554576.758070 ], [ -13609708.432461, 4554638.863155 ], [ -13609842.197260, 4554696.190927 ], [ -13609966.407431, 4554739.186755 ], [ -13610343.815259, 4554849.064983 ], [ -13610534.907829, 4554958.943211 ], [ -13610625.676800, 4554987.607097 ], [ -13610792.882800, 4555025.825611 ], [ -13611638.467425, 4555188.254296 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104486392881", "FULLNAME": "W Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609335.801948, 4554232.791443 ], [ -13609364.465834, 4554299.673842 ], [ -13609388.352405, 4554328.337728 ], [ -13609708.432461, 4554614.976584 ], [ -13609770.537546, 4554648.417784 ], [ -13609985.516689, 4554729.632126 ], [ -13610329.483316, 4554825.178412 ], [ -13610420.252287, 4554868.174240 ], [ -13610539.685144, 4554944.611268 ], [ -13610582.680972, 4554958.943211 ], [ -13610683.004572, 4554987.607097 ], [ -13611222.841084, 4555092.708011 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102407366406", "FULLNAME": "W Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609302.360748, 4554036.921558 ], [ -13609302.360748, 4554075.140072 ], [ -13609335.801948, 4554232.791443 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102156510290", "FULLNAME": "W Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609268.919548, 4554008.257672 ], [ -13609288.028805, 4554079.917386 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104485773833", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609120.822806, 4553635.627159 ], [ -13609187.705206, 4553755.060016 ], [ -13609278.474177, 4553884.047501 ], [ -13609297.583434, 4553989.148415 ], [ -13609302.360748, 4554075.140072 ], [ -13609335.801948, 4554232.791443 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102654602215", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609120.822806, 4553635.627159 ], [ -13609087.381606, 4553568.744759 ], [ -13609073.049663, 4553511.416988 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1105089436004", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13609073.049663, 4553511.416988 ], [ -13609034.831149, 4553377.652189 ], [ -13608948.839492, 4553148.341104 ], [ -13608896.289035, 4552885.588819 ], [ -13608881.957093, 4552842.592991 ], [ -13608848.515893, 4552780.487905 ], [ -13608776.856179, 4552718.382820 ], [ -13608690.864522, 4552651.500420 ], [ -13608662.200636, 4552637.168477 ], [ -13608475.885380, 4552565.508763 ], [ -13608394.671037, 4552512.958306 ], [ -13608002.931267, 4552350.529621 ], [ -13607979.044696, 4552336.197678 ], [ -13607916.939611, 4552274.092593 ], [ -13607869.166468, 4552207.210193 ], [ -13607850.057211, 4552192.878250 ], [ -13607783.174811, 4552164.214365 ], [ -13607654.187326, 4552154.659736 ], [ -13607501.313269, 4552044.781508 ], [ -13607252.892927, 4551939.680594 ], [ -13607100.018871, 4551825.025052 ], [ -13607014.027214, 4551777.251909 ], [ -13606550.627730, 4551332.961682 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104469713198", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13607864.389154, 4552240.651393 ], [ -13607883.498411, 4552269.315278 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104469713187", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13607864.389154, 4552240.651393 ], [ -13607854.834525, 4552221.542136 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102638069562", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13607864.389154, 4552240.651393 ], [ -13607854.834525, 4552226.319450 ], [ -13607859.611839, 4552216.764822 ], [ -13607826.170639, 4552188.100936 ], [ -13607744.956297, 4552168.991679 ], [ -13607673.296583, 4552168.991679 ], [ -13607630.300754, 4552154.659736 ], [ -13607525.199841, 4552068.668079 ], [ -13607391.435041, 4552006.562994 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102156248968", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13607391.435041, 4552006.562994 ], [ -13607219.451727, 4551949.235223 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102638078801", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13606493.299959, 4551442.839910 ], [ -13606340.425902, 4551404.621396 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1103717593123", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13606340.425902, 4551404.621396 ], [ -13605518.727848, 4551213.528825 ], [ -13605480.509334, 4551213.528825 ], [ -13605451.845448, 4551232.638082 ], [ -13605389.740363, 4551332.961682 ], [ -13605341.967220, 4551361.625568 ], [ -13605327.635277, 4551361.625568 ], [ -13605093.546878, 4551285.188539 ], [ -13605026.664479, 4551256.524654 ], [ -13604687.475166, 4551156.201054 ], [ -13604252.739567, 4551012.881626 ], [ -13604209.743739, 4551008.104312 ], [ -13604138.084025, 4551027.213569 ], [ -13604099.865511, 4551027.213569 ], [ -13603765.453512, 4550831.343684 ], [ -13603373.713742, 4550425.271971 ], [ -13602661.893916, 4549426.813289 ], [ -13602499.465231, 4549240.498033 ], [ -13602418.250888, 4549192.724890 ], [ -13602131.612032, 4549125.842490 ], [ -13602026.511118, 4549078.069348 ], [ -13601954.851404, 4549054.182776 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1103717593124", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13606340.425902, 4551404.621396 ], [ -13606240.102303, 4551371.180196 ], [ -13605509.173220, 4551203.974197 ], [ -13605480.509334, 4551203.974197 ], [ -13605447.068134, 4551223.083454 ], [ -13605380.185734, 4551328.184368 ], [ -13605351.521849, 4551347.293625 ], [ -13605313.303335, 4551347.293625 ], [ -13605169.983907, 4551304.297796 ], [ -13604993.223279, 4551232.638082 ], [ -13604921.563565, 4551218.306140 ], [ -13604577.596937, 4551113.205226 ], [ -13604247.962253, 4551003.326997 ], [ -13604200.189110, 4550998.549683 ], [ -13604138.084025, 4551017.658940 ], [ -13604104.642825, 4551017.658940 ], [ -13603784.562769, 4550831.343684 ], [ -13603483.591970, 4550525.595571 ], [ -13603316.385971, 4550329.725686 ], [ -13602671.448544, 4549422.035975 ], [ -13602489.910602, 4549226.166090 ], [ -13602394.364317, 4549178.392947 ], [ -13602150.721289, 4549121.065176 ], [ -13602050.397690, 4549082.846662 ], [ -13601978.737976, 4549035.073519 ], [ -13601940.519462, 4548929.972605 ], [ -13601902.300947, 4548772.321234 ], [ -13601811.531976, 4548490.459693 ], [ -13601792.422719, 4548399.690722 ], [ -13601806.754662, 4548208.598151 ], [ -13601892.746319, 4548127.383808 ], [ -13601902.300947, 4548108.274551 ], [ -13601902.300947, 4548070.056037 ], [ -13601806.754662, 4547945.845866 ], [ -13601663.435234, 4547797.749124 ], [ -13601606.107463, 4547754.753295 ], [ -13601510.561177, 4547874.186152 ], [ -13601462.788035, 4547902.850038 ], [ -13601367.241749, 4547826.413009 ], [ -13601171.371864, 4547687.870896 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102156241736", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13602580.679573, 4549288.271175 ], [ -13602614.120773, 4549355.153575 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104486090991", "FULLNAME": "Macarthur Fwy", "RTTYP": "M", "MTFCC": "S1100" }, "geometry": { "type": "LineString", "coordinates": [ [ -13613769.149589, 4555866.632922 ], [ -13613721.376446, 4555737.645437 ], [ -13613687.935246, 4555494.002409 ], [ -13613687.935246, 4555302.909839 ], [ -13613664.048675, 4555236.027439 ], [ -13613635.384789, 4555193.031610 ], [ -13613582.834332, 4555140.481153 ], [ -13613324.859362, 4554968.497840 ], [ -13613257.976962, 4554939.833954 ], [ -13613210.203819, 4554930.279326 ], [ -13613038.220506, 4554925.502011 ], [ -13612536.602508, 4555044.934868 ], [ -13612450.610851, 4555059.266811 ], [ -13612345.509937, 4555059.266811 ], [ -13612288.182166, 4555049.712182 ], [ -13611987.211367, 4554963.720526 ], [ -13611609.803540, 4554839.510355 ], [ -13611084.298970, 4554696.190927 ], [ -13610883.651771, 4554624.531212 ], [ -13610740.332343, 4554591.090013 ], [ -13610582.680972, 4554538.539556 ], [ -13610181.386574, 4554438.215956 ], [ -13609937.743546, 4554342.669671 ], [ -13609818.310689, 4554285.341899 ], [ -13609622.440804, 4554165.909043 ], [ -13609469.566748, 4554065.585443 ], [ -13609402.684348, 4554013.034986 ], [ -13609283.251491, 4553917.488701 ], [ -13609216.369091, 4553850.606301 ], [ -13609120.822806, 4553735.950759 ], [ -13609082.604292, 4553678.622987 ], [ -13608996.612635, 4553487.530417 ], [ -13608953.616807, 4553320.324417 ], [ -13608877.179778, 4552952.471219 ], [ -13608853.293207, 4552880.811505 ], [ -13608805.520064, 4552799.597162 ], [ -13608752.969607, 4552732.714762 ], [ -13608652.646008, 4552661.055048 ], [ -13607902.607668, 4552379.193507 ], [ -13607654.187326, 4552250.206021 ], [ -13607252.892927, 4552016.117622 ], [ -13607066.577671, 4551882.352823 ], [ -13606942.367500, 4551777.251909 ], [ -13606627.064758, 4551457.171853 ], [ -13606550.627730, 4551395.066767 ], [ -13606450.304130, 4551337.738996 ], [ -13606283.098131, 4551280.411225 ], [ -13605561.723677, 4551089.318654 ], [ -13605079.214935, 4550945.999226 ], [ -13604998.000593, 4550907.780712 ], [ -13604768.689508, 4550845.675627 ], [ -13604596.706194, 4550788.347855 ], [ -13604482.050652, 4550740.574713 ], [ -13604362.617795, 4550678.469627 ], [ -13604286.180767, 4550625.919170 ], [ -13603970.878025, 4550439.603914 ], [ -13603880.109054, 4550377.498828 ], [ -13603789.340083, 4550301.061800 ], [ -13603708.125741, 4550210.292829 ], [ -13603354.604485, 4549737.338717 ], [ -13603268.612828, 4549651.347060 ], [ -13603192.175800, 4549589.241974 ], [ -13603077.520257, 4549512.804946 ], [ -13602575.902259, 4549202.279519 ], [ -13602408.696260, 4549121.065176 ], [ -13602284.486089, 4549073.292033 ], [ -13602150.721289, 4549030.296205 ], [ -13602016.956490, 4549001.632319 ], [ -13601835.418548, 4548977.745748 ], [ -13601768.536148, 4548977.745748 ], [ -13601644.325977, 4548963.413805 ], [ -13600965.947351, 4548939.527234 ], [ -13600822.627923, 4548901.308720 ], [ -13600311.455296, 4548528.678207 ], [ -13599871.942384, 4548232.484722 ], [ -13599676.072499, 4548113.051865 ], [ -13599422.874842, 4547974.509752 ], [ -13599293.887357, 4547898.072723 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104474748623", "FULLNAME": "Macarthur Fwy", "RTTYP": "M", "MTFCC": "S1100" }, "geometry": { "type": "LineString", "coordinates": [ [ -13599293.887357, 4547926.736609 ], [ -13599676.072499, 4548141.715751 ], [ -13599881.497012, 4548265.925922 ], [ -13599929.270155, 4548304.144436 ], [ -13600340.119182, 4548576.451349 ], [ -13600469.106667, 4548676.774949 ], [ -13600617.203409, 4548805.762434 ], [ -13600688.863123, 4548858.312891 ], [ -13600798.741351, 4548920.417977 ], [ -13600989.833922, 4548968.191119 ], [ -13601668.212548, 4548992.077691 ], [ -13601978.737976, 4549020.741576 ], [ -13602227.158318, 4549082.846662 ], [ -13602375.255060, 4549135.397119 ], [ -13602571.124945, 4549230.943404 ], [ -13603125.293400, 4549579.687346 ], [ -13603220.839685, 4549651.347060 ], [ -13603349.827171, 4549780.334545 ], [ -13603445.373456, 4549899.767402 ], [ -13603660.352598, 4550195.960886 ], [ -13603717.680369, 4550267.620600 ], [ -13603813.226654, 4550363.166886 ], [ -13603951.768768, 4550463.490485 ], [ -13604233.630310, 4550635.473799 ], [ -13604467.718709, 4550764.461284 ], [ -13604692.252480, 4550850.452941 ], [ -13604945.450136, 4550922.112655 ], [ -13605432.736191, 4551084.541340 ], [ -13605934.354189, 4551208.751511 ], [ -13606211.438417, 4551289.965854 ], [ -13606283.098131, 4551304.297796 ], [ -13606412.085616, 4551347.293625 ], [ -13606493.299959, 4551390.289453 ], [ -13606603.178187, 4551471.503796 ], [ -13606985.363328, 4551853.688937 ], [ -13607186.010528, 4552006.562994 ], [ -13607329.329956, 4552092.554651 ], [ -13607840.502582, 4552383.970821 ], [ -13607916.939611, 4552417.412021 ], [ -13608576.208980, 4552656.277734 ], [ -13608676.532579, 4552704.050877 ], [ -13608762.524236, 4552785.265219 ], [ -13608829.406636, 4552895.143448 ], [ -13608848.515893, 4552952.471219 ], [ -13608972.726064, 4553497.085045 ], [ -13609030.053835, 4553635.627159 ], [ -13609101.713549, 4553755.060016 ], [ -13609173.373263, 4553845.828987 ], [ -13609307.138062, 4553979.593786 ], [ -13609603.331547, 4554199.350243 ], [ -13609799.201432, 4554314.005785 ], [ -13610014.180574, 4554414.329385 ], [ -13610143.168059, 4554457.325213 ], [ -13610816.769371, 4554638.863155 ], [ -13610931.424914, 4554677.081669 ], [ -13611003.084628, 4554691.413612 ], [ -13611528.589197, 4554868.174240 ], [ -13612273.850223, 4555083.153382 ], [ -13612374.173822, 4555102.262639 ], [ -13612555.711765, 4555092.708011 ], [ -13612914.010335, 4554992.384411 ], [ -13613052.552448, 4554978.052468 ], [ -13613234.090391, 4555021.048297 ], [ -13613425.182961, 4555107.039954 ], [ -13613520.729247, 4555164.367725 ], [ -13613578.057018, 4555221.695496 ], [ -13613621.052846, 4555293.355210 ], [ -13613644.939418, 4555417.565381 ], [ -13613635.384789, 4555570.439438 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1104485773387", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13602580.679573, 4549288.271175 ], [ -13602542.461059, 4549230.943404 ], [ -13602475.578660, 4549154.506376 ], [ -13602442.137460, 4549121.065176 ], [ -13602351.368489, 4549058.960090 ], [ -13601997.847233, 4548934.749920 ], [ -13601973.960661, 4548925.195291 ], [ -13601950.074090, 4548901.308720 ], [ -13601821.086605, 4548490.459693 ], [ -13601801.977348, 4548390.136093 ], [ -13601811.531976, 4548222.930094 ], [ -13601907.078262, 4548127.383808 ], [ -13601916.632890, 4548103.497237 ], [ -13601916.632890, 4548074.833351 ], [ -13601911.855576, 4548060.501409 ], [ -13601816.309291, 4547941.068552 ], [ -13601682.544491, 4547802.526438 ], [ -13601620.439406, 4547754.753295 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102155930810", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13601610.884777, 4547759.530610 ], [ -13601591.775520, 4547788.194495 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1103690483032", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13601467.565349, 4547912.404666 ], [ -13601085.380208, 4547640.097753 ], [ -13600985.056608, 4547544.551468 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102654601627", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13601171.371864, 4547687.870896 ], [ -13601147.485293, 4547673.538953 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102406970092", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13601147.485293, 4547673.538953 ], [ -13601056.716322, 4547606.656553 ], [ -13600989.833922, 4547534.996839 ], [ -13600951.615408, 4547506.332953 ], [ -13600870.401066, 4547420.341297 ], [ -13600789.186723, 4547348.681583 ], [ -13600660.199238, 4547181.475583 ], [ -13600263.682154, 4546937.832556 ], [ -13600254.127525, 4546942.609870 ], [ -13600125.140040, 4546870.950156 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1103690483026", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13600617.203409, 4547162.366326 ], [ -13600502.547867, 4547095.483926 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102406970093", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13600144.249297, 4546866.172842 ], [ -13600129.917354, 4546861.395527 ], [ -13599905.383583, 4546665.525642 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102654601663", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13599876.719698, 4546646.416385 ], [ -13599905.383583, 4546665.525642 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1102954918511", "FULLNAME": "Macarthur", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13600125.140040, 4546870.950156 ], [ -13599709.513698, 4546507.874271 ], [ -13599676.072499, 4546469.655757 ], [ -13599513.643813, 4546240.344672 ], [ -13599293.887357, 4545910.709988 ] ] } }
,
{ "type": "Feature", "properties": { "LINEARID": "1105089465114", "FULLNAME": "Macarthur Blvd", "RTTYP": "M", "MTFCC": "S1400" }, "geometry": { "type": "LineString", "coordinates": [ [ -13599876.719698, 4546646.416385 ], [ -13599719.068327, 4546503.096957 ], [ -13599676.072499, 4546450.546500 ], [ -13599537.530385, 4546254.676615 ], [ -13599293.887357, 4545891.600731 ] ] } }
] }
] }