Точка на противоположной стороне земного шара
[newlat,newlon] = antipode(lat,lon)
[newlat,newlon] = antipode(lat,lon,angleunits)
[newlat,newlon] = antipode(lat,lon) возвращает географические координаты точек, прямо противоположных на глобусе, из входных точек, заданных lat и lon. Все углы указаны в степенях.
[newlat,newlon] = antipode(lat,lon,angleunits) где angleunits задает вход и выход модулей как 'degrees' или 'radians'. Он может быть сокращен и не чувствителен к регистру.
Учитывая точку (43ºN, 15ºE), найдите его антипод:
[newlat,newlong] = antipode(43,15)
newlat =
-43
newlong =
-165 или (43ºS, 165ºW).
Пожалуй, самые очевидные антиподальные точки - Северный и Южный полюсы. Функция antipode демонстрирует это:
[newlat,newlong] = antipode(90,0,'degrees')
newlat =
-90
newlong =
180 Обратите внимание, что в этом случае долготы нерелевантны, потому что все меридианы сходятся у полюсов.
В этом примере показано, как найти антипод местоположения корпоративной штаб-квартиры MathWorks в Натике, штат Массачусетс. Пример отображает местоположение штаб-квартиры и его антипод в ортогональной проекции.
Задайте широту и долготу как градусы-минуты-секунды и затем преобразуйте в десятичные степени.
mwlat = dms2degrees([ 42 18 2.5])
mwlat = 42.3007
mwlon = dms2degrees([-71 21 7.9])
mwlon = -71.3522
Найдите антипод.
[amwlat amwlon] = antipode(mwlat,mwlon)
amwlat = -42.3007
amwlon = 108.6478
Докажите, что эти точки являются антиподами. The distance функция показывает, что они разнесены на 180 степени.
dist = distance(mwlat,mwlon,amwlat,amwlon)
dist = 180.0000
Сгенерируйте карту с центром от исходной точки, а затем другую карту с центром от антипода.
figure subplot(1,2,1) axesm ('MapProjection','ortho','origin',[mwlat mwlon],... 'frame','on','grid','on') load coastlines geoshow(coastlat,coastlon,'displaytype','polygon') geoshow(mwlat,mwlon,'Marker','o','Color','red') title(sprintf('Looking down at\n(%s,%s)', ... angl2str(mwlat,'ns'), angl2str(mwlon,'ew'))) subplot(1,2,2) axesm ('MapProjection','ortho','origin',[amwlat amwlon],... 'frame','on','grid','on') geoshow(coastlat,coastlon,'displaytype','polygon') geoshow(amwlat,amwlon,'Marker','o','Color','red') title(sprintf('Looking down at\n(%s,%s)', ... angl2str(amwlat,'ns'), angl2str(amwlon,'ew')))
