How to find points inside a country border
조회 수: 14 (최근 30일)
이전 댓글 표시
Hi everyone, I have a 2 dimension matrix containing lat, lon of multiple points. I would like to ask whether there is any way in Matlab to define which points are inside the border of a specified country. Any suggestion would be greatly appreciated!
댓글 수: 0
채택된 답변
Akira Agata
2019년 1월 15일
How abou the following?
(In this script, I have used shape file provided in http://thematicmapping.org/downloads/world_borders.php)
% Load shape file of country border
S = shaperead('TM_WORLD_BORDERS_SIMPL-0.3.shp');
S = struct2table(S);
% Target lat and lon (e.g Tokyo)
lat = 35.7;
lon = 139.7;
% Find which country contains (lat,lon)
idx = cellfun(@(X,Y) inpolygon(lon,lat,X,Y),S.X, S.Y);
% Show the result
disp(S.NAME(idx))
>> disp(S.NAME(idx))
'Japan'
댓글 수: 3
FRANCO CERVERA
2022년 7월 5일
Hello,
I am trying to select coordinates points from a specified countries and your script would help me very much but i have problems by running it. Could you please help me to understand what to do with this error message from the script above ?
thank you !
Error using tabular/dotParenReference
Unrecognized table variable name 'NAME'.
Error in test_shapefile (line 12)
disp(S.NAME(idx))
Adam
2024년 2월 27일
Thank you @Akira Agata! Your code above works beautifly. However, when I tried the coordinates for a coastal city, the display returned no results. Upon closer inspection, I found the polygons contained in your shapefile were too coarse. I updated to the World Bank Official Boundaries shapefile (download), updated the table header from "NAME" to "FORMAL_EN" and everything is working well.
추가 답변 (2개)
FRANCO CERVERA
2022년 7월 5일
Hello,
I am trying to select coordinates points from a specified countries and your script would help me very much but i have problems by running it. Could you please help me to understand what to do with this error message from the script above ?
thank you !
Error using tabular/dotParenReference
Unrecognized table variable name 'NAME'.
Error in test_shapefile (line 12)
disp(S.NAME(idx))
댓글 수: 1
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!