Я занимаюсь разработкой приложения Cordova с использованием API Google Maps Javascript Directions.
Плагин Cordova google maps не поддерживает API-интерфейсы, поэтому Javascript - это мое последнее средство, чтобы эта функция работала.
Я уже пробовал с v = 3, v = 3.exp и без всякого v, но без результата.
Кроме того, не имеет значения, включаю ли я скрипт с ключом iOS, Android или Web-API, без изменений.
Я взял демонстрацию из документации разработчика Google, все отлично работает в Интернете, но не в моем приложении Cordova с javascript: (
Javascript, включенный в googlemaps.com, дает сбой:
TypeError: undefined is not an object (evaluating 'd.defaultView')in common.js 3140:
if (d.defaultView && d.defaultView.getComputedStyle && (d = d.defaultView.getComputedStyle(c, null))) {
d = d.position || d.getPropertyValue("position") || "";
break a
}
Этот код работает без сбоев в Интернете, но не в приложении Cordova:
<div id="map" style="width: 500px; height:500px;"></div>
<script>
function initMap() {
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 14,
center: {
lat: 48.2265,
lng: 12.6758
}
});
directionsDisplay.setMap(map);
directionsService.route({
origin: 'Berlin, Germany',
destination: 'Vienna, Austria',
travelMode: 'WALKING',
waypoints: [{
location: {
lat: 51.339696,
lng: 12.373075
},
stopover: true
}, {
location: {
lat: 50.075538,
lng: 14.4378
},
stopover: true
}, {
location: {
lat: 48.30694,
lng: 14.28583
},
stopover: true
}]
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>