Estoy tratando de obtener coordenadas de varios lugares de mi país para poner marcadores+ventanas emergentes.
en algunas ubicaciones en el cuadro de mapa de mi país con reenvío geoJSON da una respuesta no válida, por lo tanto, no hay coordenadas para mí.
Eludí esto usando Google Translate (usando una API npm de @vitalets), que generalmente funciona. así que analizo el nombre de la ubicación traducida de nuevo a mapbox geoJSON.
pero mi pregunta es ¿cómo paso el nombre retraducido si solo puede usarlo una vez en forEach? ¿Debería guardar el nombre y hacer otra solicitud de geoJSON para obtener las coordenadas nuevamente (consulte el "<<<<<<<" en el código)?
results.forEach(myGeocoder); // results is taken from the MySQL query, bringing all the info from the list function myGeocoder(item,index){ console.log("location #28:"+location[28]); const geoData =geocoder .forwardGeocode({ query : item.residence, autocomplete: false, limit : 1 }) .send() .then((response) => { if ( !response || !response.body || !response.body.features || !response.body.features.length ) { console.error('Invalid response:');// put a function for name changing here<<<<<<<< console.error(response); return; } const feature = response.body.features[0].geometry.coordinates; console.log("feature="+feature); longlat = feature; // updates all coordinates for all teachers connection.query('UPDATE list SET coordinates="'+longlat.toString()+'" WHERE list_id='+item.list_id+";", function(err,results){ if (err) {console.log("or not found<<<<<<<<<<<<<<<<<<<"); throw err;} }) console.log("longlat="+longlat[0]+" ,longlat="+longlat[1]) }) ; }mi idea para que esto funcionara era repetir los nombres, recordar los que eran nulos y volver a llamar al geoJSON con otro ciclo usando los nuevos nombres traducidos, y solo para esos.