上回書說到,躲開攝像頭的基本功能實現了,但有三個核心問題: (1)速度慢 (2)距離遠易失敗 (3)地圖限制 第一個問題:較為簡單,把幾千個攝像頭按行政區劃分好帶上編號,在路線分段避讓時按片兒計算,綜合測試速度提升了50%。 //找到每段step途徑的 let wayDistrictsCamera ...
上回書說到,躲開攝像頭的基本功能實現了,但有三個核心問題:
(1)速度慢
(2)距離遠易失敗
(3)地圖限制
第一個問題:較為簡單,把幾千個攝像頭按行政區劃分好帶上編號,在路線分段避讓時按片兒計算,綜合測試速度提升了50%。
//找到每段step途徑的
let wayDistrictsCamera = [];
step.cities.map(city => {
if (city.adcode == "110100") {
city.districts.map(cityDistrict => {
wayDistrictsCamera = wayDistrictsCamera.concat(camera.filter(cf => cf.adcode == cityDistrict.adcode));
})
}
})
第二個問題:略微複雜,當終點設置成某個六環入口時,規劃成功,也確實是我線下實踐過的路線,但是當我終點設置到外省時,失敗了。所以增加了一個功能,允許設置一個途經點(多了怕影響效率,雖然我沒試