Bu bölüme geçmeden önce, henüz yapmadıysanız feed'i oluşturduğunuz desteklenen mikro mobilite sistemlerini doğrulayın.
Aşağıdaki bölümlerde her başlık şu biçimdedir:
Required|Optional|Conditionally required: Feed name (System supported)
. Aşağıdaki sistemler desteklenir:
- Yuvaya yerleştirilmiş sistem
- Yuvasız sistem
- Yerleşik ve yerleşiksiz sistem
Google ile başarılı bir şekilde entegrasyon sağlamak için yalnızca feed'inizin tanımladığı sistem için gereken dosyaları sağlayın ve ilgili bölümlerde yer alan zorunlu alanları belirtin. Koşullu olarak zorunlu olan alanlarla ilgili yönergeler için alanın açıklamasına bakın. Ayrıca, bilgi ekleyen ve daha iyi bir kullanıcı deneyimi sağlayan isteğe bağlı alanları da belirtebilirsiniz.
Mikromobilite feed'leri için zorunlu başlık
Mikromobilite feed'leri, bu makalede tanımlandığı şekilde, yerleştirilmiş veya yerleştirilmemiş mikromobilite yapılandırılmış verilerini içeren feed'lerdir.
Tüm feed'ler, aşağıdaki tabloda yer alan alanları her zaman JSON nesnesinin en üst düzeyinde belirtmelidir. Bu alanlar toplu olarak ortak GBFS başlığı olarak bilinir.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
last_updated |
Zaman damgası | Zorunlu | 1 Ocak 1970 00:00:00 UTC'den bu yana geçen saniye sayısını belirten bir POSIX zaman damgası.
Feed'deki verilerin en son güncellendiği zamana ayarlanır. |
ttl |
Negatif olmayan tamsayı | Zorunlu | Feed'in güncellenmesine kadar kalan saniye sayısını gösteren negatif olmayan bir tam sayı.
Verilerin sabit bir hızda güncellenmesi gerekiyorsa bu değeri |
data |
JSON | Zorunlu | Tek tek özet akışlarının veri alanlarını içeren JSON. |
Örneğin, ortak GBFS üstbilgisini belirten toplu bir free_bike_status.json
feed'i aşağıdaki gibi olabilir:
{
"ttl": 30,
"last_updated": 1576123774,
"data": {
"bikes": [ ... ] // GBFS free bike status objects.
}
}
Gerekli: system_information.json (Yuvaya yerleştirilmiş ve yuvaya yerleştirilmemiş sistem)
Gerekirse GBFS spesifikasyonuna bakın.
Bu feed, sistem operatörüyle ilgili ayrıntılar sağlar.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
system_id |
Kimlik | Zorunlu | Araç paylaşım sisteminin genel olarak benzersiz tanımlayıcısı. Bu değerin, sistemin kullanım ömrü boyunca aynı kalması amaçlanmaktadır. Araçların kullanıldığı her farklı sistem veya coğrafi alanın kendi system_id'si OLMALIDIR. Sistem kimlikleri, rastgele dizeler yerine belirli bir sisteme ait olduğu tanınabilir OLMALIDIR. Örneğin, bcycle_austin veya biketown_pdx. |
name |
Dize | Zorunlu | Müşterilere gösterilen sistemin adı. |
rental_apps |
Nesne | Zorunlu | Kiralama uygulamasının Android ve iOS'e yönelik bilgilerini ilgili alanlarda içeren bir JSON nesnesi. |
rental_apps.android |
Nesne | Koşula bağlı olarak gerekli |
store_uri ve discovery_uri alanlarında Android platformu için kiralama uygulaması indirme ve uygulama keşfi bilgilerini içerir. Sistem sağlayıcının bir Android kiralama uygulaması varsa bu alan zorunludur.
|
rental_apps.android.store_uri |
URI | Zorunlu | Kiralık Android uygulamasının indirilebileceği URI. Bu genellikle Google Play gibi bir uygulama mağazasının URI'sidir. URI, Google Play gibi bir uygulama mağazasına yönlendiriyorsa görüntüleme uygulamasının URI'yi web sitesi yerine doğrudan yerel uygulama mağazası uygulamasında açabilmesi için URI'nin Android en iyi uygulamalarına uygun olmasını öneririz. |
rental_apps.android.discovery_uri |
URI | Zorunlu | your_custom_scheme://your/path/here biçiminde olan URI.
URI, PackageManager.queryIntentActivities()
tarafından, kiralık Android uygulamasının cihaza yüklenip yüklenmediğini öğrenmek için kullanılabilir.
|
rental_apps.ios |
Nesne | Koşula bağlı olarak gerekli | store_uri ve discovery_uri alanlarında iOS platformu için kiralama uygulaması indirme ve uygulama keşfi bilgilerini içerir. Sistem sağlayıcının bir iOS kiralama uygulaması varsa bu alan zorunludur.
|
rental_apps.ios.store_uri |
URI | Zorunlu | Kiralama için kullanılan iOS uygulamasının indirilebileceği URI. Bu genellikle Apple App Store gibi bir uygulama mağazasının URI'sidir. URI, Apple App Store gibi bir uygulama mağazasına yönlendiriyorsa görüntüleme uygulamasının URI'yi doğrudan bir web sitesi yerine yerel uygulama mağazası uygulamasında açabilmesi için URI'nin iOS'teki en iyi uygulamalara uygun olmasını öneririz. |
rental_apps.ios.discovery_uri |
URI | Zorunlu | your_custom_scheme:// biçiminde olan URI. URI, UIApplication canOpenURL: tarafından kiralama iOS uygulamasının cihaza yüklenip yüklenmediğini öğrenmek için kullanılabilir.
|
Zorunlu: free_bike_status.json (docksız sistem)
Gerekirse GBFS spesifikasyonuna bakın.
Bu feed, mevcut bağımsız araçların konumlarını ve özelliklerini tanımlar. Gizlilik nedeniyle, aktif kiralama kapsamında olan araçlar bu feed'de görünmemelidir.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
bikes |
Dizi | Zorunlu | Şu anda kullanılabilen ve durdurulan bisikletlerin dizisi. Her bisiklet bir nesnedir. |
bikes[].bike_id |
Kimlik | Zorunlu | Bir bisikletin tanımlayıcısı.
Gizliliği korumak için kimlik, her yolculuktan sonra rastgele bir dizeyle değiştirilebilir. |
bikes[].lat |
Enlem | Zorunlu | Bisikletin ondalık derece biçiminde WGS 84 enlemi. |
bikes[].lon |
Boylam | Zorunlu | Bisikletin ondalık derece biçimindeki WGS 84 boylamı. |
bikes[].is_reserved |
Boole | Zorunlu | Bisikletin şu anda rezerve edilip edilmediği:
|
bikes[].is_disabled |
Boole | Zorunlu | Bisikletin şu anda devre dışı olup olmadığı veya arızalı olup olmadığı aşağıdaki gibi gösterilir:
|
bikes[].rental_uris |
Nesne | Zorunlu | Android, iOS ve web için kiralama URI'lerini ilgili alanlarda içeren bir JSON nesnesi. |
bikes[].rental_uris.android |
URI | Koşula bağlı olarak gerekli | android.intent.action.VIEW Android intent'i ile Android uygulamasına aktarılabilen ve
Android derin bağlantılarını destekleyen bir URI. rental_uris , kullanıcının sağlayıcı uygulaması yüklü olmaması durumunda görüntüleme uygulamasının kullanıcının uygulama mağazasına yönlendirilmesini manuel olarak yönetmesi gerekmemesi için
Android App Links olmalıdır.
Bu URI, birden fazla bisikletle ilgili bilgileri içeren genel bir kiralama sayfası değil, bisiklete özel bir derin bağlantı olmalıdır. Derin bağlantı, kullanıcıyı herhangi bir istem, ara sayfa veya giriş işlemi olmadan doğrudan bisiklete yönlendirmelidir. Uygulamayı hiç açmamış olsalar bile kullanıcıların bisikleti görebildiğinden emin olun. İş ortağının ilgili bisikleti tanımlamak için başka yöntemleri olduğu sürece, URI'lerin bisiklet için İş ortağının Android kiralama uygulaması varsa bu alan zorunludur. Android uygulama bağlantıları örneği:
|
bikes[].rental_uris.ios |
URI | Koşula bağlı olarak gerekli | Bisiklet kiralama uygulamasını iOS'te başlatmak için kullanılabilecek bir URI.
Bu konu hakkında daha fazla bilgi için Apple'ın
iOS özel URL şemaları hakkındaki makalesini inceleyin.
Sağlanan rental_uris ,
iOS geçiş bağlantıları olmalıdır. Böylece, kullanıcıda sağlayıcı uygulaması yüklü değilse görüntüleme uygulamasının kullanıcıyı uygulama mağazasına yönlendirmeyi manuel olarak yönetmesi gerekmez.
Bu URI, birden fazla bisikletle ilgili bilgileri içeren genel bir kiralama sayfası değil, bisiklete özel bir derin bağlantı olmalıdır. Derin bağlantı, kullanıcıyı herhangi bir istem, ara sayfa veya giriş işlemi olmadan doğrudan bisiklete yönlendirmelidir. Uygulamayı hiç açmamış olsalar bile kullanıcıların bisikleti görebildiğinden emin olun. İş ortağının ilgili bisikleti tanımlamak için başka yöntemleri olduğu sürece URI'lerin bisiklet için bike_id'yi içermesi zorunlu değildir. Örneğin, kiralama uygulaması, bisikleti benzersiz bir şekilde tanımlamak için URI'deki diğer tanımlayıcıları kullanabilir. İş ortağının iOS kiralama uygulaması varsa bu alan zorunludur. iOS Geçiş Bağlantısı örneği:
|
bikes[].rental_uris.web |
URL | İsteğe bağlı | Bu araçta araç kiralama hakkında daha fazla bilgi göstermek için web tarayıcısı tarafından kullanılabilecek bir URL. Bu URL, birden fazla bisikletle ilgili bilgileri içeren genel bir kiralama sayfası değil, bisiklete özel bir derin bağlantı olmalıdır. Derin bağlantı, kullanıcıyı herhangi bir istem, ara sayfa veya giriş işlemi olmadan doğrudan bisiklete yönlendirmelidir. Uygulamayı hiç açmamış olsalar bile kullanıcıların bisikleti görebildiğinden emin olun. URL'lerin, bisiklet için Bu alan ayarlanmamışsa web tarayıcısı için derin bağlantıların desteklenmediği anlamına gelir. Örnek değer:
|
bikes[].vehicle_type_id |
Kimlik | Zorunlu | vehicle_type_id bölümünde açıklandığı gibi aracın vehicle_types.json .
|
bikes[].pricing_plan_id |
Kimlik | Zorunlu | Bu araç türü, system_pricing_plans.json bölümünde açıklandığı şekilde kiralandığında uygulanan fiyat planının tanımlayıcısı.
|
bikes[].current_range_meters |
Negatif olmayan kayan noktalı sayı | Koşula bağlı olarak gerekli | Araca karşılık gelen vehicle_type tanımında motor varsa bu alan zorunludur.
Aracın mevcut şarj veya yakıt seviyesi göz önüne alındığında, yeniden şarj etmeye veya yakıt doldurmaya gerek kalmadan gidebileceği en uzak mesafeyi metre cinsinden ayarlayın. |
bikes[].last_reported |
Zaman damgası | İsteğe bağlı | Aracın durumunu operatörün arka ucuna en son bildirdiği zamana ayarlanır. |
Aşağıda free_bike_status.json
için bir örnek verilmiştir:
"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
}
]
Zorunlu: vehicle_types.json (Park yeri olan ve park yeri olmayan sistem)
Gerekirse GBFS spesifikasyonuna bakın.
Bu feed, free_bike_status.json
bölümünde belirtildiği gibi, tek tek araç türlerinin ayrıntılarını tanımlar.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
vehicle_types |
Dizi | Zorunlu | Her nesnenin, sağlayıcının kataloğunda farklı bir araç türünü tanımladığı bir nesne dizisi. Belirli bir araç türü için yalnızca bir nesne olabilir. |
vehicle_types[].vehicle_type_id |
Kimlik | Zorunlu | Belirli bir araç türünün benzersiz tanımlayıcısı. |
vehicle_types[].form_factor |
Enum | Zorunlu | Şu anda geçerli olan aşağıdaki değerler listesinden aracın genel form faktörünü temsil eden bir enum:
|
vehicle_types[].propulsion_type |
Enum | Zorunlu | Şu anda geçerli olan aşağıdaki değerler listesinden aracın birincil tahrik türünü temsil eden bir enum:
|
vehicle_types[].max_range_meters |
Negatif olmayan kayan noktalı sayı | Koşula bağlı olarak gerekli | propulsion_type , human olarak ayarlanmamışsa araçta motor vardır ve bu nedenle bu alan gereklidir.
Araç tam dolu veya tam şarjlıyken yeniden dolum veya şarj etmeye gerek kalmadan gidebileceği en uzak mesafeyi metre cinsinden belirtir. |
Aşağıda vehicle_types.json
için bir örnek verilmiştir:
"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
}
]
Gerekli: system_pricing_plans.json (Dockless sistemi)
Gerekirse GBFS spesifikasyonuna bakın.
Bu feed, bağımsız araçların fiyat planlarını tanımlar. Sağlayıcıların, bağımsız araçlar için fiyat bilgilerini göstermesi zorunludur.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
plans |
Dizi | Zorunlu | Her nesnenin belirli bir fiyat planını tanımladığı bir nesne dizisi. |
plans[].plan_id |
Kimlik | Zorunlu | Sağlayıcının sunduğu belirli fiyat planının benzersiz tanımlayıcısını temsil eden bir dize. |
plans[].url |
URL | İsteğe bağlı | Son kullanıcıları fiyat planı hakkında daha fazla bilgiye yönlendiren URL. |
plans[].currency |
Dize | Zorunlu | Fiyat planı için ISO 4217 standardı. |
plans[].price |
Negatif olmayan kayan noktalı sayı | Zorunlu |
Fiyat planı, derecelendirilmemiş fiyat planı veya derecelendirilmiş fiyat planı olarak tanımlanmalıdır:
|
plans[].per_km_pricing |
Dizi | Koşula bağlı olarak gerekli |
Fiyat, gidilen mesafeye bağlıysa ve kilometre cinsinden gösteriliyorsa bu alan zorunludur. Her nesnenin belirli bir mesafeye bölünmüş segmenti tanımladığı bir nesne dizisi. Her segmentin Belirli bir planın toplam fiyatını belirlemek için söz konusu planın Bu alan ayarlanmazsa mesafeye dayalı değişken fiyatlar olmaz ve bu nedenle, toplam fiyata dahil edilmez. |
plans[].per_km_pricing[].start |
Negatif olmayan tamsayı | Zorunlu |
Segment ücretinin alınmaya başlandığı kilometre sayısı.
Bu alan, segmentin aralığını başlatan kapsayıcı değer olarak ayarlanır. Bu nedenle, kilometre sayısı tamamlandığında rate tutarında tek bir ödeme alınır.
|
plans[].per_km_pricing[].rate |
Kayan | Zorunlu | Her interval için alınan ücret. Bu ücret, segmentin start dahil olmak üzere başlangıcından itibaren geçerlidir. Bu alan negatif bir sayı olarak ayarlanırsa yolcu indirim alır.
|
plans[].per_km_pricing[].interval |
Negatif olmayan tamsayı | Zorunlu |
Segmentin
Segmentin Bu alan |
plans[].per_km_pricing[].end |
Negatif olmayan tamsayı | İsteğe bağlı |
Segment için Bu alan ayarlanmamışsa veya boşsa segment için |
plans[].per_min_pricing |
Dizi | Koşula bağlı olarak gerekli |
Fiyat, geçen süreye bağlı olarak değişiyorsa ve dakika cinsinden gösteriliyorsa bu alan zorunludur. Her nesnenin belirli bir zaman dilimini tanımladığı bir nesne dizisi. Her segmentin Belirli bir planın toplam fiyatını belirlemek için söz konusu planın Bu alan ayarlanmamışsa zamana dayalı değişken fiyatlar yoktur ve bu nedenle toplam fiyata dahil edilmez. |
plans[].per_min_pricing[].start |
Kayan | Zorunlu |
Segment ücretinin alınmaya başlandığı dakika sayısı.
Bu alan, segmentin aralığını başlatan kapsayıcı değer olarak ayarlanır. Bu nedenle, belirlenen dakika sayısı geçtikten sonra rate bir kez ücretlendirilir.
|
plans[].per_min_pricing[].rate |
Kayan | Zorunlu | Her bir interval için alınan ücret. Ücret, segmentin start dahil olmak üzere başlangıcından itibaren geçerlidir. Bu alan negatif bir sayı olarak ayarlanırsa yolcu indirim alır.
|
plans[].per_min_pricing[].interval |
Negatif olmayan tamsayı | Zorunlu |
Segmentin
Segmentin Bu alan |
plans[].per_min_pricing[].end |
Negatif olmayan tamsayı | İsteğe bağlı |
Segment için Bu alan ayarlanmamışsa veya boşsa segmentin |
system_pricing_plans.json için örnekler
Bu bölümde bilgilendirici system_pricing_plans.json
kod örnekleri verilmiştir. Her örneğin ilgili ayrıntıları ve sonuçları da sağlanır.
system_pricing_plans.json için 1. örnek
Aşağıdaki fiyat planı kodu örneğinde, aşağıdaki aralıklar için yolculuk süresine göre ücretler gösterilmektedir:
- [0,1): 2 ABD doları
- Yolculuk bir dakikadan kısa sürerse kullanıcı 2 ABD doları öder.
- Örnek: 59 saniyelik gezi
- [1,2): 3 TL
- Yolculuk bir dakikadan uzun veya bir dakikaya eşit ancak iki dakikadan kısaysa kullanıcı 2 ABD doları + 1 ABD doları = 3 ABD doları öder.
- Örnekler: 1 dakikalık yolculuk, 1 dakika 45 saniyelik yolculuk
- x sayısı 2'ye eşit veya 2'den büyük olduğunda x dakika:
3 TL + (($2 + $1) * (x - 2 + 1))
TL
- Yolculuk iki dakikadan uzun veya iki dakikaya eşitse kullanıcı, yolculuğun iki dakikadan kısa süren kısmı için 3 ABD doları ve iki dakikadan sonraki her dakika için (
per_min_pricing
listesinin ilk girişinden devam eden 1 ABD doları +per_min_pricing
listesinin ikinci girişi olan 2 ABD doları) öder. - Örnekler:
- 2 dakikalık yolculuğun maliyeti 3 TL + (2 TL + 1 TL) = 6 TL
- 2 dakika 30 saniyelik yolculuğun maliyeti 3 TL + (2 TL + 1 TL) = 6 TL
- 3 dakikalık yolculuğun maliyeti: 3 TL + ((2 TL + 1 TL) * 2) = 9 TL
- 10 dakikalık yolculuğun maliyeti 3 TL + (($2 + $1) * 9) = 30 TL
- Yolculuk iki dakikadan uzun veya iki dakikaya eşitse kullanıcı, yolculuğun iki dakikadan kısa süren kısmı için 3 ABD doları ve iki dakikadan sonraki her dakika için (
{
"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 için 2. örnek
Bu örnekte, hem dakika hem de kilometre üzerinden ücretlendirilen bir fiyat planı için kod örneği gösterilmektedir:
- Daha net bir ifadeyle, son kullanıcıdan kilometre başına 0,25 Kanada doları ve dakika başına 0,50 Kanada doları ücret alınır.
- Bu iki oran aynı anda gerçekleşir ve birbirine bağlı değildir.
- Bu nedenle, 10 dakika süren bir kilometrelik yolculuğun maliyeti 9 Kanada dolarıdır. Maliyetin dökümü şu şekildedir:
- 3 ABD doları (taban fiyat)
- 0, 25 ABD doları * 2.Yolculuğun başında ve 1 km işaretinde olmak üzere iki kez ücret alınır.
- Her dakikanın başında bir kez olmak üzere 0,5 ABD doları * 11 = 5,5 ABD doları tutarında ödeme alınır. Ücretlendirme 0 saniyede başlar ve son aralık 10 dakika olarak ücretlendirilir.
{
"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
}]
}
}
Koşullu olarak zorunlu: geofencing_zones.json (Yerleşik ve yerleşik olmayan sistem)
Gerekirse GBFS spesifikasyonuna bakın.
Bu feed, bağımsız araçlar için coğrafi sınırlama verilerini tanımlar. Coğrafi sınırlama verileri, araçların yolculuğa başlamasına ve yolculuğu bitirmesine izin verilen yerleri belirten coğrafi sınırların yanı sıra araçların gidebileceği hızı içerir. Bu hız, aracın maksimum hızı veya aracın bulunduğu yolun hız sınırı (hangisi daha düşükse) olur. Sürücüler yerel yasalara ve yönetmeliklere uymalıdır.
Bu verileri, bir kullanıcı belirli bir rotayı aradığında yolculuğun sonu belirli coğrafi sınırlardan dışarıda kalıyorsa mikromobilite sonucunun filtrelenmesi için kullanırız. Coğrafi sınırlar sağlanmazsa Google, hizmetin sınır kısıtlaması yokmuş gibi davranır.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
geofencing_zones |
Nesne | Zorunlu |
IETF RFC 7946 tarafından tanımlanan FeatureCollection nesnesi, features adlı bir alanı olan nesnedir. features değerinin bir JSON dizisi olması gerekir.
JSON dizisinin her öğesi bir Feature nesnesidir.
Coğrafi sınırlı alanların her biri, bunlarla ilişkili kurallar ve özellikler ile |
geofencing_zones.type |
Dize | Zorunlu |
IETF RFC 7946'da açıklandığı şekilde FeatureCollection olarak ayarlayın. |
geofencing_zones.features |
Dizi | Zorunlu | JSON dizisindeki her öğenin bir Feature
nesnesi olduğu bir JSON dizisi. |
geofencing_zones.features[].type |
Dize | Zorunlu |
IETF RFC 7946'da açıklandığı şekilde Feature olarak ayarlayın. |
geofencing_zones.features[].geometry |
GeoJSON Multipolygon | Zorunlu | Yolculukların başlayamayacağı, sonlanamayacağı, geçemeyeceği ve diğer kısıtlamaları açıklayan bir GeoJSON Multipolygon. Noktaların saat yönünde düzenlenmesi, çokgenin çevrelediği alanı tanımlarken saat yönünün tersine düzenlenmesi, çokgenin dışındaki alanı tanımlar. Bu konu hakkında daha fazla bilgi için sağ el kuralına bakın. |
geofencing_zones.features[].properties |
Nesne | Zorunlu | Seyahat ödeneklerini ve sınırlamalarını tanımlayan bir nesne. |
geofencing_zones.features[].properties.rules |
Dizi | İsteğe bağlı | Her nesnenin yalnızca bir kural tanımladığı bir nesne dizisi. İki veya daha fazla kural çakışırsa, çarpışırsa ya da başka bir şekilde birbiriyle çelişirse JSON dosyasının sırasındaki en erken tanımlanan kural öncelikli olur. |
geofencing_zones.features[].properties.rules[].vehicle_type_id |
Dizi | İsteğe bağlı | Her öğenin bir vehicle_type_id olduğu araç türü kimlikleri dizisi. Bu kimlikler için kısıtlamalar uygulanmalıdır.
vehicle_type_id belirtilmezse kısıtlamalar tüm araç türleri için geçerli olur. |
geofencing_zones.features[].properties.rules[].ride_allowed |
Boole | Zorunlu | Bağlantı noktası olmayan bisiklet yolculuğunun bölgede başlayıp bitebileceği aşağıdaki gibi belirlenir:
|
Aşağıda geofencing_zones.json
için bir örnek verilmiştir:
"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]
]]]
}
}]
}
Zorunlu: station_information.json (Docked system)
Gerekirse GBFS spesifikasyonuna bakın.
Bu feed, herkese açık bisiklet paylaşım istasyonlarıyla ilgili genel bilgileri tanımlar.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
stations |
Dizi | Zorunlu | Her nesnenin yalnızca bir istasyonu tanımladığı bir nesne dizisi. |
stations[].station_id |
Dize | Zorunlu | İstasyonun tanımlayıcısı. |
stations[].name |
Dize | Zorunlu |
İstasyonun bulunduğu şehrin yerel dilindeki istasyonun herkese açık adı. name , varsa istasyondaki tabelalarda kullanılanlarla aynı olmalı veya ara sokak ya da yerel bir simge kullanılarak istasyon konumunu yansıtmalıdır.
Tabelalarda açıkça kullanılmadığı sürece "St." gibi kısaltmalar kullanmayın. name , yer adlarının büyük harf kullanımıyla ilgili yerel kurallara uygun olarak karışık harf düzeninde olmalı ve tamamen büyük harflerle yazılmamalıdır.
|
stations[].lat |
Enlem | Zorunlu | İstasyonun ondalık derece biçiminde WGS 84 enlemi. |
stations[].lon |
Boylam | Zorunlu | İstasyonun ondalık derece biçimindeki WGS 84 boylamı. |
stations[].capacity |
Negatif olmayan tamsayı | İsteğe bağlı | İstisyonda kurulu olan, hem kullanılabilir hem de kullanılamayan toplam yerleştirme noktası sayısını gösteren negatif olmayan bir tam sayı. |
stations[].rental_uris |
Nesne | Zorunlu |
Android, iOS ve web için kiralama URI'lerini ilgili alanlarda içeren bir JSON nesnesi. Bu URI'ler belirtilirse sağlayıcı ilk katıldığında ayarlanan varsayılan derin bağlantıları geçersiz kılar. |
stations[].rental_uris.android |
URI | Koşula bağlı olarak gerekli |
Android derin bağlantılarını desteklemek için Bu URI, birden fazla istasyonla ilgili bilgileri içeren genel bir kiralama sayfası değil, istasyona özel bir derin bağlantı olmalıdır. Derin bağlantı, kullanıcıyı herhangi bir istem, ara sayfa veya giriş işlemi olmadan doğrudan istasyona yönlendirmelidir. Kullanıcıların uygulamayı hiç açmamış olsalar bile istasyonu görebildiğinden emin olun. İş ortağının ilgili istasyonu tanımlamak için başka yöntemleri olduğu sürece, istasyon için URI'lerin İş ortağının Android kiralama uygulaması varsa bu alan zorunludur. Android uygulama bağlantıları örneği:
|
stations[].rental_uris.ios |
URI | Koşula bağlı olarak gerekli |
İstasyonun kiralama uygulamasını iOS'te başlatmak için kullanılabilecek bir URI.
Bu konu hakkında daha fazla bilgi için Apple'ın iOS özel URL şemaları hakkındaki makalesine bakın.
Bu URI, birden fazla istasyonla ilgili bilgileri içeren genel bir kiralama sayfası değil, istasyona özel bir derin bağlantı olmalıdır. Derin bağlantı, kullanıcıyı herhangi bir istem, ara sayfa veya giriş işlemi olmadan doğrudan istasyona yönlendirmelidir. Kullanıcıların uygulamayı hiç açmamış olsalar bile istasyonu görebildiğinden emin olun. URI'lerin istasyon için İş ortağının iOS kiralama uygulaması varsa bu alan zorunludur. iOS Geçiş Bağlantısı örneği:
|
stations[].rental_uris.web |
URL | İsteğe bağlı | Bu istasyonda araç kiralama hakkında daha fazla bilgi göstermek için web tarayıcısı tarafından kullanılabilecek bir URL. Bu URL, birden fazla istasyonla ilgili bilgileri içeren genel bir kiralama sayfası değil, istasyona özel bir derin bağlantı olmalıdır. Derin bağlantı, kullanıcıyı herhangi bir istem, ara sayfa veya giriş işlemi olmadan doğrudan istasyona yönlendirmelidir. Uygulamayı hiç açmamış olsalar bile kullanıcıların istasyonu görebildiğinden emin olun. URL'lerin istasyon için Bu alan ayarlanmamışsa web tarayıcısında derin bağlantıların desteklenmediği anlamına gelir. Örnek değer:
|
Aşağıda station_information.json
için bir örnek verilmiştir:
"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"
}
},
]
Zorunlu: station_status.json (Docked sistemi)
Gerekirse GBFS spesifikasyonuna bakın.
Bu feed, herkese açık bisiklet paylaşımı istasyonlarının güncel durumunu tanımlar.
Alan adı | Tür | Gereksinim | Açıklama |
---|---|---|---|
stations |
Dizi | Zorunlu | Her nesnenin yalnızca bir istasyonu tanımladığı bir nesne dizisi. |
stations[].station_id |
Dize | Zorunlu | İstasyonun tanımlayıcısı. |
stations[].num_bikes_available |
Negatif olmayan tamsayı | Zorunlu |
İstisyonda fiziksel olarak bulunan ve kiralama için sunulabilecek işlevsel bisikletlerin sayısını gösteren negatif olmayan bir tam sayı. İstasyonun şu anda bisiklet kiralayıp kiralamadığını belirlemek için
istasyonun |
stations[].vehicle_types_available |
Dizi | İsteğe bağlı |
Bir istasyonda bulunan her bir araç türüne göre sınıflandırılmış, toplam araç sayısını tanımlayan bir nesne dizisi. Her nesne, ilişkili araç türü için toplam araç sayısını modeller. Bu nesnelerin her birinden gelen toplam araç sayısı, |
stations[].vehicle_types_available[].vehicle_type_id |
Kimlik | Zorunlu |
vehicle_types.json dosyasında belirtildiği gibi istasyonda bulunan her araç türünün |
stations[].vehicle_types_available[].count |
Negatif olmayan tamsayı | Zorunlu |
vehicle_types.json dosyasında tanımlandığı şekilde, istasyonda ilgili |
stations[].num_docks_available |
Negatif olmayan tamsayı | Koşula bağlı olarak gerekli |
İstasyonun sınırsız yerleştirme kapasitesi yoksa bu alan zorunludur. Örneğin, sanal istasyonların sınırsız yerleştirme kapasitesi vardır ve bu alan zorunlu değildir. İstisyonda fiziksel olarak bulunan ve araç iadelerini kabul edebilen işlevsel doların toplam sayısını temsil eden negatif olmayan bir tam sayı. İstasyonun şu anda bisiklet iadesi kabul edip etmediğini belirlemek için istasyonun |
stations[].is_installed |
Boole | Zorunlu |
İstasyonun şu anda sokakta ve kurulu olup olmadığını belirten bir Boole değeri. İstasyon caddeye kurulmuşsa İstasyon sokağa kurulmamışsa |
stations[].is_renting |
Boole | Zorunlu |
İstasyonun şu anda bisiklet kiralayıp kiralamadığını belirten bir Boole değeri. İstasyon şu anda bisiklet kiralıyorsa İstasyon şu anda bisiklet kiralamıyorsa |
stations[].is_returning |
Boole | Zorunlu |
İstasyonun şu anda bisiklet iadelerini kabul edip etmediğini belirten bir Boole değeri. İstasyon şu anda bisiklet iadesi kabul ediyorsa İstasyon şu anda bisiklet iadesi kabul etmiyorsa |
Aşağıda station_status.json
örneği verilmiştir:
"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
},
]