API Google Maps Directions: вычисляет, находится ли данная точка на маршруте - PullRequest
0 голосов
/ 05 мая 2018

Вычисляет, лежит ли данная точка на пути, вот что я пробовал до сих пор:

const googleMapsClient  = require('@google/maps').createClient({
    key: 'KEY'
});

googleMapsClient.directions({
    origin: 'Bangalore, Karnataka',
    destination: 'Mumbai, Maharathra',
    mode: "driving",
}, function(err, response) {
    if (!err) {
        console.log(response);
    }
console.error("ERR", err);
})

Этот API возвращает детали маршрута. Есть ли способ, которым я могу получить такую ​​же функцию функции isLocationOnPath (метод в Android SDK) в клиенте Google Node.JS.

1 Ответ

0 голосов
/ 06 мая 2018

Клиент Node.js для Google Maps Services не имеет геометрических функций, но в качестве альтернативы вы можете использовать Turf.js и mapbox / polyline следующим образом

googleMapsClient.directions({
    origin: 'Bangalore, Karnataka',
    destination: 'Mumbai, Maharathra',
    mode: "driving",
})
.asPromise()
.then((response) => {
    let points = []
    response.json.routes[0].legs[0].steps.forEach( (step) => {
        polyline.decode(step.polyline.points).forEach( (point) => {
            points.push([point[1], point[0]])
        })
    })
    let linestring = turf.lineString(points)
    let snapped = turf.nearestPointOnLine(linestring, turf.point([77.59464, 12.9726]))
    console.log(snapped.properties.dist)
})
.catch((err) => {
    console.log(err);
})

Так что если snapped.properties.dist <= какое-то значение, это означает, что точка принадлежит маршруту с заданным допуском. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...