diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c330a7fbf1..22142d245f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -38,7 +38,7 @@ Contributor License Agreement](https://docs.google.com/spreadsheet/viewform?form
## Setting up development environment
You will obviously start by
-[forking](https://github.com/openlayers/ol3/fork_select) the ol3 repository.
+[forking](https://github.com/openlayers/ol3/fork) the ol3 repository.
### Travis CI
diff --git a/config/jsdoc/api/index.md b/config/jsdoc/api/index.md
index e9a2bffff5..0d78a0e8c1 100644
--- a/config/jsdoc/api/index.md
+++ b/config/jsdoc/api/index.md
@@ -35,6 +35,5 @@ Interactions for [vector features](ol.Feature.html)
` HTML element](http://en.wi
})
],
view: new ol.View({
- center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
+ center: ol.proj.fromLonLat([37.41, 8.82]),
zoom: 4
})
});
@@ -125,9 +125,9 @@ The next part of the `Map` object is the `View`. The view allow to specify the c
```js
view: new ol.View({
- center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
+ center: ol.proj.fromLonLat([37.41, 8.82]),
zoom: 4
})
```
-You will notice that the `center` specified is in lat/lon coordinates (EPSG:4326). Since the only layer we use is in Spherical Mercator projection (EPSG:3857), we can reproject them on the fly to be able to zoom the map on the right coordinates.
+You will notice that the `center` specified is in lon/lat coordinates (EPSG:4326). Since the only layer we use is in Spherical Mercator projection (EPSG:3857), we can reproject them on the fly to be able to zoom the map on the right coordinates.
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
+ })
+});
diff --git a/externs/olx.js b/externs/olx.js
index 4e5fcedb2a..041a6633f4 100644
--- a/externs/olx.js
+++ b/externs/olx.js
@@ -4241,7 +4241,7 @@ olx.source.ImageMapGuideOptions.prototype.projection;
/**
* Ratio. `1` means image requests are the size of the map viewport, `2` means
- * twice the width and height of the map viewport, and so on. Must be `1` or
+ * twice the width and height of the map viewport, and so on. Must be `1` or
* higher. Default is `1`.
* @type {number|undefined}
* @api stable
@@ -4524,7 +4524,7 @@ olx.source.ImageVectorOptions.prototype.projection;
/**
* Ratio. 1 means canvases are the size of the map viewport, 2 means twice the
- * width and height of the map viewport, and so on. Must be `1` or higher.
+ * width and height of the map viewport, and so on. Must be `1` or higher.
* Default is `1.5`.
* @type {number|undefined}
* @api
@@ -4708,7 +4708,7 @@ olx.source.ImageWMSOptions.prototype.projection;
/**
* Ratio. `1` means image requests are the size of the map viewport, `2` means
- * twice the width and height of the map viewport, and so on. Must be `1` or
+ * twice the width and height of the map viewport, and so on. Must be `1` or
* higher. Default is `1.5`.
* @type {number|undefined}
* @api stable
@@ -6216,7 +6216,7 @@ olx.style.TextOptions.prototype.textBaseline;
/**
- * Fill style.
+ * Fill style. If none is provided, we'll use a dark fill-style (#333).
* @type {ol.style.Fill|undefined}
* @api
*/
diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js
index 3880e0b6a0..6c7ad87222 100644
--- a/src/ol/style/textstyle.js
+++ b/src/ol/style/textstyle.js
@@ -1,6 +1,9 @@
goog.provide('ol.style.Text');
+goog.require('ol.style.Fill');
+
+
/**
* @classdesc
@@ -54,7 +57,8 @@ ol.style.Text = function(opt_options) {
* @private
* @type {ol.style.Fill}
*/
- this.fill_ = goog.isDef(options.fill) ? options.fill : null;
+ this.fill_ = goog.isDef(options.fill) ? options.fill :
+ new ol.style.Fill({color: ol.style.Text.DEFAULT_FILL_COLOR_});
/**
* @private
@@ -76,6 +80,16 @@ ol.style.Text = function(opt_options) {
};
+/**
+ * The default fill color to use if no fill was set at construction time; a
+ * blackish `#333`.
+ *
+ * @const {string}
+ * @private
+ */
+ol.style.Text.DEFAULT_FILL_COLOR_ = '#333';
+
+
/**
* Get the font name.
* @return {string|undefined} Font.
diff --git a/test/spec/ol/style/textstyle.test.js b/test/spec/ol/style/textstyle.test.js
new file mode 100644
index 0000000000..7e2b2f2b28
--- /dev/null
+++ b/test/spec/ol/style/textstyle.test.js
@@ -0,0 +1,31 @@
+goog.provide('ol.test.style.Text');
+
+
+describe('ol.style.Text', function() {
+
+ describe('#constructor', function() {
+
+ it('uses a default fill style if none passed', function() {
+ var style = new ol.style.Text();
+ expect(style.getFill().getColor()).to.be('#333');
+ });
+
+ it('uses a provided fill style if one passed', function() {
+ var style = new ol.style.Text({
+ fill: new ol.style.Fill({color: '#123456'})
+ });
+ expect(style.getFill().getColor()).to.be('#123456');
+ });
+
+ it('can always be resetted to no color', function() {
+ var style = new ol.style.Text();
+ style.getFill().setColor();
+ expect(style.getFill().getColor()).to.be(undefined);
+ });
+
+ });
+
+});
+
+goog.require('ol.style.Fill');
+goog.require('ol.style.Text');