Determining whether a point on earth (given latitude and longitude) is on land or ocean
21 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
1 commentaire
Walter Roberson
le 9 Fév 2011
Where do you place the dividing line for estuaries ? Or for reclaimed land?
Réponses (5)
Amy Haskins
le 1 Avr 2015
Modifié(e) : Amy Haskins
le 1 Avr 2015
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);
0 commentaires
Brett Shoelson
le 9 Fév 2011
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
1 commentaire
Dan Chavas
le 11 Fév 2014
I've put this code into a MATLAB file: http://www.mathworks.com/matlabcentral/fileexchange/45268-landorocean-m
Joshua Carmichael
le 4 Oct 2023
The Matlatb function isinterior.m (new since 2022a) does this.
0 commentaires
Voir également
Catégories
En savoir plus sur Mapping Toolbox dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!