En este momento estoy trabajando en un proyecto en el que se supone que debo mostrar varios clientes en todo el mundo en un mapa. Determino las coordenadas de estos clientes usando la API de Bing Maps. Pero si luego quiero mostrar estos clientes en el mapa, obtengo el error para algunos de que las coordenadas son incorrectas. Las coordenadas en la base de datos parecen correctas y me las devuelve la API de Bing Maps.
Ahora a la pregunta: ¿Cómo detecto este error para que la secuencia de comandos no se bloquee a causa de él?
let map; let searchManager; let customers = <?= json_encode($elements); ?>; let pins = []; let iconURL = ''; function GetMap() { var statusDropdownValue = parseInt($('#status').val()); map = new Microsoft.Maps.Map('#map', { zoom: 1 }); $.each(customers, function(index, value) { var customerLocation = new Microsoft.Maps.Location(value['latitude'], value['longitude']); var pin = new Microsoft.Maps.Pushpin(customerLocation, { icon: baseURL + 'assets/images/pin.png' }); pin.metadata = { id: value['id'], customerName: value['customer_name'], postCode: value['post_code'], city: value['city'], countryCode: value['country_code'] }; pins.push(pin); }); Microsoft.Maps.loadModule("Microsoft.Maps.Clustering", function () { clusterLayer = new Microsoft.Maps.ClusterLayer(pins); map.layers.insert(clusterLayer); }); Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', function () { var manager = new Microsoft.Maps.AutosuggestManager({ map: map }); manager.attachAutosuggest('#search', '#search-container-search-bar', selectedSuggestion); }); }Error:
Uncaught Error: Invalid latitude n https://r.bing.com/rp/iKR9c24bDSIz79-enVSnBoJvZx8.br.js:1 GetMap http://localhost/projects/BattermannTillery_HK_Locator/maps:101 each jQuery GetMap http://localhost/projects/BattermannTillery_HK_Locator/maps:100 notifyMapReadyForBootstrap https://www.bing.com/api/maps/mapcontrol?callback=GetMap&setMkt=en-US&setLang=en&key=AlV57vXOvuSENqgwu6hnNKGhiLf85dbTMlnDY81z2cGq40L1xkMdXUVSkEhvqfvv:12 <anonymous> https://r.bing.com/rp/RENSVX2edu6CiHiu-aMi-GbtqbA.br.js:1 <anonymous> https://r.bing.com/rp/RENSVX2edu6CiHiu-aMi-GbtqbA.br.js:1Yo haría lo siguiente para depurar este problema:
Location . Compruebe si value['latitude'] es un número de cadena o un número real ("1" frente a 1). Si es una cadena, ajuste value['latitude'] , value['longitude'] con parseFloat like (parseFloat(value['latitude']) . Esta es la causa más común de este tipo de error.latitude y longitude (tome un par de entradas y búsquelas manualmente en bing.com/maps y verifique las coordenadas para verificar que lo que tiene en sus columnas de latitud/longitud esté en la misma área general) . Si puede consultar su conjunto de datos (¿es una base de datos?), puede verificar todos los valores de latitud y longitud. Los valores de latitud deben estar entre -90 y 90 grados, y la longitud entre -180 y 180. Si encuentra algo fuera de este rango, se debe a datos incorrectos o tiene valores de latitud/longitud intercambiados en sus datos.