diff --git a/README.md b/README.md index 146610df67..3c71fc1a07 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ uv run ty check uv run pytest tests/ --import-mode importlib ``` +For GeoJSON hardening fixtures, see `docs/geojson-fixtures.md`. + ## Usage ### `API()` constructor diff --git a/docs/geojson-fixtures.md b/docs/geojson-fixtures.md new file mode 100644 index 0000000000..43c8356fe1 --- /dev/null +++ b/docs/geojson-fixtures.md @@ -0,0 +1,24 @@ +# GeoJSON Fixtures (osmtogeojson reference) + +We use `osmtogeojson` as a reference implementation to generate GeoJSON fixtures +for relation-heavy cases (multipolygons, routes, boundaries). + +This does **not** add a runtime dependency. It is only for generating fixtures. + +## Setup + +Install Node and the converter: + +```bash +npm install --global osmtogeojson +``` + +## Generate a fixture + +Given an Overpass JSON response saved to `tests/fixtures/input.json`: + +```bash +node tools/osmtogeojson_fixture.js tests/fixtures/input.json tests/fixtures/output.geojson +``` + +Commit the resulting `output.geojson` and use it as a golden file in tests. diff --git a/tests/fixtures/osmtogeojson/example_body.geojson b/tests/fixtures/osmtogeojson/example_body.geojson new file mode 100644 index 0000000000..96e90bd7b5 --- /dev/null +++ b/tests/fixtures/osmtogeojson/example_body.geojson @@ -0,0 +1,1269 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "id": "relation/6518385", + "properties": { + "boundary": "protected_area", + "contact:website": "http://www.ebparks.org/parks/sibley", + "name": "Sibley Volcanic Regional Preserve", + "operator": "East Bay Regional Park District", + "owner": "East Bay Regional Park District", + "protect_class": "4", + "source": "https://www.ebparks.org/images/Assets/files/parks/sibley/Sibley-map_2250w-04-23-18.gif", + "type": "multipolygon", + "website": "https://www.ebparks.org/parks/sibley/", + "wikidata": "Q7349780", + "wikipedia": "en:Robert Sibley Volcanic Regional Preserve", + "id": "relation/6518385" + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -122.1839334, + 37.846772 + ], + [ + -122.1839345, + 37.841137 + ], + [ + -122.1839291, + 37.8403406 + ], + [ + -122.1839488, + 37.839595 + ], + [ + -122.182912, + 37.83957 + ], + [ + -122.1826336, + 37.8397165 + ], + [ + -122.182271, + 37.839908 + ], + [ + -122.1810388, + 37.8399164 + ], + [ + -122.180953, + 37.839917 + ], + [ + -122.18098, + 37.839502 + ], + [ + -122.179526, + 37.839474 + ], + [ + -122.1794585, + 37.8383942 + ], + [ + -122.1792459, + 37.8382812 + ], + [ + -122.1790152, + 37.8381872 + ], + [ + -122.1783984, + 37.8379737 + ], + [ + -122.1782177, + 37.8378947 + ], + [ + -122.1780377, + 37.8381424 + ], + [ + -122.1769565, + 37.8377218 + ], + [ + -122.1751359, + 37.8398439 + ], + [ + -122.1734159, + 37.8398484 + ], + [ + -122.1703659, + 37.8398564 + ], + [ + -122.170393, + 37.841024 + ], + [ + -122.1716704, + 37.8415556 + ], + [ + -122.1723633, + 37.8418279 + ], + [ + -122.1730392, + 37.8421669 + ], + [ + -122.1730593, + 37.8421994 + ], + [ + -122.1733589, + 37.8426564 + ], + [ + -122.1736671, + 37.8433304 + ], + [ + -122.1741477, + 37.8437848 + ], + [ + -122.1742394, + 37.8440012 + ], + [ + -122.1741978, + 37.8448946 + ], + [ + -122.1741972, + 37.8449101 + ], + [ + -122.1741976, + 37.844938 + ], + [ + -122.1742095, + 37.8450505 + ], + [ + -122.1742444, + 37.8454312 + ], + [ + -122.174278, + 37.8457811 + ], + [ + -122.1743737, + 37.8467679 + ], + [ + -122.1743812, + 37.8469091 + ], + [ + -122.1748969, + 37.846908 + ], + [ + -122.1748862, + 37.8505078 + ], + [ + -122.1794688, + 37.8504828 + ], + [ + -122.1794718, + 37.84959 + ], + [ + -122.1794846, + 37.8467686 + ], + [ + -122.1839334, + 37.846772 + ] + ] + ], + [ + [ + [ + -122.2145058, + 37.8656538 + ], + [ + -122.2147394, + 37.865305 + ], + [ + -122.215062, + 37.8648233 + ], + [ + -122.2153169, + 37.8644428 + ], + [ + -122.2154408, + 37.8642579 + ], + [ + -122.2156436, + 37.8639551 + ], + [ + -122.2157868, + 37.8637413 + ], + [ + -122.2137807, + 37.8627856 + ], + [ + -122.2135296, + 37.8626659 + ], + [ + -122.2131154, + 37.8624686 + ], + [ + -122.2119916, + 37.8620879 + ], + [ + -122.2117493, + 37.8620058 + ], + [ + -122.2110324, + 37.8618225 + ], + [ + -122.210984, + 37.8618545 + ], + [ + -122.2109324, + 37.8618885 + ], + [ + -122.2107887, + 37.861994 + ], + [ + -122.2106566, + 37.862098 + ], + [ + -122.2105186, + 37.8622155 + ], + [ + -122.2103687, + 37.8623554 + ], + [ + -122.2102208, + 37.8625164 + ], + [ + -122.2100963, + 37.8626573 + ], + [ + -122.2099821, + 37.8628239 + ], + [ + -122.2098842, + 37.8629608 + ], + [ + -122.2097741, + 37.8631636 + ], + [ + -122.2097017, + 37.863344 + ], + [ + -122.2096334, + 37.8635452 + ], + [ + -122.2095814, + 37.8637617 + ], + [ + -122.209559, + 37.8639646 + ], + [ + -122.2095565, + 37.8641922 + ], + [ + -122.2095533, + 37.864413 + ], + [ + -122.2098302, + 37.8644502 + ], + [ + -122.2100769, + 37.8647984 + ], + [ + -122.2127232, + 37.864933 + ], + [ + -122.2126318, + 37.8650823 + ], + [ + -122.2145058, + 37.8656538 + ] + ] + ], + [ + [ + [ + -122.1978766, + 37.85778 + ], + [ + -122.1980086, + 37.8614543 + ], + [ + -122.2066888, + 37.8614459 + ], + [ + -122.2066359, + 37.8626311 + ], + [ + -122.2089019, + 37.8626858 + ], + [ + -122.2091172, + 37.861616 + ], + [ + -122.2091415, + 37.8614975 + ], + [ + -122.2089418, + 37.8614708 + ], + [ + -122.2087028, + 37.8614422 + ], + [ + -122.2083939, + 37.8614053 + ], + [ + -122.2071887, + 37.8612612 + ], + [ + -122.207248, + 37.8608912 + ], + [ + -122.2074076, + 37.8598958 + ], + [ + -122.2077658, + 37.8599349 + ], + [ + -122.2081879, + 37.8599809 + ], + [ + -122.2089406, + 37.860063 + ], + [ + -122.2088504, + 37.8599088 + ], + [ + -122.2087851, + 37.8597685 + ], + [ + -122.2094531, + 37.8596264 + ], + [ + -122.2097572, + 37.8602346 + ], + [ + -122.2102615, + 37.8606073 + ], + [ + -122.2113451, + 37.8607936 + ], + [ + -122.2114995, + 37.8608123 + ], + [ + -122.2120602, + 37.86088 + ], + [ + -122.2129329, + 37.8612002 + ], + [ + -122.2137376, + 37.8615221 + ], + [ + -122.2144994, + 37.8620134 + ], + [ + -122.2153362, + 37.8625301 + ], + [ + -122.2163302, + 37.8629807 + ], + [ + -122.2170003, + 37.862143 + ], + [ + -122.2182672, + 37.8632819 + ], + [ + -122.2185527, + 37.8629942 + ], + [ + -122.2180495, + 37.8623816 + ], + [ + -122.2179208, + 37.8622867 + ], + [ + -122.2173716, + 37.8618385 + ], + [ + -122.2173159, + 37.8617086 + ], + [ + -122.2172742, + 37.8615492 + ], + [ + -122.2172431, + 37.8614579 + ], + [ + -122.2171975, + 37.8613625 + ], + [ + -122.2171367, + 37.8612736 + ], + [ + -122.217074, + 37.8611974 + ], + [ + -122.2169109, + 37.8610403 + ], + [ + -122.2166097, + 37.8607835 + ], + [ + -122.2165464, + 37.860723 + ], + [ + -122.2164811, + 37.8606483 + ], + [ + -122.2164333, + 37.8605821 + ], + [ + -122.215701, + 37.8606581 + ], + [ + -122.2154172, + 37.8603942 + ], + [ + -122.2148326, + 37.8598506 + ], + [ + -122.2141683, + 37.859233 + ], + [ + -122.2139028, + 37.8589861 + ], + [ + -122.2129171, + 37.8590083 + ], + [ + -122.2117485, + 37.8582802 + ], + [ + -122.2121374, + 37.8582562 + ], + [ + -122.2120475, + 37.8578091 + ], + [ + -122.2115058, + 37.8571398 + ], + [ + -122.2113068, + 37.856894 + ], + [ + -122.2110246, + 37.857108 + ], + [ + -122.2108496, + 37.8569342 + ], + [ + -122.2110964, + 37.8567616 + ], + [ + -122.2109229, + 37.8566447 + ], + [ + -122.2111627, + 37.8563126 + ], + [ + -122.2109766, + 37.8555423 + ], + [ + -122.2106232, + 37.8550607 + ], + [ + -122.2108847, + 37.8541961 + ], + [ + -122.2092691, + 37.8525155 + ], + [ + -122.2087702, + 37.8519251 + ], + [ + -122.208486, + 37.85169 + ], + [ + -122.208438, + 37.8511574 + ], + [ + -122.208502, + 37.8511091 + ], + [ + -122.2085409, + 37.851063 + ], + [ + -122.2085659, + 37.8510147 + ], + [ + -122.208577, + 37.8509554 + ], + [ + -122.2085964, + 37.850482 + ], + [ + -122.2066221, + 37.8434835 + ], + [ + -122.2061479, + 37.8435708 + ], + [ + -122.206153, + 37.8440786 + ], + [ + -122.2062871, + 37.8440712 + ], + [ + -122.2063753, + 37.8441062 + ], + [ + -122.2064279, + 37.844158 + ], + [ + -122.2064487, + 37.8442361 + ], + [ + -122.2064467, + 37.8442939 + ], + [ + -122.206444, + 37.8443747 + ], + [ + -122.2064319, + 37.8445092 + ], + [ + -122.2064078, + 37.8445685 + ], + [ + -122.2063179, + 37.8446278 + ], + [ + -122.2060135, + 37.844757 + ], + [ + -122.2059263, + 37.8448258 + ], + [ + -122.2058526, + 37.8449476 + ], + [ + -122.2057547, + 37.8451859 + ], + [ + -122.2057158, + 37.8454544 + ], + [ + -122.2056923, + 37.8455809 + ], + [ + -122.2056319, + 37.8456498 + ], + [ + -122.2054945, + 37.8457393 + ], + [ + -122.2053577, + 37.8458573 + ], + [ + -122.2053523, + 37.8459415 + ], + [ + -122.20541, + 37.846273 + ], + [ + -122.2053939, + 37.8463874 + ], + [ + -122.2053463, + 37.8465123 + ], + [ + -122.2049493, + 37.8471107 + ], + [ + -122.2048306, + 37.8474485 + ], + [ + -122.2048072, + 37.8477005 + ], + [ + -122.2047783, + 37.8477778 + ], + [ + -122.2046548, + 37.8478486 + ], + [ + -122.2046154, + 37.8478694 + ], + [ + -122.2045839, + 37.847916 + ], + [ + -122.2045604, + 37.8480045 + ], + [ + -122.2045329, + 37.8483105 + ], + [ + -122.204427, + 37.8486446 + ], + [ + -122.2044317, + 37.8487548 + ], + [ + -122.2045027, + 37.8488252 + ], + [ + -122.2046119, + 37.8488788 + ], + [ + -122.2047005, + 37.8489147 + ], + [ + -122.204722, + 37.848938 + ], + [ + -122.2047186, + 37.8489724 + ], + [ + -122.2046985, + 37.8490036 + ], + [ + -122.2046315, + 37.8490126 + ], + [ + -122.2044746, + 37.8489805 + ], + [ + -122.2040712, + 37.8489873 + ], + [ + -122.203951, + 37.8489602 + ], + [ + -122.2038394, + 37.8488992 + ], + [ + -122.203814, + 37.8488215 + ], + [ + -122.2038636, + 37.848741 + ], + [ + -122.2037751, + 37.8486341 + ], + [ + -122.203649, + 37.8487876 + ], + [ + -122.203566, + 37.8489374 + ], + [ + -122.2034761, + 37.8491196 + ], + [ + -122.2034252, + 37.8492805 + ], + [ + -122.2033608, + 37.8494828 + ], + [ + -122.2033125, + 37.8496988 + ], + [ + -122.2032926, + 37.8498573 + ], + [ + -122.2030698, + 37.8495283 + ], + [ + -122.2030081, + 37.8493907 + ], + [ + -122.2029216, + 37.8492567 + ], + [ + -122.2028479, + 37.8491672 + ], + [ + -122.2027841, + 37.8491095 + ], + [ + -122.2019516, + 37.8485483 + ], + [ + -122.201904, + 37.8485107 + ], + [ + -122.2018485, + 37.8484544 + ], + [ + -122.2017969, + 37.8483917 + ], + [ + -122.2017493, + 37.8483291 + ], + [ + -122.2017136, + 37.848254 + ], + [ + -122.2016859, + 37.8481256 + ], + [ + -122.2016621, + 37.8480504 + ], + [ + -122.2016145, + 37.847969 + ], + [ + -122.2015471, + 37.8479064 + ], + [ + -122.2014519, + 37.8478469 + ], + [ + -122.2012933, + 37.8477655 + ], + [ + -122.2008992, + 37.8476259 + ], + [ + -122.2006034, + 37.847587 + ], + [ + -122.2001882, + 37.8475063 + ], + [ + -122.1996732, + 37.8473775 + ], + [ + -122.1990294, + 37.847391 + ], + [ + -122.198832, + 37.8474114 + ], + [ + -122.1986861, + 37.8473775 + ], + [ + -122.1985094, + 37.8472454 + ], + [ + -122.1982004, + 37.8468591 + ], + [ + -122.1977626, + 37.8465338 + ], + [ + -122.1974365, + 37.8462085 + ], + [ + -122.1968499, + 37.845815 + ], + [ + -122.1967066, + 37.8455965 + ], + [ + -122.1965948, + 37.8453362 + ], + [ + -122.1965625, + 37.8450989 + ], + [ + -122.1965504, + 37.8448595 + ], + [ + -122.1965552, + 37.8447847 + ], + [ + -122.1965913, + 37.8445996 + ], + [ + -122.1966258, + 37.8442751 + ], + [ + -122.1966251, + 37.8441586 + ], + [ + -122.1965956, + 37.8440628 + ], + [ + -122.1965272, + 37.8439802 + ], + [ + -122.1964164, + 37.843891 + ], + [ + -122.1961671, + 37.8437576 + ], + [ + -122.193102, + 37.844092 + ], + [ + -122.193004, + 37.84685 + ], + [ + -122.188458, + 37.8468 + ], + [ + -122.1885866, + 37.8504331 + ], + [ + -122.1886194, + 37.8520422 + ], + [ + -122.1891555, + 37.8531602 + ], + [ + -122.1895098, + 37.853395 + ], + [ + -122.1902871, + 37.8542022 + ], + [ + -122.191239, + 37.854941 + ], + [ + -122.1926709, + 37.8556011 + ], + [ + -122.1938301, + 37.8560627 + ], + [ + -122.1945727, + 37.8564558 + ], + [ + -122.1949688, + 37.8566651 + ], + [ + -122.1940921, + 37.8577917 + ], + [ + -122.1978766, + 37.85778 + ] + ], + [ + [ + -122.2096819, + 37.8587752 + ], + [ + -122.2094446, + 37.8584741 + ], + [ + -122.209792, + 37.8581685 + ], + [ + -122.2101056, + 37.8580727 + ], + [ + -122.2103175, + 37.858454 + ], + [ + -122.2096819, + 37.8587752 + ] + ], + [ + [ + -122.1936314, + 37.8505074 + ], + [ + -122.192981, + 37.8504967 + ], + [ + -122.1929665, + 37.8510476 + ], + [ + -122.1919789, + 37.8510314 + ], + [ + -122.1919934, + 37.8504796 + ], + [ + -122.1920152, + 37.8496551 + ], + [ + -122.1936532, + 37.8496821 + ], + [ + -122.1936314, + 37.8505074 + ] + ], + [ + [ + -122.1956256, + 37.8505283 + ], + [ + -122.1956223, + 37.8506642 + ], + [ + -122.1946645, + 37.8506495 + ], + [ + -122.1946679, + 37.8505136 + ], + [ + -122.1956256, + 37.8505283 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/10322303", + "properties": { + "addr:city": "Berkeley", + "foot": "yes", + "highway": "service", + "id": "way/10322303" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3184769, + 37.8699011 + ], + [ + -122.3184121, + 37.8696521 + ], + [ + -122.3183574, + 37.8694416 + ], + [ + -122.3183131, + 37.8692714 + ], + [ + -122.318271, + 37.8691095 + ], + [ + -122.3182181, + 37.8689059 + ], + [ + -122.3181336, + 37.8688307 + ], + [ + -122.3179977, + 37.8687626 + ], + [ + -122.3177537, + 37.8687499 + ], + [ + -122.3176222, + 37.8687732 + ], + [ + -122.3172655, + 37.8689299 + ], + [ + -122.317185, + 37.8690146 + ], + [ + -122.3172551, + 37.8692792 + ], + [ + -122.3172973, + 37.8694387 + ], + [ + -122.3173448, + 37.8696182 + ], + [ + -122.3174212, + 37.8699064 + ], + [ + -122.3174645, + 37.8700701 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/tests/fixtures/osmtogeojson/example_mapquery.geojson b/tests/fixtures/osmtogeojson/example_mapquery.geojson new file mode 100644 index 0000000000..bf451a82cc --- /dev/null +++ b/tests/fixtures/osmtogeojson/example_mapquery.geojson @@ -0,0 +1,3696 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "id": "relation/9596727", + "properties": { + "bicycle": "yes", + "disused:route": "ferry", + "fee": "yes", + "foot": "yes", + "from": "Berkeley Marina K-Dock", + "name": "Tideline: Berkeley => San Francisco => Berkeley (evenings)", + "network": "Tideline", + "note": "suspended due to pandemic", + "opening_hours": "Mo-Fr 16:00-18:50", + "operator": "Tideline", + "payment:cash": "no", + "payment:clipper": "no", + "payment:prepaid_ticket": "yes", + "public_transport:version": "2", + "roundtrip": "yes", + "to": "Berkeley Marina K-Dock", + "type": "route", + "vehicle": "no", + "via": "San Francisco Pier 52;San Francisco Pier 1½", + "id": "relation/9596727" + }, + "geometry": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -122.3860138, + 37.7718729 + ], + [ + -122.3860728, + 37.7719887 + ], + [ + -122.3860244, + 37.7721511 + ], + [ + -122.3859192, + 37.7722959 + ], + [ + -122.385766, + 37.7724107 + ], + [ + -122.3855776, + 37.7724861 + ], + [ + -122.3853698, + 37.7725158 + ], + [ + -122.38516, + 37.7724972 + ], + [ + -122.3849656, + 37.7724319 + ], + [ + -122.3824693, + 37.7713036 + ], + [ + -122.3820636, + 37.7711805 + ], + [ + -122.3816219, + 37.7711459 + ], + [ + -122.3811844, + 37.7712049 + ], + [ + -122.3807823, + 37.7713535 + ], + [ + -122.3804443, + 37.7715808 + ], + [ + -122.3801944, + 37.7718708 + ], + [ + -122.3800506, + 37.7722027 + ], + [ + -122.3800237, + 37.7725455 + ], + [ + -122.3820587, + 37.7890321 + ], + [ + -122.3823247, + 37.7904757 + ], + [ + -122.3826629, + 37.7916822 + ], + [ + -122.3883788, + 37.8056914 + ], + [ + -122.3946077, + 37.8215107 + ], + [ + -122.3946537, + 37.8219988 + ], + [ + -122.394557, + 37.8224221 + ], + [ + -122.3943865, + 37.8228351 + ], + [ + -122.3841719, + 37.840151 + ], + [ + -122.3831043, + 37.8411696 + ], + [ + -122.3644372, + 37.8524745 + ], + [ + -122.3204466, + 37.8671522 + ], + [ + -122.3201785, + 37.8671994 + ], + [ + -122.3198811, + 37.8671772 + ], + [ + -122.3196174, + 37.8670851 + ], + [ + -122.3188916, + 37.8666543 + ], + [ + -122.3186088, + 37.8665504 + ], + [ + -122.3182878, + 37.8665187 + ], + [ + -122.3180193, + 37.8665546 + ], + [ + -122.3157801, + 37.8670592 + ], + [ + -122.3154542, + 37.867097 + ], + [ + -122.3151097, + 37.8670257 + ], + [ + -122.3148302, + 37.8668484 + ], + [ + -122.3142319, + 37.8662279 + ], + [ + -122.3141279, + 37.8660066 + ], + [ + -122.3138742, + 37.8653146 + ], + [ + -122.3138793, + 37.865256 + ], + [ + -122.3139146, + 37.8651901 + ], + [ + -122.3139793, + 37.865153 + ], + [ + -122.314062, + 37.8650387 + ], + [ + -122.3139716, + 37.8651283 + ], + [ + -122.3138839, + 37.8651711 + ], + [ + -122.3138346, + 37.8652473 + ], + [ + -122.3138395, + 37.8653227 + ], + [ + -122.3140616, + 37.8660228 + ], + [ + -122.3141704, + 37.8662546 + ], + [ + -122.3147801, + 37.8668869 + ], + [ + -122.3150778, + 37.8670758 + ], + [ + -122.3154503, + 37.8671528 + ], + [ + -122.3157947, + 37.8671128 + ], + [ + -122.3180346, + 37.8666081 + ], + [ + -122.3182893, + 37.866574 + ], + [ + -122.3185894, + 37.8666037 + ], + [ + -122.3188557, + 37.8667015 + ], + [ + -122.3195821, + 37.8671326 + ], + [ + -122.3198634, + 37.8672309 + ], + [ + -122.3201828, + 37.8672548 + ], + [ + -122.3204678, + 37.8672046 + ], + [ + -122.3644724, + 37.8525222 + ], + [ + -122.3831527, + 37.8412093 + ], + [ + -122.3842311, + 37.8401805 + ], + [ + -122.3949953, + 37.8219327 + ], + [ + -122.3950684, + 37.8217214 + ], + [ + -122.3950818, + 37.8215266 + ], + [ + -122.3950402, + 37.821379 + ], + [ + -122.3888578, + 37.8055864 + ], + [ + -122.3887808, + 37.8052892 + ], + [ + -122.388788, + 37.8049723 + ], + [ + -122.3888934, + 37.8046563 + ], + [ + -122.3924447, + 37.7993449 + ], + [ + -122.3928546, + 37.7988907 + ], + [ + -122.393348, + 37.7985164 + ], + [ + -122.3946579, + 37.7977464 + ], + [ + -122.3946887, + 37.7977199 + ], + [ + -122.3947047, + 37.7976855 + ], + [ + -122.3947031, + 37.797641 + ], + [ + -122.3946825, + 37.797602 + ], + [ + -122.3946807, + 37.7976418 + ], + [ + -122.3946759, + 37.7976758 + ], + [ + -122.3946626, + 37.7977033 + ], + [ + -122.3946364, + 37.7977246 + ], + [ + -122.3933091, + 37.7984761 + ], + [ + -122.3928934, + 37.7986156 + ], + [ + -122.3924666, + 37.7986551 + ], + [ + -122.3919831, + 37.7986096 + ], + [ + -122.3915492, + 37.7984571 + ], + [ + -122.3911746, + 37.7982529 + ], + [ + -122.3844472, + 37.7926331 + ], + [ + -122.3835947, + 37.7917887 + ], + [ + -122.3829659, + 37.7909989 + ], + [ + -122.3824533, + 37.7900306 + ], + [ + -122.3821507, + 37.7890284 + ], + [ + -122.3800929, + 37.7725489 + ], + [ + -122.3801192, + 37.7722135 + ], + [ + -122.3802569, + 37.7718955 + ], + [ + -122.3804963, + 37.7716177 + ], + [ + -122.3808201, + 37.7713999 + ], + [ + -122.3812053, + 37.7712577 + ], + [ + -122.3816244, + 37.7712011 + ], + [ + -122.3820475, + 37.7712342 + ], + [ + -122.3824444, + 37.7713548 + ], + [ + -122.3849535, + 37.7724546 + ], + [ + -122.385152, + 37.7725213 + ], + [ + -122.3853709, + 37.7725407 + ], + [ + -122.3855876, + 37.7725098 + ], + [ + -122.3857841, + 37.7724311 + ], + [ + -122.3859439, + 37.7723113 + ], + [ + -122.3860537, + 37.7721603 + ], + [ + -122.3860907, + 37.7719898 + ], + [ + -122.3860138, + 37.7718729 + ] + ], + [ + [ + -122.3141735, + 37.8650046 + ], + [ + -122.3141754, + 37.8650104 + ], + [ + -122.314177, + 37.8650152 + ], + [ + -122.314062, + 37.8650387 + ], + [ + -122.313999, + 37.8650519 + ], + [ + -122.3139955, + 37.8650413 + ], + [ + -122.3141735, + 37.8650046 + ] + ], + [ + [ + -122.3945645, + 37.7976363 + ], + [ + -122.3945785, + 37.7976283 + ], + [ + -122.394599, + 37.7976504 + ], + [ + -122.3946825, + 37.797602 + ], + [ + -122.3947707, + 37.7975509 + ], + [ + -122.3947584, + 37.7975376 + ], + [ + -122.3947334, + 37.7975107 + ], + [ + -122.3947156, + 37.7974915 + ], + [ + -122.3945439, + 37.7975909 + ], + [ + -122.3945683, + 37.7976172 + ], + [ + -122.3945543, + 37.7976253 + ], + [ + -122.3945415, + 37.7976116 + ], + [ + -122.3942085, + 37.7978045 + ], + [ + -122.3942397, + 37.7978381 + ], + [ + -122.3945727, + 37.7976452 + ], + [ + -122.3945645, + 37.7976363 + ] + ], + [ + [ + -122.3862851, + 37.7716572 + ], + [ + -122.3859658, + 37.7718397 + ], + [ + -122.3860022, + 37.7718795 + ], + [ + -122.3860138, + 37.7718729 + ], + [ + -122.3863215, + 37.771697 + ], + [ + -122.3863033, + 37.7716771 + ], + [ + -122.3862851, + 37.7716572 + ] + ], + [ + [ + -122.3141735, + 37.8650046 + ], + [ + -122.3141754, + 37.8650104 + ], + [ + -122.314177, + 37.8650152 + ], + [ + -122.314062, + 37.8650387 + ], + [ + -122.313999, + 37.8650519 + ], + [ + -122.3139955, + 37.8650413 + ], + [ + -122.3141735, + 37.8650046 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "relation/9596728", + "properties": { + "bicycle": "yes", + "disused:route": "ferry", + "fee": "yes", + "foot": "yes", + "from": "Berkeley Marina K-Dock", + "name": "Tideline: Berkeley => San Francisco => Berkeley (mornings)", + "network": "Tideline", + "note": "suspended due to pandemic", + "opening_hours": "Mo-Fr 06:30-09:20", + "operator": "Tideline", + "payment:cash": "no", + "payment:clipper": "no", + "payment:prepaid_ticket": "yes", + "public_transport:version": "2", + "roundtrip": "yes", + "to": "Berkeley Marina K-Dock", + "type": "route", + "vehicle": "no", + "via": "San Francisco Pier 1½;San Francisco Pier 52", + "id": "relation/9596728" + }, + "geometry": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -122.3860138, + 37.7718729 + ], + [ + -122.3860728, + 37.7719887 + ], + [ + -122.3860244, + 37.7721511 + ], + [ + -122.3859192, + 37.7722959 + ], + [ + -122.385766, + 37.7724107 + ], + [ + -122.3855776, + 37.7724861 + ], + [ + -122.3853698, + 37.7725158 + ], + [ + -122.38516, + 37.7724972 + ], + [ + -122.3849656, + 37.7724319 + ], + [ + -122.3824693, + 37.7713036 + ], + [ + -122.3820636, + 37.7711805 + ], + [ + -122.3816219, + 37.7711459 + ], + [ + -122.3811844, + 37.7712049 + ], + [ + -122.3807823, + 37.7713535 + ], + [ + -122.3804443, + 37.7715808 + ], + [ + -122.3801944, + 37.7718708 + ], + [ + -122.3800506, + 37.7722027 + ], + [ + -122.3800237, + 37.7725455 + ], + [ + -122.3820587, + 37.7890321 + ], + [ + -122.3823247, + 37.7904757 + ], + [ + -122.3826629, + 37.7916822 + ], + [ + -122.3883788, + 37.8056914 + ], + [ + -122.3946077, + 37.8215107 + ], + [ + -122.3946537, + 37.8219988 + ], + [ + -122.394557, + 37.8224221 + ], + [ + -122.3943865, + 37.8228351 + ], + [ + -122.3841719, + 37.840151 + ], + [ + -122.3831043, + 37.8411696 + ], + [ + -122.3644372, + 37.8524745 + ], + [ + -122.3204466, + 37.8671522 + ], + [ + -122.3201785, + 37.8671994 + ], + [ + -122.3198811, + 37.8671772 + ], + [ + -122.3196174, + 37.8670851 + ], + [ + -122.3188916, + 37.8666543 + ], + [ + -122.3186088, + 37.8665504 + ], + [ + -122.3182878, + 37.8665187 + ], + [ + -122.3180193, + 37.8665546 + ], + [ + -122.3157801, + 37.8670592 + ], + [ + -122.3154542, + 37.867097 + ], + [ + -122.3151097, + 37.8670257 + ], + [ + -122.3148302, + 37.8668484 + ], + [ + -122.3142319, + 37.8662279 + ], + [ + -122.3141279, + 37.8660066 + ], + [ + -122.3138742, + 37.8653146 + ], + [ + -122.3138793, + 37.865256 + ], + [ + -122.3139146, + 37.8651901 + ], + [ + -122.3139793, + 37.865153 + ], + [ + -122.314062, + 37.8650387 + ], + [ + -122.3139716, + 37.8651283 + ], + [ + -122.3138839, + 37.8651711 + ], + [ + -122.3138346, + 37.8652473 + ], + [ + -122.3138395, + 37.8653227 + ], + [ + -122.3140616, + 37.8660228 + ], + [ + -122.3141704, + 37.8662546 + ], + [ + -122.3147801, + 37.8668869 + ], + [ + -122.3150778, + 37.8670758 + ], + [ + -122.3154503, + 37.8671528 + ], + [ + -122.3157947, + 37.8671128 + ], + [ + -122.3180346, + 37.8666081 + ], + [ + -122.3182893, + 37.866574 + ], + [ + -122.3185894, + 37.8666037 + ], + [ + -122.3188557, + 37.8667015 + ], + [ + -122.3195821, + 37.8671326 + ], + [ + -122.3198634, + 37.8672309 + ], + [ + -122.3201828, + 37.8672548 + ], + [ + -122.3204678, + 37.8672046 + ], + [ + -122.3644724, + 37.8525222 + ], + [ + -122.3831527, + 37.8412093 + ], + [ + -122.3842311, + 37.8401805 + ], + [ + -122.3949953, + 37.8219327 + ], + [ + -122.3950684, + 37.8217214 + ], + [ + -122.3950818, + 37.8215266 + ], + [ + -122.3950402, + 37.821379 + ], + [ + -122.3888578, + 37.8055864 + ], + [ + -122.3887808, + 37.8052892 + ], + [ + -122.388788, + 37.8049723 + ], + [ + -122.3888934, + 37.8046563 + ], + [ + -122.3924447, + 37.7993449 + ], + [ + -122.3928546, + 37.7988907 + ], + [ + -122.393348, + 37.7985164 + ], + [ + -122.3946579, + 37.7977464 + ], + [ + -122.3946887, + 37.7977199 + ], + [ + -122.3947047, + 37.7976855 + ], + [ + -122.3947031, + 37.797641 + ], + [ + -122.3946825, + 37.797602 + ], + [ + -122.3946807, + 37.7976418 + ], + [ + -122.3946759, + 37.7976758 + ], + [ + -122.3946626, + 37.7977033 + ], + [ + -122.3946364, + 37.7977246 + ], + [ + -122.3933091, + 37.7984761 + ], + [ + -122.3928934, + 37.7986156 + ], + [ + -122.3924666, + 37.7986551 + ], + [ + -122.3919831, + 37.7986096 + ], + [ + -122.3915492, + 37.7984571 + ], + [ + -122.3911746, + 37.7982529 + ], + [ + -122.3844472, + 37.7926331 + ], + [ + -122.3835947, + 37.7917887 + ], + [ + -122.3829659, + 37.7909989 + ], + [ + -122.3824533, + 37.7900306 + ], + [ + -122.3821507, + 37.7890284 + ], + [ + -122.3800929, + 37.7725489 + ], + [ + -122.3801192, + 37.7722135 + ], + [ + -122.3802569, + 37.7718955 + ], + [ + -122.3804963, + 37.7716177 + ], + [ + -122.3808201, + 37.7713999 + ], + [ + -122.3812053, + 37.7712577 + ], + [ + -122.3816244, + 37.7712011 + ], + [ + -122.3820475, + 37.7712342 + ], + [ + -122.3824444, + 37.7713548 + ], + [ + -122.3849535, + 37.7724546 + ], + [ + -122.385152, + 37.7725213 + ], + [ + -122.3853709, + 37.7725407 + ], + [ + -122.3855876, + 37.7725098 + ], + [ + -122.3857841, + 37.7724311 + ], + [ + -122.3859439, + 37.7723113 + ], + [ + -122.3860537, + 37.7721603 + ], + [ + -122.3860907, + 37.7719898 + ], + [ + -122.3860138, + 37.7718729 + ] + ], + [ + [ + -122.3141735, + 37.8650046 + ], + [ + -122.3141754, + 37.8650104 + ], + [ + -122.314177, + 37.8650152 + ], + [ + -122.314062, + 37.8650387 + ], + [ + -122.313999, + 37.8650519 + ], + [ + -122.3139955, + 37.8650413 + ], + [ + -122.3141735, + 37.8650046 + ] + ], + [ + [ + -122.3862851, + 37.7716572 + ], + [ + -122.3859658, + 37.7718397 + ], + [ + -122.3860022, + 37.7718795 + ], + [ + -122.3860138, + 37.7718729 + ], + [ + -122.3863215, + 37.771697 + ], + [ + -122.3863033, + 37.7716771 + ], + [ + -122.3862851, + 37.7716572 + ] + ], + [ + [ + -122.3945645, + 37.7976363 + ], + [ + -122.3945785, + 37.7976283 + ], + [ + -122.394599, + 37.7976504 + ], + [ + -122.3946825, + 37.797602 + ], + [ + -122.3947707, + 37.7975509 + ], + [ + -122.3947584, + 37.7975376 + ], + [ + -122.3947334, + 37.7975107 + ], + [ + -122.3947156, + 37.7974915 + ], + [ + -122.3945439, + 37.7975909 + ], + [ + -122.3945683, + 37.7976172 + ], + [ + -122.3945543, + 37.7976253 + ], + [ + -122.3945415, + 37.7976116 + ], + [ + -122.3942085, + 37.7978045 + ], + [ + -122.3942397, + 37.7978381 + ], + [ + -122.3945727, + 37.7976452 + ], + [ + -122.3945645, + 37.7976363 + ] + ], + [ + [ + -122.3141735, + 37.8650046 + ], + [ + -122.3141754, + 37.8650104 + ], + [ + -122.314177, + 37.8650152 + ], + [ + -122.314062, + 37.8650387 + ], + [ + -122.313999, + 37.8650519 + ], + [ + -122.3139955, + 37.8650413 + ], + [ + -122.3141735, + 37.8650046 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/27369597", + "properties": { + "area": "yes", + "ferry": "yes", + "floating": "yes", + "man_made": "pier", + "name": "San Francisco Pier 52", + "network": "Tideline", + "public_transport": "platform", + "id": "way/27369597" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -122.3862851, + 37.7716572 + ], + [ + -122.3859658, + 37.7718397 + ], + [ + -122.3860022, + 37.7718795 + ], + [ + -122.3860138, + 37.7718729 + ], + [ + -122.3863215, + 37.771697 + ], + [ + -122.3863033, + 37.7716771 + ], + [ + -122.3862851, + 37.7716572 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/117767449", + "properties": { + "addr:city": "Berkeley", + "addr:housenumber": "1", + "addr:postcode": "94710", + "addr:state": "CA", + "addr:street": "Seawall Drive", + "amenity": "public_building", + "building": "yes", + "name": "Berkeley Yacht Club", + "id": "way/117767449" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -122.3176674, + 37.8660917 + ], + [ + -122.3175447, + 37.8661165 + ], + [ + -122.3175384, + 37.8660971 + ], + [ + -122.3174373, + 37.8661175 + ], + [ + -122.3174341, + 37.8661077 + ], + [ + -122.3172412, + 37.8661467 + ], + [ + -122.317297, + 37.8663187 + ], + [ + -122.3174732, + 37.8662831 + ], + [ + -122.3174698, + 37.8662724 + ], + [ + -122.3175904, + 37.866248 + ], + [ + -122.3175933, + 37.8662568 + ], + [ + -122.3177361, + 37.8662279 + ], + [ + -122.317715, + 37.8661629 + ], + [ + -122.317692, + 37.8661675 + ], + [ + -122.3176674, + 37.8660917 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/117767451", + "properties": { + "addr:city": "Berkeley", + "addr:housenumber": "201", + "addr:street": "University Avenue", + "leisure": "marina", + "name": "Berkeley Marina", + "operator": "City of Berkeley", + "power_supply": "yes", + "sanitary_dump_station": "yes", + "id": "way/117767451" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -122.3177192, + 37.8663101 + ], + [ + -122.3172581, + 37.8663568 + ], + [ + -122.3171881, + 37.8661364 + ], + [ + -122.3171962, + 37.8658993 + ], + [ + -122.31659, + 37.864381 + ], + [ + -122.3159355, + 37.8641523 + ], + [ + -122.3125211, + 37.8648723 + ], + [ + -122.3125425, + 37.865012 + ], + [ + -122.3117191, + 37.8652598 + ], + [ + -122.3131567, + 37.8677224 + ], + [ + -122.3146722, + 37.868004 + ], + [ + -122.3150745, + 37.8689569 + ], + [ + -122.3174536, + 37.8685312 + ], + [ + -122.3179847, + 37.8683365 + ], + [ + -122.3182771, + 37.8679469 + ], + [ + -122.3182427, + 37.8673362 + ], + [ + -122.3181332, + 37.8672795 + ], + [ + -122.3180388, + 37.8671864 + ], + [ + -122.3180516, + 37.8670854 + ], + [ + -122.3181052, + 37.8669998 + ], + [ + -122.3182316, + 37.866939 + ], + [ + -122.3180119, + 37.8662084 + ], + [ + -122.3177192, + 37.8663101 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/224658487", + "properties": { + "area": "yes", + "ferry": "yes", + "floating": "yes", + "man_made": "pier", + "name": "San Francisco Pier 1½", + "network": "Tideline", + "public_transport": "platform", + "id": "way/224658487" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -122.3945645, + 37.7976363 + ], + [ + -122.3945785, + 37.7976283 + ], + [ + -122.394599, + 37.7976504 + ], + [ + -122.3946825, + 37.797602 + ], + [ + -122.3947707, + 37.7975509 + ], + [ + -122.3947584, + 37.7975376 + ], + [ + -122.3947334, + 37.7975107 + ], + [ + -122.3947156, + 37.7974915 + ], + [ + -122.3945439, + 37.7975909 + ], + [ + -122.3945683, + 37.7976172 + ], + [ + -122.3945543, + 37.7976253 + ], + [ + -122.3945415, + 37.7976116 + ], + [ + -122.3942085, + 37.7978045 + ], + [ + -122.3942397, + 37.7978381 + ], + [ + -122.3945727, + 37.7976452 + ], + [ + -122.3945645, + 37.7976363 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/282352311", + "properties": { + "amenity": "parking", + "parking": "surface", + "id": "way/282352311" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -122.3176981, + 37.8657205 + ], + [ + -122.3176042, + 37.8649074 + ], + [ + -122.3170785, + 37.8650344 + ], + [ + -122.3174004, + 37.8658497 + ], + [ + -122.3176981, + 37.8657205 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/740454500", + "properties": { + "area": "yes", + "ferry": "yes", + "man_made": "pier", + "name": "Berkeley Marina K-Dock", + "network": "Tideline", + "public_transport": "platform", + "id": "way/740454500" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -122.3141735, + 37.8650046 + ], + [ + -122.3139955, + 37.8650413 + ], + [ + -122.313999, + 37.8650519 + ], + [ + -122.314062, + 37.8650387 + ], + [ + -122.314177, + 37.8650152 + ], + [ + -122.3141754, + 37.8650104 + ], + [ + -122.3141735, + 37.8650046 + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/6353187", + "properties": { + "addr:city": "Berkeley", + "highway": "residential", + "name": "Seawall Drive", + "oneway": "yes", + "tiger:cfcc": "A41", + "tiger:county": "Alameda, CA", + "tiger:name_base": "Seawall", + "tiger:name_type": "Dr", + "tiger:reviewed": "no", + "id": "way/6353187" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3174982, + 37.8658823 + ], + [ + -122.3175153, + 37.8659298 + ], + [ + -122.3175746, + 37.8659764 + ], + [ + -122.317675, + 37.8659732 + ], + [ + -122.3177451, + 37.865951 + ], + [ + -122.3177785, + 37.865933 + ], + [ + -122.3178022, + 37.8658876 + ], + [ + -122.317786, + 37.8658013 + ], + [ + -122.3177788, + 37.8657458 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/10322307", + "properties": { + "addr:city": "Berkeley", + "highway": "footway", + "id": "way/10322307" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3183266, + 37.8671444 + ], + [ + -122.318407, + 37.8672058 + ], + [ + -122.318441, + 37.8672888 + ], + [ + -122.3185432, + 37.8680555 + ], + [ + -122.3183595, + 37.8681506 + ], + [ + -122.3181867, + 37.8683531 + ], + [ + -122.3180262, + 37.8685038 + ], + [ + -122.3178336, + 37.8685976 + ], + [ + -122.3178006, + 37.8686506 + ], + [ + -122.3177302, + 37.8686651 + ], + [ + -122.3175981, + 37.8686906 + ], + [ + -122.3175567, + 37.8686982 + ], + [ + -122.3169443, + 37.8688101 + ], + [ + -122.3163791, + 37.8689112 + ], + [ + -122.3160789, + 37.8689712 + ], + [ + -122.3158432, + 37.8690125 + ], + [ + -122.3151262, + 37.8691409 + ], + [ + -122.3150416, + 37.8691171 + ], + [ + -122.3149651, + 37.8690817 + ], + [ + -122.3149032, + 37.8690213 + ], + [ + -122.3147956, + 37.8687556 + ], + [ + -122.3147209, + 37.8685277 + ], + [ + -122.3146952, + 37.8684599 + ], + [ + -122.3146192, + 37.8682211 + ], + [ + -122.3145713, + 37.8681437 + ], + [ + -122.3145417, + 37.8681063 + ], + [ + -122.3144774, + 37.8680832 + ], + [ + -122.3142632, + 37.8680658 + ], + [ + -122.3139961, + 37.8680198 + ], + [ + -122.3137924, + 37.8679799 + ], + [ + -122.3136948, + 37.8679531 + ], + [ + -122.3133392, + 37.8678765 + ], + [ + -122.3129614, + 37.867758 + ], + [ + -122.3127136, + 37.8672969 + ], + [ + -122.3122821, + 37.8664941 + ], + [ + -122.311833, + 37.8656584 + ], + [ + -122.3117418, + 37.8655916 + ], + [ + -122.311606, + 37.8655003 + ], + [ + -122.3114725, + 37.865398 + ], + [ + -122.3114394, + 37.8653186 + ], + [ + -122.3113985, + 37.8652021 + ], + [ + -122.3113796, + 37.865123 + ], + [ + -122.3113894, + 37.8649517 + ], + [ + -122.311479, + 37.8648338 + ], + [ + -122.3115642, + 37.8648702 + ], + [ + -122.3116868, + 37.8649267 + ], + [ + -122.311822, + 37.8649838 + ], + [ + -122.3119844, + 37.8649795 + ], + [ + -122.3123894, + 37.8648297 + ], + [ + -122.312374, + 37.8647894 + ], + [ + -122.3130598, + 37.8646052 + ], + [ + -122.3132989, + 37.8645517 + ], + [ + -122.3137433, + 37.86446 + ], + [ + -122.3145538, + 37.8643025 + ], + [ + -122.3148248, + 37.8642462 + ], + [ + -122.3148685, + 37.8642374 + ], + [ + -122.3156102, + 37.8640912 + ], + [ + -122.3156443, + 37.8640829 + ], + [ + -122.315983, + 37.8640348 + ], + [ + -122.316138, + 37.8640294 + ], + [ + -122.3162929, + 37.8640416 + ], + [ + -122.316489, + 37.864082 + ], + [ + -122.3166386, + 37.8641607 + ], + [ + -122.3167073, + 37.8642253 + ], + [ + -122.316753, + 37.8643182 + ], + [ + -122.3170397, + 37.8649997 + ], + [ + -122.3173661, + 37.8658225 + ], + [ + -122.3174295, + 37.8659298 + ], + [ + -122.3175153, + 37.8659298 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/23617830", + "properties": { + "addr:city": "Berkeley", + "man_made": "pier", + "name": "O-Dock", + "ref": "O", + "id": "way/23617830" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3154688, + 37.8663056 + ], + [ + -122.3158459, + 37.8662269 + ], + [ + -122.3160048, + 37.8661931 + ], + [ + -122.3162232, + 37.8661474 + ], + [ + -122.3164605, + 37.8660983 + ], + [ + -122.31657, + 37.8660747 + ], + [ + -122.316865, + 37.8660158 + ], + [ + -122.3169707, + 37.8659945 + ], + [ + -122.3171795, + 37.8659553 + ], + [ + -122.3171758, + 37.8659424 + ], + [ + -122.3173224, + 37.8659125 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/23617832", + "properties": { + "addr:city": "Berkeley", + "man_made": "pier", + "name": "N-Dock", + "ref": "N", + "id": "way/23617832" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.316507, + 37.8644402 + ], + [ + -122.3167615, + 37.8650641 + ], + [ + -122.3168895, + 37.8653973 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/23617840", + "properties": { + "man_made": "pier", + "name": "O-Dock", + "ref": "O", + "id": "way/23617840" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3165912, + 37.8665073 + ], + [ + -122.3164605, + 37.8660983 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/23617841", + "properties": { + "addr:city": "Berkeley", + "man_made": "pier", + "name": "O-Dock", + "ref": "O", + "id": "way/23617841" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3164437, + 37.8656823 + ], + [ + -122.31657, + 37.8660747 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/23617842", + "properties": { + "addr:city": "Berkeley", + "man_made": "pier", + "name": "O-Dock", + "ref": "O", + "id": "way/23617842" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3169915, + 37.8664216 + ], + [ + -122.316865, + 37.8660158 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/23617849", + "properties": { + "addr:city": "Berkeley", + "man_made": "pier", + "name": "O-Dock", + "ref": "O", + "id": "way/23617849" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.316846, + 37.8656126 + ], + [ + -122.3169707, + 37.8659945 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/28239155", + "properties": { + "addr:city": "Berkeley", + "floating": "yes", + "man_made": "pier", + "name": "Berkeley Yacht Club Guest Dock", + "id": "way/28239155" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3171795, + 37.8659553 + ], + [ + -122.3172287, + 37.8661338 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/153288129", + "properties": { + "addr:city": "Berkeley", + "natural": "coastline", + "source": "PGS", + "id": "way/153288129" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3181089, + 37.8670585 + ], + [ + -122.3181039, + 37.8671701 + ], + [ + -122.3181678, + 37.8672524 + ], + [ + -122.3182736, + 37.8672729 + ], + [ + -122.3183488, + 37.8673521 + ], + [ + -122.318349, + 37.867426 + ], + [ + -122.3183499, + 37.8678626 + ], + [ + -122.3183041, + 37.8680027 + ], + [ + -122.3181615, + 37.8682285 + ], + [ + -122.3181386, + 37.8682558 + ], + [ + -122.3181005, + 37.8683015 + ], + [ + -122.3180841, + 37.8683211 + ], + [ + -122.3180513, + 37.8683604 + ], + [ + -122.3179197, + 37.8684666 + ], + [ + -122.3177687, + 37.868535 + ], + [ + -122.3177004, + 37.8685517 + ], + [ + -122.317574, + 37.8685848 + ], + [ + -122.3175278, + 37.8685963 + ], + [ + -122.3169214, + 37.8687228 + ], + [ + -122.3160554, + 37.8688855 + ], + [ + -122.3151593, + 37.8690384 + ], + [ + -122.3150803, + 37.8690284 + ], + [ + -122.3150035, + 37.8689908 + ], + [ + -122.3149556, + 37.8689342 + ], + [ + -122.3148768, + 37.8687352 + ], + [ + -122.3147926, + 37.8684402 + ], + [ + -122.3146521, + 37.8681359 + ], + [ + -122.3145684, + 37.8680104 + ], + [ + -122.3143214, + 37.8680118 + ], + [ + -122.3141941, + 37.8679931 + ], + [ + -122.3138109, + 37.8679001 + ], + [ + -122.3136748, + 37.8678702 + ], + [ + -122.3131913, + 37.8677652 + ], + [ + -122.3130098, + 37.8676769 + ], + [ + -122.3129339, + 37.8676054 + ], + [ + -122.3127792, + 37.8672769 + ], + [ + -122.3126608, + 37.867038 + ], + [ + -122.3123589, + 37.8664699 + ], + [ + -122.3118722, + 37.8656188 + ], + [ + -122.3116988, + 37.865428 + ], + [ + -122.3116228, + 37.8653313 + ], + [ + -122.311627, + 37.8652208 + ], + [ + -122.3116541, + 37.8651532 + ], + [ + -122.3118068, + 37.8650273 + ], + [ + -122.3118958, + 37.8652103 + ], + [ + -122.312514, + 37.8650027 + ], + [ + -122.3123932, + 37.864788 + ], + [ + -122.3130811, + 37.8646739 + ], + [ + -122.3133939, + 37.8645971 + ], + [ + -122.3137434, + 37.8645052 + ], + [ + -122.3137573, + 37.8645023 + ], + [ + -122.3137837, + 37.8644969 + ], + [ + -122.3148783, + 37.8642648 + ], + [ + -122.3156528, + 37.8641138 + ], + [ + -122.3159017, + 37.8640935 + ], + [ + -122.3163995, + 37.8641477 + ], + [ + -122.316657, + 37.8642832 + ], + [ + -122.3169671, + 37.8650176 + ], + [ + -122.3173224, + 37.8659125 + ], + [ + -122.3173181, + 37.8661098 + ], + [ + -122.3172287, + 37.8661338 + ], + [ + -122.3172084, + 37.8661391 + ], + [ + -122.3172694, + 37.8663038 + ], + [ + -122.3178935, + 37.8662142 + ], + [ + -122.3180648, + 37.866116 + ], + [ + -122.3180562, + 37.8660143 + ], + [ + -122.3179704, + 37.8659805 + ], + [ + -122.3179189, + 37.8659262 + ], + [ + -122.3178502, + 37.8650996 + ], + [ + -122.3177471, + 37.8638766 + ], + [ + -122.3177127, + 37.8633684 + ], + [ + -122.3176871, + 37.8629719 + ], + [ + -122.3176441, + 37.8628467 + ], + [ + -122.317567, + 37.8627551 + ], + [ + -122.3174381, + 37.8626366 + ], + [ + -122.3173351, + 37.8624875 + ], + [ + -122.3164732, + 37.8593413 + ], + [ + -122.316395, + 37.8591962 + ], + [ + -122.3163603, + 37.8590332 + ], + [ + -122.316308, + 37.8589461 + ], + [ + -122.3162398, + 37.8589313 + ], + [ + -122.3161911, + 37.8589635 + ], + [ + -122.3162493, + 37.8592136 + ], + [ + -122.3161036, + 37.8591997 + ], + [ + -122.3160065, + 37.8590471 + ], + [ + -122.3158983, + 37.8590371 + ], + [ + -122.3158018, + 37.8590193 + ], + [ + -122.3155097, + 37.8591479 + ], + [ + -122.3156099, + 37.8594687 + ], + [ + -122.3155417, + 37.8596333 + ], + [ + -122.3154655, + 37.8597419 + ], + [ + -122.3154486, + 37.8603296 + ], + [ + -122.3155035, + 37.8607086 + ], + [ + -122.3156187, + 37.8610671 + ], + [ + -122.3157498, + 37.8612359 + ], + [ + -122.3158511, + 37.8614198 + ], + [ + -122.3158456, + 37.8615776 + ], + [ + -122.3157361, + 37.861744 + ], + [ + -122.3154542, + 37.8621697 + ], + [ + -122.3153091, + 37.8623879 + ], + [ + -122.3151641, + 37.8624873 + ], + [ + -122.3151014, + 37.8625701 + ], + [ + -122.314893, + 37.8626442 + ], + [ + -122.3143657, + 37.8628281 + ], + [ + -122.3141046, + 37.8628913 + ], + [ + -122.3139303, + 37.8629153 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/195430725", + "properties": { + "addr:city": "Berkeley", + "highway": "residential", + "name": "Seawall Drive", + "tiger:cfcc": "A41", + "tiger:county": "Alameda, CA", + "tiger:name_base": "Seawall", + "tiger:name_type": "Dr", + "tiger:reviewed": "no", + "id": "way/195430725" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3172578, + 37.8630906 + ], + [ + -122.3173437, + 37.8633075 + ], + [ + -122.3173866, + 37.8634904 + ], + [ + -122.3174637, + 37.8638105 + ], + [ + -122.3174791, + 37.8638632 + ], + [ + -122.3176353, + 37.8643977 + ], + [ + -122.3176469, + 37.8644372 + ], + [ + -122.3176956, + 37.8646423 + ], + [ + -122.317715, + 37.864903 + ], + [ + -122.3177788, + 37.8657458 + ], + [ + -122.3176232, + 37.8658071 + ], + [ + -122.3175372, + 37.8658418 + ], + [ + -122.3174982, + 37.8658823 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/404731101", + "properties": { + "highway": "service", + "oneway": "yes", + "service": "parking_aisle", + "id": "way/404731101" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3176232, + 37.8658071 + ], + [ + -122.3173412, + 37.8650031 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/404731102", + "properties": { + "highway": "service", + "oneway": "yes", + "service": "parking_aisle", + "id": "way/404731102" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3173412, + 37.8650031 + ], + [ + -122.3171575, + 37.8650523 + ], + [ + -122.3174552, + 37.8658448 + ], + [ + -122.3174982, + 37.8658823 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/470184134", + "properties": { + "bicycle": "yes", + "disused:route": "ferry", + "duration": "00:20:00", + "fee": "yes", + "foot": "yes", + "name": "Berkeley - San Francisco Pier 1½", + "network": "Tideline", + "note": "suspended due to pandemic", + "opening_hours": "Mo-Fr 06:30-09:20, 16:00-18:50", + "operator": "Tideline", + "payment:cash": "no", + "payment:clipper": "no", + "payment:prepaid_ticket": "yes", + "vehicle": "no", + "website": "https://tidelinetickets.com/commuter-shuttle/berkeley/", + "id": "way/470184134" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.314062, + 37.8650387 + ], + [ + -122.3139716, + 37.8651283 + ], + [ + -122.3138839, + 37.8651711 + ], + [ + -122.3138346, + 37.8652473 + ], + [ + -122.3138395, + 37.8653227 + ], + [ + -122.3140616, + 37.8660228 + ], + [ + -122.3141704, + 37.8662546 + ], + [ + -122.3147801, + 37.8668869 + ], + [ + -122.3150778, + 37.8670758 + ], + [ + -122.3154503, + 37.8671528 + ], + [ + -122.3157947, + 37.8671128 + ], + [ + -122.3180346, + 37.8666081 + ], + [ + -122.3182893, + 37.866574 + ], + [ + -122.3185894, + 37.8666037 + ], + [ + -122.3188557, + 37.8667015 + ], + [ + -122.3195821, + 37.8671326 + ], + [ + -122.3198634, + 37.8672309 + ], + [ + -122.3201828, + 37.8672548 + ], + [ + -122.3204678, + 37.8672046 + ], + [ + -122.3644724, + 37.8525222 + ], + [ + -122.3831527, + 37.8412093 + ], + [ + -122.3842311, + 37.8401805 + ], + [ + -122.3949953, + 37.8219327 + ], + [ + -122.3950684, + 37.8217214 + ], + [ + -122.3950818, + 37.8215266 + ], + [ + -122.3950402, + 37.821379 + ], + [ + -122.3888578, + 37.8055864 + ], + [ + -122.3887808, + 37.8052892 + ], + [ + -122.388788, + 37.8049723 + ], + [ + -122.3888934, + 37.8046563 + ], + [ + -122.3924447, + 37.7993449 + ], + [ + -122.3928546, + 37.7988907 + ], + [ + -122.393348, + 37.7985164 + ], + [ + -122.3946579, + 37.7977464 + ], + [ + -122.3946887, + 37.7977199 + ], + [ + -122.3947047, + 37.7976855 + ], + [ + -122.3947031, + 37.797641 + ], + [ + -122.3946825, + 37.797602 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/690605722", + "properties": { + "bicycle": "yes", + "disused:route": "ferry", + "fee": "yes", + "foot": "yes", + "name": "San Francisco Pier 1½ - San Francisco Pier 52", + "network": "Tideline", + "note": "suspended due to pandemic", + "opening_hours": "Mo-Fr 06:30-09:20, 16:00-18:50", + "operator": "Tideline", + "payment:cash": "no", + "payment:clipper": "no", + "payment:prepaid_ticket": "yes", + "vehicle": "no", + "website": "https://tidelinetickets.com/commuter-shuttle/berkeley/", + "id": "way/690605722" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3860138, + 37.7718729 + ], + [ + -122.3860907, + 37.7719898 + ], + [ + -122.3860537, + 37.7721603 + ], + [ + -122.3859439, + 37.7723113 + ], + [ + -122.3857841, + 37.7724311 + ], + [ + -122.3855876, + 37.7725098 + ], + [ + -122.3853709, + 37.7725407 + ], + [ + -122.385152, + 37.7725213 + ], + [ + -122.3849535, + 37.7724546 + ], + [ + -122.3824444, + 37.7713548 + ], + [ + -122.3820475, + 37.7712342 + ], + [ + -122.3816244, + 37.7712011 + ], + [ + -122.3812053, + 37.7712577 + ], + [ + -122.3808201, + 37.7713999 + ], + [ + -122.3804963, + 37.7716177 + ], + [ + -122.3802569, + 37.7718955 + ], + [ + -122.3801192, + 37.7722135 + ], + [ + -122.3800929, + 37.7725489 + ], + [ + -122.3821507, + 37.7890284 + ], + [ + -122.3824533, + 37.7900306 + ], + [ + -122.3829659, + 37.7909989 + ], + [ + -122.3835947, + 37.7917887 + ], + [ + -122.3844472, + 37.7926331 + ], + [ + -122.3911746, + 37.7982529 + ], + [ + -122.3915492, + 37.7984571 + ], + [ + -122.3919831, + 37.7986096 + ], + [ + -122.3924666, + 37.7986551 + ], + [ + -122.3928934, + 37.7986156 + ], + [ + -122.3933091, + 37.7984761 + ], + [ + -122.3946364, + 37.7977246 + ], + [ + -122.3946626, + 37.7977033 + ], + [ + -122.3946759, + 37.7976758 + ], + [ + -122.3946807, + 37.7976418 + ], + [ + -122.3946825, + 37.797602 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/690605723", + "properties": { + "bicycle": "yes", + "disused:route": "ferry", + "duration": "00:30", + "fee": "yes", + "foot": "yes", + "name": "Berkeley - San Francisco Pier 52", + "network": "Tideline", + "note": "suspended due to pandemic", + "opening_hours": "Mo-Fr 06:30-09:20, 16:00-18:50", + "operator": "Tideline", + "payment:cash": "no", + "payment:clipper": "no", + "payment:prepaid_ticket": "yes", + "vehicle": "no", + "website": "https://www.tidelinetickets.com/commute", + "id": "way/690605723" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3860138, + 37.7718729 + ], + [ + -122.3860728, + 37.7719887 + ], + [ + -122.3860244, + 37.7721511 + ], + [ + -122.3859192, + 37.7722959 + ], + [ + -122.385766, + 37.7724107 + ], + [ + -122.3855776, + 37.7724861 + ], + [ + -122.3853698, + 37.7725158 + ], + [ + -122.38516, + 37.7724972 + ], + [ + -122.3849656, + 37.7724319 + ], + [ + -122.3824693, + 37.7713036 + ], + [ + -122.3820636, + 37.7711805 + ], + [ + -122.3816219, + 37.7711459 + ], + [ + -122.3811844, + 37.7712049 + ], + [ + -122.3807823, + 37.7713535 + ], + [ + -122.3804443, + 37.7715808 + ], + [ + -122.3801944, + 37.7718708 + ], + [ + -122.3800506, + 37.7722027 + ], + [ + -122.3800237, + 37.7725455 + ], + [ + -122.3820587, + 37.7890321 + ], + [ + -122.3823247, + 37.7904757 + ], + [ + -122.3826629, + 37.7916822 + ], + [ + -122.3883788, + 37.8056914 + ], + [ + -122.3946077, + 37.8215107 + ], + [ + -122.3946537, + 37.8219988 + ], + [ + -122.394557, + 37.8224221 + ], + [ + -122.3943865, + 37.8228351 + ], + [ + -122.3841719, + 37.840151 + ], + [ + -122.3831043, + 37.8411696 + ], + [ + -122.3644372, + 37.8524745 + ], + [ + -122.3204466, + 37.8671522 + ], + [ + -122.3201785, + 37.8671994 + ], + [ + -122.3198811, + 37.8671772 + ], + [ + -122.3196174, + 37.8670851 + ], + [ + -122.3188916, + 37.8666543 + ], + [ + -122.3186088, + 37.8665504 + ], + [ + -122.3182878, + 37.8665187 + ], + [ + -122.3180193, + 37.8665546 + ], + [ + -122.3157801, + 37.8670592 + ], + [ + -122.3154542, + 37.867097 + ], + [ + -122.3151097, + 37.8670257 + ], + [ + -122.3148302, + 37.8668484 + ], + [ + -122.3142319, + 37.8662279 + ], + [ + -122.3141279, + 37.8660066 + ], + [ + -122.3138742, + 37.8653146 + ], + [ + -122.3138793, + 37.865256 + ], + [ + -122.3139146, + 37.8651901 + ], + [ + -122.3139793, + 37.865153 + ], + [ + -122.314062, + 37.8650387 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/979766517", + "properties": { + "highway": "footway", + "id": "way/979766517" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3179085, + 37.8660708 + ], + [ + -122.3177976, + 37.8659897 + ], + [ + -122.3177451, + 37.865951 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/979766518", + "properties": { + "highway": "footway", + "id": "way/979766518" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3179686, + 37.8661219 + ], + [ + -122.3179954, + 37.8661023 + ], + [ + -122.3179968, + 37.8660734 + ], + [ + -122.3179719, + 37.8660523 + ], + [ + -122.3179353, + 37.8660512 + ], + [ + -122.3179085, + 37.8660708 + ], + [ + -122.3179072, + 37.8660997 + ], + [ + -122.3179321, + 37.8661209 + ], + [ + -122.3179686, + 37.8661219 + ] + ] + } + }, + { + "type": "Feature", + "id": "node/87362461", + "properties": { + "leisure": "slipway", + "id": "node/87362461" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.317574, + 37.8685848 + ] + } + }, + { + "type": "Feature", + "id": "node/87362495", + "properties": { + "highway": "turning_circle", + "id": "node/87362495" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3183266, + 37.8671444 + ] + } + }, + { + "type": "Feature", + "id": "node/813905694", + "properties": { + "leisure": "slipway", + "id": "node/813905694" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3177004, + 37.8685517 + ] + } + }, + { + "type": "Feature", + "id": "node/813905835", + "properties": { + "leisure": "slipway", + "id": "node/813905835" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3181005, + 37.8683015 + ] + } + }, + { + "type": "Feature", + "id": "node/4644000624", + "properties": { + "amenity": "ferry_terminal", + "cargo": "passengers", + "ferry": "yes", + "name": "San Francisco Pier 1½", + "network": "Tideline", + "operator": "Tideline", + "public_transport": "stop_position", + "wheelchair": "yes", + "id": "node/4644000624" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3946825, + 37.797602 + ] + } + }, + { + "type": "Feature", + "id": "node/4644000640", + "properties": { + "amenity": "ferry_terminal", + "cargo": "passengers", + "ferry": "yes", + "name": "Berkeley Marina K-Dock", + "network": "Tideline", + "operator": "Tideline", + "public_transport": "stop_position", + "website": "https://tidelinetickets.com/berkeley-sf-commute/berkeley-sf-booking/", + "id": "node/4644000640" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.314062, + 37.8650387 + ] + } + }, + { + "type": "Feature", + "id": "node/4807137371", + "properties": { + "access": "customers", + "amenity": "toilets", + "id": "node/4807137371" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3171284, + 37.8655124 + ] + } + }, + { + "type": "Feature", + "id": "node/4807137372", + "properties": { + "amenity": "bench", + "backrest": "yes", + "id": "node/4807137372" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3178375, + 37.865805 + ] + } + }, + { + "type": "Feature", + "id": "node/6479662757", + "properties": { + "amenity": "ferry_terminal", + "cargo": "passengers", + "ferry": "yes", + "name": "San Francisco Pier 52", + "network": "Tideline", + "operator": "Tideline", + "public_transport": "stop_position", + "id": "node/6479662757" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3860138, + 37.7718729 + ] + } + }, + { + "type": "Feature", + "id": "node/6743277066", + "properties": { + "emergency": "fire_hydrant", + "id": "node/6743277066" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3174354, + 37.8659203 + ] + } + }, + { + "type": "Feature", + "id": "node/6743283024", + "properties": { + "tourism": "viewpoint", + "id": "node/6743283024" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3179817, + 37.866079 + ] + } + }, + { + "type": "Feature", + "id": "node/6743286401", + "properties": { + "amenity": "waste_disposal", + "id": "node/6743286401" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -122.3173395, + 37.8658684 + ] + } + } + ] +} \ No newline at end of file diff --git a/tests/fixtures/osmtogeojson/example_meta.geojson b/tests/fixtures/osmtogeojson/example_meta.geojson new file mode 100644 index 0000000000..24127e571c --- /dev/null +++ b/tests/fixtures/osmtogeojson/example_meta.geojson @@ -0,0 +1,1279 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "id": "relation/6518385", + "properties": { + "timestamp": "2021-02-17T03:29:31Z", + "version": 14, + "changeset": 99415479, + "user": "Mstew354", + "uid": 11988139, + "boundary": "protected_area", + "contact:website": "http://www.ebparks.org/parks/sibley", + "name": "Sibley Volcanic Regional Preserve", + "operator": "East Bay Regional Park District", + "owner": "East Bay Regional Park District", + "protect_class": "4", + "source": "https://www.ebparks.org/images/Assets/files/parks/sibley/Sibley-map_2250w-04-23-18.gif", + "type": "multipolygon", + "website": "https://www.ebparks.org/parks/sibley/", + "wikidata": "Q7349780", + "wikipedia": "en:Robert Sibley Volcanic Regional Preserve", + "id": "relation/6518385" + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -122.1839334, + 37.846772 + ], + [ + -122.1839345, + 37.841137 + ], + [ + -122.1839291, + 37.8403406 + ], + [ + -122.1839488, + 37.839595 + ], + [ + -122.182912, + 37.83957 + ], + [ + -122.1826336, + 37.8397165 + ], + [ + -122.182271, + 37.839908 + ], + [ + -122.1810388, + 37.8399164 + ], + [ + -122.180953, + 37.839917 + ], + [ + -122.18098, + 37.839502 + ], + [ + -122.179526, + 37.839474 + ], + [ + -122.1794585, + 37.8383942 + ], + [ + -122.1792459, + 37.8382812 + ], + [ + -122.1790152, + 37.8381872 + ], + [ + -122.1783984, + 37.8379737 + ], + [ + -122.1782177, + 37.8378947 + ], + [ + -122.1780377, + 37.8381424 + ], + [ + -122.1769565, + 37.8377218 + ], + [ + -122.1751359, + 37.8398439 + ], + [ + -122.1734159, + 37.8398484 + ], + [ + -122.1703659, + 37.8398564 + ], + [ + -122.170393, + 37.841024 + ], + [ + -122.1716704, + 37.8415556 + ], + [ + -122.1723633, + 37.8418279 + ], + [ + -122.1730392, + 37.8421669 + ], + [ + -122.1730593, + 37.8421994 + ], + [ + -122.1733589, + 37.8426564 + ], + [ + -122.1736671, + 37.8433304 + ], + [ + -122.1741477, + 37.8437848 + ], + [ + -122.1742394, + 37.8440012 + ], + [ + -122.1741978, + 37.8448946 + ], + [ + -122.1741972, + 37.8449101 + ], + [ + -122.1741976, + 37.844938 + ], + [ + -122.1742095, + 37.8450505 + ], + [ + -122.1742444, + 37.8454312 + ], + [ + -122.174278, + 37.8457811 + ], + [ + -122.1743737, + 37.8467679 + ], + [ + -122.1743812, + 37.8469091 + ], + [ + -122.1748969, + 37.846908 + ], + [ + -122.1748862, + 37.8505078 + ], + [ + -122.1794688, + 37.8504828 + ], + [ + -122.1794718, + 37.84959 + ], + [ + -122.1794846, + 37.8467686 + ], + [ + -122.1839334, + 37.846772 + ] + ] + ], + [ + [ + [ + -122.2145058, + 37.8656538 + ], + [ + -122.2147394, + 37.865305 + ], + [ + -122.215062, + 37.8648233 + ], + [ + -122.2153169, + 37.8644428 + ], + [ + -122.2154408, + 37.8642579 + ], + [ + -122.2156436, + 37.8639551 + ], + [ + -122.2157868, + 37.8637413 + ], + [ + -122.2137807, + 37.8627856 + ], + [ + -122.2135296, + 37.8626659 + ], + [ + -122.2131154, + 37.8624686 + ], + [ + -122.2119916, + 37.8620879 + ], + [ + -122.2117493, + 37.8620058 + ], + [ + -122.2110324, + 37.8618225 + ], + [ + -122.210984, + 37.8618545 + ], + [ + -122.2109324, + 37.8618885 + ], + [ + -122.2107887, + 37.861994 + ], + [ + -122.2106566, + 37.862098 + ], + [ + -122.2105186, + 37.8622155 + ], + [ + -122.2103687, + 37.8623554 + ], + [ + -122.2102208, + 37.8625164 + ], + [ + -122.2100963, + 37.8626573 + ], + [ + -122.2099821, + 37.8628239 + ], + [ + -122.2098842, + 37.8629608 + ], + [ + -122.2097741, + 37.8631636 + ], + [ + -122.2097017, + 37.863344 + ], + [ + -122.2096334, + 37.8635452 + ], + [ + -122.2095814, + 37.8637617 + ], + [ + -122.209559, + 37.8639646 + ], + [ + -122.2095565, + 37.8641922 + ], + [ + -122.2095533, + 37.864413 + ], + [ + -122.2098302, + 37.8644502 + ], + [ + -122.2100769, + 37.8647984 + ], + [ + -122.2127232, + 37.864933 + ], + [ + -122.2126318, + 37.8650823 + ], + [ + -122.2145058, + 37.8656538 + ] + ] + ], + [ + [ + [ + -122.1978766, + 37.85778 + ], + [ + -122.1980086, + 37.8614543 + ], + [ + -122.2066888, + 37.8614459 + ], + [ + -122.2066359, + 37.8626311 + ], + [ + -122.2089019, + 37.8626858 + ], + [ + -122.2091172, + 37.861616 + ], + [ + -122.2091415, + 37.8614975 + ], + [ + -122.2089418, + 37.8614708 + ], + [ + -122.2087028, + 37.8614422 + ], + [ + -122.2083939, + 37.8614053 + ], + [ + -122.2071887, + 37.8612612 + ], + [ + -122.207248, + 37.8608912 + ], + [ + -122.2074076, + 37.8598958 + ], + [ + -122.2077658, + 37.8599349 + ], + [ + -122.2081879, + 37.8599809 + ], + [ + -122.2089406, + 37.860063 + ], + [ + -122.2088504, + 37.8599088 + ], + [ + -122.2087851, + 37.8597685 + ], + [ + -122.2094531, + 37.8596264 + ], + [ + -122.2097572, + 37.8602346 + ], + [ + -122.2102615, + 37.8606073 + ], + [ + -122.2113451, + 37.8607936 + ], + [ + -122.2114995, + 37.8608123 + ], + [ + -122.2120602, + 37.86088 + ], + [ + -122.2129329, + 37.8612002 + ], + [ + -122.2137376, + 37.8615221 + ], + [ + -122.2144994, + 37.8620134 + ], + [ + -122.2153362, + 37.8625301 + ], + [ + -122.2163302, + 37.8629807 + ], + [ + -122.2170003, + 37.862143 + ], + [ + -122.2182672, + 37.8632819 + ], + [ + -122.2185527, + 37.8629942 + ], + [ + -122.2180495, + 37.8623816 + ], + [ + -122.2179208, + 37.8622867 + ], + [ + -122.2173716, + 37.8618385 + ], + [ + -122.2173159, + 37.8617086 + ], + [ + -122.2172742, + 37.8615492 + ], + [ + -122.2172431, + 37.8614579 + ], + [ + -122.2171975, + 37.8613625 + ], + [ + -122.2171367, + 37.8612736 + ], + [ + -122.217074, + 37.8611974 + ], + [ + -122.2169109, + 37.8610403 + ], + [ + -122.2166097, + 37.8607835 + ], + [ + -122.2165464, + 37.860723 + ], + [ + -122.2164811, + 37.8606483 + ], + [ + -122.2164333, + 37.8605821 + ], + [ + -122.215701, + 37.8606581 + ], + [ + -122.2154172, + 37.8603942 + ], + [ + -122.2148326, + 37.8598506 + ], + [ + -122.2141683, + 37.859233 + ], + [ + -122.2139028, + 37.8589861 + ], + [ + -122.2129171, + 37.8590083 + ], + [ + -122.2117485, + 37.8582802 + ], + [ + -122.2121374, + 37.8582562 + ], + [ + -122.2120475, + 37.8578091 + ], + [ + -122.2115058, + 37.8571398 + ], + [ + -122.2113068, + 37.856894 + ], + [ + -122.2110246, + 37.857108 + ], + [ + -122.2108496, + 37.8569342 + ], + [ + -122.2110964, + 37.8567616 + ], + [ + -122.2109229, + 37.8566447 + ], + [ + -122.2111627, + 37.8563126 + ], + [ + -122.2109766, + 37.8555423 + ], + [ + -122.2106232, + 37.8550607 + ], + [ + -122.2108847, + 37.8541961 + ], + [ + -122.2092691, + 37.8525155 + ], + [ + -122.2087702, + 37.8519251 + ], + [ + -122.208486, + 37.85169 + ], + [ + -122.208438, + 37.8511574 + ], + [ + -122.208502, + 37.8511091 + ], + [ + -122.2085409, + 37.851063 + ], + [ + -122.2085659, + 37.8510147 + ], + [ + -122.208577, + 37.8509554 + ], + [ + -122.2085964, + 37.850482 + ], + [ + -122.2066221, + 37.8434835 + ], + [ + -122.2061479, + 37.8435708 + ], + [ + -122.206153, + 37.8440786 + ], + [ + -122.2062871, + 37.8440712 + ], + [ + -122.2063753, + 37.8441062 + ], + [ + -122.2064279, + 37.844158 + ], + [ + -122.2064487, + 37.8442361 + ], + [ + -122.2064467, + 37.8442939 + ], + [ + -122.206444, + 37.8443747 + ], + [ + -122.2064319, + 37.8445092 + ], + [ + -122.2064078, + 37.8445685 + ], + [ + -122.2063179, + 37.8446278 + ], + [ + -122.2060135, + 37.844757 + ], + [ + -122.2059263, + 37.8448258 + ], + [ + -122.2058526, + 37.8449476 + ], + [ + -122.2057547, + 37.8451859 + ], + [ + -122.2057158, + 37.8454544 + ], + [ + -122.2056923, + 37.8455809 + ], + [ + -122.2056319, + 37.8456498 + ], + [ + -122.2054945, + 37.8457393 + ], + [ + -122.2053577, + 37.8458573 + ], + [ + -122.2053523, + 37.8459415 + ], + [ + -122.20541, + 37.846273 + ], + [ + -122.2053939, + 37.8463874 + ], + [ + -122.2053463, + 37.8465123 + ], + [ + -122.2049493, + 37.8471107 + ], + [ + -122.2048306, + 37.8474485 + ], + [ + -122.2048072, + 37.8477005 + ], + [ + -122.2047783, + 37.8477778 + ], + [ + -122.2046548, + 37.8478486 + ], + [ + -122.2046154, + 37.8478694 + ], + [ + -122.2045839, + 37.847916 + ], + [ + -122.2045604, + 37.8480045 + ], + [ + -122.2045329, + 37.8483105 + ], + [ + -122.204427, + 37.8486446 + ], + [ + -122.2044317, + 37.8487548 + ], + [ + -122.2045027, + 37.8488252 + ], + [ + -122.2046119, + 37.8488788 + ], + [ + -122.2047005, + 37.8489147 + ], + [ + -122.204722, + 37.848938 + ], + [ + -122.2047186, + 37.8489724 + ], + [ + -122.2046985, + 37.8490036 + ], + [ + -122.2046315, + 37.8490126 + ], + [ + -122.2044746, + 37.8489805 + ], + [ + -122.2040712, + 37.8489873 + ], + [ + -122.203951, + 37.8489602 + ], + [ + -122.2038394, + 37.8488992 + ], + [ + -122.203814, + 37.8488215 + ], + [ + -122.2038636, + 37.848741 + ], + [ + -122.2037751, + 37.8486341 + ], + [ + -122.203649, + 37.8487876 + ], + [ + -122.203566, + 37.8489374 + ], + [ + -122.2034761, + 37.8491196 + ], + [ + -122.2034252, + 37.8492805 + ], + [ + -122.2033608, + 37.8494828 + ], + [ + -122.2033125, + 37.8496988 + ], + [ + -122.2032926, + 37.8498573 + ], + [ + -122.2030698, + 37.8495283 + ], + [ + -122.2030081, + 37.8493907 + ], + [ + -122.2029216, + 37.8492567 + ], + [ + -122.2028479, + 37.8491672 + ], + [ + -122.2027841, + 37.8491095 + ], + [ + -122.2019516, + 37.8485483 + ], + [ + -122.201904, + 37.8485107 + ], + [ + -122.2018485, + 37.8484544 + ], + [ + -122.2017969, + 37.8483917 + ], + [ + -122.2017493, + 37.8483291 + ], + [ + -122.2017136, + 37.848254 + ], + [ + -122.2016859, + 37.8481256 + ], + [ + -122.2016621, + 37.8480504 + ], + [ + -122.2016145, + 37.847969 + ], + [ + -122.2015471, + 37.8479064 + ], + [ + -122.2014519, + 37.8478469 + ], + [ + -122.2012933, + 37.8477655 + ], + [ + -122.2008992, + 37.8476259 + ], + [ + -122.2006034, + 37.847587 + ], + [ + -122.2001882, + 37.8475063 + ], + [ + -122.1996732, + 37.8473775 + ], + [ + -122.1990294, + 37.847391 + ], + [ + -122.198832, + 37.8474114 + ], + [ + -122.1986861, + 37.8473775 + ], + [ + -122.1985094, + 37.8472454 + ], + [ + -122.1982004, + 37.8468591 + ], + [ + -122.1977626, + 37.8465338 + ], + [ + -122.1974365, + 37.8462085 + ], + [ + -122.1968499, + 37.845815 + ], + [ + -122.1967066, + 37.8455965 + ], + [ + -122.1965948, + 37.8453362 + ], + [ + -122.1965625, + 37.8450989 + ], + [ + -122.1965504, + 37.8448595 + ], + [ + -122.1965552, + 37.8447847 + ], + [ + -122.1965913, + 37.8445996 + ], + [ + -122.1966258, + 37.8442751 + ], + [ + -122.1966251, + 37.8441586 + ], + [ + -122.1965956, + 37.8440628 + ], + [ + -122.1965272, + 37.8439802 + ], + [ + -122.1964164, + 37.843891 + ], + [ + -122.1961671, + 37.8437576 + ], + [ + -122.193102, + 37.844092 + ], + [ + -122.193004, + 37.84685 + ], + [ + -122.188458, + 37.8468 + ], + [ + -122.1885866, + 37.8504331 + ], + [ + -122.1886194, + 37.8520422 + ], + [ + -122.1891555, + 37.8531602 + ], + [ + -122.1895098, + 37.853395 + ], + [ + -122.1902871, + 37.8542022 + ], + [ + -122.191239, + 37.854941 + ], + [ + -122.1926709, + 37.8556011 + ], + [ + -122.1938301, + 37.8560627 + ], + [ + -122.1945727, + 37.8564558 + ], + [ + -122.1949688, + 37.8566651 + ], + [ + -122.1940921, + 37.8577917 + ], + [ + -122.1978766, + 37.85778 + ] + ], + [ + [ + -122.2096819, + 37.8587752 + ], + [ + -122.2094446, + 37.8584741 + ], + [ + -122.209792, + 37.8581685 + ], + [ + -122.2101056, + 37.8580727 + ], + [ + -122.2103175, + 37.858454 + ], + [ + -122.2096819, + 37.8587752 + ] + ], + [ + [ + -122.1936314, + 37.8505074 + ], + [ + -122.192981, + 37.8504967 + ], + [ + -122.1929665, + 37.8510476 + ], + [ + -122.1919789, + 37.8510314 + ], + [ + -122.1919934, + 37.8504796 + ], + [ + -122.1920152, + 37.8496551 + ], + [ + -122.1936532, + 37.8496821 + ], + [ + -122.1936314, + 37.8505074 + ] + ], + [ + [ + -122.1956256, + 37.8505283 + ], + [ + -122.1956223, + 37.8506642 + ], + [ + -122.1946645, + 37.8506495 + ], + [ + -122.1946679, + 37.8505136 + ], + [ + -122.1956256, + 37.8505283 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "id": "way/10322303", + "properties": { + "timestamp": "2017-06-20T19:07:01Z", + "version": 5, + "changeset": 49702282, + "user": "karitotp", + "uid": 2748195, + "addr:city": "Berkeley", + "foot": "yes", + "highway": "service", + "id": "way/10322303" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -122.3184769, + 37.8699011 + ], + [ + -122.3184121, + 37.8696521 + ], + [ + -122.3183574, + 37.8694416 + ], + [ + -122.3183131, + 37.8692714 + ], + [ + -122.318271, + 37.8691095 + ], + [ + -122.3182181, + 37.8689059 + ], + [ + -122.3181336, + 37.8688307 + ], + [ + -122.3179977, + 37.8687626 + ], + [ + -122.3177537, + 37.8687499 + ], + [ + -122.3176222, + 37.8687732 + ], + [ + -122.3172655, + 37.8689299 + ], + [ + -122.317185, + 37.8690146 + ], + [ + -122.3172551, + 37.8692792 + ], + [ + -122.3172973, + 37.8694387 + ], + [ + -122.3173448, + 37.8696182 + ], + [ + -122.3174212, + 37.8699064 + ], + [ + -122.3174645, + 37.8700701 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/tests/fixtures/osmtogeojson/example_singlenode.geojson b/tests/fixtures/osmtogeojson/example_singlenode.geojson new file mode 100644 index 0000000000..a6d2069f83 --- /dev/null +++ b/tests/fixtures/osmtogeojson/example_singlenode.geojson @@ -0,0 +1,1909 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "id": "node/830609255", + "properties": { + "amenity": "cafe", + "name": "Café Sincera", + "smoking": "no", + "id": "node/830609255" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8900512, + -15.7526149 + ] + } + }, + { + "type": "Feature", + "id": "node/1532856975", + "properties": { + "addr:street": "CLN 408", + "amenity": "cafe", + "name": "Senhoritas", + "id": "node/1532856975" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8791123, + -15.7600089 + ] + } + }, + { + "type": "Feature", + "id": "node/2691239509", + "properties": { + "addr:place": "Asa Sul", + "addr:street": "Cls 410", + "amenity": "cafe", + "cuisine": "pizza", + "name": "Gentil", + "id": "node/2691239509" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.90628, + -15.8268 + ] + } + }, + { + "type": "Feature", + "id": "node/3051977281", + "properties": { + "amenity": "cafe", + "internet_access": "no", + "name": "Amor à Torta", + "opening_hours": "Mo-Fr 07:30-19:30; Sa 08:00-18:00", + "wheelchair": "yes", + "id": "node/3051977281" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8913837, + -15.7567262 + ] + } + }, + { + "type": "Feature", + "id": "node/3089963930", + "properties": { + "amenity": "cafe", + "name": "Cafezinho Express", + "id": "node/3089963930" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.886423, + -15.786985 + ] + } + }, + { + "type": "Feature", + "id": "node/3093838425", + "properties": { + "addr:street": "CLN 204", + "amenity": "cafe", + "name": "Candy House", + "wheelchair": "yes", + "id": "node/3093838425" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.878313, + -15.7770943 + ] + } + }, + { + "type": "Feature", + "id": "node/3093842234", + "properties": { + "amenity": "cafe", + "brand": "Fran's Café", + "brand:wikidata": "Q62075645", + "cuisine": "coffee_shop", + "internet_access": "wlan", + "internet_access:fee": "no", + "name": "Fran's Café", + "opening_hours": "24/7", + "takeaway": "yes", + "id": "node/3093842234" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8825355, + -15.7575012 + ] + } + }, + { + "type": "Feature", + "id": "node/3095008557", + "properties": { + "addr:street": "CLN 406", + "amenity": "cafe", + "name": "Sebinho", + "id": "node/3095008557" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8779077, + -15.7665684 + ] + } + }, + { + "type": "Feature", + "id": "node/3139274344", + "properties": { + "amenity": "cafe", + "id": "node/3139274344" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8388265, + -15.8145074 + ] + } + }, + { + "type": "Feature", + "id": "node/3161293041", + "properties": { + "amenity": "cafe", + "name": "Café Cobogó", + "id": "node/3161293041" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8908733, + -15.7749509 + ] + } + }, + { + "type": "Feature", + "id": "node/3190786485", + "properties": { + "amenity": "cafe", + "name": "Moebius Café", + "id": "node/3190786485" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.892084, + -15.7461875 + ] + } + }, + { + "type": "Feature", + "id": "node/3192140335", + "properties": { + "addr:street": "CLN 407", + "amenity": "cafe", + "name": "Cafezinho", + "id": "node/3192140335" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.877285, + -15.7661003 + ] + } + }, + { + "type": "Feature", + "id": "node/3200216679", + "properties": { + "addr:street": "CLN 413", + "amenity": "cafe", + "internet_access": "wlan", + "level": "0", + "name": "Clandestino", + "opening_hours": "Mo 09:00-21:00; We-Sa 09:00-21:00; Su 09:00-15:00", + "outdoor_seating": "yes", + "smoking": "no", + "website": "http://www.cafeclandestino.com.br", + "id": "node/3200216679" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8836644, + -15.7470931 + ] + } + }, + { + "type": "Feature", + "id": "node/3211680213", + "properties": { + "amenity": "cafe", + "name": "Genaro - jazz burger café", + "id": "node/3211680213" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8913941, + -15.74597 + ] + } + }, + { + "type": "Feature", + "id": "node/3222516874", + "properties": { + "addr:place": "CLN 303", + "amenity": "cafe", + "internet_access": "wlan", + "internet_access:fee": "no", + "name": "Caramella", + "opening_hours": "Mo-Su 07:30-21:00", + "smoking": "no", + "website": "http://www.caramellaconfeitaria.com.br/", + "wheelchair": "yes", + "id": "node/3222516874" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8860998, + -15.7806286 + ] + } + }, + { + "type": "Feature", + "id": "node/3222516875", + "properties": { + "addr:place": "CLN 303", + "amenity": "cafe", + "internet_access": "wlan", + "name": "Martinica Café", + "opening_hours": "Mo-Fr 11:00-01:00; Sa 17:00-01:00; Su 18:00-01:00", + "phone": "+55 61 33262357", + "id": "node/3222516875" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8847823, + -15.7805371 + ] + } + }, + { + "type": "Feature", + "id": "node/3223614838", + "properties": { + "amenity": "cafe", + "name": "Torteria di Lorenza", + "id": "node/3223614838" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8870925, + -15.7451711 + ] + } + }, + { + "type": "Feature", + "id": "node/3230418026", + "properties": { + "addr:city": "Brasília", + "addr:housenumber": "Loja 56", + "addr:postcode": "70722-520", + "addr:street": "CLN 102 Bloco B", + "addr:suburb": "Asa Norte", + "amenity": "cafe", + "internet_access": "wlan", + "name": "Objeto Encontrado", + "opening_hours": "Mo-Sa 12:00-23:00", + "phone": "+55 61 3081-8383", + "smoking": "no", + "website": "https://www.objetoencontrado.com.br/", + "id": "node/3230418026" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8829046, + -15.7832184 + ] + } + }, + { + "type": "Feature", + "id": "node/3231952883", + "properties": { + "amenity": "cafe", + "cuisine": "french", + "name": "Daniel Briand", + "opening_hours": "Tu-Fr 09:00-22:00; Sa 09:30-22:00; Su 08:00-22:00", + "phone": "+55 61 33261135", + "website": "https://www.cafedanielbriand.com/", + "id": "node/3231952883" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8827129, + -15.7770016 + ] + } + }, + { + "type": "Feature", + "id": "node/3324092861", + "properties": { + "amenity": "cafe", + "internet_access": "wlan", + "name": "D'Vilella", + "wheelchair": "yes", + "id": "node/3324092861" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8903219, + -15.756386 + ] + } + }, + { + "type": "Feature", + "id": "node/3334254945", + "properties": { + "amenity": "cafe", + "diet:vegan": "only", + "name": "Canelle Confeitaria", + "opening_hours": "Tu-Sa 10:00-22:00;Su 12:00-20:00", + "phone": "+55 61 30372422", + "id": "node/3334254945" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8874166, + -15.7454249 + ] + } + }, + { + "type": "Feature", + "id": "node/3334254946", + "properties": { + "amenity": "cafe", + "name": "Florisa Café", + "opening_hours": "Mo-Sa 08:00-21:00", + "phone": "+55 61 32028882", + "id": "node/3334254946" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8929929, + -15.7403494 + ] + } + }, + { + "type": "Feature", + "id": "node/3358345330", + "properties": { + "addr:city": "Brasilia", + "addr:street": "CLN 202 Bloco A", + "addr:suburb": "Asa Norte", + "amenity": "cafe", + "internet_access": "wlan", + "name": "Café Cristina Colina da Pedra", + "opening_hours": "Su 12:00-19:00; Mo-Sa 08:00-19:00", + "id": "node/3358345330" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8785943, + -15.7833159 + ] + } + }, + { + "type": "Feature", + "id": "node/3362305606", + "properties": { + "amenity": "cafe", + "diet:gluten_free": "yes", + "diet:vegan": "yes", + "name": "Bioon Café", + "id": "node/3362305606" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8851897, + -15.7804074 + ] + } + }, + { + "type": "Feature", + "id": "node/3362308337", + "properties": { + "amenity": "cafe", + "cuisine": "arab", + "name": "Café com Café", + "id": "node/3362308337" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8862323, + -15.7809705 + ] + } + }, + { + "type": "Feature", + "id": "node/3364780124", + "properties": { + "amenity": "cafe", + "name": "Dylan Cafe Bakery", + "id": "node/3364780124" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9225416, + -15.8278397 + ] + } + }, + { + "type": "Feature", + "id": "node/3451223465", + "properties": { + "addr:street": "CLN 111", + "amenity": "cafe", + "cuisine": "coffee_shop", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Concreto Coffee Crew", + "opening_hours": "Mo-Sa 13:00-20:00", + "outdoor_seating": "yes", + "website": "https://www.instagram.com/concretocoffee/", + "id": "node/3451223465" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.889783, + -15.7530174 + ] + } + }, + { + "type": "Feature", + "id": "node/3451247095", + "properties": { + "amenity": "cafe", + "name": "Vincent Chás e Cafés", + "id": "node/3451247095" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8805597, + -15.75974 + ] + } + }, + { + "type": "Feature", + "id": "node/3525964203", + "properties": { + "amenity": "cafe", + "name": "Café das Letras", + "wheelchair": "yes", + "id": "node/3525964203" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8701905, + -15.7649188 + ] + } + }, + { + "type": "Feature", + "id": "node/3634570440", + "properties": { + "amenity": "cafe", + "name": "Rappot", + "id": "node/3634570440" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8852709, + -15.8044722 + ] + } + }, + { + "type": "Feature", + "id": "node/3634570442", + "properties": { + "amenity": "cafe", + "name": "Café do Ponto", + "id": "node/3634570442" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8851878, + -15.80452 + ] + } + }, + { + "type": "Feature", + "id": "node/3634570451", + "properties": { + "amenity": "cafe", + "name": "Cristina Cafés", + "website": "http://cafecristina.com.br", + "id": "node/3634570451" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8846875, + -15.8048503 + ] + } + }, + { + "type": "Feature", + "id": "node/3645307602", + "properties": { + "amenity": "cafe", + "name": "Café Bem Casado", + "opening_hours": "Mo-Sa 09:00-19:30", + "website": "http://cafebemcasado.com.br", + "id": "node/3645307602" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8896497, + -15.7626851 + ] + } + }, + { + "type": "Feature", + "id": "node/3768730374", + "properties": { + "amenity": "cafe", + "name": "Rosa's Café", + "id": "node/3768730374" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8834145, + -15.7831717 + ] + } + }, + { + "type": "Feature", + "id": "node/3900700774", + "properties": { + "amenity": "cafe", + "name": "Grão Sabor", + "id": "node/3900700774" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8916129, + -15.7608557 + ] + } + }, + { + "type": "Feature", + "id": "node/3958863453", + "properties": { + "amenity": "cafe", + "name": "Art Café", + "id": "node/3958863453" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8826614, + -15.7877449 + ] + } + }, + { + "type": "Feature", + "id": "node/3958863455", + "properties": { + "amenity": "cafe", + "name": "Tomilla Café", + "wheelchair": "yes", + "id": "node/3958863455" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8828056, + -15.7871193 + ] + } + }, + { + "type": "Feature", + "id": "node/3971324159", + "properties": { + "amenity": "cafe", + "name": "Especiarias de Minas", + "id": "node/3971324159" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8828911, + -15.7873255 + ] + } + }, + { + "type": "Feature", + "id": "node/3971325069", + "properties": { + "amenity": "cafe", + "brand": "Fran's Café", + "brand:wikidata": "Q62075645", + "cuisine": "coffee_shop", + "name": "Fran's Café", + "takeaway": "yes", + "id": "node/3971325069" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8848583, + -15.783933 + ] + } + }, + { + "type": "Feature", + "id": "node/3973507957", + "properties": { + "amenity": "cafe", + "name": "Cópia com Café", + "id": "node/3973507957" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8881001, + -15.7812333 + ] + } + }, + { + "type": "Feature", + "id": "node/4081269529", + "properties": { + "addr:city": "Brasília", + "addr:street": "CLN 404", + "addr:suburb": "Asa Norte", + "amenity": "cafe", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Los Baristas", + "opening_hours": "Mo-Fr 12:00-20:00; Sa 10:00-19:00", + "outdoor_seating": "yes", + "smoking": "no", + "website": "https://www.losbaristas.com/", + "id": "node/4081269529" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.876547, + -15.773612 + ] + } + }, + { + "type": "Feature", + "id": "node/4081269533", + "properties": { + "amenity": "cafe", + "name": "Chateau Brasil", + "id": "node/4081269533" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8849886, + -15.790137 + ] + } + }, + { + "type": "Feature", + "id": "node/4119072799", + "properties": { + "amenity": "cafe", + "level": "1", + "name": "Quintal f/508", + "opening_hours": "Mo-Fr 15:30-20:30; Sa 09:00-12:00", + "outdoor_seating": "no", + "phone": "+55 61 33473985;+55 61 91400303", + "website": "https://f508.com.br/quintal/", + "id": "node/4119072799" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8835617, + -15.7470135 + ] + } + }, + { + "type": "Feature", + "id": "node/4156321058", + "properties": { + "amenity": "cafe", + "name": "Chico Mineiro Confeitaria e Café", + "id": "node/4156321058" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8840073, + -15.7770087 + ] + } + }, + { + "type": "Feature", + "id": "node/4187993132", + "properties": { + "amenity": "cafe", + "name": "Café Sarah Kubitscheck", + "opening_hours": "Mo-Fr 09:00-20:00; Sa 08:00-17:00", + "phone": "+55 61 39637373", + "id": "node/4187993132" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8856309, + -15.7746238 + ] + } + }, + { + "type": "Feature", + "id": "node/4207805094", + "properties": { + "amenity": "cafe", + "name": "Café da Vó Maria", + "id": "node/4207805094" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.881545, + -15.763683 + ] + } + }, + { + "type": "Feature", + "id": "node/4330783337", + "properties": { + "amenity": "cafe", + "name": "Magrelas Café", + "id": "node/4330783337" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8998423, + -15.8192743 + ] + } + }, + { + "type": "Feature", + "id": "node/4433154149", + "properties": { + "amenity": "cafe", + "cuisine": "french", + "name": "Le Jardin", + "id": "node/4433154149" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9078076, + -15.8097643 + ] + } + }, + { + "type": "Feature", + "id": "node/4471601993", + "properties": { + "amenity": "cafe", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Ernesto Cafés Especiais", + "name:pt": "Ernesto Cafés Especiais", + "opening_hours": "Mo-Su 07:00-22:00", + "outdoor_seating": "yes", + "smoking": "no", + "id": "node/4471601993" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9242343, + -15.8307026 + ] + } + }, + { + "type": "Feature", + "id": "node/4558361197", + "properties": { + "amenity": "cafe", + "name": "Rei do Mate", + "name:pt": "Rei do Mate", + "id": "node/4558361197" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8972574, + -15.7355928 + ] + } + }, + { + "type": "Feature", + "id": "node/4558399090", + "properties": { + "amenity": "cafe", + "name": "Croissanterie café | bistrô", + "id": "node/4558399090" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8892686, + -15.7390367 + ] + } + }, + { + "type": "Feature", + "id": "node/4585501235", + "properties": { + "amenity": "cafe", + "brand": "Fran's Café", + "brand:wikidata": "Q62075645", + "cuisine": "coffee_shop", + "name": "Fran's Café", + "takeaway": "yes", + "id": "node/4585501235" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8888328, + -15.786565 + ] + } + }, + { + "type": "Feature", + "id": "node/4585501236", + "properties": { + "amenity": "cafe", + "name": "Martinica", + "id": "node/4585501236" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8890018, + -15.7866114 + ] + } + }, + { + "type": "Feature", + "id": "node/4585529781", + "properties": { + "amenity": "cafe", + "level": "1", + "name": "Grande Café", + "id": "node/4585529781" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8840682, + -15.7871869 + ] + } + }, + { + "type": "Feature", + "id": "node/4591337312", + "properties": { + "amenity": "cafe", + "name": "Rei do Pão de Queijo", + "id": "node/4591337312" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8933428, + -15.7501975 + ] + } + }, + { + "type": "Feature", + "id": "node/4591337315", + "properties": { + "amenity": "cafe", + "name": "Iaga Arte Café", + "id": "node/4591337315" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8931995, + -15.7499358 + ] + } + }, + { + "type": "Feature", + "id": "node/4608731433", + "properties": { + "amenity": "cafe", + "level": "0", + "name": "Crépe de Paris", + "id": "node/4608731433" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.88463, + -15.7868298 + ] + } + }, + { + "type": "Feature", + "id": "node/4693815344", + "properties": { + "amenity": "cafe", + "name": "Kopenhagen", + "id": "node/4693815344" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8996803, + -15.7334022 + ] + } + }, + { + "type": "Feature", + "id": "node/4825889842", + "properties": { + "amenity": "cafe", + "level": "0", + "name": "Casa do Pão de Queijo", + "id": "node/4825889842" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8987679, + -15.7337708 + ] + } + }, + { + "type": "Feature", + "id": "node/4897810422", + "properties": { + "amenity": "cafe", + "cuisine": "arab", + "name": "Snob", + "name:pt": "Snob", + "id": "node/4897810422" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8785977, + -15.759575 + ] + } + }, + { + "type": "Feature", + "id": "node/4908113823", + "properties": { + "amenity": "cafe", + "cuisine": "chocolate", + "name": "Lugano", + "id": "node/4908113823" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8891559, + -15.7526495 + ] + } + }, + { + "type": "Feature", + "id": "node/4908141129", + "properties": { + "amenity": "cafe", + "level": "2", + "name": "Gaudi Café", + "id": "node/4908141129" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8831845, + -15.7906235 + ] + } + }, + { + "type": "Feature", + "id": "node/4957238257", + "properties": { + "amenity": "cafe", + "cuisine": "nordestina", + "name": "Café e um Chêro", + "opening_hours": "Mo-Sa 07:00-22:00", + "website": "http://www.cafeeumchero.com.br", + "id": "node/4957238257" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8877238, + -15.7591758 + ] + } + }, + { + "type": "Feature", + "id": "node/5029115521", + "properties": { + "amenity": "cafe", + "name": "Oficina Café", + "name:pt": "Oficina Café", + "id": "node/5029115521" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.889139, + -15.780834 + ] + } + }, + { + "type": "Feature", + "id": "node/5087302622", + "properties": { + "amenity": "cafe", + "level": "-1", + "name": "Labbora Cafés Especiais", + "opening_hours": "Mo-Fr 10:00-19:00", + "id": "node/5087302622" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8866603, + -15.7452496 + ] + } + }, + { + "type": "Feature", + "id": "node/5087302722", + "properties": { + "amenity": "cafe", + "cuisine": "hungarian", + "name": "Duna Casa Húngara", + "name:pt": "Duna Casa Húngara", + "id": "node/5087302722" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8870871, + -15.7446725 + ] + } + }, + { + "type": "Feature", + "id": "node/5124575930", + "properties": { + "amenity": "cafe", + "internet_access": "wlan", + "name": "Café Civitá", + "name:pt": "Café Civitá", + "id": "node/5124575930" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8927946, + -15.7962238 + ] + } + }, + { + "type": "Feature", + "id": "node/5125114322", + "properties": { + "amenity": "cafe", + "brand": "Fran's Café", + "brand:wikidata": "Q62075645", + "cuisine": "coffee_shop", + "name": "Fran's Café", + "takeaway": "yes", + "id": "node/5125114322" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8924834, + -15.7953783 + ] + } + }, + { + "type": "Feature", + "id": "node/5135659820", + "properties": { + "amenity": "cafe", + "id": "node/5135659820" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8743398, + -15.7686257 + ] + } + }, + { + "type": "Feature", + "id": "node/5225539396", + "properties": { + "amenity": "cafe", + "name": "Nosso Quadrado", + "id": "node/5225539396" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8931241, + -15.8028809 + ] + } + }, + { + "type": "Feature", + "id": "node/5230076441", + "properties": { + "amenity": "cafe", + "brand": "Fran's Café", + "brand:wikidata": "Q62075645", + "cuisine": "coffee_shop", + "name": "Fran's Café", + "takeaway": "yes", + "id": "node/5230076441" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9100841, + -15.8103402 + ] + } + }, + { + "type": "Feature", + "id": "node/5299457845", + "properties": { + "amenity": "cafe", + "name": "Uai Bezinha!", + "id": "node/5299457845" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9121922, + -15.8195535 + ] + } + }, + { + "type": "Feature", + "id": "node/5353491828", + "properties": { + "amenity": "cafe", + "name": "Grão Espresso", + "id": "node/5353491828" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8749357, + -15.8184198 + ] + } + }, + { + "type": "Feature", + "id": "node/5366399095", + "properties": { + "amenity": "cafe", + "internet_access": "wlan", + "name": "Garden Café", + "opening_hours": "Mo-Fr 08:30-20:00; Sa 10:00-18:00", + "id": "node/5366399095" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8846808, + -15.7514698 + ] + } + }, + { + "type": "Feature", + "id": "node/5381047922", + "properties": { + "amenity": "cafe", + "name": "Da Vici Cafeteria", + "id": "node/5381047922" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9130762, + -15.8136655 + ] + } + }, + { + "type": "Feature", + "id": "node/5416977721", + "properties": { + "addr:street": "SHN Quadra 1", + "amenity": "cafe", + "name": "Melbourne Café & Co.", + "opening_hours": "Mo-Fr 08:15-17:30", + "outdoor_seating": "yes", + "website": "http://www.olamelbourne.com.br/", + "id": "node/5416977721" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8846678, + -15.7902403 + ] + } + }, + { + "type": "Feature", + "id": "node/5436122015", + "properties": { + "addr:city": "Brasília", + "addr:housenumber": "Loja 07", + "addr:street": "CLS 114 Bloco B", + "amenity": "cafe", + "internet_access": "wlan", + "internet_access:fee": "no", + "name": "Belini Café", + "opening_hours": "Mo-Sa 08:00-23:00; Su 08:00-22:00", + "outdoor_seating": "yes", + "payment:cash": "yes", + "payment:credit_cards": "yes", + "smoking": "no", + "website": "https://pt-br.facebook.com/pg/belinicafe/about/?ref=page_internal", + "id": "node/5436122015" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9187069, + -15.8273745 + ] + } + }, + { + "type": "Feature", + "id": "node/5470850733", + "properties": { + "amenity": "cafe", + "name": "Sincera", + "id": "node/5470850733" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8900604, + -15.7526191 + ] + } + }, + { + "type": "Feature", + "id": "node/5650571821", + "properties": { + "addr:housenumber": "Bloco A Loja 13", + "addr:street": "SQS 410", + "amenity": "cafe", + "cuisine": "cake;coffee_shop", + "email": "contato@cioccolateria.com.br", + "internet_access": "wlan", + "name": "Cioccolateria Doceria e Café", + "opening_hours": "Mo-Fr 10:00-19:00; Sa 09:00-17:00", + "phone": "+55 61 3242 6399", + "website": "http://www.cioccolateria.com.br", + "id": "node/5650571821" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.906648, + -15.8263217 + ] + } + }, + { + "type": "Feature", + "id": "node/5766574433", + "properties": { + "addr:city": "Brasília", + "addr:street": "CLN 103/104", + "amenity": "cafe", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Quanto", + "opening_hours": "Mo-Fr 11:00-21:00, Sa 09:00-21:00", + "outdoor_seating": "yes", + "smoking": "no", + "id": "node/5766574433" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8826493, + -15.7775553 + ] + } + }, + { + "type": "Feature", + "id": "node/5856741812", + "properties": { + "addr:street": "CLRN 716", + "amenity": "cafe", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Antonieta", + "outdoor_seating": "yes", + "shop": "tea", + "smoking": "no", + "website": "https://www.instagram.com/antonietacafe", + "id": "node/5856741812" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8994946, + -15.7398592 + ] + } + }, + { + "type": "Feature", + "id": "node/5856750259", + "properties": { + "addr:city": "Brasília", + "addr:housenumber": "Loja 46", + "addr:street": "SCLN 116 Bloco B", + "addr:suburb": "Plano Piloto", + "amenity": "cafe", + "name": "Salve Café Maravilha", + "opening_hours": "Mo-Fr 14:00-20:30; Sa 14:300-20:30; Su 09:30-12:30", + "payment:cash": "yes", + "payment:credit_cards": "yes", + "payment:debit_cards": "yes", + "website": "https://www.facebook.com/salvecafemaravilha/", + "id": "node/5856750259" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.89356, + -15.7398134 + ] + } + }, + { + "type": "Feature", + "id": "node/6005691723", + "properties": { + "addr:street": "CLN 107/108", + "amenity": "cafe", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Ernesto Cafés Especiais", + "opening_hours": "Mo-Su 07:00-22:00", + "outdoor_seating": "yes", + "smoking": "no", + "id": "node/6005691723" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8852493, + -15.7645578 + ] + } + }, + { + "type": "Feature", + "id": "node/6207544093", + "properties": { + "amenity": "cafe", + "cuisine": "sandwiches", + "internet_access": "no", + "internet_access:fee": "no", + "name": "Café da Fiocruz", + "outdoor_seating": "no", + "smoking": "no", + "takeaway": "yes", + "id": "node/6207544093" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8712547, + -15.7712064 + ] + } + }, + { + "type": "Feature", + "id": "node/6456239248", + "properties": { + "amenity": "cafe", + "name": "Maria Aurélia", + "id": "node/6456239248" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9071188, + -15.8148373 + ] + } + }, + { + "type": "Feature", + "id": "node/6456386661", + "properties": { + "amenity": "cafe", + "brand": "Fran's Café", + "brand:wikidata": "Q62075645", + "cuisine": "coffee_shop", + "name": "Fran's Café", + "outdoor_seating": "yes", + "takeaway": "yes", + "id": "node/6456386661" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8938988, + -15.8151596 + ] + } + }, + { + "type": "Feature", + "id": "node/6591961959", + "properties": { + "amenity": "cafe", + "name": "Sterna Café", + "id": "node/6591961959" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8900077, + -15.7808206 + ] + } + }, + { + "type": "Feature", + "id": "node/6632677485", + "properties": { + "addr:postcode": "70742-530", + "addr:street": "SQN 106 Bloco A", + "amenity": "cafe", + "name": "QualyCream", + "opening_hours": "Mo-Fr 08:00-18:00; Sa 09:00-13:00", + "phone": "+55 61 3033 1010", + "website": "http://qualycream.com.br", + "id": "node/6632677485" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8845249, + -15.7708562 + ] + } + }, + { + "type": "Feature", + "id": "node/7705116886", + "properties": { + "amenity": "cafe", + "id": "node/7705116886" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9289296, + -15.8256478 + ] + } + }, + { + "type": "Feature", + "id": "node/7705116908", + "properties": { + "amenity": "cafe", + "id": "node/7705116908" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.9294188, + -15.8268004 + ] + } + }, + { + "type": "Feature", + "id": "node/7949383205", + "properties": { + "addr:city": "Brasília", + "addr:street": "SCRN 712/713, bloco E", + "amenity": "cafe", + "name": "Amarelinha", + "id": "node/7949383205" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8975325, + -15.7518287 + ] + } + }, + { + "type": "Feature", + "id": "node/8223909098", + "properties": { + "addr:street": "CLRN 716", + "amenity": "cafe", + "cuisine": "coffee_shop;regional", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Marilda Café", + "opening_hours": "Tu-Fr 12:00-20:00; Sa-Su 09:00-20:00", + "outdoor_seating": "yes", + "payment:cash": "yes", + "payment:credit_cards": "yes", + "phone": "+55 61 2194 7902", + "website": "https://www.instagram.com/marilda_cafe", + "id": "node/8223909098" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8992532, + -15.7406194 + ] + } + }, + { + "type": "Feature", + "id": "node/8435477631", + "properties": { + "addr:housenumber": "Bloco D Loja x", + "addr:street": "CLS 108", + "amenity": "cafe", + "name": "Lugano", + "id": "node/8435477631" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.902979, + -15.8152087 + ] + } + }, + { + "type": "Feature", + "id": "node/9106354157", + "properties": { + "addr:city": "distrito federal", + "addr:housenumber": "36", + "addr:postcode": "70331710", + "addr:street": "SHIGS Quadra 703, bloco J;SHIGS Quadra 703, Bloco J", + "addr:suburb": "asa sul", + "amenity": "cafe", + "cuisine": "cake;cafetaria", + "name": "Rafaela Brandão Doceria;Senhorita Brigadeiro", + "id": "node/9106354157" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.896786, + -15.8015199 + ] + } + }, + { + "type": "Feature", + "id": "node/9223636892", + "properties": { + "addr:street": "CLN 405", + "amenity": "cafe", + "cuisine": "coffee_shop;regional", + "name": "Maytrea Café do Cerrado", + "opening_hours": "Tu-Fr 14:00-19:00; Sa 11:00-15:00", + "outdoor_seating": "yes", + "website": "https://www.instagram.com/maytreacerrado/", + "id": "node/9223636892" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8760889, + -15.7728741 + ] + } + }, + { + "type": "Feature", + "id": "node/9223668163", + "properties": { + "addr:street": "CLN 409", + "amenity": "cafe", + "cuisine": "coffee_shop", + "name": "The Coffee", + "opening_hours": "Mo-Fr 07:30-20:00; sa-su 08:00-20:00", + "outdoor_seating": "yes", + "website": "https://www.thecoffee.jp/", + "id": "node/9223668163" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8802586, + -15.7598622 + ] + } + }, + { + "type": "Feature", + "id": "node/9321058495", + "properties": { + "addr:street": "CRN 708/709 G", + "amenity": "cafe", + "cuisine": "coffee_shop", + "internet_access": "yes", + "internet_access:fee": "no", + "name": "Aha", + "opening_hours": "We-Su 11:00-18:00", + "website": "https://www.ahacafes.com.br/", + "id": "node/9321058495" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8926958, + -15.7634914 + ] + } + }, + { + "type": "Feature", + "id": "node/9364462024", + "properties": { + "amenity": "cafe", + "name": "Civita", + "id": "node/9364462024" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8926411, + -15.7611957 + ] + } + }, + { + "type": "Feature", + "id": "node/9559046117", + "properties": { + "amenity": "cafe", + "name": "Duckbill Cookies & Coffee", + "survey:date": "2022-03-06", + "id": "node/9559046117" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.893681, + -15.8066905 + ] + } + }, + { + "type": "Feature", + "id": "node/9559046118", + "properties": { + "amenity": "cafe", + "name": "Café da Mata", + "survey:date": "2022-03-06", + "id": "node/9559046118" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8933825, + -15.8069382 + ] + } + }, + { + "type": "Feature", + "id": "node/9563487746", + "properties": { + "amenity": "cafe", + "brand": "Starbucks", + "brand:wikidata": "Q37158", + "brand:wikipedia": "en:Starbucks", + "cuisine": "coffee_shop", + "name": "Starbucks", + "official_name": "Starbucks Coffee", + "takeaway": "yes", + "id": "node/9563487746" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8924062, + -15.7950461 + ] + } + }, + { + "type": "Feature", + "id": "node/9577464680", + "properties": { + "amenity": "cafe", + "brand": "Starbucks", + "brand:wikidata": "Q37158", + "brand:wikipedia": "en:Starbucks", + "cuisine": "coffee_shop", + "name": "Starbucks", + "official_name": "Starbucks Coffee", + "takeaway": "yes", + "id": "node/9577464680" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8829693, + -15.79097 + ] + } + }, + { + "type": "Feature", + "id": "node/9858565892", + "properties": { + "addr:street": "SCLN 116 Bloco I", + "air_conditioning": "no", + "amenity": "cafe", + "cuisine": "regional", + "level": "0", + "name": "Ponto Do Café 116", + "outdoor_seating": "yes", + "id": "node/9858565892" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -47.8951192, + -15.7373599 + ] + } + } + ] +} \ No newline at end of file diff --git a/tools/osmtogeojson_fixture.js b/tools/osmtogeojson_fixture.js new file mode 100644 index 0000000000..fc2669a633 --- /dev/null +++ b/tools/osmtogeojson_fixture.js @@ -0,0 +1,37 @@ +#!/usr/bin/env node + +/* +Generate GeoJSON fixtures using osmtogeojson. +Usage: node tools/osmtogeojson_fixture.js input.json output.geojson +*/ + +const fs = require("fs"); +let osmtogeojson; +try { + osmtogeojson = require("osmtogeojson"); +} catch (err) { + const { execSync } = require("child_process"); + const path = require("path"); + try { + const globalRoot = execSync("npm root -g", { encoding: "utf-8" }).trim(); + osmtogeojson = require(path.join(globalRoot, "osmtogeojson")); + } catch (err2) { + console.error("osmtogeojson not found. Install with: npm install --global osmtogeojson"); + process.exit(2); + } +} + +if (process.argv.length < 4) { + console.error("Usage: node tools/osmtogeojson_fixture.js input.json output.geojson"); + process.exit(2); +} + +const inputPath = process.argv[2]; +const outputPath = process.argv[3]; + +const raw = fs.readFileSync(inputPath, "utf-8"); +const data = JSON.parse(raw); +const geojson = osmtogeojson(data); + +fs.writeFileSync(outputPath, JSON.stringify(geojson, null, 2)); +console.log(`Wrote ${outputPath}`);