Я разрабатываю приложение для отслеживания в реальном времени, используя ядро 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
Маршрут Google Maps исчезает на странице, несмотря на сохраняемое состояние ⇐ Javascript
Форум по Javascript
1744700231
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 - это правда), когда я обновляю страницу, маркер ученика возвращается к красному, а вычислимый маршрут исчезает - несмотря на то, что данные в базе данных остаются без изменений. База данных Маркер студента останется желтым, а маршрут между студентом и водителем (если местонахождение водителя будет доступно) будет повторно рассчитан и отображен.
Подробнее здесь: [url]https://stackoverflow.com/questions/79574531/google-maps-route-disappears-on-page-refresh-despite-persisted-state[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия