Il y a quelques niveaux à cette question.
Vous demandez la longitude et la latitude, mais il se peut que ce ne soit pas le système de coordonnées utilisé par cet objet. Vous pouvez obtenir les coordonnées comme celui-ci
coordinates(centroids.mp)
Notez que les « centres de gravité » seront toutes les coordonnées si c'est un SpatialPointsDataFrame, une liste de toutes les lignes coordonnées si c'est un SpatialLinesDataFrame, et seulement les centroïdes si c'est un SpatialPolygonsDataFrame.
Les coordonnées peuvent être la longitude et la latitude, mais l'objet peut ne pas le savoir. Utiliser
proj4string(centroids.mp)
Si c'est "NA", alors l'objet ne sait pas (A). S'il inclut "+ proj = longlat", l'objet sait et ils sont longitude/latitude (B). Si elle inclut "+ proj =" et un autre nom (pas "longlat") alors l'objet sait et ce n'est pas la longitude/latitude (C).
Si (A) vous devez le savoir, ou cela peut être évident à partir des valeurs.
Si (B) vous avez terminé (bien que vous devriez d'abord vérifier les hypothèses, ces métadonnées peuvent être incorrectes).
Si (C), vous pouvez (assez fiable si vous devriez vérifier les hypothèses en premier) transformer la latitude de longitude (du système géodésique WGS84) comme ceci:
coordinates(spTransform(centroids.mp, CRS("+proj=longlat +datum=WGS84")))
On ne sait pas que votre question comprend « gdal » du tout Puisque readShapePoints est dans maptools (pas rgdal), pour savoir si la solution coordinates() fonctionnera pour la longitude/latitude, nous devons en voir plus, comme summary (centroids.mp). – mdsumner
Vous avez raison. J'ai déjà édité le nom du paquet. Désolé pour ça. –
Il n'y a pas de fonction 'readShapePoints()' dans ** rgdal **, donc c'est super clair ce que vous avez fait et ce que vous demandez. –