Запретить здесь Maps изменять положение и масштабировать карту при расчете маршрутаPython

Программы на Python
Anonymous
Запретить здесь Maps изменять положение и масштабировать карту при расчете маршрута

Сообщение Anonymous »

Я программирую приложение, похожее на Uber или Cabify, когда вы делитесь своим местоположением или маршрутом, чтобы люди, которым вы его отправляете, могли видеть маршрут в режиме реального времени.
Я не использовал здесь для этого, больше всего я использовал его для отображения статических местоположений и так далее, я программировал это на ReactJS и Python, я следовал инструкции Here в ReactJS (которая очень маленькая) и что Я делаю это, когда обнаруживаю изменение координат автомобиля и пересчитываю маршрут. Я не знаю, есть ли лучший способ сделать это или более оптимальный, но я делаю это так, потому что мне нужно вычислить расчетное время, и API маршрутизации дает мне это.
Проблема в том, что каждый раз, когда он пересчитывает маршрут, он центрирует карту и перемещает ее в локацию, но я не хочу, чтобы он это делал, а просто перемещал точки и все, у меня нет нашел документацию по этому поводу, просто функция getViewModel().setLookAtData, которая перемещает карту, но она не работает, я пытался сохранить предыдущий масштаб и положение и загрузить их после расчета маршрута, но это не работает для Что я могу сделать?
Я записал видео, которое, по моему мнению, лучше всего иллюстрирует проблему, спасибо.
Видео
Работа с React

Код: Выделить всё

      var zoom = map.getZoom();
var center = map.getCenter();
const sections = response.routes[0].sections;
for (const section of sections) {
var horaestimada = segundosAHorasMinutos(section.travelSummary.duration);
console.log(`Duración del viaje: ${horaestimada}`);
dispatch(setETA(horaestimada));
}
const lineStrings = [];
sections.forEach((section) => {
// convert Flexible Polyline encoded string to geometry
lineStrings.push(H.geo.LineString.fromFlexiblePolyline(section.polyline));
});
const multiLineString = new H.geo.MultiLineString(lineStrings);
const bounds = multiLineString.getBoundingBox();

// Create the polyline for the route
const routePolyline = new H.map.Polyline(multiLineString, {
style: {
lineWidth: 5
}
});

// Remove all the previous map objects, if any
map.removeObjects(map.getObjects());
// Add the polyline to the map
var htmlbody
for (const tripulante of tripulacion) {
htmlbody = '
  '+tripulante.cargo+':  ' + tripulante.nombre+ ' - ' + tripulante.documento+'
';
}
map.addObject(routePolyline);
map.addObjects([
// Add a marker for the user
new H.map.Marker(start, {
icon: getMarkerIcon(estado),
data: {
message: '
'+nombre+'
' + htmlbody,
idmarcador: 'xd',
// Puedes agregar más propiedades personalizadas aquí
}
}),
// Add a marker for the selected restaurant
new H.map.Marker(destination, {
icon: getMarkerIcon(null),
data: {
message: '
 Destino 
',
idmarcador: 'xd',
// Puedes agregar más propiedades personalizadas aquí
}
})
]);
Я пытался сохранить предыдущий масштаб и положение и загрузить их после расчета маршрута, но у меня это не работает.
Я тоже пытался сохранить положение карты следующим образом: map.getViewModel().setLookAtData({bounds: map.getViewModel().getLookAtData().bounds}, true);

Подробнее здесь: https://stackoverflow.com/questions/784 ... ing-a-rout

Вернуться в «Python»