diff --git a/examples/data/geojson/roads-seoul.geojson b/examples/data/geojson/roads-seoul.geojson new file mode 100644 index 0000000000..84daf47d25 --- /dev/null +++ b/examples/data/geojson/roads-seoul.geojson @@ -0,0 +1,4139 @@ +{ + "type": "FeatureCollection", + "generator": "overpass-turbo", + "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.", + "timestamp": "2015-09-19T01:26:02Z", + "features": [ + { + "type": "Feature", + "id": "way/33803251", + "properties": { + "@id": "way/33803251", + "highway": "residential", + "name": "X Corps Boulevard" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.991594, + 37.5272773 + ], + [ + 126.990271, + 37.5271954 + ], + [ + 126.9896898, + 37.5271383 + ], + [ + 126.9884334, + 37.5270726 + ], + [ + 126.9881561, + 37.5270408 + ], + [ + 126.9878154, + 37.5269587 + ], + [ + 126.9870299, + 37.5267266 + ], + [ + 126.9869436, + 37.526707 + ], + [ + 126.9861981, + 37.5265093 + ], + [ + 126.9853379, + 37.5262743 + ], + [ + 126.985257, + 37.5262477 + ], + [ + 126.9850127, + 37.5261798 + ], + [ + 126.9846085, + 37.5260924 + ], + [ + 126.9842276, + 37.5260473 + ], + [ + 126.984073, + 37.5260544 + ], + [ + 126.9834486, + 37.5260829 + ], + [ + 126.9815485, + 37.5261698 + ], + [ + 126.9812511, + 37.5261739 + ], + [ + 126.9800453, + 37.5261904 + ], + [ + 126.978552, + 37.5262275 + ], + [ + 126.9784144, + 37.5262574 + ], + [ + 126.9782714, + 37.5262884 + ], + [ + 126.9779173, + 37.5264103 + ], + [ + 126.9775499, + 37.5265481 + ], + [ + 126.9774604, + 37.5265786 + ], + [ + 126.9773413, + 37.5266194 + ], + [ + 126.9773275, + 37.5266241 + ], + [ + 126.9770187, + 37.5266991 + ], + [ + 126.9766345, + 37.5267732 + ], + [ + 126.9759497, + 37.5269031 + ], + [ + 126.9742686, + 37.527135 + ], + [ + 126.9737761, + 37.5271869 + ], + [ + 126.9734752, + 37.5272186 + ], + [ + 126.9726221, + 37.5273085 + ], + [ + 126.9722279, + 37.5273499 + ], + [ + 126.9721949, + 37.5273534 + ], + [ + 126.9715703, + 37.527425 + ], + [ + 126.9712329, + 37.5275071 + ], + [ + 126.9710191, + 37.5275945 + ], + [ + 126.970812, + 37.5277111 + ], + [ + 126.9706516, + 37.5278303 + ], + [ + 126.9705247, + 37.5279442 + ], + [ + 126.9704512, + 37.5280211 + ], + [ + 126.9704315, + 37.5280517 + ], + [ + 126.9702442, + 37.5283407 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803254", + "properties": { + "@id": "way/33803254", + "highway": "residential", + "name": "25th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.985257, + 37.5262477 + ], + [ + 126.9851751, + 37.5258518 + ], + [ + 126.9850561, + 37.5253082 + ], + [ + 126.9847989, + 37.523851 + ], + [ + 126.9847855, + 37.5235093 + ], + [ + 126.9848623, + 37.5233662 + ], + [ + 126.9856641, + 37.5228575 + ], + [ + 126.9863957, + 37.5224097 + ], + [ + 126.9872007, + 37.5219037 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803259", + "properties": { + "@id": "way/33803259", + "highway": "residential", + "name": "24th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9862687, + 37.5203855 + ], + [ + 126.986095, + 37.5206611 + ], + [ + 126.9859514, + 37.5209207 + ], + [ + 126.9857175, + 37.5214771 + ], + [ + 126.9856307, + 37.5218454 + ], + [ + 126.9855872, + 37.5221951 + ], + [ + 126.9856039, + 37.5225475 + ], + [ + 126.9856641, + 37.5228575 + ], + [ + 126.9860933, + 37.5256172 + ], + [ + 126.9861384, + 37.5258168 + ], + [ + 126.9861857, + 37.5263503 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803260", + "properties": { + "@id": "way/33803260", + "highway": "residential", + "name": "40th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9869436, + 37.526707 + ], + [ + 126.9870039, + 37.5265689 + ], + [ + 126.986956, + 37.5261401 + ], + [ + 126.9869168, + 37.5257904 + ], + [ + 126.9865994, + 37.5235675 + ], + [ + 126.9863957, + 37.5224097 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803261", + "properties": { + "@id": "way/33803261", + "highway": "residential", + "name": "Mission Loop" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9878555, + 37.5230959 + ], + [ + 126.9865994, + 37.5235675 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803262", + "properties": { + "@id": "way/33803262", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9869168, + 37.5257904 + ], + [ + 126.9861384, + 37.5258168 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/37401288", + "properties": { + "@id": "way/37401288", + "highway": "secondary", + "name": "서빙고로 (Seobinggoro)", + "name:en": "Seobinggoro", + "name:ja": "西氷庫路", + "name:ko": "서빙고로", + "name:ko_rm": "Seobinggoro", + "ncat": "광역시도로", + "review": "no", + "source": "NTIC" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9651645, + 37.5263314 + ], + [ + 126.96593, + 37.52586 + ], + [ + 126.96644, + 37.52556 + ], + [ + 126.96661, + 37.52546 + ], + [ + 126.96693, + 37.52526 + ], + [ + 126.96745, + 37.52496 + ], + [ + 126.9679, + 37.52469 + ], + [ + 126.9679758, + 37.5246448 + ], + [ + 126.96837, + 37.52441 + ], + [ + 126.96893, + 37.52406 + ], + [ + 126.96979, + 37.52358 + ], + [ + 126.96989, + 37.52352 + ], + [ + 126.97024, + 37.52336 + ], + [ + 126.97041, + 37.52331 + ], + [ + 126.97068, + 37.52327 + ], + [ + 126.97098, + 37.52322 + ], + [ + 126.9713724, + 37.523212 + ], + [ + 126.97212, + 37.52307 + ], + [ + 126.97258, + 37.52295 + ], + [ + 126.97301, + 37.52282 + ], + [ + 126.97324, + 37.52275 + ], + [ + 126.97368, + 37.52262 + ], + [ + 126.9743665, + 37.5224062 + ], + [ + 126.9749, + 37.52224 + ], + [ + 126.97618, + 37.52182 + ], + [ + 126.9771571, + 37.5215298 + ], + [ + 126.97826, + 37.52115 + ], + [ + 126.9784113, + 37.5211027 + ], + [ + 126.9787924, + 37.5209835 + ], + [ + 126.9789476, + 37.5209351 + ], + [ + 126.97938, + 37.5208 + ], + [ + 126.9796549, + 37.5207189 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/170207572", + "properties": { + "@id": "way/170207572", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9775128, + 37.5223707 + ], + [ + 126.9771252, + 37.5231299 + ], + [ + 126.9769541, + 37.5233868 + ], + [ + 126.9776013, + 37.5248524 + ], + [ + 126.9776779, + 37.5250212 + ], + [ + 126.9776013, + 37.5251563 + ], + [ + 126.9773799, + 37.5251563 + ], + [ + 126.9768179, + 37.52363 + ], + [ + 126.9769541, + 37.5233868 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/170207584", + "properties": { + "@id": "way/170207584", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9759497, + 37.5269031 + ], + [ + 126.9761451, + 37.5277154 + ], + [ + 126.9762203, + 37.5278197 + ], + [ + 126.9763139, + 37.5278992 + ], + [ + 126.9765878, + 37.5280343 + ], + [ + 126.9776533, + 37.5285181 + ], + [ + 126.9781745, + 37.528739 + ], + [ + 126.9787558, + 37.5289112 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/222019653", + "properties": { + "@id": "way/222019653", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9757655, + 37.534576 + ], + [ + 126.9753893, + 37.532649 + ], + [ + 126.975363, + 37.5325387 + ], + [ + 126.9751471, + 37.5314056 + ], + [ + 126.9751118, + 37.5312203 + ], + [ + 126.9750631, + 37.5309647 + ], + [ + 126.9750591, + 37.5304022 + ], + [ + 126.975055, + 37.5302671 + ], + [ + 126.9750288, + 37.5293996 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/222019654", + "properties": { + "@id": "way/222019654", + "highway": "residential", + "name": "한강대로40길 (Hangang-daero 40-gil)" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9690332, + 37.5303293 + ], + [ + 126.9698033, + 37.5302516 + ], + [ + 126.9704485, + 37.5301865 + ], + [ + 126.9705718, + 37.5301741 + ], + [ + 126.9709961, + 37.5301292 + ], + [ + 126.9718051, + 37.5300437 + ], + [ + 126.9726095, + 37.5299024 + ], + [ + 126.9734216, + 37.5296911 + ], + [ + 126.973727, + 37.5296117 + ], + [ + 126.9742229, + 37.5294918 + ], + [ + 126.9745984, + 37.5294345 + ], + [ + 126.9750288, + 37.5293996 + ], + [ + 126.9751449, + 37.5293413 + ], + [ + 126.9754331, + 37.5293101 + ], + [ + 126.9767486, + 37.5292938 + ], + [ + 126.9771802, + 37.5293346 + ], + [ + 126.9773241, + 37.5294405 + ], + [ + 126.9773036, + 37.5297258 + ], + [ + 126.9771894, + 37.5303967 + ], + [ + 126.9770503, + 37.5312138 + ], + [ + 126.9769027, + 37.5320813 + ], + [ + 126.9769027, + 37.5325866 + ], + [ + 126.9760189, + 37.532554 + ], + [ + 126.9757317, + 37.5325473 + ], + [ + 126.9756589, + 37.5325456 + ], + [ + 126.975363, + 37.5325387 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/229505082", + "properties": { + "@id": "way/229505082", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9763334, + 37.5340062 + ], + [ + 126.9763487, + 37.5339901 + ], + [ + 126.9764803, + 37.5338519 + ], + [ + 126.9767383, + 37.5336135 + ], + [ + 126.9769336, + 37.5335075 + ], + [ + 126.9769439, + 37.5333282 + ], + [ + 126.9768822, + 37.5332386 + ], + [ + 126.9767794, + 37.533206 + ], + [ + 126.9760551, + 37.5331878 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/229560083", + "properties": { + "@id": "way/229560083", + "highway": "residential", + "name": "8th Army Drive" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9803651, + 37.5332146 + ], + [ + 126.9803537, + 37.5329774 + ], + [ + 126.9803149, + 37.5321694 + ], + [ + 126.9803067, + 37.531998 + ], + [ + 126.9802956, + 37.5317676 + ], + [ + 126.9802421, + 37.5306555 + ], + [ + 126.9802306, + 37.5304158 + ], + [ + 126.9801841, + 37.5294468 + ], + [ + 126.9801688, + 37.5291283 + ], + [ + 126.9801677, + 37.5291006 + ], + [ + 126.9801207, + 37.5279451 + ], + [ + 126.9800453, + 37.5261904 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/229560084", + "properties": { + "@id": "way/229560084", + "bridge": "yes", + "highway": "residential", + "layer": "1" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9806401, + 37.5358475 + ], + [ + 126.9806723, + 37.5349531 + ], + [ + 126.9806666, + 37.5347233 + ], + [ + 126.9806365, + 37.5345459 + ], + [ + 126.9805497, + 37.5341008 + ], + [ + 126.9803651, + 37.5332146 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788905", + "properties": { + "@id": "way/256788905", + "highway": "residential", + "name": "IX Corps Blvd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9802306, + 37.5304158 + ], + [ + 126.9818391, + 37.530657 + ], + [ + 126.9818821, + 37.5306687 + ], + [ + 126.982073, + 37.5307206 + ], + [ + 126.982266, + 37.5308167 + ], + [ + 126.9834166, + 37.5313894 + ], + [ + 126.983957, + 37.5316584 + ], + [ + 126.9840807, + 37.5317315 + ], + [ + 126.9843635, + 37.5318988 + ], + [ + 126.9845617, + 37.532016 + ], + [ + 126.9851112, + 37.5324356 + ], + [ + 126.9854603, + 37.5327021 + ], + [ + 126.9856225, + 37.5328302 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788907", + "properties": { + "@id": "way/256788907", + "highway": "service", + "name": "Little St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833703, + 37.5321559 + ], + [ + 126.9837265, + 37.532061 + ], + [ + 126.9838669, + 37.5320452 + ], + [ + 126.9842042, + 37.532061 + ], + [ + 126.9842544, + 37.5320399 + ], + [ + 126.9842911, + 37.5319895 + ], + [ + 126.9843635, + 37.5318988 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788908", + "properties": { + "@id": "way/256788908", + "highway": "service", + "name": "1st Marine Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833331, + 37.5324061 + ], + [ + 126.9849358, + 37.5325352 + ], + [ + 126.9850127, + 37.5325167 + ], + [ + 126.9851112, + 37.5324356 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788909", + "properties": { + "@id": "way/256788909", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833331, + 37.5324061 + ], + [ + 126.9832121, + 37.5323922 + ], + [ + 126.9831085, + 37.5323419 + ], + [ + 126.9824939, + 37.5319895 + ], + [ + 126.9824037, + 37.5319604 + ], + [ + 126.9822634, + 37.5319657 + ], + [ + 126.9821465, + 37.5320187 + ], + [ + 126.9818926, + 37.5322783 + ], + [ + 126.9818091, + 37.5322995 + ], + [ + 126.9811309, + 37.5323339 + ], + [ + 126.9810608, + 37.532318 + ], + [ + 126.980867, + 37.5321988 + ], + [ + 126.9808036, + 37.5321803 + ], + [ + 126.9805163, + 37.5321564 + ], + [ + 126.9803149, + 37.5321694 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788911", + "properties": { + "@id": "way/256788911", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9861981, + 37.5265093 + ], + [ + 126.9862353, + 37.5269216 + ], + [ + 126.986419, + 37.5273561 + ], + [ + 126.9865485, + 37.5276727 + ], + [ + 126.9867832, + 37.5282462 + ], + [ + 126.9874412, + 37.5295788 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788912", + "properties": { + "@id": "way/256788912", + "highway": "residential", + "name": "Moor St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9874412, + 37.5295788 + ], + [ + 126.9866863, + 37.5298914 + ], + [ + 126.9863689, + 37.5299841 + ], + [ + 126.9862286, + 37.5299974 + ], + [ + 126.9859556, + 37.5299745 + ], + [ + 126.9858812, + 37.5299682 + ], + [ + 126.9851129, + 37.5299099 + ], + [ + 126.9849926, + 37.5299126 + ], + [ + 126.9849124, + 37.5299364 + ], + [ + 126.9848289, + 37.53 + ], + [ + 126.9847888, + 37.5301616 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788913", + "properties": { + "@id": "way/256788913", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9840807, + 37.5317315 + ], + [ + 126.984261, + 37.5313829 + ], + [ + 126.9843345, + 37.5313352 + ], + [ + 126.9843746, + 37.5313352 + ], + [ + 126.9844381, + 37.5313352 + ], + [ + 126.9845784, + 37.531412 + ], + [ + 126.9846151, + 37.5314941 + ], + [ + 126.9845884, + 37.5315948 + ], + [ + 126.9843635, + 37.5318988 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788914", + "properties": { + "@id": "way/256788914", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9843746, + 37.5313352 + ], + [ + 126.9843379, + 37.5311445 + ], + [ + 126.9842811, + 37.5308107 + ], + [ + 126.9842944, + 37.5307338 + ], + [ + 126.9844581, + 37.5302994 + ], + [ + 126.9845383, + 37.5302305 + ], + [ + 126.9846519, + 37.5301802 + ], + [ + 126.9847888, + 37.5301616 + ], + [ + 126.9857242, + 37.5302278 + ], + [ + 126.9859447, + 37.5303656 + ], + [ + 126.9860048, + 37.5304663 + ], + [ + 126.9860716, + 37.5305351 + ], + [ + 126.9861752, + 37.5305643 + ], + [ + 126.9863055, + 37.5305616 + ], + [ + 126.987311, + 37.5303603 + ], + [ + 126.9873945, + 37.5303603 + ], + [ + 126.9874513, + 37.5303947 + ], + [ + 126.9875181, + 37.5306067 + ], + [ + 126.9875281, + 37.5306888 + ], + [ + 126.9875114, + 37.5307577 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788915", + "properties": { + "@id": "way/256788915", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9859556, + 37.5299745 + ], + [ + 126.9859814, + 37.5297907 + ], + [ + 126.9859781, + 37.5295735 + ], + [ + 126.9857142, + 37.5287205 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788916", + "properties": { + "@id": "way/256788916", + "highway": "residential", + "name": "Williams Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9774604, + 37.5265786 + ], + [ + 126.9771056, + 37.5255201 + ], + [ + 126.9769953, + 37.5252472 + ], + [ + 126.9769319, + 37.5251386 + ], + [ + 126.9767381, + 37.5249187 + ], + [ + 126.976688, + 37.5248286 + ], + [ + 126.9765009, + 37.5244445 + ], + [ + 126.9764542, + 37.5244153 + ], + [ + 126.9756391, + 37.5242935 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788917", + "properties": { + "@id": "way/256788917", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9743665, + 37.5224062 + ], + [ + 126.9744194, + 37.5225564 + ], + [ + 126.97469, + 37.5231172 + ], + [ + 126.9747672, + 37.5232072 + ], + [ + 126.9753551, + 37.5236735 + ], + [ + 126.9754152, + 37.5237503 + ], + [ + 126.9756324, + 37.5242087 + ], + [ + 126.9756491, + 37.5242617 + ], + [ + 126.9756391, + 37.5242935 + ], + [ + 126.975599, + 37.5243306 + ], + [ + 126.975452, + 37.5244047 + ], + [ + 126.9753251, + 37.5244418 + ], + [ + 126.9745098, + 37.5246169 + ], + [ + 126.9736347, + 37.5248048 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788918", + "properties": { + "@id": "way/256788918", + "highway": "residential", + "name": "Vaughn Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9730661, + 37.5240085 + ], + [ + 126.9731249, + 37.5240645 + ], + [ + 126.9732776, + 37.5242548 + ], + [ + 126.9734577, + 37.5244418 + ], + [ + 126.9735145, + 37.5245531 + ], + [ + 126.9736347, + 37.5248048 + ], + [ + 126.9737052, + 37.5251036 + ], + [ + 126.9737684, + 37.5253718 + ], + [ + 126.9741525, + 37.5266964 + ], + [ + 126.9742686, + 37.527135 + ], + [ + 126.9743429, + 37.5275733 + ], + [ + 126.9743463, + 37.5278383 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788923", + "properties": { + "@id": "way/256788923", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9724019, + 37.524431 + ], + [ + 126.9732539, + 37.5248445 + ], + [ + 126.9733174, + 37.5248525 + ], + [ + 126.9736347, + 37.5248048 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788924", + "properties": { + "@id": "way/256788924", + "highway": "residential", + "name": "Stoves Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9784144, + 37.5262574 + ], + [ + 126.9784151, + 37.5264527 + ], + [ + 126.9783783, + 37.5266487 + ], + [ + 126.9782814, + 37.5269481 + ], + [ + 126.9780181, + 37.5276071 + ], + [ + 126.9777637, + 37.5282436 + ], + [ + 126.9776533, + 37.5285181 + ], + [ + 126.9774964, + 37.5289085 + ], + [ + 126.977463, + 37.5290463 + ], + [ + 126.9774964, + 37.5291602 + ], + [ + 126.9776141, + 37.5292391 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788925", + "properties": { + "@id": "way/256788925", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9780181, + 37.5276071 + ], + [ + 126.9775565, + 37.5275097 + ], + [ + 126.9775131, + 37.5274806 + ], + [ + 126.9774797, + 37.5271865 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788926", + "properties": { + "@id": "way/256788926", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9801207, + 37.5279451 + ], + [ + 126.9817122, + 37.5278833 + ], + [ + 126.9817623, + 37.52787 + ], + [ + 126.9817957, + 37.5278091 + ], + [ + 126.9818024, + 37.5276078 + ], + [ + 126.9817489, + 37.5275203 + ], + [ + 126.9816153, + 37.5274011 + ], + [ + 126.9815285, + 37.527274 + ], + [ + 126.9814483, + 37.5270143 + ], + [ + 126.9813681, + 37.5268633 + ], + [ + 126.9812913, + 37.5266381 + ], + [ + 126.9812746, + 37.5265083 + ], + [ + 126.9812511, + 37.5261739 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578698", + "properties": { + "@id": "way/257578698", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9851182, + 37.5333407 + ], + [ + 126.9847361, + 37.5331945 + ], + [ + 126.9844223, + 37.5331945 + ], + [ + 126.984028, + 37.5333073 + ], + [ + 126.9835801, + 37.5333222 + ], + [ + 126.9832502, + 37.5332817 + ], + [ + 126.9831134, + 37.5331669 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578699", + "properties": { + "@id": "way/257578699", + "highway": "residential", + "name": "7th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9865666, + 37.5321665 + ], + [ + 126.98647, + 37.5319538 + ], + [ + 126.986513, + 37.5318603 + ], + [ + 126.9866632, + 37.5318517 + ], + [ + 126.9867061, + 37.5319709 + ], + [ + 126.9865666, + 37.5321665 + ], + [ + 126.9863091, + 37.5323622 + ], + [ + 126.9861053, + 37.5323537 + ], + [ + 126.985998, + 37.5324218 + ], + [ + 126.9856225, + 37.5328302 + ], + [ + 126.9851182, + 37.5333407 + ], + [ + 126.984968, + 37.5336044 + ], + [ + 126.9847495, + 37.5338794 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578700", + "properties": { + "@id": "way/257578700", + "highway": "residential", + "name": "Malloy Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9867832, + 37.5282462 + ], + [ + 126.9856844, + 37.5286416 + ], + [ + 126.9850191, + 37.5288613 + ], + [ + 126.9847749, + 37.5289419 + ], + [ + 126.9845067, + 37.529078 + ], + [ + 126.9834231, + 37.5297928 + ], + [ + 126.9827257, + 37.5303203 + ], + [ + 126.9823824, + 37.5306266 + ], + [ + 126.982266, + 37.5308167 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578701", + "properties": { + "@id": "way/257578701", + "highway": "residential", + "name": "Rodgers Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9834486, + 37.5260829 + ], + [ + 126.9834635, + 37.526259 + ], + [ + 126.9834668, + 37.5262988 + ], + [ + 126.9834933, + 37.526612 + ], + [ + 126.9834982, + 37.5266701 + ], + [ + 126.9835079, + 37.5270722 + ], + [ + 126.9832192, + 37.5287888 + ], + [ + 126.9832192, + 37.5291801 + ], + [ + 126.9834231, + 37.5297928 + ], + [ + 126.9835194, + 37.5299205 + ], + [ + 126.9835194, + 37.5300053 + ], + [ + 126.9833892, + 37.5306703 + ], + [ + 126.9834226, + 37.5308292 + ], + [ + 126.9835428, + 37.5310809 + ], + [ + 126.9835428, + 37.5311286 + ], + [ + 126.9834166, + 37.5313894 + ], + [ + 126.9833524, + 37.5315498 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578702", + "properties": { + "@id": "way/257578702", + "highway": "residential", + "name": "Porter St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9847749, + 37.5289419 + ], + [ + 126.9845356, + 37.5286495 + ], + [ + 126.9842945, + 37.5284105 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578703", + "properties": { + "@id": "way/257578703", + "highway": "residential", + "name": "Koelsch Grove" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9857142, + 37.5287205 + ], + [ + 126.9856844, + 37.5286416 + ], + [ + 126.985467, + 37.5280528 + ], + [ + 126.9850761, + 37.5272501 + ], + [ + 126.9850327, + 37.5271971 + ], + [ + 126.9849826, + 37.5271786 + ], + [ + 126.9849461, + 37.5271759 + ], + [ + 126.9837666, + 37.5270885 + ], + [ + 126.9837396, + 37.5270868 + ], + [ + 126.9835079, + 37.5270722 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578704", + "properties": { + "@id": "way/257578704", + "highway": "residential", + "name": "3rd Div Road" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9743463, + 37.5278383 + ], + [ + 126.9739667, + 37.5279182 + ], + [ + 126.9729366, + 37.528135 + ], + [ + 126.9720947, + 37.5283125 + ], + [ + 126.971597, + 37.5283761 + ], + [ + 126.9714166, + 37.528384 + ], + [ + 126.9713364, + 37.5283761 + ], + [ + 126.9712417, + 37.5283381 + ], + [ + 126.9704512, + 37.5280211 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578705", + "properties": { + "@id": "way/257578705", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9725325, + 37.526827 + ], + [ + 126.9725357, + 37.5266514 + ], + [ + 126.972529, + 37.5265772 + ], + [ + 126.972539, + 37.5265348 + ], + [ + 126.9728514, + 37.5261008 + ], + [ + 126.9735345, + 37.5251519 + ], + [ + 126.9735913, + 37.5251254 + ], + [ + 126.9737052, + 37.5251036 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578710", + "properties": { + "@id": "way/257578710", + "highway": "residential", + "name": "Matta Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9875114, + 37.5307577 + ], + [ + 126.987458, + 37.5308133 + ], + [ + 126.9871974, + 37.5310438 + ], + [ + 126.987164, + 37.5311153 + ], + [ + 126.987164, + 37.5311842 + ], + [ + 126.9872275, + 37.5312478 + ], + [ + 126.9877452, + 37.5315763 + ], + [ + 126.9881094, + 37.5317087 + ], + [ + 126.988243, + 37.5317193 + ], + [ + 126.9885336, + 37.5317326 + ], + [ + 126.9886438, + 37.5317749 + ], + [ + 126.9891182, + 37.5320822 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578711", + "properties": { + "@id": "way/257578711", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9885478, + 37.5298717 + ], + [ + 126.9884562, + 37.52999 + ], + [ + 126.9885528, + 37.530241 + ], + [ + 126.9885421, + 37.5303644 + ], + [ + 126.9884777, + 37.5304622 + ], + [ + 126.9880593, + 37.5307387 + ], + [ + 126.9879359, + 37.5307643 + ], + [ + 126.9875818, + 37.5307813 + ], + [ + 126.9875114, + 37.5307577 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578712", + "properties": { + "@id": "way/257578712", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9884562, + 37.52999 + ], + [ + 126.9883329, + 37.5299645 + ], + [ + 126.9881827, + 37.52999 + ], + [ + 126.987555, + 37.5303006 + ], + [ + 126.9874513, + 37.5303947 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578716", + "properties": { + "@id": "way/257578716", + "highway": "residential", + "name": "80th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833524, + 37.5315498 + ], + [ + 126.9833257, + 37.5317034 + ], + [ + 126.9833825, + 37.5320743 + ], + [ + 126.9833703, + 37.5321559 + ], + [ + 126.9833331, + 37.5324061 + ], + [ + 126.9833056, + 37.5325909 + ], + [ + 126.9832522, + 37.532877 + ], + [ + 126.9831134, + 37.5331669 + ], + [ + 126.9829983, + 37.5334704 + ], + [ + 126.9829449, + 37.5336743 + ], + [ + 126.9829298, + 37.5338676 + ], + [ + 126.9829248, + 37.5339313 + ], + [ + 126.9829048, + 37.5343604 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578717", + "properties": { + "@id": "way/257578717", + "highway": "residential", + "name": "Hartell Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9803067, + 37.531998 + ], + [ + 126.980195, + 37.5320192 + ], + [ + 126.9801575, + 37.5320745 + ], + [ + 126.9800985, + 37.5326233 + ], + [ + 126.9800502, + 37.5327594 + ], + [ + 126.9799107, + 37.5328615 + ], + [ + 126.9796801, + 37.5329594 + ], + [ + 126.9795567, + 37.5329636 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578718", + "properties": { + "@id": "way/257578718", + "highway": "residential", + "name": "Mayo St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9802956, + 37.5317676 + ], + [ + 126.9796908, + 37.5317597 + ], + [ + 126.9794573, + 37.5317376 + ], + [ + 126.9790014, + 37.5316943 + ], + [ + 126.9787037, + 37.5316661 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/278444786", + "properties": { + "@id": "way/278444786", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9714407, + 37.5249871 + ], + [ + 126.9715769, + 37.5249797 + ], + [ + 126.9717072, + 37.5249134 + ], + [ + 126.9721983, + 37.5245425 + ], + [ + 126.9724019, + 37.524431 + ], + [ + 126.9725223, + 37.524365 + ], + [ + 126.9731249, + 37.5240645 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/291718868", + "properties": { + "@id": "way/291718868", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9756589, + 37.5325456 + ], + [ + 126.975813, + 37.5327276 + ], + [ + 126.9760551, + 37.5331878 + ], + [ + 126.9762985, + 37.5337571 + ], + [ + 126.9763334, + 37.5340062 + ], + [ + 126.9761189, + 37.5343208 + ], + [ + 126.9760701, + 37.534559 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/306203237", + "properties": { + "@id": "way/306203237", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9787924, + 37.5209835 + ], + [ + 126.9793325, + 37.5220927 + ], + [ + 126.9789125, + 37.5222032 + ], + [ + 126.9785422, + 37.5224722 + ], + [ + 126.9785584, + 37.5227919 + ], + [ + 126.978757, + 37.5231044 + ], + [ + 126.9791289, + 37.5232328 + ], + [ + 126.9796518, + 37.5232462 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/306203238", + "properties": { + "@id": "way/306203238", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9796518, + 37.5232462 + ], + [ + 126.9796605, + 37.5233854 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/307680313", + "properties": { + "@id": "way/307680313", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9785422, + 37.5224722 + ], + [ + 126.9783115, + 37.522605 + ], + [ + 126.9779703, + 37.522593 + ], + [ + 126.9779632, + 37.5226765 + ], + [ + 126.9779507, + 37.5227611 + ], + [ + 126.9779169, + 37.522856 + ], + [ + 126.9777696, + 37.5229852 + ], + [ + 126.9775257, + 37.5232787 + ], + [ + 126.9776113, + 37.5236128 + ], + [ + 126.977757, + 37.5239472 + ], + [ + 126.9778337, + 37.5242948 + ], + [ + 126.9779672, + 37.5246758 + ], + [ + 126.9780578, + 37.5248589 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/307680314", + "properties": { + "@id": "way/307680314", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9776013, + 37.5248524 + ], + [ + 126.9780578, + 37.5248589 + ], + [ + 126.9785777, + 37.524783 + ], + [ + 126.9791853, + 37.5246424 + ], + [ + 126.9793148, + 37.5245183 + ], + [ + 126.9794306, + 37.5243 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/347895541", + "properties": { + "@id": "way/347895541", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9727332, + 37.5237686 + ], + [ + 126.9722336, + 37.5240852 + ], + [ + 126.9704043, + 37.5249753 + ], + [ + 126.9702002, + 37.5252178 + ], + [ + 126.9700956, + 37.525327 + ], + [ + 126.9702129, + 37.5254693 + ], + [ + 126.9703602, + 37.5256474 + ], + [ + 126.9704871, + 37.525947 + ], + [ + 126.9703782, + 37.526093 + ], + [ + 126.9698836, + 37.5263691 + ], + [ + 126.9695145, + 37.5263996 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/347895589", + "properties": { + "@id": "way/347895589", + "highway": "residential", + "name": "한강대로52길 (Hangang-daero 52-gil)", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.97111, + 37.53257 + ], + [ + 126.9721044, + 37.5320078 + ], + [ + 126.9725443, + 37.5317618 + ], + [ + 126.9733185, + 37.5312841 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/347895770", + "properties": { + "@id": "way/347895770", + "highway": "residential", + "name": "한강대로54길 (Hangang-daero 54-gil)", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9734955, + 37.5323787 + ], + [ + 126.9731539, + 37.5324506 + ], + [ + 126.9726141, + 37.5325642 + ], + [ + 126.9721187, + 37.5326842 + ], + [ + 126.9715014, + 37.5329762 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982501", + "properties": { + "@id": "way/363982501", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9739667, + 37.5279182 + ], + [ + 126.9737761, + 37.5271869 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982502", + "properties": { + "@id": "way/363982502", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9742229, + 37.5294918 + ], + [ + 126.9742023, + 37.5286833 + ], + [ + 126.9751296, + 37.5286946 + ], + [ + 126.9751449, + 37.5293413 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982508", + "properties": { + "@id": "way/363982508", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9734752, + 37.5272186 + ], + [ + 126.9732821, + 37.5265895 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982513", + "properties": { + "@id": "way/363982513", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9728514, + 37.5261008 + ], + [ + 126.9727111, + 37.5259835 + ], + [ + 126.9733477, + 37.5250968 + ], + [ + 126.9733174, + 37.5248525 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982514", + "properties": { + "@id": "way/363982514", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9733477, + 37.5250968 + ], + [ + 126.9735345, + 37.5251519 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982517", + "properties": { + "@id": "way/363982517", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9773413, + 37.5266194 + ], + [ + 126.9768713, + 37.5252941 + ], + [ + 126.9767381, + 37.5249187 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982518", + "properties": { + "@id": "way/363982518", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9768713, + 37.5252941 + ], + [ + 126.9757933, + 37.5255094 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982522", + "properties": { + "@id": "way/363982522", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9745098, + 37.5246169 + ], + [ + 126.9743605, + 37.5241625 + ], + [ + 126.973831, + 37.5237985 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982523", + "properties": { + "@id": "way/363982523", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9732776, + 37.5242548 + ], + [ + 126.9733611, + 37.524186 + ], + [ + 126.973831, + 37.5237985 + ], + [ + 126.9741509, + 37.5235154 + ], + [ + 126.9742067, + 37.5234661 + ], + [ + 126.9744429, + 37.5232572 + ], + [ + 126.97469, + 37.5231172 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982524", + "properties": { + "@id": "way/363982524", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9742067, + 37.5234661 + ], + [ + 126.9747724, + 37.5239198 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982525", + "properties": { + "@id": "way/363982525", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9733611, + 37.524186 + ], + [ + 126.9733014, + 37.5240131 + ], + [ + 126.9739545, + 37.5234158 + ], + [ + 126.9741509, + 37.5235154 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982529", + "properties": { + "@id": "way/363982529", + "access": "destination", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9767486, + 37.5292938 + ], + [ + 126.97641, + 37.5287461 + ], + [ + 126.9762133, + 37.5285741 + ], + [ + 126.9760711, + 37.5280813 + ], + [ + 126.9762333, + 37.5279849 + ], + [ + 126.9763139, + 37.5278992 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982535", + "properties": { + "@id": "way/363982535", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9802421, + 37.5306555 + ], + [ + 126.9798347, + 37.5306646 + ], + [ + 126.9789696, + 37.530684 + ], + [ + 126.9786264, + 37.5306356 + ], + [ + 126.9785682, + 37.5306274 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982536", + "properties": { + "@id": "way/363982536", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9798347, + 37.5306646 + ], + [ + 126.9798792, + 37.5312215 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982537", + "properties": { + "@id": "way/363982537", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9801841, + 37.5294468 + ], + [ + 126.9796196, + 37.5294692 + ], + [ + 126.9791301, + 37.5294887 + ], + [ + 126.9791301, + 37.5299909 + ], + [ + 126.9785682, + 37.530104 + ], + [ + 126.9782204, + 37.5301182 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982542", + "properties": { + "@id": "way/363982542", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9794573, + 37.5317376 + ], + [ + 126.9794292, + 37.5318735 + ], + [ + 126.979381, + 37.5321068 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982543", + "properties": { + "@id": "way/363982543", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9794292, + 37.5318735 + ], + [ + 126.9789626, + 37.5318431 + ], + [ + 126.9790014, + 37.5316943 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982544", + "properties": { + "@id": "way/363982544", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9786264, + 37.5306356 + ], + [ + 126.9786246, + 37.5309965 + ], + [ + 126.9786622, + 37.5312135 + ], + [ + 126.9788607, + 37.5312858 + ], + [ + 126.9791235, + 37.5312602 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982548", + "properties": { + "@id": "way/363982548", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9771894, + 37.5303967 + ], + [ + 126.9750591, + 37.5304022 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982549", + "properties": { + "@id": "way/363982549", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9751471, + 37.5314056 + ], + [ + 126.9760823, + 37.5312115 + ], + [ + 126.9765622, + 37.5311794 + ], + [ + 126.9770503, + 37.5312138 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982550", + "properties": { + "@id": "way/363982550", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9751118, + 37.5312203 + ], + [ + 126.9753118, + 37.5309757 + ], + [ + 126.9753523, + 37.5306058 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982552", + "properties": { + "@id": "way/363982552", + "highway": "footway" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9796196, + 37.5294692 + ], + [ + 126.979571, + 37.5286898 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982558", + "properties": { + "@id": "way/363982558", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9709961, + 37.5301292 + ], + [ + 126.9713413, + 37.5304982 + ], + [ + 126.9716321, + 37.5308136 + ], + [ + 126.9718768, + 37.5311384 + ], + [ + 126.9721767, + 37.5314723 + ], + [ + 126.9725443, + 37.5317618 + ], + [ + 126.9731539, + 37.5324506 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982559", + "properties": { + "@id": "way/363982559", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9733185, + 37.5312841 + ], + [ + 126.9734955, + 37.5323787 + ], + [ + 126.97363, + 37.5335631 + ], + [ + 126.9738495, + 37.5350167 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000333", + "properties": { + "@id": "way/364000333", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9808048, + 37.5347703 + ], + [ + 126.9806298, + 37.5338926 + ], + [ + 126.9805914, + 37.5338521 + ], + [ + 126.9806127, + 37.533798 + ], + [ + 126.9805744, + 37.5336832 + ], + [ + 126.9804637, + 37.5331599 + ], + [ + 126.9803537, + 37.5329774 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000334", + "properties": { + "@id": "way/364000334", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9805355, + 37.5347593 + ], + [ + 126.9804761, + 37.5343885 + ], + [ + 126.9804615, + 37.5342807 + ], + [ + 126.9804382, + 37.5340884 + ], + [ + 126.9803743, + 37.5340479 + ], + [ + 126.9804126, + 37.5339871 + ], + [ + 126.980353, + 37.5339432 + ], + [ + 126.9803956, + 37.5338858 + ], + [ + 126.9803871, + 37.5338453 + ], + [ + 126.9803786, + 37.5338014 + ], + [ + 126.9802849, + 37.5331937 + ], + [ + 126.9803537, + 37.5329774 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000355", + "properties": { + "@id": "way/364000355", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.975055, + 37.5302671 + ], + [ + 126.9729472, + 37.5302875 + ], + [ + 126.9727794, + 37.530093 + ], + [ + 126.9734119, + 37.5299344 + ], + [ + 126.9734216, + 37.5296911 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000358", + "properties": { + "@id": "way/364000358", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9776013, + 37.5251563 + ], + [ + 126.9779163, + 37.5251495 + ], + [ + 126.9815865, + 37.5249469 + ], + [ + 126.9818164, + 37.5247443 + ], + [ + 126.982685, + 37.5247241 + ], + [ + 126.9829149, + 37.5245687 + ], + [ + 126.9828809, + 37.5238663 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000370", + "properties": { + "@id": "way/364000370", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9801677, + 37.5291006 + ], + [ + 126.9811437, + 37.52908 + ], + [ + 126.981825, + 37.5292353 + ], + [ + 126.982685, + 37.5294987 + ], + [ + 126.9834231, + 37.5297928 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000379", + "properties": { + "@id": "way/364000379", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9811328, + 37.5308649 + ], + [ + 126.9815781, + 37.5308854 + ], + [ + 126.9818821, + 37.5306687 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000380", + "properties": { + "@id": "way/364000380", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9888189, + 37.5279017 + ], + [ + 126.9878315, + 37.527743 + ], + [ + 126.9870636, + 37.5276611 + ], + [ + 126.9865485, + 37.5276727 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000381", + "properties": { + "@id": "way/364000381", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9851727, + 37.5297288 + ], + [ + 126.9851985, + 37.5292477 + ], + [ + 126.9850191, + 37.5288613 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000382", + "properties": { + "@id": "way/364000382", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9844241, + 37.5265505 + ], + [ + 126.9849146, + 37.5269855 + ], + [ + 126.9849461, + 37.5271759 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000383", + "properties": { + "@id": "way/364000383", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9849146, + 37.5269855 + ], + [ + 126.9851275, + 37.5269139 + ], + [ + 126.9851146, + 37.5268422 + ], + [ + 126.9854308, + 37.5267501 + ], + [ + 126.9854825, + 37.5268729 + ], + [ + 126.9851598, + 37.5269753 + ], + [ + 126.9851275, + 37.5269139 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000384", + "properties": { + "@id": "way/364000384", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9837396, + 37.5270868 + ], + [ + 126.9836755, + 37.5262792 + ], + [ + 126.9834635, + 37.526259 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000385", + "properties": { + "@id": "way/364000385", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9834668, + 37.5262988 + ], + [ + 126.9832237, + 37.5263662 + ], + [ + 126.9832409, + 37.5266174 + ], + [ + 126.9832689, + 37.5270265 + ], + [ + 126.9835079, + 37.5270722 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000386", + "properties": { + "@id": "way/364000386", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9832689, + 37.5270265 + ], + [ + 126.9829785, + 37.5269292 + ], + [ + 126.9829656, + 37.5266324 + ], + [ + 126.9832409, + 37.5266174 + ], + [ + 126.9834933, + 37.526612 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000393", + "properties": { + "@id": "way/364000393", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9878154, + 37.5269587 + ], + [ + 126.9878832, + 37.5267706 + ], + [ + 126.9879348, + 37.5257879 + ], + [ + 126.9880899, + 37.5258125 + ], + [ + 126.9882575, + 37.5258391 + ], + [ + 126.9882074, + 37.5265508 + ], + [ + 126.9881973, + 37.5266934 + ], + [ + 126.9881865, + 37.5268473 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000394", + "properties": { + "@id": "way/364000394", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9880899, + 37.5258125 + ], + [ + 126.9880316, + 37.5268218 + ], + [ + 126.9881865, + 37.5268473 + ], + [ + 126.9894643, + 37.5268985 + ], + [ + 126.9896837, + 37.5267808 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000402", + "properties": { + "@id": "way/364000402", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.984073, + 37.5260544 + ], + [ + 126.9841029, + 37.5257589 + ], + [ + 126.9838071, + 37.5253093 + ], + [ + 126.9836223, + 37.5253631 + ], + [ + 126.9838564, + 37.5257394 + ], + [ + 126.9841029, + 37.5257589 + ], + [ + 126.9845219, + 37.5257932 + ], + [ + 126.9846085, + 37.5260924 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000403", + "properties": { + "@id": "way/364000403", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9838071, + 37.5253093 + ], + [ + 126.9838195, + 37.5249477 + ], + [ + 126.9836223, + 37.5249526 + ], + [ + 126.9835607, + 37.5252702 + ], + [ + 126.9836223, + 37.5253631 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/examples/jsts.html b/examples/jsts.html new file mode 100644 index 0000000000..5b3b804877 --- /dev/null +++ b/examples/jsts.html @@ -0,0 +1,19 @@ +--- +template: example.html +title: JSTS Example +shortdesc: Example on how to use JSTS with OpenLayers 3. +docs: > + Example showing the integration of JSTS + with OpenLayers 3. +tags: "vector, jsts, buffer" +resources: + - https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.16.0/javascript.util.min.js + - https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.16.0/jsts.min.js + + +--- +
+
+
+
+
diff --git a/examples/jsts.js b/examples/jsts.js new file mode 100644 index 0000000000..8d0c18ced0 --- /dev/null +++ b/examples/jsts.js @@ -0,0 +1,53 @@ +// NOCOMPILE +// this example uses JSTS for which we don't have an externs file. +goog.require('ol.Feature'); +goog.require('ol.Map'); +goog.require('ol.View'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.proj'); +goog.require('ol.source.MapQuest'); +goog.require('ol.source.Vector'); + + +var source = new ol.source.Vector(); +$.ajax('data/geojson/roads-seoul.geojson').then(function(response) { + var format = new ol.format.GeoJSON(); + var features = format.readFeatures(response, + {featureProjection: 'EPSG:3857'}); + + var parser = new jsts.io.olParser(); + + for (var i = 0; i < features.length; i++) { + var feature = features[i]; + // convert the OpenLayers geometry to a JSTS geometry + var jstsGeom = parser.read(feature.getGeometry()); + + // create a buffer of 40 meters around each line + var buffered = jstsGeom.buffer(40); + + // convert back from JSTS and replace the geometry on the feature + feature.setGeometry(parser.write(buffered)); + } + + source.addFeatures(features); +}); +var vectorLayer = new ol.layer.Vector({ + source: source +}); + +var rasterLayer = new ol.layer.Tile({ + source: new ol.source.MapQuest({ + layer: 'osm' + }) +}); + +var map = new ol.Map({ + layers: [rasterLayer, vectorLayer], + target: document.getElementById('map'), + view: new ol.View({ + center: ol.proj.fromLonLat([126.979293, 37.528787]), + zoom: 15 + }) +}); diff --git a/examples/turf.html b/examples/turf.html new file mode 100644 index 0000000000..9079368482 --- /dev/null +++ b/examples/turf.html @@ -0,0 +1,19 @@ +--- +template: example.html +title: turf.js Example +shortdesc: Example on how to use turf.js with OpenLayers 3. +docs: > + Example showing the integration of turf.js + with OpenLayers 3. The turf.js function along is used to + display a marker every 200 meters along a street. +tags: "vector, turfjs, along, distance" +resources: + - https://api.tiles.mapbox.com/mapbox.js/plugins/turf/v2.0.0/turf.min.js + + +--- +
+
+
+
+
diff --git a/examples/turf.js b/examples/turf.js new file mode 100644 index 0000000000..78934e843c --- /dev/null +++ b/examples/turf.js @@ -0,0 +1,57 @@ +// NOCOMPILE +// this example uses turf.js for which we don't have an externs file. +goog.require('ol.Feature'); +goog.require('ol.Map'); +goog.require('ol.View'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.proj'); +goog.require('ol.source.MapQuest'); +goog.require('ol.source.Vector'); + + +var source = new ol.source.Vector(); +$.ajax('data/geojson/roads-seoul.geojson').then(function(response) { + var format = new ol.format.GeoJSON(); + var features = format.readFeatures(response); + var street = features[0]; + + // convert to a turf.js feature + var turfLine = format.writeFeatureObject(street); + + // show a marker every 200 meters + var distance = 0.2; + + // get the line length in kilometers + var length = turf.lineDistance(turfLine, 'kilometers'); + for (var i = 1; i <= length / distance; i++) { + var turfPoint = turf.along(turfLine, i * distance, 'kilometers'); + + // convert the generated point to a OpenLayers feature + var marker = format.readFeature(turfPoint); + marker.getGeometry().transform('EPSG:4326', 'EPSG:3857'); + source.addFeature(marker); + } + + street.getGeometry().transform('EPSG:4326', 'EPSG:3857'); + source.addFeature(street); +}); +var vectorLayer = new ol.layer.Vector({ + source: source +}); + +var rasterLayer = new ol.layer.Tile({ + source: new ol.source.MapQuest({ + layer: 'osm' + }) +}); + +var map = new ol.Map({ + layers: [rasterLayer, vectorLayer], + target: document.getElementById('map'), + view: new ol.View({ + center: ol.proj.fromLonLat([126.980366, 37.526540]), + zoom: 15 + }) +});