У меня много полилиний из KmlGroup.Я хотел бы иметь возможность отображать длину каждой полилинии.Похоже, что h.Map.Polyline.getBounds () не имеет опции для возврата длины строки.У кого-нибудь есть предложения о том, как я могу получить эти данные?
Вы можете сделать это вручную.Получить геометрию из линии ( H.map.Polyline # getGeometry ), затем пройтись по точкам и вычислить расстояние между ними.Что-то вроде:
function getPolylineLength(polyline) { const geometry = polyline.getGeometry(); let distance = 0; let last = geometry.extractPoint(0); for (let i=1; i < geometry.getPointCount(); i++) { const point = geometry.extractPoint(i); distance += last.distance(point); last = point; } if (polyline.isClosed()) { distance += last.distance(geometry.extractPoint(0)); } // distance in meters return distance; }
Вы не можете напрямую получить длину полилинии.Длина полилинии - это не что иное, как расстояние между двумя координатами.Этого вы можете добиться, используя Routing API и находя расстояние.
Получите точки широты и длины вашей полилинии, используя метод getGoemetry (). GetLatLngAltArray (пример: map.getObjects () [0] .getGeometry () .getLatLngAltArray ()).Передайте это параметру маршрутной точки API и получите расстояние.Надеюсь, это поможет!
https://route.api.here.com/routing/7.2/calculateroute.json?waypoint0=52.5160%2C13.3779&waypoint1=52.5206%2C13.3862&mode=fastest%3Bcar%3Btraffic%3Aenabled&app_id=devportal-demo-20180625&app_code=9v2BkviRwi9Ot26kp2IysQ&departure=now