Determining whether a point on earth (given latitude and longitude) is on land or ocean

조회 수: 24 (최근 30일)
I am looking for a quick way to determine whether a point on earth's surface (given latitude and longitude) falls on one of the continents or on an ocean.
Any help is greatly appreciated.
Thanks, Deep

답변 (5개)

Amy Haskins
Amy Haskins 2015년 4월 1일
편집: Amy Haskins 2015년 4월 1일
You could also try the inpolygon function.
% Load the coastline
coast = load('coast.mat');
ax = worldmap('world');
geoshow(coast)
% Grab a point from the map
[lat,lon] = inputm(1,ax);
% Determine if it's within the coast polygon
isInland = inpolygon(lat,lon,coast.lat,coast.long);

Brett Shoelson
Brett Shoelson 2011년 2월 9일
I think this will do it. It is a binary classifier: Ocean/Land.
coast = load('coast.mat');
[Z, R] = vec2mtx(coast.lat, coast.long, ...
1, [-90 90], [-90 270], 'filled');
figure; worldmap(Z, R)
geoshow(Z, R, 'DisplayType', 'texturemap')
colormap([0 1 0;0 0 0;0 1 0;0 0 1])
lat = 38.53;%N
lon = -57.07;%W
plotm(lat,lon,'ro')
val = ltln2val(Z, R, lat, lon);
isOcean = val == 2
%isLand = ~isOcean
Cheers,
Brett

John
John 2011년 2월 9일
Perhaps something like this could help:

Chad Greene
Chad Greene 2015년 1월 28일
landmask(lat,lon) returns 1 for land, 0 for ocean.

Joshua Carmichael
Joshua Carmichael 2023년 10월 4일
The Matlatb function isinterior.m (new since 2022a) does this.

카테고리

Help CenterFile Exchange에서 Mapping Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by