lon,lat, no lat,lon: por qué tus puntos del KML cayeron en el mar

Respuesta corta: <coordinates> en un KML es lon,lat — longitud primero, latitud después, altitud en tercer lugar si la hay — en WGS 84, siempre, y el formato no tiene dónde decir lo contrario. Escribí un par brasileño en el orden invertido y el punto no cae en un lugar aproximado; se va del continente. "Mis puntos del KML cayeron en el mar" es la frase que la gente busca; este post es el diagnóstico de diez segundos, y el motivo de que ninguna herramienta lo haga por vos.

Probado el 1 de octubre de 2026 en el kmz-viewer y en el geojson-viewer, en los tres idiomas de la interfaz, con el GeoJSON exportado leído en disco como oráculo de dónde fue a parar cada punto, en vez de una captura de pantalla del mapa. Toda cadena citada abajo es la de la propia herramienta.

Qué muestra el visor cuando el par está invertido

Nada. Esa es la constatación, y es el problema entero.

Soltá São Paulo escrito correctamente — -46.63880000,-23.54890000 — en cualquiera de los dos visores y el panel de capas muestra 1 punto. Cambiá los dos números a -23.54890000,-46.63880000 y sigue mostrando 1 punto: ninguna franja de error, ningún color de aviso, nada. El archivo carga, la fila de la capa aparece, el conteo está bien — de forma idéntica en los dos visores y en los tres idiomas.

La exportación es donde se vuelve visible. Exportar y después Exportar GeoJSON escriben [-46.6388,-23.548900000000017,0] para el archivo correcto y [-23.5489,-46.63880000000002,0] para el invertido. Longitud 23.5489 W con latitud 46.6388 S queda fuera de Brasil en todos los límites de la extensión nacional, y más al sur que cualquier punto del país. Dos detalles antes de comparar pares a ojo: una tercera ordenada 0 se agrega, haya llevado una tu <coordinates> o no, y la latitud vuelve con cerca de 1e-14 de ruido de coma flotante mientras que la longitud vuelve exacta, y por eso la longitud es el número en el que conviene confiar. Y un archivo a medias equivocado no recibe ninguna ayuda extra: un KML de dos placemarks con el primer par bien y el segundo invertido muestra 2 puntos, sin nada que diga que uno de los dos está fuera del mundo.

El geojson-viewer también acepta un .kml, así que no te hace falta cambiar de pestaña: su zona de arrastre dice Arrastra un archivo GeoJSON, KML o KMZ aquí, y los mismos bytes se leen de la misma manera, tanto si elegís el archivo como si lo arrastrás a la página, con exportaciones idénticas byte a byte. El nombre del archivo importa mucho más que la forma en que llega. Renombrá esos mismos bytes de KML a .geojson y el visor los rechaza con Error al procesar el archivo. Verifica que sea un GeoJSON válido., porque el lector despacha por la extensión y entonces le entrega un KML a un lector de JSON. Renombralos a .txt y recibís Tipo de archivo no compatible. Usa GeoJSON (.geojson o .json), KML o KMZ. — incluso en el camino de arrastrar, donde el filtro del selector de archivos no puede haber entrado en juego.

El diagnóstico de diez segundos

Mirá las magnitudes e ignorá los signos. La extensión medida de un conjunto de datos nacional pone las longitudes brasileñas entre 28.84764 y 73.99045 en valor absoluto, y las latitudes brasileñas en ningún punto por encima de 33.75. Una latitud brasileña es, por lo tanto, pequeña y negativa, y una longitud brasileña grande y negativa, así que -46.6388 en la primera casilla al lado de -23.5489 en la segunda es un par en el orden correcto. Invertido, el archivo abre con -23.54890000 — demasiado pequeño para ser cualquier longitud brasileña, sentado donde debería estar la longitud. Esa es la pista, y no necesita herramienta ninguna.

Por qué nada puede detectarlo en general

Porque -46.63 es una latitud perfectamente válida. Está dentro del -90 … 90 de WGS 84, la proyección directa la acepta, el punto se dibuja, el contador lo cuenta, la exportación lo escribe de vuelta. No existe ningún valor inválido en ninguna parte del archivo para que un validador lo encuentre.

Y la regla de la magnitud no es una ley, es una coincidencia sobre la forma de Brasil — una que falla en dos lugares medibles. Las dos bandas de arriba se superponen en la base del intervalo de longitud: para cualquier magnitud entre 28.84764 y 33.75 el número es a la vez una latitud brasileña plausible y una longitud brasileña plausible, y esa banda es el sur de Rio Grande do Sul contra la costa atlántica del extremo este — un rincón poblado del país, no un rincón patológico. Cerca del origen la regla no tiene con qué trabajar. Acra es -0.18700000,5.60370000; invertida a 5.60370000,-0.18700000, se dibuja a 5.6037 E, 0.187 S, y los dos números son válidos en cualquiera de las dos casillas. El visor muestra 1 punto y no exhibe franja alguna, exactamente como antes. Los puntos que caen en cero o cerca de él son una familia aparte — un punto en cero, o en algún lugar del golfo de Guinea se ocupa de ellos, y ahí es donde entra el golfo de Guinea, no en una inversión brasileña, que no puede alcanzarlo.

La herramienta tampoco va hasta la mitad del camino en los casos imposibles. Una latitud de -123.40000000 — fuera del -90 … 90, así que ni latitud es — carga sin franja alguna, cuenta como 1 punto y se exporta como [-46.6388,null,0]: un null de JSON donde se exige un número. Nada en el visor se interpone entre una coordenada mala y un mapa dibujado, y por eso el par exportado es el diagnóstico y el mapa dibujado no lo es.

Cómo corregirlo

Para un puñado de placemarks un editor de texto es la reparación entera: abrí el KML, cambiá los dos números dentro de cada <coordinates>, guardá, soltalo de nuevo y leé el primer par de una exportación nueva. Nada se reproyecta, porque no hay nada que reproyectar: un KML no tiene dónde declarar un sistema de coordenadas, así que un archivo en el lugar equivocado tiene los números equivocados dentro, no el CRS equivocado. Esa regla, y las transcripciones de línea de comandos que hay detrás, están bajo el título "Coordenadas: siempre lon,lat, siempre WGS 84" en la guía de KML y KMZ, que también cubre los dos errores que se ven idénticos desde el mapa: metros proyectados escritos como grados, y grados-minutos-segundos pegados en crudo. Si los números salieron de un conjunto de datos UTM, la zona y el hemisferio son una trampa propia — mirá UTM a latitud y longitud.

Archivos de prueba que podés usar

Nada está alojado. Pegá un placemark entre <?xml version="1.0" encoding="UTF-8"?>, <kml xmlns="http://www.opengis.net/kml/2.2"><Document> y </Document></kml> y guardalo como un .kml en UTF-8. Toda coordenada de acá es decimal a propósito.

  • Correcto, el control: <Placemark><name>Sao Paulo</name><Point><coordinates>-46.63880000,-23.54890000</coordinates></Point></Placemark>
  • Invertido, el sujeto de la prueba — los mismos dos números al revés: <Placemark><name>Sao Paulo swapped</name><Point><coordinates>-23.54890000,-46.63880000</coordinates></Point></Placemark>
  • Invertido cerca del origen, donde la pista deja de funcionar: <Placemark><name>Accra swapped</name><Point><coordinates>5.60370000,-0.18700000</coordinates></Point></Placemark>
  • Una latitud fuera del intervalo válido: <Placemark><name>out of range</name><Point><coordinates>-46.63880000,-123.40000000</coordinates></Point></Placemark>

Poné los dos primeros placemarks en un solo archivo para obtener el caso a medias equivocado, que muestra 2 puntos.

Para equipos

Un par invertido es casi siempre un traspaso: una persona escribió el par en un orden, otra lo leyó en el otro, y el archivo no lleva ninguna pista de cuál era la intención. Geodocs mantiene los datos de campo en un único mapa compartido, donde el orden de las coordenadas se resuelve una sola vez con el formulario, en vez de una vez por archivo.

Artículos Relacionados

Navegação