Изменение единиц на картах Google от метрики до имперского

75
8

У меня есть следующий код:

<script>

var rendererOptions = {
draggable: false
};
var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);;
var directionsService = new google.maps.DirectionsService();
var map;

var England = new google.maps.LatLng(53.7415, 1.6860);

function initialize() {

var mapOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: England
};
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
map.setTilt(45);
directionsDisplay.setMap(map)
directionsDisplay.setPanel(document.getElementById('directionsPanel'));

google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
computeTotalDistance(directionsDisplay.directions);
});

calcRoute();
}

function calcRoute() {

var request = {
origin: 'postcode',
destination: 'postcode',
waypoints:[{location: 'waypoint postcode'}, {location: 'waypoint postcode'}, {location: 'waypoint postcode'}],
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}

function computeTotalDistance(result) {
var total = 0;
var myroute = result.routes[0];
for (i = 0; i < myroute.legs.length; i++) {
total += myroute.legs[i].distance.value;
}
total = total / 1000.
document.getElementById('total').innerHTML = total + ' km';
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="float:left;width:70%; height:100%"></div>
<div id="directionsPanel" style="float:right;width:30%;height 100%">
<p>Total Distance: <span id="total"></span></p>
</div>

На карте отображается источник и пункт назначения с определенными путевыми точками по пути, используя сервис google api. На панели направлений отображаются все расстояния в метрических единицах. Как изменить его, чтобы все расстояния показывались в имперских единицах, например, в метрах, футах?

спросил(а) 2021-01-19T12:58:07+03:00 2 месяца, 3 недели назад
1
Решение
87

Из документов

Единичные системы

По умолчанию направления рассчитываются и отображаются с использованием единичной системы страны происхождения или региона. (Примечание: происхождение, выраженное с использованием координат широты/долготы, а не адресов, по умолчанию всегда соответствует метрическим единицам.) Например, маршрут от "Чикаго, Иллинойс" до "Торонто, ОНТ" отобразит результаты в милях, в то время как обратный маршрут отобразит результаты в километрах. Вы можете переопределить эту систему устройств, указав ее явно в запросе, используя одно из следующих значений UnitSystem:

    UnitSystem.METRIC указывает использование метрической системы. Расстояния показаны с использованием километров. UnitSystem.IMPERIA L указывает использование имперской (английской) системы. Расстояния показаны с помощью миль.

Примечание: этот системный параметр системы влияет только на текст, отображаемый пользователю. Результат направления также содержит значения расстояния, не показанные пользователю, которые всегда выражаются в метрах.

ответил(а) 2021-01-19T12:58:07+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема