Mwanzo/Miongozo/Waendelezaji
Waendelezaji

Upatikanaji wa baiskeli wakati halisi: jinsi ya kuionyesha katika programu?

Onyesha upatikanaji wa baiskeli kwa API ya ROOTE: tarehe, uhai, thamani zisizojulikana, sasisho na data zilizopitwa kwenye programu yako.

By ROOTE·Soma kwa dakika 7
Upatikanaji wa baiskeli wakati halisi: jinsi ya kuionyesha katika programu?
Upatikanaji uliochunguzwa, na muktadha wake.

Muhtasari kwa sekunde chache

Onyesha idadi inayopatikana pamoja na hali yake ya uhai, tarehe za kumbukumbu na masharti ya kuchukua baiskeli. Thamani isiyojulikana inaendelea kuwa isiyojulikana; uchunguzi wa zamani hauwezi kubadilika kuwa wa wakati halisi kwa sababu programu yako imempokea sasa.

Ili kuonyesha upatikanaji wa baiskeli wakati halisi katika programu, ungana na idadi iliyorejeshwa na hali yake ya uhai na uwezo wa kuchukua gari. Uchunguzi unaelezea kile chanzo kilichojua wakati fulani; haidhinishi kwamba baiskeli bado itakuwa pale unapoifika.

Mkataba wa usafiri wa ROOTE hutofautisha vituo, magari binafsi na hali zao. Kiolesura kinapaswa kutafsiri tofauti hizi bila kuchanganya thamani isiyojulikana, kituo tupu na chanzo kisichopatikana kwa muda mfupi.

Kutenganisha kituo na gari binafsi

Kituo kinaweza kuonyesha hesabu za baiskeli na sehemu za kurudisha. Gari binafsi lina hali ya upatikanaji na taarifa nyingine zinazowezekana. Epuka kuhesabu kituo kama baiskeli au kuongeza hesabu zinazowakilisha hisa sawa.

Katika DTO ya usafiri ya ROOTE, availability.bikes na availability.docks zinaweza kuwa zisizojulikana. Sehemu za uendeshaji au betri zinapaswa kuonyeshwa tu ikiwa zipo na zinaelezewa kulingana na mkataba.

Mkataba wa OpenAPI wa ROOTE

Soma uhai na tarehe za kumbukumbu

SehemuMaelezo
freshness.stateHali iliyo tangazwa: fresh (mpya), stale (imepitwa), unknown (haijulikani) au static (imara)
freshness.source_updated_atTarehe ya sasisho la chanzo, ikiwa inajulikana
freshness.received_atTarehe ya kupokelewa iliyoonyeshwa na mkataba
freshness.expires_atMuda wa uhalali uliotangazwa, ikiwa unajulikana
availability.bikesKiasi kinachojulikana au thamani isiyojulikana
pickup.enabled na pickup.stateTaarifa kuhusu kuchukua baiskeli kwenye kituo

Muda wa simu yako siyo mara zote ndio muda wa uchunguzi. Matokeo yaliyopokelewa saa 10 yanaweza kuwa na chanzo kilicho sasishwa saa 9:45. Usionyeshe “imasasishwa sasa” kulingana na saa ya kupokea tu kwa kiolesura chako.

Tambua hali tofauti za kuonyesha

Data iliyopokelewaOnyesho la kutarajiwa
Kiasi kinachojulikana na data mpyaKiasi kilichochunguzwa na taarifa ya muda
Kiasi sawa na sifuriHakuna baiskeli iliyochunguzwa, yenye muktadha wa muda
Kiasi nullUpatikanaji hauna uhakika
Hali ya stale au muda umepitaData ya zamani; pendekeza sasisho
pickup.enabled=falseKuchukua haipatikani hata kama hesabu ni chanya
Hitilafu ya utafutajiUpatikanaji wa muda mfupi haupatikani, bila kubadilisha kuwa sifuri

Usichukulie hali unknown au static kuwa mpya. Taarifa ya kituo inaweza kuwa thabiti wakati hesabu inabadilika haraka. Hifadhi pia onyo na alama zinazotakiwa na jibu.

Mfano wa ubana kabla ya kuonyeshwa

Kazi ifuatayo hutengeneza hali ya kuonyesha kutoka kwa kituo kilichothibitishwa dhidi ya mchoro wa ROOTE. Sio kimesaijili cha kutimiza jibu kikamilifu. Leblani za muonekano zinapaswa kutoka kwa funguo za tafsiri za kiolesura chako.

function availabilityView(station, now = Date.now()) {
  const freshness = station.freshness;
  const expiresAt = freshness.expires_at
    ? Date.parse(freshness.expires_at) : null;
  const expired = expiresAt !== null &&
    Number.isFinite(expiresAt) && expiresAt <= now;
  if (station.pickup.enabled === false ||
      station.pickup.state === 'unavailable_now') {
    return { state: 'pickup_unavailable', count: null };
  }
  if (expired || freshness.state === 'stale') {
    return { state: 'stale', count: null };
  }
  const count = station.availability.bikes;
  if (freshness.state !== 'fresh' || count === null ||
      !Number.isFinite(count) || count < 0) {
    return { state: 'unknown', count: null };
  }
  return {
    state: count === 0 ? 'empty' : 'observed', count,
    sourceUpdatedAt: freshness.source_updated_at,
    receivedAt: freshness.received_at,
    pickupState: station.pickup.state
  };
}

Hata kwa hali ya observed, usibadilishe pickupState=unknown kuwa kuchukua kuthibitishwa. Hesabu bado ni uchunguzi. Onyesha muktadha wa kuchukua ikiwa bidhaa yako inasaidia mtumiaji kuchagua kituo.

Sasisha bila kupitiliza kuita mara kwa mara

Badilisha sasisho kulingana na muda wa kumalizika uliotangazwa, masharti ya huduma na tabia ya mtumiaji. Jumlisha maombi sawa, epuka simu za nyuma kwenye ukurasa usiotumika na katiza zile zinazobadilishwa na utafutaji mpya.

Muda wa kuhifadhi kwa eneo hauoneshi uhai wa chanzo. Baada ya hitilafu, unaweza kuhifadhi uchunguzi wa mwisho uliobainishwa ikiwa kiolesura chako kinaonyesha wazi kuwa ni wa zamani. Usifute tofauti hii baada ya mrejesho wa kwanza uliopata ikiwa chanzo bado ni stale.

Elewa uhusiano na GBFS

GBFS huelezea huduma za usafiri wa pamoja na hali zao zilizochapishwa. Ushirikiano wa moja kwa moja unapaswa kutafsiri faili, toleo na tarehe za mtiririko. Kwa API iliyo poo sava, tumia mkataba wa API; usiongeze sehemu ya GBFS isiyopo jibu.

Chagua kati ya GTFS, GTFS Realtime na GBFS

Jaribu hali zinazomchanganya msomaji

Jaribu sifuri halisi, thamani isiyojulikana, muda umepita, kuchukua kudhibitiwa na hitilafu baada ya matokeo sahihi. Kagua pia maeneo ya saa ya kuonyesha. Hesabu chanya haisiwezi kuwa “baiskeli imehifadhiwa” na upatikanaji hautakiwi kuonyesha sifuri isiyo ya kweli.

Saidia majibu tupu na makosa

Tekeleza kanuni hizi kwenye msaidizi wa AI

Mwongozo wa mtumiaji kupata baiskeli

Kwa wasanidi programuROOTE Mobility API

Usafiri kuzunguka mahali.
Moja kwa moja kwenye programu yako.

  • Tafuta
    karibu na eneo
  • Pata
    data za usafiri
  • Jumuisha kwenye
    programu yako

Toka kwenye ramani hadi data: tafuta huduma za usafiri na huduma karibu na wewe kwa API ya ROOTE.

Maswali yanayoulizwa mara kwa mara

Je, kiasi chenye thamani chanya kinahakikisha baiskeli ni kwangu unapoifika?

Hapana. Kinaelezea uchunguzi, ambao unaweza kubadilika kati ya utafutaji na ufika wako.

Je, null inaweza kubadilishwa na sifuri?

Hapana. null inaonyesha thamani isiyojulikana; sifuri ni kiasi kinachojulikana na kina maana tofauti.

Je, ni lazima kusasisha kila sekunde chache?

Tumia dalili za uhalali, mipaka ya huduma na mahitaji ya kiolesura chako. Mzunguko wa wakati bila mpangilio hauhakikishi chanzo kipya zaidi.

Kwa nini usitazame karibu nawe?

Chunguza mtaa wako na ROOTE na utambue taarifa zilizopo kufanikisha safari yako.

Chunguza ramani ya ROOTE ↗