Estoy creando un mapa, luego una ruta, usando RouteService V8, así que obtengo el resultado de routeservice, divido en secciones para crear una polilínea y luego lo muestro en el mapa. Me gustaría saber cómo puedo hacer que esta ruta se pueda arrastrar como la plataforma Wego de aquí cuando configuro destinos y puedo cambiar la ruta haciendo clic en la línea y arrastrando para cambiar. Vi una pregunta como la mía, pero no pude entender el código. Esta pregunta No entendí cuáles son las alternativas y cómo manejar una polilínea arrastrable, tenga en cuenta que no quiero cambiar mi origen, punto de destino ni mis vías, solo el 'tramo' entre los puntos.
Mi código para crear y mostrar la ruta:
var map; var platform = new H.service.Platform({ apikey: mykey }); var defaultLayers = platform.createDefaultLayers(); map = new H.Map(document.getElementById("map"), defaultLayers.vector.normal.map, { center: { lat: centerLat, lng: centerLong }, zoom: 13, pixelRatio: window.devicePixelRatio || 1, }); window.addEventListener("resize", () => map.getViewPort().resize()); behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map)); uiMapa = H.ui.UI.createDefault(map, defaultLayers); map.addEventListener( "tap",function (evt) { },false); ... function genereteRoute() { var routingParameters = { routingMode: "fast", transportMode: "car", origin: origin, via: new H.service.Url.MultiValueQueryParameter(vias), destination: destination, return: "polyline,summary,routeHandle", }; // CALLBACK var onResult = function (result) { console.log("result:" + JSON.stringify(result)); if (result.routes.length) { result.routes[0].sections.forEach((section) => { let linestring = H.geo.LineString.fromFlexiblePolyline(section.polyline); let routeLine = new H.map.Polyline(linestring, { style: { strokeColor: "blue", lineWidth: 3 }, }); linhaRota.push(routeLine); map.addObjects([routeLine]); }); } calcularTempoDistancia(result.routes[0]); }; var router = platform.getRoutingService(null, 8); router.calculateRoute(routingParameters, onResult, function (error) { alert(error.message); }); }