2016-05-12 29 views
0

鉴于米兰的区域的一组点(经度和纬度),意大利我要决定哪些“邻居”的每一点属于 这里是我曾尝试鉴于shape文件,了解其中的多边形点是

​​

所以我的第一个猜测是:

over(latlon, mn.zip.map) 

当然,这是失败的,当我试图

summary(mn.zip.map) 
Object of class SpatialPolygonsDataFrame 
Coordinates: 
     min  max 
x 1503202 1521750 
y 5025952 5042528 
Is projected: NA 
proj4string : [NA] 
Data attributes: .... 

    summary(latlon) 
Object of class SpatialPoints 
Coordinates: 
      min  max 
lat 45.391091 45.534113 
lon 9.046796 9.274482 
Is projected: NA 
proj4string : [NA] 
Number of points: 155226 

所以我试着为:

map<-readOGR(dsn="C:...",layer="NILZone") #wHERE I FOUND THE RIGHT PARAMETERS TO CRS 

coordinates(latlon) = ~lat+lon 
proj4string(mn.zip.map) <- CRS("+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996  +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs ") 
mn.zip.map <- spTransform(mn.zip.map, CRS("+proj=longlat")) 
proj4string(latlon) <- CRS(proj4string(mn.zip.map)) 
head(over(latlon, mn.zip.map)) 

    FID_1 FID_1_1 ID_NIL NIL AreaHA AreaMQ 
1 NA  NA  NA <NA>  NA  NA 
2 NA  NA  NA <NA>  NA  NA 
3 NA  NA  NA <NA>  NA  NA 
4 NA  NA  NA <NA>  NA  NA 
5 NA  NA  NA <NA>  NA  NA 
6 NA  NA  NA <NA>  NA  NA 

为什么发生这种情况的任何猜测?

非常感谢你,对不起,我很长时间的问题!

编辑:这里你可以下载一个archive.zip,其中包含几个形状和米兰社区的其他信息的文件和一个文件latlon.txt,其中有30个点,我有兴趣分类成一个文件附近

https://www.dropbox.com/s/l935nm3edhn5cc7/Archive.zip?dl=0

@ G.Cocca我改变CRS的参数(......)现在的地区应重叠!

[email protected] 
    min  max 
x 9.040939 9.278398 
y 45.386074 45.535303 

[email protected] 
     min  max 
lat 45.391091 45.534113 
lon 9.046796 9.274482 

但仍然没有结果!

+0

您的示例不具有可重复性,如果人们有数据可玩,您将得到更好的答案。您是否可以通过提供可用数据或通过使用包含在您使用的R包中的数据的示例来使其可重现? –

+0

谢谢!我添加了一个链接来下载我的文件样本 – user5609462

+0

你做了什么没有错。只是你的多边形和你的点不覆盖。请参阅'mn.zip.map @ bbox'和'latlon @ bbox' –

回答

1

要打开一个或两个注释成一个答案,这里有一些提示。要在两个数据集之间进行任何空间分析,它们必须共享相同的坐标参考系(CRS)。

因此,无论是在+proj=longlat还是在预计的CRS(即其中一个数据集是tmerc,这是Transverse Mercator projection)。如问题所示,spTransform是将几何数据从一个CRS转换到另一个的好方法。

最后,如果使用+proj=longlat,轴顺序是笛卡尔(x和y)或(长LAT)。因此,例如,使用coordinates(latlon) = ~lon+lat。这是一个非常常见的“陷阱”。