Chrome при использовании Leaflet-Omnivore не исключает исключения - PullRequest
0 голосов
/ 30 января 2019

Я использую Leaflet вместе с leaflet-omnivore для отображения данных gpx.Я успешно протестировал код в Windows 10 с браузерами Firefox (65.0) и Edge (44.17763.10), но у меня возникла проблема с Chrome (71.0357898).

Когда я пытаюсь загрузить «недопустимый» файл gpx (см. Ниже), Firefox и Edge правильно сообщают о «готовом исключении» (см. Код ниже).

Однако с Chrome консоль сообщаетнеобработанная ошибка: -

Uncaught Error: Invalid LatLng object: (48.6, NaN)

, но не сработало исключение.

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>debug test</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"></script>
<script src='https://api.mapbox.com/mapbox.js/plugins/leaflet-omnivore/v0.3.1/leaflet-omnivore.min.js'></script>
<style>
  body { margin:0; padding:0; }
  #map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>

<div id='map'></div>
<script>

const inspect = obj => {    // output content of variables/objects to console
  for (const prop in obj) {
    if (obj.hasOwnProperty(prop)) {
       console.log(`${prop}:: ${obj[prop]}`)
    }
  }
}

var osmMapTiles = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  maxZoom: 18
});

var map = L.map('map');
osmMapTiles.addTo(map);

try {
    var runLayer = omnivore.gpx('invalid.gpx')
        .on('ready', function() {
            try {
                map.fitBounds(runLayer.getBounds());
            } catch (exception) {
                console.log("---- ready exception ----");   
                inspect(exception);
            }    
        })
        .on('error', function(error) {
            console.log("---- error exception ----");
            inspect(error);
        })
        .addTo(map);    
} catch (exception) {
  console.log("---- outer exception ----");   
  inspect(exception);
}

</script>
</body>
</html>

------------------- invalid.gpx -------------
<?xml version="1.0" encoding="UTF-8"?>
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/0" version="1.0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd" creator="gpx.py -- https://github.com/tkrajina/gpxpy">


<trk>
<name>invalid</name>
<trkseg>
<trkpt lat="44.0" lon="1.0"></trkpt>
<trkpt lat="44.0" lon="5.8"></trkpt>
<trkpt lat="48.6" lon="5.8"></trkpt>
<trkpt lat="48.6" 

----------------------------------------------

Это проблема с Chrome - или я что-то не так делаю?

Iс тех пор пробовал это с Chrome на Mac, и он ведет себя правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...