Bu bölüme geçmeden önce, feed'i oluştururken kullandığınız desteklenen mikro hareket sistemlerini doğrulamalısınız.
Aşağıdaki bölümlerde, her üstbilginin biçimi şöyledir:
Required|Optional|Conditionally required: Feed name (System supported)
. Aşağıdaki sistemler desteklenir:
- Yuvaya yerleştirilmiş sistem
- Sabitlemesiz sistem
- Yuvada ve yuvasız sistem
Google ile başarılı bir şekilde entegre olmak için yalnızca feed'inizin açıkladığı sistem için gereken dosyaları sağlayın ve ilgili bölümlerde yer alan zorunlu alanları belirtin. Koşula bağlı zorunlu alanlar için rehberlikle ilgili alandaki açıklamaya bakın. Bilgi ekleyen ve daha iyi bir kullanıcı deneyimi sunan isteğe bağlı alanlar da belirtebilirsiniz.
Mikro mobilite feed'leri için gerekli başlık
Mikro hareket feed'leri, bu makalede tanımlandığı gibi yerleşik veya yuvasız olan feed'leri içerir.
Tüm feed'ler, aşağıdaki tabloda yer alan alanları her zaman JSON nesnesinin en üst düzeyinde belirtmelidir. Bu alan, toplu olarak common GBFS üst bilgisi olarak bilinir.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
last_updated |
Zaman damgası | Zorunlu | 1 Ocak 1970 00:00:00 UTC'den bu yana geçen saniye sayısını belirten POSIX zaman damgası.
Feed'deki verilerin son olarak güncellendiği zamana ayarlanır. |
ttl |
Negatif olmayan tam sayı | Zorunlu | Feed'i güncelleme zamanı gelene kadar geçen saniye sayısını temsil eden negatif olmayan bir tam sayı.
Verilerin sabit bir hızda güncellenmesi gerekiyorsa bu değeri |
data |
JSON | Zorunlu | Bağımsız feed'in veri alanlarını içeren JSON. |
Örneğin, ortak GBFS başlığını belirten toplu 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 (Yuvada ve yersiz sistem)
Gerektiğinde GBFS spesifikasyonuna bakın.
Bu feed, sistem operatörüyle ilgili ayrıntılı bilgi sağlar.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
system_id |
Kimlik | Zorunlu | Araç paylaşım sistemi için genel olarak benzersiz bir tanımlayıcı. Bu değer, sistem ömrü boyunca aynı kalacak şekilde tasarlanmıştır. Araçların çalıştırıldığı her sistem veya coğrafi bölge kendi sistem_kimliğine sahip olmalıdır. Sistem kimlikleri, rastgele dizelerden ziyade belirli bir sisteme ait olduğu bilinmelidir (örneğin, bcycle_austin veya Biketown_pdx). |
name |
Dize | Zorunlu | Sistemin müşterilere gösterilen adı. |
rental_apps |
Nesne | Zorunlu | Kiralama uygulamaları için Android ve iOS ile ilgili bilgileri içeren bir JSON nesnesi. |
rental_apps.android |
Nesne | Koşula bağlı olarak gereklidir |
store_uri ve discovery_uri alanlarında Android platformu için kiralama uygulaması indirme ve uygulama keşfetme bilgilerini içerir. Sistem sağlayıcısının bir Android kiralama uygulaması varsa bu alan gereklidir.
|
rental_apps.android.store_uri |
URI | Zorunlu | Kiralanan 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 URI'nin Android en iyi uygulamalarını izlemesini öneririz. Böylece uygulama, URI'yı bir web sitesi yerine doğrudan yerel uygulama mağazası uygulamasına açabilir. |
rental_apps.android.discovery_uri |
URI | Zorunlu | your_custom_scheme://your/path/here biçimine sahip URI.
URI, kiralık Android uygulamasının cihazda yüklü olup olmadığını öğrenmek için PackageManager.queryIntentActivities() tarafından kullanılabilir.
|
rental_apps.ios |
Nesne | Koşula bağlı olarak gereklidir | iOS ve store_uri için discovery_uri platformundaki kiralama uygulaması indirme ve uygulama keşfi bilgilerini içerir. Sistem sağlayıcısında iOS kiralama uygulaması varsa bu alan zorunludur.
|
rental_apps.ios.store_uri |
URI | Zorunlu | Kiralanan 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 işaret ediyorsa görüntüleme uygulamasının bir web sitesi yerine yerel uygulama mağazası uygulamasına doğrudan URI açabilmesi için URI'nin iOS en iyi uygulamalarını izlemesini öneririz. |
rental_apps.ios.discovery_uri |
URI | Zorunlu | your_custom_scheme:// biçimine sahip URI. URI, kiralık iOS uygulamasının cihazda yüklü olup olmadığını keşfetmek için UIApplication canOpenURL: tarafından kullanılabilir.
|
Gerekli: free_bike_status.json (Yuvasız sistem)
Gerektiğinde GBFS spesifikasyonuna bakın.
Bu feed, mevcut bağımsız taşıtların konumlarını ve özelliklerini tanımlar. Gizlilik nedeniyle, etkin bir kiralamanın parçası olan araçlar bu feed'de görünmemelidir.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
bikes |
Dizi | Zorunlu | Şu anda mevcut olan, her bisikletin bir nesne olduğu mevcut bisikletler. |
bikes[].bike_id |
Kimlik | Zorunlu | Bisikletin tanımlayıcısı.
Gizliliği korumak için kimlik, her geziden sonra rastgele bir dize olarak değiştirilebilir. |
bikes[].lat |
Enlem | Zorunlu | Bisikletin WGS 84 enlemi, ondalık derece biçimindedir. |
bikes[].lon |
Boylam | Zorunlu | Bisikletin WGS 84 boylamı ondalık derece biçimindedir. |
bikes[].is_reserved |
Boole | Zorunlu | Bisikletin hâlihazırda rezerve edilip edilmediği aşağıda açıklanmıştır:
|
bikes[].is_disabled |
Boole | Zorunlu | Bisikletin şu anda devre dışı mı yoksa kırılmış mı olduğu aşağıdaki gibi:
|
bikes[].rental_uris |
Nesne | Zorunlu | İlgili alanlarında Android, iOS ve web için kiralama URI'leri içeren JSON nesnesi. |
bikes[].rental_uris.android |
URI | Koşula bağlı olarak gereklidir | Android Derin Bağlantılarını desteklemek için android.intent.action.VIEW Android niyetiyle Android uygulamasına geçirilebilen bir URI. Sağlayıcı uygulamanın yüklü olmadığı durumlarda görüntülemekte olan uygulamanın kullanıcının uygulama mağazasına yönlendirilmesini manuel olarak yönetmesine gerek olmaması için sağlanan rental_uris Android App Links olmalıdır.
Bu URI, birden fazla bisiklet için bilgi içeren genel bir kiralama sayfası değil, tek tek bisiklete özel bir derin bağlantı olmalıdır. Derin bağlantı, herhangi bir istem, geçiş sayfası veya giriş olmadan kullanıcıyı doğrudan bisiklete götürmelidir. Kullanıcılar uygulamayı hiç açmamış olsalar bile 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 App Links örneği:
|
bikes[].rental_uris.ios |
URI | Koşula bağlı olarak gereklidir | iOS'te bisiklet kiralama uygulamasını başlatmak için kullanılabilecek bir URI.
Bu konu hakkında daha fazla bilgi için Apple'ın iOS özel URL şemaları ile ilgili makalesine göz atın.
Sağlayıcı uygulamanın yüklü olmadığı durumlarda görüntüleme uygulamasının kullanıcının uygulama mağazasına yönlendirilmesini manuel olarak yönetmesine gerek olmaması için sağlanan rental_uris iOS Evrensel Bağlantıları olmalıdır.
Bu URI, birden fazla bisiklet için bilgi içeren genel bir kiralama sayfası değil, tek tek bisiklete özel bir derin bağlantı olmalıdır. Derin bağlantı, herhangi bir istem, geçiş sayfası veya giriş olmadan kullanıcıyı doğrudan bisiklete götürmelidir. Kullanıcılar uygulamayı hiç açmamış olsalar bile bisikleti görebildiğinden emin olun. İş ortağının bisikleti tanımlamak için başka yöntemleri olduğu sürece URI'lerin bisiklet için bisiklet_kimliğini içermesi zorunlu değildir. Örneğin, kiralık uygulama bisikleti benzersiz ş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ıları ö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 bir web tarayıcısı tarafından kullanılabilecek URL. Bu URL, birden fazla bisiklet hakkında bilgi içeren genel bir kiralama sayfası değil, tek tek bisiklete özel bir derin bağlantı olmalıdır. Derin bağlantı, herhangi bir istem, geçiş sayfası veya giriş olmadan kullanıcıyı doğrudan bisiklete götürmelidir. Kullanıcılar uygulamayı hiç açmamış olsalar bile bisikleti görebildiğinden emin olun. URL'lerin bisiklet için Bu alan ayarlanmazsa derin bağlantılar web tarayıcısı için desteklenmez. Örnek değer:
|
bikes[].vehicle_type_id |
Kimlik | Zorunlu | Aracın vehicle_types.json bölümünde açıklanan vehicle_type_id öğesi.
|
bikes[].pricing_plan_id |
Kimlik | Zorunlu | Bu araç türü kiralandığında geçerli olan fiyat planı tanımlayıcısı, system_pricing_plans.json bölümünde açıklanmıştır.
|
bikes[].current_range_meters |
Negatif olmayan kayan noktalı | Koşula bağlı olarak gereklidir | Araca karşılık gelen vehicle_type tanımı bir motor içeriyorsa bu alan gereklidir.
Aracın mevcut şarj veya yakıt seviyesi göz önünde bulundurularak, şarj veya yakıt yardımı gerekmeden aracın gidebileceği en uzak mesafeyi ayarlayın. |
bikes[].last_reported |
Zaman damgası | İsteğe bağlı | Aracın durumunu, operatörün arka ucuna en son bildirildiği saat olarak ayarlayın. |
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
}
]
Gerekli: traffic_types.json (Yuvada ve yersiz sistem)
Gerektiğinde GBFS spesifikasyonuna bakın.
Bu feed, free_bike_status.json
bölümünde belirtildiği şekilde her bir araç türünün ayrıntılarını tanımlar.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
vehicle_types |
Dizi | Zorunlu | Sağlayıcının kataloğunda her bir nesnenin 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ıdır. |
vehicle_types[].form_factor |
Enum | Zorunlu | Aşağıdaki geçerli değerler listesinden aracın genel form faktörünü temsil eden bir sıralama:
|
vehicle_types[].propulsion_type |
Enum | Zorunlu | Aşağıdaki geçerli değerler listesinde bulunan, aracın birincil itki türünü temsil eden enum
:
|
vehicle_types[].max_range_meters |
Negatif olmayan kayan noktalı | Koşula bağlı olarak gereklidir | propulsion_type human olarak ayarlanmadıysa aracın bir motoru vardır, dolayısıyla bu alan gereklidir.
Aracın tam olarak yakıt doldurması veya tamamen şarj olması durumunda şarj veya yakıt ihtiyacı olmadan seyahat edebileceği en uzak mesafe olarak ayarlayın. |
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 (Yuvasız sistem)
Gerektiğinde GBFS spesifikasyonuna bakın.
Bu feed ayaklı araçlar için fiyat planlarını tanımlar. Sağlayıcıların ayaklı araçlar için fiyat bilgisi göstermesini zorunlu tutuyoruz.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
plans |
Dizi | Zorunlu | Her bir nesnenin belirli bir fiyat planını tanımladığı nesne dizisi. |
plans[].plan_id |
Kimlik | Zorunlu | Sağlayıcının sunduğu belirli bir 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ının ISO 4217 standardı. |
plans[].price |
Negatif olmayan kayan noktalı | Zorunlu |
Fiyat planı, puan verilmemiş bir fiyat planı veya derecelendirilen fiyat planı olarak tanımlanmalıdır:
|
plans[].per_km_pricing |
Dizi | Koşula bağlı olarak gereklidir |
Fiyat, kat edilen ve kilometre olarak gösterilen mesafenin bir işleviyse bu alan zorunludur. Her bir nesnenin belirli bir mesafeye ayrılmış segmenti tanımladığı nesne dizisi. Her segmentin Belirli bir planın toplam fiyatını belirlemek için Bu alan ayarlanmamışsa mesafeye bağlı olarak değişen fiyat yoktur ve bu nedenle hiçbiri toplam fiyatın bir parçası olarak dahil edilmez. |
plans[].per_km_pricing[].start |
Negatif olmayan tam sayı | Zorunlu |
Segment ücretinin ücretlendirilmeye başlayacağı kilometre sayısı.
Bu alan, segmentin aralığını başlatan kapsayıcı değere ayarlanır. Bu nedenle, kilometrelerce süre geçtikten sonra rate bir kez ücretlendirilir.
|
plans[].per_km_pricing[].rate |
Kayan | Zorunlu | Segmentin kapsayıcı start aralığından başlayan her interval için tahsil edilen ücret. Bu alan negatif bir sayıya ayarlanırsa yolcuya indirim uygulanır.
|
plans[].per_km_pricing[].interval |
Negatif olmayan tam sayı | Zorunlu |
Segmentin
Segmentin Bu alan, |
plans[].per_km_pricing[].end |
Negatif olmayan tam sayı | İsteğe bağlı |
Segmentin Bu alan ayarlanmamışsa veya boşsa segmentin |
plans[].per_min_pricing |
Dizi | Koşula bağlı olarak gereklidir |
Fiyat, iletilen zamanın bir işleviyse ve dakika cinsinden gösteriliyorsa bu alan gereklidir. Her bir nesnenin belirli bir zaman bölümüne bölünmüş segmenti tanımladığı nesne dizisi. Her segmentin Belirli bir planın toplam fiyatını belirlemek için Bu alan ayarlanmamışsa zamana dayalı değişken fiyat yoktur ve bu nedenle hiçbiri toplam fiyata dahil edilmez. |
plans[].per_min_pricing[].start |
Kayan | Zorunlu |
Segment ücretinin ücretlendirilmeye başlayacağı dakika sayısı.
Bu alan, segmentin aralığını başlatan kapsayıcı değere ayarlanır. Bu nedenle, belirlenen dakika sayısı dolduğunda rate üzerinden bir kez ödeme alınır.
|
plans[].per_min_pricing[].rate |
Kayan | Zorunlu | Her interval için alınan ücret. Ücret, segmentin kapsayıcı start sürümünden başlar. Bu alan negatif bir sayıya ayarlanırsa yolcuya indirim uygulanır.
|
plans[].per_min_pricing[].interval |
Negatif olmayan tam sayı | Zorunlu |
Segmentin
Segmentin Bu alan, |
plans[].per_min_pricing[].end |
Negatif olmayan tam sayı | İsteğe bağlı |
Segmentin Bu alan ayarlanmamışsa veya boşsa seyahatin sonuna kadar segmentten sonraki |
System_pricing_plans.json örnekleri
Bu bölümde bilgilendirici system_pricing_plans.json
kod örnekleri verilmiştir. Her örneğin alakalı ayrıntıları ve sonuçları da verilmiştir.
System_pricing_plans.json için 1. örnek
Aşağıdaki fiyat planı kodu örneği, aşağıdaki aralıklar için yolculuk süresine göre ücretleri göstermektedir:
- [0,1): 2 TL
- Yolculuk bir dakikadan kısaysa kullanıcı 2 ABD doları öder.
- Örnek: 59 saniyelik gezi
- [1,2): 3 TL
- Yolculuk daha uzun veya bir dakikaysa ancak iki dakikadan kısaysa kullanıcı 2 ABD doları + 1 ABD doları = 3 ABD doları ödeme yapar.
- Örnekler: 1 dakikalık gezi; 1 dk. 45 saniyelik gezi
- x dakika sayısı, x değeri 2'den büyük veya 2'ye eşittir:
3 ABD doları + ((2 ABD doları + 1 ABD doları) * (x - 2 + 1))
USD
- Yolculuk iki dakikadan uzun veya iki dakikaya eşitse kullanıcı, yolculuğun iki dakikadan kısa olan kısmı için 3 ABD doları, (iki dakika sonra ve dahil olmak üzere her dakika için [
per_min_pricing
listesinin ilk girişinden itibaren devam eder] + 2 ABD doları [per_min_pricing
listesinin ikinci girişi) öder. - Örnekler:
- 2 dakikalık seyahat maliyeti 3 ABD doları + (2 ABD doları + 1 ABD doları) = 6 ABD doları
- 3 dk. süreli 2 dakikalık seyahat 3 TL + (2 TL + 1 TL) = 6 TL
- 3 dakikalık gezi maliyeti 3 ABD doları + ((2 ABD doları + 1 ABD doları) * 2) = 9 ABD doları
- 10 dakikalık gezi maliyeti 3 ABD doları + ((2 ABD doları + 1 ABD doları) * 9) = 30 ABD doları
- Yolculuk iki dakikadan uzun veya iki dakikaya eşitse kullanıcı, yolculuğun iki dakikadan kısa olan kısmı için 3 ABD doları, (iki dakika sonra ve dahil olmak üzere 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 fiyat hem de dakika başına ücret alınan bir fiyat planı için bir kod örneği gösteriyoruz:
- Daha ayrıntılı olarak belirtmek gerekirse, son kullanıcıdan km başına 0,25 Kanada doları ile dakika başına 0,50 Kanada doları ücret alınır.
- Bu oranların her ikisi de eş zamanlı olarak gerçekleşir ve birbirine bağlı değildir.
- Bu nedenle, 10 dakika süren bir kilometrelik yolculuk için 9 Kanada doları ücret alınır. Maliyetin dökümü şu şekildedir:
- 3 ABD doları, taban fiyat
- Seyahatin başlangıcında bir kez, 1 km işaretinde bir kez ödeme yapılan 0,25 ABD doları * 2.
- Her dakikanın başında bir kez ödeme alınır.0, 5 * 11. Şarjlar 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şula bağlı olarak gerekli: geofencing_zones.json (Yerleştirilmiş ve sabit olmayan sistem)
Gerektiğinde GBFS spesifikasyonuna bakın.
Bu feed, bağımsız araçlar için coğrafi çit verileri tanımlar. Coğrafi sınır verileri, araçların yola çıkmasına ve sürüşü bitirmelerine izin verilen yerleri belirten coğrafi sınırları ve araçların gidebileceği hızları içerir. Bu hız, aracın maksimum hızı veya aracın bulunduğu yolun hız sınırını (hangisi daha düşükse) belirler. Sürücüler, yerel yasalara ve kurallara uymalıdır.
Bu verileri, bir kullanıcı belirli bir rotayı aradığında yolculuğun sonu belirli coğrafi sınırların dışında kaldığında Yaratıcılık sonucunun filtrelenmesi için kullanırız. Coğrafi sınırların belirtilmediği durumlarda Google, hizmeti herhangi bir sınır kısıtlaması yokmuş gibi işler.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
geofencing_zones |
Nesne | Zorunlu | IETF RFC 7946 tarafından tanımlandığı gibi bir FeatureCollection nesnesi, features adlı bir alanı olan bir nesnedir. features bir JSON dizisidir.
JSON dizisindeki her öğe bir Feature nesnesidir.
Coğrafi sınır çizilmiş her alt bölge, 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 dizisinin her bir öğesinin bir Feature nesnesi olduğu JSON dizisi. |
geofencing_zones.features[].type |
Dize | Zorunlu | IETF RFC 7946'da açıklandığı şekilde Feature olarak ayarlayın. |
geofencing_zones.features[].geometry |
GeoJSON Çoklu Poligon | Zorunlu | Yolculukların nerede başlayıp bittiğini, bittiğini, geçtiği yerleri ve diğer sınırlamaları ortadan kaldıran bir GeoJSON Çoklu Poligonu. Noktalar saat yönünde düzenlenir, poligonun çevreleyen alanı tanımlarken saat yönünün tersine, poligonun dışındaki alanı tanımlar. Bu konuyla ilgili daha fazla bilgi için sağdaki kurala bakın. |
geofencing_zones.features[].properties |
Nesne | Zorunlu | Seyahat izinlerinin ve sınırlamalarını tanımlayan bir nesne. |
geofencing_zones.features[].properties.rules |
Dizi | İsteğe bağlı | Her bir nesnenin yalnızca bir kural tanımladığı bir nesne dizisi. İki veya daha fazla kural herhangi bir şekilde çakışırsa, çakışırsa veya başka bir şekilde çakışırsa JSON dosyası sırasına göre tanımlanan ilk kural öncelikli olur. |
geofencing_zones.features[].properties.rules[].vehicle_type_id |
Dizi | İsteğe bağlı | Her bir öğenin vehicle_type_id olması gereken bir araç türü kimliği dizisi. Kısıtlamaların uygulanması gerekir.
vehicle_type_id özelliği belirtilmezse kısıtlamalar tüm araç türleri için geçerlidir. |
geofencing_zones.features[].properties.rules[].ride_allowed |
Boole | Zorunlu | Bağımsız ve plansız bisiklet gezisi, alt bölgede aşağıdaki gibi başlayıp başlayıp bitemez:
|
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]
]]]
}
}]
}
Gerekli: Station_information.json (Yerleştirilmiş sistem)
Gerektiğinde GBFS spesifikasyonuna bakın.
Bu feed, herkese açık bisiklet paylaşımı istasyonlarıyla ilgili genel bilgileri tanımlar.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
stations |
Dizi | Zorunlu | Her bir nesnenin yalnızca bir istasyon tanımladığı nesne dizisi. |
stations[].station_id |
Dize | Zorunlu | İstasyonun tanımlayıcısı. |
stations[].name |
Dize | Zorunlu |
İstasyonun bulunduğu şehrin yerel dilinde istasyonun herkese açık adı. name , uygun olduğu durumlarda istasyondaki tabelalarda kullanılanlara uygun olmalı veya istasyonun konumu, bir ara sokak veya yerel bir önemli nokta kullanılarak yansıtılmalıdır.
Tabelalarda açık bir şekilde kullanılmıyorsa "st." ve "Street" gibi kısaltmalar kullanmayın. name , yer adlarının büyük harf kullanımıyla ilgili yerel kurallara uygun şekilde büyük harfle yazılmalıdır (büyük harfle değil).
|
stations[].lat |
Enlem | Zorunlu | İstasyonun WGS 84 enlemi, ondalık derece biçimindedir. |
stations[].lon |
Boylam | Zorunlu | İstasyonun WGS 84 boylamı, ondalık derece biçiminde. |
stations[].capacity |
Negatif olmayan tam sayı | İsteğe bağlı | İstasyonda bulunan ve hem kullanılamayan hem de kullanılamayan toplam sabitleme noktası sayısını temsil eden negatif olmayan tam sayı. |
stations[].rental_uris |
Nesne | Zorunlu |
İlgili alanlarında Android, iOS ve web için kiralama URI'leri içeren JSON nesnesi. Bu URI'ler belirtilirse sağlayıcının ilk katılımı sırasında ayarlanan varsayılan derin bağlantıları geçersiz kılarlar. |
stations[].rental_uris.android |
URI | Koşula bağlı olarak gereklidir |
Android Derin Bağlantılarını desteklemek için Bu URI, birden fazla istasyon hakkında bilgi içeren genel bir kiralama sayfası değil, tek bir istasyona özgü derin bağlantı olmalıdır. Derin bağlantı, herhangi bir istem, geçiş sayfası veya giriş olmadan kullanıcıyı doğrudan istasyona götürmelidir. Kullanıcıların uygulamayı hiç açmamış olsalar bile istasyonu görebilmelerini sağlayın. İş ortağının ilgili istasyonu tanımlamak için başka yöntemleri olduğu sürece URI'lerin her zaman İş ortağının Android kiralama uygulaması varsa bu alan zorunludur. Android App Links örneği:
|
stations[].rental_uris.ios |
URI | Koşula bağlı olarak gereklidir |
İstasyonun kiralama uygulamasını başlatmak için iOS'te kullanılabilecek bir URI.
Bu konu hakkında daha fazla bilgi için Apple'ın iOS özel URL şemaları ile ilgili makalesine göz atın.
Sağlanan Bu URI, birden fazla istasyon hakkında bilgi içeren genel bir kiralama sayfası değil, tek bir istasyona özgü derin bağlantı olmalıdır. Derin bağlantı, herhangi bir istem, geçiş sayfası veya giriş olmadan kullanıcıyı doğrudan istasyona götürmelidir. Kullanıcıların uygulamayı hiç açmamış olsalar bile istasyonu görebilmelerini sağlayın. URI'ların istasyon için İş ortağının iOS kiralama uygulaması varsa bu alan zorunludur. iOS Geçiş Bağlantıları örneği:
|
stations[].rental_uris.web |
URL | İsteğe bağlı | Bu istasyonda araç kiralamayla ilgili daha fazla bilgi göstermek için web tarayıcısı tarafından kullanılabilecek bir URL. Bu URL, birden fazla istasyon hakkında bilgi içeren genel bir kiralama sayfası değil, ayrı bir istasyona özgü derin bağlantı olmalıdır. Derin bağlantı, herhangi bir istem, geçiş sayfası veya giriş olmadan kullanıcıyı doğrudan istasyona götürmelidir. Kullanıcıların uygulamayı hiç açmamış olsalar bile istasyonu görebilmelerini sağlayın. URL'lerin istasyon için Bu alan ayarlanmazsa derin bağlantılar web tarayıcısı için desteklenmez. Ö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"
}
},
]
Gerekli: Station_status.json (Yerleştirilmiş sistem)
Gerektiğinde GBFS spesifikasyonuna bakın.
Bu feed, herkese açık bisiklet paylaşımı istasyonlarının güncel ve mevcut durumunu tanımlar.
Alan adı | Tür | Koşul | Açıklama |
---|---|---|---|
stations |
Dizi | Zorunlu | Her bir nesnenin yalnızca bir istasyon tanımladığı bir nesne dizisi. |
stations[].station_id |
Dize | Zorunlu | İstasyonun tanımlayıcısı. |
stations[].num_bikes_available |
Negatif olmayan tam sayı | Zorunlu |
Fiziksel olarak istasyonda bulunan ve kiralanmak üzere sunulabilecek işlevsel bisikletlerin sayısını temsil eden negatif olmayan tam sayı. İstasyonun bisiklet kiralayıp kiralamadığını belirlemek için istasyonun |
stations[].vehicle_types_available |
Dizi | İsteğe bağlı |
Bir istasyonda bulunan her araç türüne göre kategorize edilmiş 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 açıklanan şekilde her araç türünün istasyondaki |
stations[].vehicle_types_available[].count |
Negatif olmayan tam sayı | Zorunlu |
vehicle_types.json dosyasında tanımlandığı şekilde istasyonda ilgili |
stations[].num_docks_available |
Negatif olmayan tam sayı | Koşula bağlı olarak gereklidir |
İstasyonun sınırsız bağlantı noktası kapasitesi olmadığı sürece bu alan gereklidir. Örneğin, sanal istasyonların sınırsız bağlantı noktası kapasitesi vardır ve alanın doldurulması zorunlu değildir. İstasyonda araç iadelerini kabul edebilen fiziksel yuvaların toplam sayısını temsil eden negatif olmayan tam sayı. İstasyonun şu anda bisiklet iadelerini kabul edip etmediğini belirlemek için istasyonun |
stations[].is_installed |
Boole | Zorunlu |
İstasyonun şu anda cadde üzerinde ve yüklü olduğunun doğru olduğunu belirten bir Boole. İstasyonun caddeye yüklenmesi durumunda İstasyonun caddeye eklenmemesi durumunda |
stations[].is_renting |
Boole | Zorunlu |
İstasyonun şu anda bisiklet kiraladığını doğrulayıp belirtmediğini gösteren bir Boole. İstasyonun bisiklet kiralama hizmeti mevcutsa İstasyonun bisiklet kiralama hizmeti yoksa |
stations[].is_returning |
Boole | Zorunlu |
İstasyonun bisiklet iadelerini şu anda kabul edip etmediğini belirten bir Boole. İstasyon şu anda bisiklet iadelerini kabul ediyorsa İstasyon şu anda bisiklet iadelerini 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
},
]