Este team de expertos despúes de ciertos días de trabajo y recopilación de de datos, hallamos la respuesta, nuestro deseo es que te sea de utilidad para tu proyecto.
Solución:
Para leer un KML con el controlador OGR, le das el nombre del archivo y el nombre de la capa.
El comentario de Roger es que el nombre de la capa está oculto en el archivo KML y, a menos que sepa cómo se creó el KML, no puede inferir el nombre de la capa a partir del nombre del archivo KML.
Mirando tu KML de ejemplo, puedo ver:
x
Lo que me dice que el nombre de la capa es x
no id
y entonces:
> foo = readOGR("/tmp/x.kml", "x")
OGR data source with driver: KML
Source: "/tmp/x.kml", layer: "x"
with 1 features and 2 fields
Feature type: wkbPolygon with 2 dimensions
funciona muy bien
Ahora, puede intentar obtener el nombre analizando el KML como XML con un analizador XML R, o puede quizás intente leerlo en R como un archivo de texto hasta que encuentre la etiqueta de nombre.
El otro enfoque es ejecutar el programa de línea de comandos ogrinfo que escupe los nombres de las capas de un archivo KML:
$ ogrinfo /tmp/x.kml
Had to open data source read-only.
INFO: Open of `/tmp/x.kml'
using driver `KML' successful.
1: x (Polygon)
aquí mostrando que hay una capa de polígono llamada x
.
Si desea hacer la forma alternativa usando maptool, esto debería funcionar:
tkml <- getKMLcoordinates(kmlfile="yourkml.kml", ignoreAltitude=T)
#make polygon
p1 = Polygon(tkml)
#make Polygon class
p2 = Polygons(list(p1), ID = "drivetime")
#make spatial polygons class
p3= SpatialPolygons(list(p2),proj4string=CRS("+init=epsg:4326"))
los key aquí es necesario seguir un par de pasos para crear una clase de polígono espacial.
Sección de Reseñas y Valoraciones
Recuerda que tienes autorización de reseñar .