이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 v.net.timetablegrass 명령입니다.
프로그램:
이름
v.net.시간표 - 시간표를 이용하여 최단 경로를 찾습니다.
키워드
벡터, 네트워크, 최단 경로
개요
v.net.시간표
v.net.시간표 --도움
v.net.시간표 입력=name [층=현] 출력=name [arc_layer=현]
[노드 레이어=현] [arc_column=현] [arc_backward_column=현]
[node_column=현] [walk_layer=현] 경로_ID=name 정지 시간=name 그만하다=name
도보_길이=name [--덮어 쓰기] [--도움] [--말 수가 많은] [--조용한] [--ui]
플래그 :
--덮어쓰기
출력 파일이 기존 파일을 덮어쓰도록 허용
--도움
사용 요약 인쇄
--말 수가 많은
자세한 모듈 출력
--조용한
조용한 모듈 출력
--UI
강제 실행 GUI 대화 상자
매개 변수 :
입력=name [필수의]
입력 벡터 맵의 이름
또는 직접 OGR 액세스를 위한 데이터 소스
층=현
레이어 번호 또는 이름
벡터 피처는 다른 레이어에 카테고리 값을 가질 수 있습니다. 이 숫자가 결정합니다
사용할 레이어. 직접 OGR 액세스와 함께 사용할 때 이것은 레이어 이름입니다.
태만: 1
출력=name [필수의]
출력 벡터 맵의 이름
arc_layer=현
호 레이어
벡터 피처는 다른 레이어에 카테고리 값을 가질 수 있습니다. 이 숫자가 결정합니다
사용할 레이어. 직접 OGR 액세스와 함께 사용할 때 이것은 레이어 이름입니다.
태만: 1
노드 레이어=현
노드 레이어
벡터 피처는 다른 레이어에 카테고리 값을 가질 수 있습니다. 이 숫자가 결정합니다
사용할 레이어. 직접 OGR 액세스와 함께 사용할 때 이것은 레이어 이름입니다.
태만: 2
arc_column=현
호 정방향/양방향 비용 열(숫자)
arc_backward_column=현
호 역방향 비용 열(숫자)
node_column=현
노드 비용 열(숫자)
walk_layer=현
도보 연결이 있는 레이어 번호 또는 이름 또는 -1
단일 벡터 맵을 여러 데이터베이스 테이블에 연결할 수 있습니다. 이 번호
사용할 테이블을 결정합니다. 직접 OGR 액세스와 함께 사용할 때 이것은 레이어입니다.
이름입니다.
태만: -1
경로_ID=name [필수의]
경로 ID가 있는 열 이름
태만: 경로_ID
정지 시간=name [필수의]
중지 타임스탬프가 있는 열 이름
태만: 정지 시간
그만하다=name [필수의]
정류장 ID가 있는 열 이름
태만: 그만하다
도보_길이=name [필수의]
도보 길이가 포함된 열 이름
태만: 길이
기술
v.net.시간표 타임테이블을 사용하여 두 지점 사이의 최단 경로를 찾습니다.
v.net.시간표 표준 입력에서 한 줄에 하나의 쿼리 입력을 읽고 출력을 씁니다.
표준 출력뿐만 아니라 출력 지도와 레이어 1에 연결된 테이블 및
2. 각 입력 줄은 다음 형식 중 하나를 따라야 합니다.
PATH_ID FROM_X FROM_Y TO_X TO_Y START_TIME MIN_CHANGE MAX_CHANGES WALK_CHANGE
PATH_ID FROM_STOP TO_STOP START_TIME MIN_CHANGE MAX_CHANGES WALK_CHANGE
여기서 PATH_ID는 출력 맵에 사용되는 쿼리의 식별자입니다.
쿼리를 구별합니다. 검색은 START_TIME에 시작됩니다. MIN_CHANGE는 최소값을 제공합니다.
한 경로에서 다른 경로로 변경하는 데 걸리는 시간(포함)입니다. MAX_CHANGES는 다음을 나타냅니다.
허용되는 최대 변경 수 또는 무한대인 경우 -1입니다. WALK_CHANGE는 1 또는 0입니다.
한 정류장에서 다른 정류장으로 걷는 것이 변경으로 간주되는지 여부. 마지막으로,
경로는 FROM_STOP에서 TO_STOP까지, 후자의 경우 가장 가까운 정류장에서 찾습니다.
(FROM_X, FROM_Y)는 이전의 (TO_X, TO_Y) 좌표에 가장 가까운 정류장을 좌표로 합니다.
케이스.
각 입력 쿼리에 대해 모듈은 표준에 대한 최단 경로에 대한 설명을 출력합니다.
산출. 예를 들어, 다음 입력에 대해 아래 제공된 표를 사용합니다.
47 130 300 0 1 5 0
다음 출력이 생성됩니다.
루트 15, 130에서 15에 출발하여 250에 22에 도착
250에서 22시에 출발하여 300시에 24까지 걸어가세요.
게다가 모듈은 출력 지도를 작성하고 모든 정보를 저장합니다.
테이블 경로를 재구성하는 데 필요합니다. 정류장/지점에 해당하는 테이블은 다음과 같습니다.
레이어 1에 연결되어 쿼리 후에 다음과 같이 보입니다.
cat|path_id|stop_id|index|arr_time|dep_time
1|47|130|1|0|15
2|47|250|2|22|22
3|47|300|3|24|24
여기서 CAT는 지도에 있는 지점의 카테고리이고, PATH_ID는 경로 식별자입니다.
STOP_ID는 입력 지도에 사용된 정류장의 식별자이고, INDEX는
경로의 정류장(즉, index=1은 방문한 첫 번째 정류장입니다. ...) 및 ARR_TIME
DEP_TIME은 각각 도착시간과 출발시간을 나타낸다. 도착 시간
경로의 첫 번째 정류장은 항상 START_TIME과 동일하며 마지막 정류장의 출발 시간은
항상 도착 시간과 같습니다.
두 번째 레이어에 연결된 테이블은 정류장 사이를 이동하는 하위 경로에 해당합니다. 그만큼
위 쿼리에 대해 다음 테이블이 얻어집니다.
cat|path_id|from_id|to_id|route_id|index|from_time|to_time
1|47|130|250|15|1|15|22
2|47|250|300|-1|2|22|24
여기서 CAT는 FROM_ID에서 TO_ID까지의 정류장 사이의 하위 경로 라인 카테고리이고, ROUTE_ID는
선택한 경로의 식별자 또는 도보인 경우 -1, INDEX 및 PATH_ID는 위와 같습니다.
FROM_TIME 및 TO_TIME은 경로가 이동되는 시간을 나타냅니다.
The 출력 지도에는 사용된 정류장의 위치에 대한 포인트가 포함되어 있습니다. 서브루트를 이용하는 경우
두 정류장 사이에 해당하는 두 지점 사이에 선분이 추가됩니다. 마지막으로,
직선 세그먼트 대신 경로의 실제 경로를 다음과 같이 지정할 수 있습니다. 경로 층.
이 매개변수를 사용하는 경우 입력 맵의 각 줄에는 다음과 같은 식별자가 포함되어야 합니다.
해당 노선을 통과하는 모든 경로의 카테고리 번호입니다. 그런 다음 모듈은 경로를 찾습니다.
두 정거장 사이에 대신 이 경로를 씁니다. 한 정거장에서 걸어서 갈 경우
또 다른 정류장 사이에는 직선이 사용됩니다.
노트
시간표는 주어진 시간표에 연결된 테이블에 저장됩니다. 층 의 입력 지도. 시간표
경로로 구성되며 각 경로는 지정된 도착 시간이 있는 일련의 정류장일 뿐입니다.
타임스. 두 정류장의 순서가 시간만 다른 경우에도 여전히 두 정류장에 해당합니다.
경로. 예를 들어 20분 간격으로 출발하고 따라가는 버스 노선이 있다면
매번 정확히 같은 경로를 사용하는 경우에도 각 경로에 대해 별도의 경로가 필요합니다.
시간. 각 정류장(포인트의 카테고리 번호로 제공)에 대해 테이블을 저장합니다.
경로에 대한 정보에는 해당 지점에 정차하는 모든 경로 목록이 포함되어야 합니다.
정류장(경로 식별자로 제공)과 도착 시간. 즉, 테이블은 반드시
세 개의 열을 포함합니다. stop - 테이블의 키입니다. 경로_ID 그리고 정지 시간 어디에
각 트리플은 정류장에 도착하는 경로와 특정 시간에 해당합니다. 예를 들어,
유효한 테이블은 다음과 같습니다.
고양이|route_id|stop_time
100 | 5 | 0
130 | 5 | 10
150 | 5 | 20
250 | 5 | 30
300 | 5 | 40
260 | 15 | 5
130 | 15 | 15
250 | 15 | 22
150 | 35 | 17
250 | 35 | 27
300 | 35 | 37
100 | 35 | 50
참고 정지 시간 는 정수이므로 모든 단위와 오프셋을 사용하여 지정할 수 있습니다.
도착 시간.
또한 정류장 간 도보 연결은 다음과 연결된 테이블을 통해 제공될 수 있습니다. 걷기 의 계층
전에, 입력 지도. 이 매개변수가 -1이면 정류장 간 도보가 허용되지 않습니다. 그만큼
테이블에는 세 개의 열이 포함되어야 합니다. stop - 테이블의 키, 그만하다 그리고
길이. 테이블에 있는 기록에 따르면 길이
정류장에서 정류장까지 걸어가는 시간 단위 그만하다. 다음은 유효한 테이블입니다.
cat|length|to_stop
250 | 2 | 300
이는 250번 정류장에서 300번 정류장까지 도보로 이동할 수 있다는 의미일 뿐이라는 점에 유의하세요.
다른 방법.
사용 예
식별자 130이 있는 정류장에서 카테고리 300이 있는 정류장까지의 경로를 찾으려면
시간 0, 변경을 위한 5시간 단위, 최대 XNUMX번 변경 및 걷기가 아닌 경우
경로 변경으로 간주되면 다음 명령을 사용합니다.
에코 "47 130 300 0 1 5 0" | v.net.시간표
입력=버스 출력=경로 레이어=5 걷기=6 경로=7
반면에 장소의 좌표를 알고 있다면 다음 명령을 실행하세요.
다음을 사용할 수 있습니다.
에코 "47 10.31 54.31 90.21 28.21 0 1 5 0" | v.net.시간표
입력=버스 출력=경로 레이어=5 걷기=6 경로=7
onworks.net 서비스를 사용하여 온라인으로 v.net.timetablegrass를 사용하세요.