한 도로에서 좌표 얻기

Sep 19 2020

도로 용 파일 .shp과 .dbf파일을 다운로드 하고 추출하여 데이터베이스에 저장합니다. 내 Google지도에 거리와 같은 이름의 포인트를 표시합니다.

다음과 같은 모습입니다.

나는 도로의 각 지점이 동일하지 않으므로 "osmId"모든 도로에서 모든 좌표를 얻는 방법을 발견했습니다 . 이것은 내가 osmId를 마커에 넣었을 때의 모습입니다 "osmId".

이 데이터를 추출 할 때 필드라는 필드 "name"가 있습니다. 이것은 도로 이름을 의미합니다. 그러나이 이름은 고유하지 않으며 같은 이름을 가진 여러 도로가 있습니다. 다음은 .shp 및 .dbf 파일에서 추출 된 데이터의 예입니다.

{
"geometry" : {
    "coordinates" : [
        [
            20.0343585,
            50.0806794
        ],
        [
            20.0345215,
            50.0807741
        ],
        [
            20.0346159,
            50.0808264
        ]
    ],
    "type" : "LineString"
},
"type" : "Feature",
"properties" : {
    "osm_id" : "2954554",
    "code" : "5122",
    "fclass" : "residential",
    "name" : "Ignacego Mościckiego",
    "ref" : null,
    "oneway" : "B",
    "maxspeed" : 40,
    "layer" : 0,
    "bridge" : "F",
    "tunnel" : "F"
}
}

이 데이터가 데이터의 다른 부분과도 연결되어 있고 함께 고유 한 도로를 만들었다는 것을 알려주는 고유 한 ID 필드는 없습니다. 그렇다면 특정 도로에서 모든 포인트를 얻는 방법은 무엇입니까? 가능할까요? .shp및 .dbf파일 에서 데이터를 추출 합니다.

답변

7 TurePålsson Sep 19 2020 at 13:42

OSM 데이터 (OSM 용어로 "방법") 세그먼트로 분할 될 때마다 임의의 속성 변경 (목축 야크 이름, 표면 폭 적법성, ...). "같은 길"이 의미하는 바를 결정하고, 기하학적으로 연결되는 비트를 조립하고, "같은 길"의 정의에 따라 결과를 잘라 내야합니다.

원본 OSM 데이터 (XML 또는 .osm.pbf 형식)로 작업하는 것이 더 쉬울 수 있습니다. 이는 셰이프 파일로의 변환에서 손실되는 내용과 결합 된 내용에 대한 명시적인 정보를 포함하기 때문입니다.

OSM XML 형식은 다음에 설명되어 있습니다. https://wiki.openstreetmap.org/wiki/OSM_XML. .osm.pbf 형식은 동일한 구조를 가지며 더 효율적으로 인코딩됩니다.