Duraklarla rota
Chargetrip Route API ile bir EV rotası hesaplarken, via kullanarak başlangıç ile varış noktası arasına ara duraklar ekleyebilirsiniz.
Duraklar, tercih edilen bir şarj istasyonunda şarj etmek, yolcu almak veya bir restoranda mola vermek gibi gerçek dünya seyahat senaryoları için rotayı özelleştirmenizi sağlar.
Durak türleri
Chargetrip iki tür ara durağı destekler:
| Durak | Şarj | Girdi alanı | Amaç |
|---|---|---|---|
| Konum | Hayır | via.geometry | Coğrafi durak (yolcu alma, teslimat, manzaralı güzergah sapması, kahve molası). |
| İstasyon | Evet | via.properties.station.station_id | Açıkça seçilmiş şarj istasyonu. |
Durak süresi
Her durağın süresini yapılandırabilirsiniz. Durağın türüne (şarj olan veya şarj olmayan) bağlı olarak stop_duration farklı konumlarda yapılandırılır ve farklı davranışlara sahiptir:
1. Şarj olmayan duraklarda
Durak süresi input.via.properties.location.stop_duration konumunda yapılandırılır. Bu süre tam durak süresini temsil eder ve aracın şarj veya sürüş süresini etkilemeden doğrudan toplam yolculuk süresine eklenir.
2. Şarj olan duraklarda
Durak süresi input.via.properties.station.stop_duration konumunda yapılandırılır. Bu değer minimum durak süresini temsil eder. Araç istasyonda en az bu süre boyunca kalır, ancak rota planlayıcı yapılandırılmış charge_mode değerine bağlı olarak durağı uzatabilir:
-
ALWAYS_TO_MAX_CHARGE: Gerekirse yapılandırılmış maksimum SoC değerine ulaşmak için şarj süresini uzatır. İstenenstop_durationdeğeri maksimum SoC değerine ulaşmak için gereken süreyi aşarsa, kalan süre boşta bekleme olarak kaydedilir. -
OPTIMIZE_TRAVEL_TIME: Yalnızca toplam yolculuk süresini kısaltıyorsa (örneğin sonraki bir şarj durağını ortadan kaldırarak) kalış süresinistop_durationdeğerinin ötesine uzatır. Aksi halde tam olarak istenen süre kadar şarj eder. İstenenstop_durationdeğeri maksimum SoC değerine ulaşmak için gereken süreyi aşarsa, kalan süre boşta bekleme olarak kaydedilir.
Herhangi bir değer verilmezse, planlayıcı şarj süresini yalnızca rotanın charge_mode değerine göre optimize eder.
Mevcut bir rotaya istasyon ekleme
Yaygın bir senaryo, kullanıcının zaten duraklara sahip bir rota için şarj istasyonu seçmesidir, örneğin arayüzünüzde gösterilen alternatif bir istasyon. Kodsuz çözüm, bir istasyonu yeniden sıralama mantığı olmadan otomatik olarak via durağı olarak eklemek için bu yaklaşımı kullanır, böylece rota sorunsuz biçimde güncellenir.
via dizisinin sırası, durakların ziyaret edildiği sıradır. Sona eklenen bir istasyon, rotanın başına yakın olsa bile en son ziyaret edilir. İstasyonu doğru konuma eklemek için, istasyonun konumunu rotada zaten bulunan yol noktalarıyla karşılaştırın:
- Yol noktalarını sırayla toplayın.
Değiştirmek istediğiniz rotanın
request_inputalanındanorigin, mevcut herviadurağını vedestinationdeğerini alın.request_inputiçindeki her yol noktasınıngeometrydeğeri mevcuttur, yalnızcastation_idile oluşturulan duraklar da dahil. - Yol noktalarından geçen bir çizgi çizin.
Yol noktalarını sırayla birleştirerek bir çizgi oluşturun. Bu çizginin iki yol noktası arasındaki her parçası bir segmenttir.
- İstasyona en yakın segmenti bulun.
Çizgi üzerinde istasyonun koordinatlarına en yakın noktayı bulmak için bir coğrafi konum kütüphanesi kullanın. Örneğin turf.js, bu noktayı içeren segmentin indeksini de döndüren
nearestPointOnLineişlevini sunar. Bu indeks, segmentin başladığı yol noktasının indeksidir. - İstasyonu bu yol noktasından sonra ekleyin.
Yol noktası listesi
originile başlar, bu nedenle bu listedeki bir yol noktasının indeksi,viaiçine eklenecek yeni öğenin hemen ardından yer alması için gereken konuma karşılık gelir.0indeksi, istasyonun ilk durak olarak eklendiği anlamına gelir. - Varıştan sonra asla eklemeyin.
En yakın nokta son segmentteyse indeks
destinationdeğerini gösterebilir. Buraya eklemek istasyonu rotanın sonundan sonraya yerleştirir. Bunun yerine önceki yol noktasını kullanın, böylece istasyondestinationöncesindeki son durak olarak eklenir.
Dikkat edilmesi gerekenler
- Çizgi, yol noktalarını düz segmentlerle birleştirir ve rotanın yollarını takip etmez. Alternatif istasyonlar her zaman rotanın çevresindeki 5 ila 10 km’lik bir koridorda yer alır, bu nedenle rotadan fazla sapmazlar ve en yakın segment çoğunlukla doğrudur. Bu koridorun dışındaki istasyonlar için başka çözümler daha uygun olabilir.
- Rotanın
request_inputalanı esas kaynaktır. Yeni isteği bu alandan oluşturun vevehicleilechargingayarları gibi diğer tüm alanları değiştirmeden bırakın.
Örnekler
30 dakikalık, şarj olmayan bir durakla rota hesaplayın.
Bu durağa 1800 saniyelik (30 dakika) bir stop_duration eklenmiştir. Ek bir fayda sağlanamayacağı için durak süresi bu olacaktır.
En az 30 dakikalık bir şarj durağıyla rota hesaplayın.
Bu durağa 1800 saniyelik (30 dakika) bir stop_duration eklenmiştir. Bu, minimum durak süresi olacaktır. Daha uzun şarj etmek güzergaha fayda sağlıyorsa süre artacaktır.
Minimum durak süresi olmayan bir şarj durağıyla rota hesaplayın.
Bu durakta stop_duration belirtilmemiştir: planlayıcı en uygun şarj süresini şarj moduna göre hesaplar.
Bu içerik yardımcı oldu mu?