Маршрут Google Maps исчезает на странице, несмотря на сохраняемое состояниеJavascript

Форум по Javascript
Ответить
Anonymous
 Маршрут Google Maps исчезает на странице, несмотря на сохраняемое состояние

Сообщение Anonymous »

Я разрабатываю приложение для отслеживания в реальном времени, используя ядро ​​ASP.NET с SignalR и Google Maps JavaScript API. Мое приложение отображает маркеры и вычисленный маршрут на карте, который подключает два типа пользователей. Изменения цвета маркера (например, красный для неактивного, желтого для активного, фиолетового для отмены) на основе флагов, которые хранятся в моей собственной базе данных. На практике, после обновления, хотя позиции маркера восстанавливаются, вычислимый маршрут исчезает, и, в одном сценарии, маркер, который ранее отображался в виде желтого цвета в красный цвет, хотя база данных все еще указывает на активное состояние. Значения флага с нижним регистом, прежде чем сравнивать их в моем JavaScript. база данных. В моих контроллерах ASP.NET Core я прохожу постоянные значения для активной поездки студента, отмены поездки и последнего местоположения водителя через Viewbag. Затем, в JavaScript моего вида Razor, я заставляю эти логические флаги сзади и сравниваю их с «истинными», чтобы решить, какой значок маркера отобразить. Например, на моей студенческой панели приборной панели я инициалирую флаг таким образом: < /p>
var studentActiveTrip = ('@(ViewBag.StudentActiveTrip != null ? ViewBag.StudentActiveTrip.ToString().ToLower() : "false")' === 'true');
var studentCancelledTrip = ('@(ViewBag.StudentCancelledTrip != null ? ViewBag.StudentCancelledTrip.ToString().ToLower() : "false")' === 'true');
< /code>
Позже, при инициализации карты я проверяю эти флаги, чтобы определить правильный цвет маркера: < /p>
if (storedLat && storedLng) {
let lat = parseFloat(storedLat);
let lng = parseFloat(storedLng);
let pos = { lat: lat, lng: lng };
map.setCenter(pos);
map.setZoom(posZoom);

// Determine which icon to display based on the persisted state.
let iconUrl = "http://maps.google.com/mapfiles/ms/icons/red-dot.png";
if (studentActiveTrip) {
iconUrl = "http://maps.google.com/mapfiles/ms/icons/yellow-dot.png";
window.tripActive = true;
} else if (studentCancelledTrip) {
iconUrl = "http://maps.google.com/mapfiles/ms/icons/purple-dot.png";
window.tripActive = false;
}

window.studentMarker = new google.maps.Marker({
position: pos,
map: map,
icon: iconUrl
});
}
< /code>
Несмотря на то, что мой контроллер посылает правильное состояние (например, ActiveTrip - это правда), когда я обновляю страницу, маркер ученика возвращается к красному, а вычислимый маршрут исчезает - несмотря на то, что данные в базе данных остаются без изменений. База данных Маркер студента останется желтым, а маршрут между студентом и водителем (если местонахождение водителя будет доступно) будет повторно рассчитан и отображен.

Подробнее здесь: https://stackoverflow.com/questions/795 ... sted-state
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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