Почему я должен переключать широту и долготу при построении точек

Я использую библиотеку OpenStreetMap для построения координат по карте OSM.

Чтобы загрузить тайлы, я использую следующие значения широты и долготы в верхнем левом и правом нижнем углу:

library(OpenStreetMap);
library(rgdal)

lat_upper_left  = 47.417;
lon_upper_left  =  8.550;
lat_lower_right = 47.413;
lon_lower_right =  8.556;

map_osm  <- openmap(
               c(lat_upper_left , lon_upper_left ),
               c(lat_lower_right, lon_lower_right),
               type = 'osm'
);

plot(map_osm );

Карта рисуется нормально.

Однако, если я хочу нанести на карту несколько координатных точек, мне нужно поменять местами широту и долготу. Я не уверен, почему это:

coords <- data.frame (
   lat = c( 8.55336768885581, 8.55464266203301),  # Longitudes, really
   lon = c(47.4147105656297 , 47.4154560068639)   # Latitudes, really
);
coordinates(coords) <- ~lat+lon
proj4string(coords)<-CRS("+init=epsg:4326")
points(spTransform(coords, osm()), col='red', pch=19, cex=5)

Я был бы признателен, если бы кто-то мог пролить свет на это.


person René Nyffenegger    schedule 13.06.2019    source источник
comment
Вам не нужно называть свой столбец широты lon и столбец долготы lat. Назовите их как хотите. Но при указании координат lon должно стоять перед lat. Думаю, именно так работают некоторые ГИС.   -  person Humpelstielzchen    schedule 13.06.2019
comment
Когда я вывожу coords в консоль после запуска вашего кода (без OpenStreetMap), он перечисляет всю CRS как +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0... обратите внимание на лонглат, предполагающий, что координаты указаны сначала по долготе.   -  person r2evans    schedule 13.06.2019


Ответы (1)


Не существует глобального стандарта, идет ли сначала широта или долгота. Широта всегда широта, а долгота всегда долгота. Однако их порядок может варьироваться в зависимости от используемого программного обеспечения/библиотеки.

person scai    schedule 13.06.2019