#javascript #python
#javascript #python
Вопрос:
Я получаю следующую ошибку при загрузке gmaps / я клонировал https://github.com/alexbagirov/py-flightradar24
python3 -m trace --count -C . main.py
Сообщение в строке 0: Uncaught (в обещании) InvalidValueError: initMap не является функцией
Сообщение в строке 24: Uncaught TypeError: не удается прочитать свойство ‘addListener’ неопределенного
Сообщение в строке 115: Uncaught TypeError: не удается прочитать свойство ‘panTo’ неопределенного
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
#map {
height: 100%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=mykeyamp;callback=initMapamp;libraries=geometry"
async defer></script>
<script src="qrc:///qtwebchannel/qwebchannel.js"></script>
<script src="map.js"></script>
</body>
</html>
var map;
var aircrafts = {};
class Aircraft {
constructor(marker, speed, track) {
this.marker = marker;
this.speed = speed;
this.track = track;
}
move(newPoint) {
this.marker.setPosition(newPoint);
}
hide() {
this.marker.setMap(null);
}
}
window.onload = function() {
new QWebChannel(qt.webChannelTransport, function (channel) {
window.loader = channel.objects.aircraftManager;
map.addListener('tilesloaded', function() {
window.loader.paintAircrafts();
});
window.loader.startService();
});
}
/* function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 56.8454603, lng: 60.6424976},
zoom: 8,
disableDefaultUI: true,
clickableIcons: false,
zoomControl: true
});
} */
window.onload = function initMap() {
map = new google.maps.Map(document.getElementById("map"), {
center: { lat: 27.691163902, lng: 85.355331912 },
// ktm airport cordinates
zoom: 12,
disableDefaultUI: true,
clickableIcons: true,
zoomControl: true,
//panControl: true,
mapTypeControl: true,
//scaleControl: true,
//streetViewControl: false,
//overviewMapControl: false,
//rotateControl: true,
});
};
function addAircrafts(data) {
let newAircrafts = JSON.parse(data);
Object.keys(aircrafts).forEach(function(aircraftId, index) {
if (aircraftId in newAircrafts) {
var newAircraft = newAircrafts[aircraftId];
aircrafts[aircraftId].track = newAircraft['track'];
aircrafts[aircraftId].speed = newAircraft['speed'];
aircrafts[aircraftId].marker.setIcon('icons/' newAircraft['pic'] '.png');
}
else {
removeAircraft(aircraftId);
}
});
Object.keys(newAircrafts).forEach(function(aircraftId, index) {
if (!(aircraftId in aircrafts)) {
let aircraft = newAircrafts[aircraftId];
aircrafts[aircraftId] = new Aircraft(
new google.maps.Marker({
position: {lat: aircraft['lat'], lng: aircraft['lon']},
map: map,
icon: 'icons/' aircraft['pic'] '.png'
}),
aircraft['speed'],
aircraft['track']
);
aircrafts[aircraftId].marker.addListener('click', function() {
window.loader.handleClick(aircraftId);
});
}
});
}
function moveAircrafts() {
Object.keys(aircrafts).forEach(function(key, index) {
let newPoint = google.maps.geometry.spherical.computeOffset(
aircrafts[key].marker.position,
aircrafts[key].speed * 0.514444,
aircrafts[key].track
);
aircrafts[key].move(newPoint);
});
}
function removeAircraft(id) {
aircrafts[id].hide();
delete aircrafts[id];
}
function getBounds() {
return map.getBounds();
}
function moveMap(lat, lon) {
let center = new google.maps.LatLng(lat, lon);
map.panTo(center);
}
Ответ №1:
Удалите window.onload
перед определением initMap:
window.onload = function initMap() {}
должно быть заменено на function initMap() {}
. И, очевидно, проверьте, действителен ли ваш ключ API.
Комментарии:
1. Привет, дематос, спасибо за вашу помощь .. Я пытался, как вы сказали, но тогда карты не будут загружаться, и да, у меня тоже есть действительный ключ, и плоскости тоже не загружаются на картах, но это еще одна проблема. я связался с парнем, у которого я клонировал репозитории, но он не отвечает. даже с помощью функции init() я получаю следующее 2.Сообщение в строке 24: Uncaught TypeError: не удается прочитать свойство ‘addListener’ неопределенного 3.Сообщение в строке 115: Uncaught TypeError: не удается прочитать свойство ‘panTo’ неопределенного