inpolygon counting points within holes
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
I am attempting to find whether points fall within areas on a map. I've decided to do this using inpolygon. I've been having trouble with areas with holes and I have no idea why. Here is an example:
load("matlabest.mat")
test2=polyshape(test)
plot(test2)
As we can see from this shape, the point (-75.6,40.51) falls within the hole of this shape. Therefore, inpolygon should return 0. Let's test this:
inpolygon(-75.6,40.51,test(:,1),test(:,2))
I really don't understand why this is happening, as my example here is almost identical to the example given in the literature for inpolygon, just on a larger scale. I thought it had something to do with the NaNs I inserted to split between the coordinates of the hole and the actual shape, but the example in the literature does the same thing, so I don't think its that. I'm not sure what else it could be, so could someone please help me out?
Thanks
0 Commenti
Risposta accettata
Aditya
il 31 Lug 2024
Hi Alan,
It seems that the data "test" contains NaN values somewhere which is creating the issue.
you could either use:
isInside = isinterior(test2, -75.6, 40.51);
or you can modify your code to use test2 directly:
inpolygon(-75.6,40.51,test2.Vertices(:,1),test2.Vertices(:,2))
Refer to the below MATLAB documentation to read more about "isinterior" function:
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Elementary Polygons in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!