이 섹션을 진행하기 전에 아직 확인하지 않았다면 피드를 빌드할 지원되는 마이크로 모빌리티 시스템을 확인하세요.
다음 섹션에서 각 헤더의 형식은 Required|Optional|Conditionally required: Feed name (System supported)
입니다. 다음 시스템이 지원됩니다.
- 도킹된 시스템
- 도크 없는 시스템
- 도크형 및 도크 미포함 시스템
Google과 성공적으로 통합하려면 피드에서 설명하는 시스템에 필요한 파일만 제공하고 관련 섹션에 포함된 필수 필드를 지정하세요. 조건부 필수 필드의 경우 필드의 설명을 참고하세요. 정보를 추가하고 더 나은 사용자 환경을 제공하는 선택사항 필드를 지정할 수도 있습니다.
마이크로 모빌리티 피드의 필수 헤더
마이크로 모빌리티 피드는 이 도움말에 정의된 도킹 또는 도킹 해제 마이크로 모빌리티 구조화된 데이터를 포함하는 피드입니다.
모든 피드는 항상 JSON 객체의 최상위 수준에서 다음 표에 포함된 필드를 지정해야 합니다. 이러한 필드를 통칭하여 일반 GBFS 헤더라고 합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
last_updated |
타임스탬프 | 필수 | 1970년 1월 1일 00:00:00 UTC 이후의 초 수를 지정하는 POSIX 타임스탬프입니다.
피드의 데이터가 마지막으로 업데이트된 시간으로 설정됩니다. |
ttl |
비음수 정수 | 필수 | 피드를 업데이트할 때까지 남은 시간을 초 단위로 나타내는 음이 아닌 정수입니다.
일정한 비율로 데이터를 업데이트해야 하는 경우 이 값을 |
data |
JSON | 필수 | 개별 피드의 데이터 필드가 포함된 JSON입니다. |
예를 들어 일반 GBFS 헤더를 지정하는 집계된 free_bike_status.json
피드는 다음과 같을 수 있습니다.
{
"ttl": 30,
"last_updated": 1576123774,
"data": {
"bikes": [ ... ] // GBFS free bike status objects.
}
}
필수: system_information.json (도크형 및 도크 비장착 시스템)
필요한 경우 GBFS 사양을 참고하세요.
이 피드는 시스템 운영자에 관한 세부정보를 제공합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
system_id |
ID | 필수 | 차량 공유 시스템의 전역적으로 고유한 식별자입니다. 이 값은 시스템 수명 동안 동일하게 유지되어야 합니다. 차량이 운행되는 각 개별 시스템 또는 지리적 영역에는 자체 system_id가 있어야 합니다(SHOULD). 시스템 ID는 무작위 문자열이 아닌 특정 시스템에 속하는 것으로 인식할 수 있어야 합니다(SHOULD)(예: bcycle_austin 또는 biketown_pdx). |
name |
문자열 | 필수 | 고객에게 표시되는 시스템 이름입니다. |
rental_apps |
객체 | 필수 | 각 필드에 Android 및 iOS용 렌탈 앱 정보가 포함된 JSON 객체입니다. |
rental_apps.android |
객체 | 조건부 필수 |
store_uri 및 discovery_uri 필드에 Android 플랫폼의 대여 앱 다운로드 및 앱 검색 정보가 포함됩니다. 시스템 제공업체에 Android 대여 앱이 있는 경우 이 필드는 필수입니다.
|
rental_apps.android.store_uri |
URI | 필수 | 대여 Android 앱을 다운로드할 수 있는 URI입니다. 일반적으로 Google Play와 같은 앱 스토어의 URI입니다. URI가 Google Play와 같은 앱 스토어를 가리키는 경우 보기 앱이 웹사이트 대신 네이티브 앱 스토어 앱으로 URI를 직접 열 수 있도록 URI가 Android 권장사항을 따르는 것이 좋습니다. |
rental_apps.android.discovery_uri |
URI | 필수 | your_custom_scheme://your/path/here 형식의 URI입니다.
이 URI는 PackageManager.queryIntentActivities() 에서 기기에 대여 Android 앱이 설치되어 있는지 확인하는 데 사용할 수 있습니다.
|
rental_apps.ios |
객체 | 조건부 필수 | store_uri 및 discovery_uri 필드에 iOS 플랫폼의 대여 앱 다운로드 및 앱 검색 정보가 포함됩니다. 시스템 제공업체에 iOS 대여 앱이 있는 경우 이 필드는 필수입니다.
|
rental_apps.ios.store_uri |
URI | 필수 | 대여 iOS 앱을 다운로드할 수 있는 URI입니다. 일반적으로 Apple App Store와 같은 앱 스토어의 URI입니다. URI가 Apple App Store와 같은 앱 스토어를 가리키는 경우 보기 앱이 웹사이트 대신 네이티브 앱 스토어 앱으로 URI를 직접 열 수 있도록 URI가 iOS 권장사항을 따르는 것이 좋습니다. |
rental_apps.ios.discovery_uri |
URI | 필수 | your_custom_scheme:// 형식의 URI입니다. 이 URI는 UIApplication canOpenURL: 에서 기기에 대여 iOS 앱이 설치되어 있는지 확인하는 데 사용할 수 있습니다.
|
필수: free_bike_status.json (도크리스 시스템)
필요한 경우 GBFS 사양을 참고하세요.
이 피드는 사용 가능한 독립형 차량의 위치와 속성을 정의합니다. 개인 정보 보호를 위해 활성 대여에 포함된 차량은 이 피드에 표시되지 않아야 합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
bikes |
배열 | 필수 | 현재 사용 가능하고 중지된 자전거의 배열입니다. 각 자전거는 객체입니다. |
bikes[].bike_id |
ID | 필수 | 자전거의 식별자입니다.
개인 정보를 보호하기 위해 이동 후에는 ID를 임의 문자열로 변경할 수 있습니다. |
bikes[].lat |
위도 | 필수 | 자전거의 WGS 84 위도(십진수 도 형식)입니다. |
bikes[].lon |
경도 | 필수 | 자전거의 WGS 84 경도(십진수 도 형식)입니다. |
bikes[].is_reserved |
불리언 | 필수 | 자전거가 현재 예약되어 있는지 여부입니다. 다음과 같습니다.
|
bikes[].is_disabled |
불리언 | 필수 | 자전거가 현재 사용 중지되었는지 또는 고장났는지 여부입니다. 다음과 같습니다.
|
bikes[].rental_uris |
객체 | 필수 | 각 필드에 Android, iOS, 웹의 대여 URI가 포함된 JSON 객체입니다. |
bikes[].rental_uris.android |
URI | 조건부 필수 |
Android 딥 링크를 지원하기 위해 android.intent.action.VIEW Android 인텐트가 포함된 Android 앱에 전달할 수 있는 URI입니다. 제공된 rental_uris 은
Android 앱 링크여야 합니다. 그래야 사용자가 제공자 애플리케이션을 설치하지 않은 경우 보기 앱에서 사용자를 앱 스토어로 리디렉션하는 것을 수동으로 관리하지 않아도 됩니다.
이 URI는 두 대 이상의 자전거에 관한 정보가 포함된 일반적인 대여 페이지가 아닌 개별 자전거에 특화된 딥 링크여야 합니다. 딥 링크는 요청 메시지, 전면 페이지, 로그인 없이 곧바로 사용자를 자전거에 연결해야 합니다. 사용자가 애플리케이션을 연 적이 없더라도 자전거를 볼 수 있도록 합니다. 파트너가 각 자전거를 식별할 다른 수단이 있는 경우 URI에 자전거의 파트너에게 Android 대여 앱이 있는 경우 이 필드는 필수입니다. Android App Links의 예:
|
bikes[].rental_uris.ios |
URI | 조건부 필수 | iOS에서 자전거 대여 앱을 실행하는 데 사용할 수 있는 URI입니다.
자세한 내용은
iOS 맞춤 URL 스키마에 관한 Apple 도움말을 참고하세요.
제공된 rental_uris 는
iOS 범용 링크여야 합니다. 그래야 사용자가 제공업체 애플리케이션을 설치하지 않은 경우 보기 앱에서 사용자를 앱 스토어로 리디렉션하는 것을 수동으로 관리하지 않아도 됩니다.
이 URI는 두 대 이상의 자전거에 관한 정보가 포함된 일반적인 대여 페이지가 아닌 개별 자전거에 특화된 딥 링크여야 합니다. 딥 링크는 요청 메시지, 전면 페이지, 로그인 없이 곧바로 사용자를 자전거에 연결해야 합니다. 사용자가 애플리케이션을 연 적이 없더라도 자전거를 볼 수 있도록 합니다. 파트너가 해당 자전거를 식별할 다른 수단이 있는 경우 URI에 자전거의 bike_id를 포함하지 않아도 됩니다. 예를 들어 대여 앱은 URI 내에서 다른 식별자를 사용하여 자전거를 고유하게 식별할 수 있습니다. 파트너에게 iOS 대여 앱이 있는 경우 이 필드는 필수입니다. iOS 범용 링크 예:
|
bikes[].rental_uris.web |
URL | 선택사항 | 웹브라우저에서 이 차량의 차량 대여에 관한 자세한 정보를 표시하는 데 사용할 수 있는 URL입니다. 이 URL은 두 대 이상의 자전거 정보가 포함된 일반적인 대여 페이지가 아닌 개별 자전거에 특화된 딥 링크여야 합니다. 딥 링크는 요청 메시지, 전면 페이지, 로그인 없이 곧바로 사용자를 자전거에 연결해야 합니다. 사용자가 애플리케이션을 연 적이 없더라도 자전거를 볼 수 있도록 합니다. URL에 자전거의 이 필드가 설정되지 않은 경우 웹브라우저에서 딥 링크가 지원되지 않는다는 의미입니다. 예시 값:
|
bikes[].vehicle_type_id |
ID | 필수 | vehicle_types.json 섹션에 설명된 차량의 vehicle_type_id 입니다.
|
bikes[].pricing_plan_id |
ID | 필수 | 이 차량 유형이 system_pricing_plans.json 섹션에 설명된 대로 대여될 때 적용되는 요금제의 식별자입니다.
|
bikes[].current_range_meters |
비음수 부동 소수 | 조건부 필수 | 차량에 해당하는 vehicle_type 정의에 모터가 있는 경우 이 필드는 필수입니다.
차량의 현재 충전 또는 연료 수준을 고려할 때 재충전이나 재급유 없이 차량이 이동할 수 있는 가장 먼 거리를 미터 단위로 설정합니다. |
bikes[].last_reported |
타임스탬프 | 선택사항 | 차량이 운영자의 백엔드에 상태를 보고한 마지막 시간으로 설정됩니다. |
다음은 free_bike_status.json
의 예시입니다.
"bikes": [{
"bike_id": "xyz123",
"lat": 12.34,
"lon": 56.78,
"is_reserved": true,
"is_disabled": false,
"rental_uris":{
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.example.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890"
},
"vehicle_type_id": "scooter_electric",
"pricing_plan_id": "sydneyPlan1",
"current_range_meters": 4500,
"last_reported": 1434054678
},
{
"bike_id": "abc123",
"lat": 1.34,
"lon": 146.78,
"is_reserved": false,
"is_disabled": true,
"rental_uris":{
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.example.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890"
},
"vehicle_type_id": "bike_manual",
"pricing_plan_id": "sydneyPlan1",
"last_reported": 1434054241
}
]
필수: vehicle_types.json (도크형 및 도크리스 시스템)
필요한 경우 GBFS 사양을 참고하세요.
이 피드는 free_bike_status.json
섹션에 언급된 개별 차량 유형의 세부정보를 정의합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
vehicle_types |
배열 | 필수 | 객체의 배열입니다. 각 객체는 제공업체 카탈로그의 개별 차량 유형을 정의합니다. 지정된 차량 유형에는 객체가 하나만 있을 수 있습니다. |
vehicle_types[].vehicle_type_id |
ID | 필수 | 특정 차량 유형의 고유 식별자입니다. |
vehicle_types[].form_factor |
열거형 | 필수 | 현재 유효한 값 목록(다음 참고)에서 차량의 일반적인 폼 팩터를 나타내는 열거형입니다.
|
vehicle_types[].propulsion_type |
열거형 | 필수 | 현재 유효한 값 목록(다음)에서 차량의 기본 추진 유형을 나타내는 열거형입니다.
|
vehicle_types[].max_range_meters |
비음수 부동 소수 | 조건부 필수 | propulsion_type 이 human 로 설정되지 않은 경우 차량에 모터가 있으므로 이 필드가 필요합니다.
차량이 완전히 연료를 채웠거나 완전히 충전되었을 때 재충전이나 재급유 없이 이동할 수 있는 가장 먼 거리를 미터 단위로 설정합니다. |
다음은 vehicle_types.json
의 예시입니다.
"vehicle_types": [
{
"vehicle_type_id": "bike_manual",
"form_factor": "bicycle",
"propulsion_type": "human"
},
{
"vehicle_type_id": "scooter_electric",
"form_factor": "scooter",
"propulsion_type": "electric",
"max_range_meters": 10000
}
]
필수: system_pricing_plans.json (도크리스 시스템)
필요한 경우 GBFS 사양을 참고하세요.
이 피드는 독립형 차량의 요금제를 정의합니다. 제공업체는 독립형 차량의 가격 정보를 표시해야 합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
plans |
배열 | 필수 | 각 객체가 특정 요금제를 정의하는 객체의 배열입니다. |
plans[].plan_id |
ID | 필수 | 공급자가 제공하는 특정 요금제의 고유 식별자를 나타내는 문자열입니다. |
plans[].url |
URL | 선택사항 | 최종 사용자를 가격 계획에 관한 자세한 정보로 안내하는 URL입니다. |
plans[].currency |
문자열 | 필수 | 요금제의 ISO 4217 표준입니다. |
plans[].price |
비음수 부동 소수 | 필수 |
요금제는 등급이 지정되지 않은 요금제 또는 등급이 지정된 요금제로 정의해야 합니다.
|
plans[].per_km_pricing |
배열 | 조건부 필수 |
가격이 이동 거리에 따라 달라지고 이동 거리가 킬로미터로 표시되는 경우 이 필드가 필수입니다. 각 객체가 지정된 거리로 나눈 세그먼트를 정의하는 객체 배열입니다. 각 세그먼트의 지정된 요금제의 총 가격을 확인하려면 지정된 요금제의 이 필드가 설정되지 않으면 거리에 따른 변동 가격이 없으므로 총 가격에 포함되지 않습니다. |
plans[].per_km_pricing[].start |
비음수 정수 | 필수 |
구간 요금이 청구되기 시작하는 거리(km)입니다.
이 필드는 세그먼트 범위의 시작인 포함 값으로 설정됩니다. 따라서 킬로미터 수가 경과하면 rate 가 한 번 청구됩니다.
|
plans[].per_km_pricing[].rate |
부동 소수점 수 | 필수 | 세그먼트의 start (포함)부터 시작되는 각 interval 에 청구되는 요금입니다. 이 필드가 음수로 설정되면 여행자가 할인을 받습니다.
|
plans[].per_km_pricing[].interval |
비음수 정수 | 필수 |
세그먼트의
세그먼트의 이 필드가 |
plans[].per_km_pricing[].end |
비음수 정수 | 선택사항 |
세그먼트의 이 필드가 설정되지 않았거나 비어 있으면 세그먼트의 |
plans[].per_min_pricing |
배열 | 조건부 필수 |
가격이 경과된 시간(분 단위로 표시)에 따라 달라지는 경우 이 필드가 필수입니다. 각 객체가 지정된 시간으로 나눈 세그먼트를 정의하는 객체 배열입니다. 각 세그먼트의 지정된 요금제의 총 가격을 확인하려면 지정된 요금제의 이 필드가 설정되지 않으면 시간에 따른 변동 가격이 없으므로 총가격에 포함되지 않습니다. |
plans[].per_min_pricing[].start |
부동 소수점 수 | 필수 |
세그먼트 요금이 청구되기 시작하는 시간(분)입니다.
이 필드는 세그먼트 범위의 시작인 포함 값으로 설정됩니다. 따라서 설정된 분이 경과하면 rate 에 한 번 요금이 청구됩니다.
|
plans[].per_min_pricing[].rate |
부동 소수점 수 | 필수 | 각 interval 에 청구되는 요율입니다. 비율은 세그먼트의 start (포함)에서 시작됩니다. 이 필드가 음수로 설정되면 여행자가 할인을 받습니다.
|
plans[].per_min_pricing[].interval |
비음수 정수 | 필수 |
세그먼트의
세그먼트의 이 필드가 |
plans[].per_min_pricing[].end |
비음수 정수 | 선택사항 |
세그먼트의 이 필드가 설정되지 않았거나 비어 있으면 세그먼트의 |
system_pricing_plans.json 예시
이 섹션에서는 유용한 system_pricing_plans.json
코드 샘플을 제공합니다. 각 예의 관련 세부정보와 결과도 제공됩니다.
system_pricing_plans.json의 예 1
다음 요금제 코드 샘플은 다음 간격의 이동 시간을 기준으로 요금을 보여줍니다.
- [0,1): 2달러
- 이동 시간이 1분 미만이면 사용자는 2달러를 지불합니다.
- 예: 59초 여행
- [1,2): 3달러
- 여정이 1분 이상 2분 미만인 경우 사용자는 2달러 + 1달러 = 3달러를 지불합니다.
- 예: 1분 여정, 1분 45초 여정
- x가 2 이상인 경우의 x분:
$3 + (($2 + $1) * (x - 2 + 1))
USD
- 이동 시간이 2분 이상인 경우 사용자는 2분 미만의 이동 부분에 대해 3달러를 지불하고 2분 이후의 매분에 대해 (
per_min_pricing
목록의 첫 번째 항목에서 계속) 1달러 + (per_min_pricing
목록의 두 번째 항목) 2달러를 지불합니다. - 예:
- 2분 이동 비용은 3달러 + (2달러 + 1달러) = 6달러입니다.
- 2분 30초 이동 비용은 3달러 + (2달러 + 1달러) = 6달러입니다.
- 3분 이동 비용: 3달러 + (($2 + $1) * 2) = 9달러
- 10분 이동 비용: 3달러 + (($2 + $1) * 9) = 30달러
- 이동 시간이 2분 이상인 경우 사용자는 2분 미만의 이동 부분에 대해 3달러를 지불하고 2분 이후의 매분에 대해 (
{
"plans": {
"plan_id": "plan1",
"currency": "USD",
"price": 2,
"per_min_pricing": [
{
"interval": 1,
"rate": 1,
"start": 1
},
{
"interval": 1,
"rate": 2,
"start": 2
}
],
}
}
system_pricing_plans.json의 예 2
이 예에서는 분당 및 킬로미터당 요금이 청구되는 가격 요금제의 코드 샘플을 보여줍니다.
- 구체적으로 최종 사용자에게는 km당 0.25캐나다달러와 분당 0.50캐나다달러가 청구됩니다.
- 이 두 비율은 동시에 발생하며 서로 종속되지 않습니다.
- 따라서 10분 동안 지속되는 1km 이동의 비용은 9캐나다달러입니다. 비용 분석은 다음과 같습니다.
- 기본 가격 3달러
- $0.25 * 2, 이동 시작 시 한 번, 1km 지점에서 한 번 청구됩니다.
- $0.5 * 11, 매분 시작 시 1회 청구됩니다. 요금은 0초부터 시작되며 마지막 간격은 10분으로 청구됩니다.
{
"plans": {
"plan_id": "plan2",
"currency": "CAD",
"price": 3,
"per_km_pricing": [{
"start": 0,
"rate": 0.25,
"interval": 1
}],
"per_min_pricing": [{
"start": 0,
"rate": 0.50,
"interval": 1
}]
}
}
조건부 필수: geofencing_zones.json (도크형 및 도크 미장착 시스템)
필요한 경우 GBFS 사양을 참고하세요.
이 피드는 독립형 차량의 지오펜싱 데이터를 정의합니다. 지오펜싱 데이터에는 차량이 탑승을 시작하고 탑승을 종료할 수 있는 위치를 지정하는 지리적 경계와 차량이 이동할 수 있는 속도가 포함됩니다. 이 속도는 차량의 최대 속도 또는 차량이 주행하는 도로의 속도 제한 중 더 낮은 속도입니다. 운전자는 현지 법규를 준수해야 합니다.
이 데이터는 사용자가 특정 경로를 검색할 때 여행의 끝이 특정 지오펜스 밖에 있는 경우 마이크로 모빌리티 결과가 필터링되도록 하는 데 사용됩니다. 지오펜스가 제공되지 않으면 Google은 서비스에 경계 제한이 없는 것으로 간주합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
geofencing_zones |
객체 | 필수 |
IETF RFC 7946에 설명된 FeatureCollection 객체는 features 라는 필드가 있는 객체입니다. features 값은 JSON 배열입니다.
JSON 배열의 각 요소는 Feature 객체입니다.
각 지오펜스 영역, 연결된 규칙 및 속성, |
geofencing_zones.type |
문자열 | 필수 |
IETF RFC 7946에 설명된 대로 FeatureCollection 으로 설정합니다. |
geofencing_zones.features |
배열 | 필수 | JSON 배열입니다. JSON 배열의 각 요소는 Feature 객체입니다. |
geofencing_zones.features[].type |
문자열 | 필수 |
IETF RFC 7946에 설명된 대로 Feature 으로 설정합니다. |
geofencing_zones.features[].geometry |
GeoJSON Multipolygon | 필수 | 기타 제한사항 외에도 차량이 시작, 종료, 통과할 수 없는 위치를 설명하는 GeoJSON Multipolygon입니다. 시계 방향으로 점을 배열하면 다각형으로 둘러싸인 영역이 정의되고, 시계 반대 방향으로 점을 배열하면 다각형 외부 영역이 정의됩니다. 자세한 내용은 오른손 법칙을 참고하세요. |
geofencing_zones.features[].properties |
객체 | 필수 | 여행 수당 및 제한을 정의하는 객체입니다. |
geofencing_zones.features[].properties.rules |
배열 | 선택사항 | 객체의 배열이며, 각 객체는 하나의 규칙만 정의합니다. 두 개 이상의 규칙이 중복되거나 충돌하거나 어떤 식으로든 충돌하는 경우 JSON 파일 순서에서 가장 먼저 정의된 규칙이 우선합니다. |
geofencing_zones.features[].properties.rules[].vehicle_type_id |
배열 | 선택사항 | 차량 유형 ID의 배열로, 각 요소는 제한사항이 적용되어야 하는 vehicle_type_id 입니다.
vehicle_type_id 을 지정하지 않으면 제한사항이 모든 차량 유형에 적용됩니다. |
geofencing_zones.features[].properties.rules[].ride_allowed |
불리언 | 필수 | 다음과 같이 독립형 '도킹 해제' 자전거 타기가 해당 구역에서 시작하고 종료될 수 있는지 여부입니다.
|
다음은 geofencing_zones.json
의 예시입니다.
"geofencing_zones":{
"type":"FeatureCollection",
"features":[{
"type":"Feature",
"properties":{
"rules":[{
"vehicle_type_id":"scooter",
"ride_allowed": false
}]
},
"geometry":{
"type":"MultiPolygon",
"coordinates":[[[
[-122.66780376434326, 45.49896266763551],
[-122.66810417175292, 45.49824825558575],
[-122.66830801963805, 45.49632305799116],
[-122.66780376434326, 45.49896266763551]
]]]
}
}]
}
필수: station_information.json (도킹 시스템)
필요한 경우 GBFS 사양을 참고하세요.
이 피드는 공공 자전거 공유 스테이션에 관한 일반 정보를 정의합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
stations |
배열 | 필수 | 각 객체가 하나의 방송국만 정의하는 객체의 배열입니다. |
stations[].station_id |
문자열 | 필수 | 방송국의 식별자입니다. |
stations[].name |
문자열 | 필수 |
역이 위치한 도시의 현지 언어로 된 역의 공개 이름입니다. name 은 역에 있는 표지판에 사용된 내용(사용 가능한 경우)을 준수해야 하며, 교차로 또는 지역 명소를 사용하여 역 위치를 반영해야 합니다.
표지판에 명시적으로 사용되지 않는 한 'Street'에 'St.'와 같은 약어를 사용하지 마세요. name 는 장소 이름의 대문자 사용에 대한 현지 규칙을 따라 대소문자를 혼용해야 하며 모두 대문자로 표시하면 안 됩니다.
|
stations[].lat |
위도 | 필수 | 정류장의 WGS 84 위도입니다(십진수 도 형식). |
stations[].lon |
경도 | 필수 | 정류장의 WGS 84 경도입니다(십진수 도 형식). |
stations[].capacity |
비음수 정수 | 선택사항 | 스테이션에 설치된 도킹 포인트의 총수를 나타내는 음수가 아닌 정수입니다(사용 가능한 도킹 포인트와 사용 불가능한 도킹 포인트 모두 포함). |
stations[].rental_uris |
객체 | 필수 |
각 필드에 Android, iOS, 웹의 대여 URI가 포함된 JSON 객체입니다. 이러한 URI가 지정되면 제공자가 온보딩될 때 설정된 기본 딥 링크가 재정의됩니다. |
stations[].rental_uris.android |
URI | 조건부 필수 |
이 URI는 두 개 이상의 방송국 정보를 포함하는 일반 대여 페이지가 아닌 개별 방송국에 특화된 딥 링크여야 합니다. 딥 링크는 요청 메시지, 전면 페이지, 로그인 없이 곧바로 사용자를 방송국에 연결해야 합니다. 사용자가 애플리케이션을 연 적이 없더라도 방송국을 볼 수 있어야 합니다. 파트너가 각 방송국을 식별하는 다른 수단을 보유한 경우 방송국의 파트너에게 Android 대여 앱이 있는 경우 이 필드는 필수입니다. Android App Links의 예:
|
stations[].rental_uris.ios |
URI | 조건부 필수 |
iOS에서 역의 대여 앱을 실행하는 데 사용할 수 있는 URI입니다.
자세한 내용은 Apple의 iOS 맞춤 URL 스키마에 관한 도움말을 참고하세요.
이 URI는 두 개 이상의 방송국 정보를 포함하는 일반 대여 페이지가 아닌 개별 방송국에 특화된 딥 링크여야 합니다. 딥 링크는 요청 메시지, 전면 페이지, 로그인 없이 곧바로 사용자를 방송국에 연결해야 합니다. 사용자가 애플리케이션을 연 적이 없더라도 방송국을 볼 수 있어야 합니다. URI에 방송국의 파트너에게 iOS 대여 앱이 있는 경우 이 필드는 필수입니다. iOS 범용 링크 예:
|
stations[].rental_uris.web |
URL | 선택사항 | 웹브라우저에서 이 역에서 차량을 대여하는 방법에 관한 자세한 정보를 표시하는 데 사용할 수 있는 URL입니다. 이 URL은 두 개 이상의 방송국 정보가 포함된 일반 대여 페이지가 아닌 개별 방송국에 특화된 딥 링크여야 합니다. 딥 링크는 요청 메시지, 전면 페이지, 로그인 없이 곧바로 사용자를 방송국에 연결해야 합니다. 사용자가 애플리케이션을 연 적이 없더라도 방송국을 볼 수 있어야 합니다. URL에 방송국의 이 필드가 설정되지 않은 경우 웹브라우저에서 딥 링크가 지원되지 않는다는 의미입니다. 예시 값:
|
다음은 station_information.json
의 예시입니다.
"stations": [
{
"station_id": "597",
"name": "Silverthorne Road, Battersea",
"lat": 51.472865,
"lon": -0.148059,
"capacity": 10,
"rental_uris": {
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.exampleexample.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890&platform=web"
}
},
]
필수: station_status.json (도킹된 시스템)
필요한 경우 GBFS 사양을 참고하세요.
이 피드는 최신 상태의 공공 자전거 공유 스테이션을 정의합니다.
필드 이름 | 유형 | 요구사항 | 설명 |
---|---|---|---|
stations |
배열 | 필수 | 객체의 배열이며, 각 객체는 하나의 방송국만 정의합니다. |
stations[].station_id |
문자열 | 필수 | 방송국의 식별자입니다. |
stations[].num_bikes_available |
비음수 정수 | 필수 |
역에 실제로 있으며 대여용으로 제공될 수 있는 기능성 자전거의 수를 나타내는 음수가 아닌 정수입니다. 현재 대여 자전거가 있는 역을 확인하려면 역의 |
stations[].vehicle_types_available |
배열 | 선택사항 |
역에서 이용 가능한 개별 차량 유형별로 분류된 총 차량 수를 정의하는 객체의 배열입니다. 각 객체는 연결된 차량 유형의 총 차량 수를 모델링합니다. 이러한 각 객체의 총 차량 수는 |
stations[].vehicle_types_available[].vehicle_type_id |
ID | 필수 |
vehicle_types.json에 설명된 대로 정류장에서 사용할 수 있는 각 차량 유형의 |
stations[].vehicle_types_available[].count |
비음수 정수 | 필수 |
vehicle_types.json에 정의된 대로 해당 |
stations[].num_docks_available |
비음수 정수 | 조건부 필수 |
이 필드는 스테이션의 도크 용량이 무제한이 아닌 경우 필수입니다. 예를 들어 가상 스테이션은 도킹 용량이 무제한이므로 필드가 필요하지 않습니다. 차량 반납을 수락할 수 있는 스테이션에 있는 기능 도크의 총수를 나타내는 음수가 아닌 정수입니다. 현재 대여소에서 자전거 반납을 허용하는지 확인하려면 대여소의 |
stations[].is_installed |
불리언 | 필수 |
현재 방송국이 거리에 설치되어 있는지 여부를 나타내는 불리언입니다. 스테이션이 거리에 설치된 경우 거리에 설치되지 않은 경우 |
stations[].is_renting |
불리언 | 필수 |
역에서 현재 자전거를 대여하는지 여부를 나타내는 불리언입니다. 역에서 현재 자전거를 대여하는 경우 현재 대여 자전거가 없는 경우 |
stations[].is_returning |
불리언 | 필수 |
현재 대여점에서 자전거 반납을 허용하는지 여부를 나타내는 불리언입니다. 현재 스테이션에서 자전거 반납을 허용하는 경우 현재 대여 자전거 반납을 허용하지 않는 경우 |
다음은 station_status.json
의 예시입니다.
"stations": [
{
"station_id": "2",
"num_bikes_available": 6,
"vehicle_types_available": [
{
"vehicle_type_id" : "scooter_electric",
"count" : 2
},
{
"vehicle_type_id" : "bike_manual",
"count" : 4
}
],
"num_docks_available": 30,
"is_installed": true,
"is_renting": true,
"is_returning": true,
"last_reported": 1576119631
},
]