Daha çox

Bir nöqtə ilə iki lat / lngs virtual xətti arasındakı məsafənin hesablanması


Zəhmət olmasa nümunəyə və müvafiq şəkilə baxın.

Aşağıdakılara nail olmaq istərdim: aşağıda göstərilən iki yeri (lat / lng) təmin edin AB. Bundan, virtual bir xətt çəkiləcək və sonra bu xətt ilə arasındakı məsafə C hesablanacaq (istənilən ölçüdə).

Bunu hazırda Google Maps API v3-də əldə etdim, amma bunu da istədiyim dildə pərdə arxasında həyata keçirə bilmək istərdim. Hər hansı bir ipucu / fikir çox təqdir ediləcəkdir!


def get_perp (X1, Y1, X2, Y2, X3, Y3): "" "******************************* ************************************************** *************** Məqsəd - X1, Y1, X2, Y2 = X3 xətt seqmentinin uclarını əks etdirən iki nöqtə, Y3 = Ofset nöqtəsi 'Qayıtır - X4, Y4 = Ofsetə dik olan xəttin üstünə baxın və ya belə bir nöqtə yoxdursa, Yoxdur '********************************** ************************************************** ************ "" "XX = X2 - X1 YY = Y2 - Y1 Ən Qısa Uzunluq = ((XX * (X3 - X1)) + (YY * (Y3 - Y1))) / / (XX * XX) + (YY * YY)) X4 = X1 + XX * Ən qısaUzunluq Y4 = Y1 + YY * Ən qısaUzunluq əgər X4  X1 və Y4  Y1: qayıdış X4, Y4 geri dönmə Yoxdur

Ən qısa uzunluq, tələb etdiyim məsafədi, səhv etmirəmsə?


Bəlkə də bunu çox mürəkkəb hala gətirirəm, amma istədiyin bir nöqtədən bir xəttə qədər olan məsafədir. Yəni AB ilə C arasındakı nöqtəni AB ilə ortogonal bir xəttlə bağlayan bir nöqtədən məsafə. AB-yə dik olan bu vektor ilə verilir

v = [x2-x1, - ((y2-y1)) # A nöqtəsi [x1, y1] B nöqtəsi [x2, y2]

(Bir vektor və ya iki elementli bir sıra təyin etmək üçün kvadrat mötərizədən istifadə etdim). C [xp, yp] ilə A nöqtəsi arasındakı məsafə

u = [x1-xp, y1-xp]

Xətt ilə C arasındakı məsafə yalnız u-nun v-yə proyeksiyasındadır.Mod (v) = 1 qəbul etsək (sadəcə normallaşdırsaq)

məsafə = u * v = abs ((x2-x1) * (y1-yp) - (x1-xp) * (y2-y1))

Yalnız fəsad odur ki, koordinatlarınızın WGS84 lat / log cütləri olmadığına, əksinə proqnozlaşdırıldığına (və ya geodeziya koordinatlarını istifadə etdiyinə) əmin olmaq istəyirsiniz. Bunun üçün OGR və ya Proj4 istifadə edə bilərsiniz.


Bütün bu riyaziyyatdan da biraz xoşagəlməz olduğum üçün buna fərqli bir rakursdan gələrdim. Virtual bir xətt əvəzinə onu 'faktiki' bir xətt halına gətirərdim və sonra mövcud alətlərdən istifadə edərdim.

A və B bir atributu paylaşırsa, onları bir xətt çəkərək birləşdirə bilərsiniz (Kosmo GIS-də nöqtələrdən xətlər yaradan bir vasitə var və bunun üçün bir QGIS plagininin olduğuna inanıram). Xətlərə sahib olduqdan sonra, 'C' nöqtə qatındakı 'yaxın' funksiyası sizə xəttə olan məsafəni verəcəkdir. Proqramın sizin üçün riyaziyyatı idarə etməsinə icazə verin!


Android-də java istifadə edirsinizsə, kitabxana funksiyası ilə yalnız bir sətirdir

statik com.google.maps.android.PolyUtil.distanceToLine idxal;

məsafəToLine:

ümumi statik ikiqat mesafeToLine (LatLng p, LatLng başlanğıc, LatLng sonu)

P nöqtəsi ilə xətt seqmentinin sonu arasındakı sferadakı məsafəni hesablayır.

Parametrlər: p - ölçülən nöqtə

start - xətt seqmentinin başlanğıcı

son - xətt seqmentinin sonu

Geri qayıdır: metr məsafəsi (kürə torpağı götürsək)

Kitabxananızı əlavə etmək kifayətdir

asılılıqlar {compile 'com.google.maps.android:android-maps-utils:0.5+'}

İki lat uzunluğu arasındakı məsafəni tapmaq üçün aşağıdakı düsturdan istifadə edin:

İstədiyiniz məsafəni istədiyiniz funksiya və vahidlə (uzunluq üçün "K" və Mil üçün "M") keçin, uzun, həsrət çəkin. Ümid edirəm bu sizə kömək edəcəkdir.

Location.distanceBetween () bunu iki Latitude Boylam koordinat nöqtəsi üçün edəcəkdir.

Quru yolu ilə səyahət edərkən (hətta hava yolu ilə də), Yer düz olmadığından, Yerin daşıyıcısı işə düşür. lakin bu Haversine formulu onsuz da qayğı göstərməlidir. İkincisi, insanların söyləyə biləcəyi şey budur ki, yolla səyahət edərkən iki nöqtə arasında düz getmirsən. çox sayda növbə edirsən. Və iki nöqtə arasındakı məsafəni "dəqiq" demək üçün bu növbələri də nəzərə almaq istəyə bilərsiniz.

Yollardan keçən məsafəni hesablamaq üçün aşağıdakı linkdə nümunə kodu tapdım.

Görünüş məsafəsi dəmir yolları daha böyükdür, çünki qatarlar və yük maşınları düz xətt üzrə deyil, təyyarələr hərəkət edir.

Hesablama məsafəsini meydana gətirmək üçün yol xəritəsinə ehtiyacınız var


Standart SQL-də coğrafiya funksiyaları

Coğrafiya funksiyaları BigQuery Coğrafiya dəyərləri üzərində işləyir və ya yaradır. İstənilən coğrafiya funksiyasının imzası ST_ ilə başlayır. BigQuery, coğrafi məlumatları təhlil etmək, coğrafi xüsusiyyətlər arasındakı məkan əlaqələrini təyin etmək və Coğrafiya lərini qurmaq və ya idarə etmək üçün istifadə edilə bilən aşağıdakı funksiyaları dəstəkləyir.

Hər hansı bir giriş arqumenti NULL olduqda bütün BigQuery coğrafiya funksiyaları NULL qaytarır.

Kateqoriyalar

Coğrafiya funksiyaları davranışlarına görə aşağıdakı kateqoriyalara bölünür:

Kateqoriya Funksiyalar Təsvir
İnşaatçılar ST_GEOGPOINT
ST_MAKELINE
ST_MAKEPOLYGON
ST_MAKEPOLYGONORIENTED
Koordinatlardan və ya mövcud coğrafiyalardan yeni coğrafiya dəyərləri yaradan funksiyalar.
Təhlilçilər ST_GEOGFROM
ST_GEOGFROMGEOJSON
ST_GEOGFROMTEXT
ST_GEOGFROMWKB
ST_GEOGPOINTFROMGEOHASH
WKT və GeoJSON kimi xarici formatdan coğrafiya yaradan funksiyalar.
Formatlar ST_ASBINARY
ST_ASGEOJSON
ST_ASTEXT
ST_GEOHASH
Coğrafiyaları WKT kimi xarici formata ixrac edən funksiyalar.
Dəyişikliklər ST_BOUNDARY
ST_CENTROID
ST_CENTROID_AGG (ümumi)
ST_CLOSESTPOINT
ST_CONVEXHULL
ST_DIFFERENCE
ST_DUMP
ST_INTERSECTION
ST_SIMPLIFY
ST_SNAPTOGRID
ST_UNION
ST_UNION_AGG (Ümumi)
Girişə əsaslanaraq yeni bir coğrafiya yaradan funksiyalar.
Accessors ST_DIMENSION
ST_DUMP
ST_ENDPOINT
ST_ISCOLLECTION
ST_ISEMPTY
ST_NPOINTS
ST_NUMPOINTS
ST_POINTN
ST_STARTPOINT
ST_X
ST_Y
Yan təsirləri olmayan bir coğrafiyanın xüsusiyyətlərinə çıxış təmin edən funksiyalar.
Proqnozlar ST_CONTAINS
ST_COVEREDBY
ST_COVERS
ST_DISJOINT
ST_DWITHIN
ST_EQUALS
ST_INTERSECTS
ST_INTERSECTSBOX
ST_TOUCHES
ST_WITHIN
İki coğrafiya və ya coğrafiyanın bəzi mülkləri arasındakı bəzi məkan əlaqələri üçün DOĞRU və ya YALAN qayıdan funksiyalar. Bu funksiyalar ümumiyyətlə filtr bəndlərində istifadə olunur.
Tədbirlər ST_AREA
ST_DISTANCE
ST_LENGTH
ST_MAXDISTANCE
ST_PERIMETER
Bir və ya daha çox coğrafiyanın ölçülərini hesablayan funksiyalar.
Kümelenme ST_CLUSTERDBSCAN Coğrafiya üzrə klasterləşdirmə funksiyaları.

ST_AREA

Təsvir

Coğrafiya girişindəki çoxbucaqlıların əhatə etdiyi ərazini kvadrat metrə qaytarır.

Geography_expression bir nöqtə və ya bir xəttdirsə, sıfır qaytarır. Geography_expression bir kolleksiyadırsa, kolleksiyada çoxbucaqlar yoxdursa, kolleksiyadakı çoxbucaqların sahəsini qaytarır, sıfır verir.

İsteğe bağlı use_spheroid parametri bu funksiyanın məsafəni necə ölçdüyünü təyin edir. Use_spheroid FALSE olarsa, funksiya mükəmməl bir kürənin səthindəki məsafəni ölçür.

Use_spheroid parametri hazırda yalnız FALSE dəyərini dəstəkləyir. Use_spheroid-in standart dəyəri YANLIDIR.

Qayıdış növü

ST_ASBINARY

Təsvir

Bir giriş coğrafiyasının WKB təqdimatını qaytarır.

WKB-dan Coğrafiya qurmaq üçün ST_GEOGFROMWKB-a baxın.

Qayıdış növü

ST_ASGEOJSON

Təsvir

GEOGRAPHY girişinin RFC 7946 uyğun GeoJSON təqdimatını qaytarır.

BigQuery CEOGRAPHY sferik geodeziya kənarlarına malikdir, GeoJSON Həndəsə obyektinin açıq şəkildə planar kənarları vardır. Bu iki növ kənar arasında çevrilmək üçün BigQuery lazım olan yerə xəttə əlavə nöqtələr əlavə edir ki, nəticədə ortaya çıxan kənar ardıcıllığı orijinal kənarından 10 metr məsafədə qalsın.

GeoJSON'dan bir Coğrafiya qurmaq üçün ST_GEOGFROMGEOJSON-a baxın.

Qayıdış növü

ST_ASTEXT

Təsvir

Bir giriş coğrafiyasının WKT təqdimatını qaytarır.

WKT-dən Coğrafiya qurmaq üçün ST_GEOGFROMTEXT-ə baxın.

Qayıdış növü

ST_BOUNDARY

Təsvir

Verilən GEOGRAPHY girişindəki hər bir komponentin sərhədlərinin birləşməsini ehtiva edən tək bir Coğrafi məlumatı qaytarır.

Coğrafi məlumatların hər birinin sərhədi belə müəyyən edilmişdir:

  • Bir nöqtənin sərhədi boşdur.
  • Bir linestring sərhəd linearring son nöqtələrindən ibarətdir.
  • Bir çoxbucaqlının hüdudu, çoxbucaqlı qabığı əmələ gətirən kəmər xəttlərindən və hər bir çoxbucaqlı çuxurdan ibarətdir.

Qayıdış növü

ST_CENTROID

Təsvir

Qaytarır centroid Coğrafi məlumatların tək bir nöqtə Coğrafiya şəklində verilməsi.

The centroid coğrafiyanın coğrafiyasındakı ən yüksək ölçülü komponentlərin sentroidlərinin ağırlıqlı ortalamasıdır. Hər ölçüdəki komponentlər üçün santroid aşağıdakı kimi müəyyən edilir:

  • Nöqtələrin mərkəz məkanı giriş koordinatlarının aritmetik ortalamasıdır.
  • Linestrings centroid uzunluğu ilə ölçülmüş bütün kənarları centroid edir. Hər bir kənarın santroidi, kənarın geodezik orta nöqtəsidir.
  • Çoxbucaqlı mərkəz, kütlə mərkəzidir.

GEOGRAPHY giriş boşdursa, boş Coğrafiya qayıdır.

Məhdudiyyətlər

CƏĞRAFİYƏ mərkəzinin Yerin səthindəki tək bir nöqtə ilə təyin edilə bilməyəcəyi ehtimal olunan bir vəziyyətdə, deterministik, əksinə təsadüfi bir nöqtə qaytarılır. Bu, yalnız santroidin Yer kürəsinin mərkəzində olduğu bir vəziyyətdə baş verə bilər, məsələn bir cüt antipodal nöqtə üçün santroid və bunun baş vermə ehtimalı yoxa çıxdıqda kiçikdir.

Qayıdış növü

ST_CENTROID_AGG

Təsvir

GEOGRAPHY s çoxluğunun mərkəzini bir nöqtə Coğrafiya olaraq hesablayır.

The centroid GEOGRAPHY s çoxluğu hər bir Coğrafiya cənazəsinin orta ölçülü ortalamasıdır. Yalnız girişdə mövcud olan ən yüksək ölçülü Coğrafi məlumatlar bütün dəstin mərkəzində iştirak edir. Məsələn, girişdə həm xətləri olan GEOGRAPHY s, həm də yalnız nöqtələri olan GEOGRAPHY s varsa, ST_CENTROID_AGG, GEOGRAPHY s-nin ağırlıqlı ortalamasını xətlərlə qaytarır, çünki bunlar maksimum ölçüyə malikdir. Bu nümunədə, ST_CENTROID_AGG məcmu sentroidi hesablayarkən CEOGRAPHY s-ni yalnız nöqtələrlə nəzərə almır.

ST_CENTROID_AGG, NULL giriş GEOGRAPHY dəyərlərini görməzlikdən gəlir.

ST_CENTROID_AGG-nin məcmu olmayan versiyası və fərdi Coğrafiya dəyəri üçün centroid tərifi üçün ST_CENTROID-ə baxın.

Qayıdış növü

Aşağıdakı sorğular coğrafi dəyərlər toplusu üzərində məcmu centroid hesablayır. Birinci sorğunun girişində yalnız nöqtələr var və bu səbəbdən hər bir dəyər məcmu santroidə kömək edir. Ayrıca ST_CENTROID_AGG olduğuna diqqət yetirin yox ST_UNION_AGG dublikatları nəticəsində ST_CENTROID çağırılmasına bərabər, ST_CENTROID_AGG-dən fərqli olaraq birlik tərəfindən silinir. İkinci sorğunun girişi qarışıq ölçülərə malikdir və yalnız dəstdəki ən yüksək ölçülü dəyərlər məcmu sentroidi təsir edir.

ST_CLOSESTPOINT

Təsvir

Coğrafiya_1 ilə coğrafiyaya mümkün olan ən kiçik məsafəni göstərən bir Coğrafi məlumatı geri qaytarır. Bu, ST_CLOSESTPOINT tərəfindən qaytarılmış nöqtə ilə coğrafiya_2 arasındakı məsafənin coğrafiya_1 ilə coğrafiya_2 arasındakı digər nöqtələr arasındakı məsafədən az və ya bərabər olduğunu göstərir.

GEOGRAPHY s girişlərindən biri boşsa, ST_CLOSESTPOINT NULL qaytarır.

İsteğe bağlı use_spheroid parametri bu funksiyanın məsafəni necə ölçdüyünü təyin edir. Use_spheroid FALSE olarsa, funksiya mükəmməl bir kürənin səthindəki məsafəni ölçür.

Use_spheroid parametri hazırda yalnız FALSE dəyərini dəstəkləyir. Use_spheroid-in standart dəyəri YANLIDIR.

Qayıdış növü

ST_CLUSTERDBSCAN

Coğrafiya sütununda DBSCAN klasterləşdirmə aparır. 0 əsaslı bir klaster nömrəsini qaytarır.

Giriş parametrləri

  • coğrafiya_sütun: CÜMRƏFİYYƏLƏR sümüyünə yığılmış bir sütun.
  • epsilon: Radiusun metrlə ölçülən və əsas bir dəyərin təyin olunduğu epsilon. Mənfi olmayan FLOAT64 dəyəri.
  • minimum_geographies: Tək bir qrupdakı minimum coğrafi sayını təyin edir. Yalnız sıx giriş bir qrup təşkil edir, əks halda səs-küy kimi təsnif edilir. Qeyri-mənfi INT64 dəyəri.

OVER: bir pəncərə təyin edir. Analitik funksiyalara baxın. ST_CLUSTERDBSCAN ilə OVER bəndinin istifadəsi aşağıdakılarla uyğundur:

Coğrafiya növləri və DBSCAN alqoritmi

DBSCAN alqoritmi yüksək sıxlıqlı məlumat qruplarını müəyyənləşdirir və aşağı sıxlıqlı səs-küy sahələrində kənarları qeyd edir. Coğrafiya_sütunundan keçən coğrafiyalar DBSCAN alqoritmi ilə üç yoldan biri ilə təsnif edilir:

  • Əsas dəyər: Coğrafiya özü də daxil olmaqla minimum_coğrafi coğrafiyaların epsilon məsafəsindədirsə əsas dəyərdir. Əsas dəyər yeni bir qrupa başlayır və ya epsilon məsafəsindəki əsas dəyərlə eyni qrupa əlavə olunur. Əsas dəyərlər, epsilon məsafəsində olan bütün digər əsas və sərhəd dəyərləri ilə birlikdə bir qrupda qruplaşdırılır.
  • Sərhəd dəyəri: Coğrafiya əsas dəyərdən epsilon məsafədədirsə, sərhəd dəyəridir. Epsilon məsafəsində əsas dəyər kimi eyni qrupa əlavə olunur. Sərhəd dəyəri birdən çox qrupdan ibarət epsilon məsafəsində ola bilər. Bu vəziyyətdə, ya klasterə ixtiyari olaraq təyin edilə bilər və funksiya sonrakı zənglərdə eyni nəticəni verəcəkdir.
  • Səs-küy: Coğrafiya nə əsas, nə də sərhəd dəyəri deyilsə səs-küydür. Səs-küy dəyərləri NULL qrupuna təyin edilir. Boş Coğrafiya həmişə səs-küy kimi təsnif edilir.

Məhdudiyyətlər

  • Minimum_geographies arqumenti mənfi olmayan INT64, epsilon isə mənfi olmayan FLOAT64.
  • Boş bir coğrafiya heç bir qrupa qoşula bilməz.
  • Sərhəd dəyəri üçün birdən çox klaster ataması mümkün ola bilər. Bir coğrafiya sərhəd dəyəridirsə, ST_CLUSTERDBSCAN onu ixtiyari etibarlı bir qrupa təyin edəcəkdir.

Qayıdış növü

Coğrafiya sütunundakı hər coğrafiya üçün INT64.

Bu nümunə, minimum_coğrafiya arqumenti 1 ilə 100.000 metr radiusda DBSCAN qruplaşmasını həyata keçirir. Təhlil edilən coğrafiyalar nöqtə, xətt və çoxbucaqlı qarışıqdır.

ST_CONTAINS

Təsvir

Coğrafiya heç bir nöqtəsi coğrafiya_1 xaricində deyilsə, DOĞRU qaytarır, əks halda daxili kəsişmələr YALAN qayıdır.

DİQQƏT: Coğrafiya deyil öz sərhədini ehtiva edir. ST_COVERS ilə müqayisə edin.

Qayıdış növü

Aşağıdakı sorğu poliqonunun ((1 1, 20 1, 10 20, 1 1)) üç nöqtənin (0, 0), (1, 1) və (10, 10) hər birini əhatə edib-etmədiyini yoxlayır. çoxbucağın xarici, sərhəd və daxili hissələrində.

ST_CONVEXHULL

Təsvir

Coğrafiya daxilolması üçün qabarıq gövdəni qaytarır. Konveks gövdə, girişi əhatə edən ən kiçik konveks Coğrafiya. COĞRAFİYADA hər bir cüt nöqtə üçün nöqtələri birləşdirən geodeziya kənarı eyni Coğrafiya içərisindədirsə, bir coğrafiya qabarıqdır.

Əksər hallarda qabarıq gövdə tək bir çoxbucaqlıdan ibarətdir. Görkəmli kənar vəziyyətlərə aşağıdakılar daxildir:

  • Tək nöqtənin qabarıq gövdəsi də bir nöqtədir.
  • İki və ya daha çox kollinear nöqtənin qabarıq gövdəsi, bu düzbucağın qabarıq olduğu müddətdə bir xəttdir.
  • Giriş Coğrafiya yarımkürədən daha çox uzanırsa, qabarıq gövdə bütün kürədir. Buraya bir cüt antipodal nöqtə olan hər hansı bir giriş daxildir.
  • ST_CONVEXHULL, giriş NULL və ya boş Coğrafi məlumat olduqda NULL qaytarır.

Qayıdış növü

ST_CONVEXHULL tərəfindən qaytarılmış qabarıq gövdə girişdən asılı olaraq nöqtə, linestring və ya çoxbucaqlı ola bilər.

ST_COVEREDBY

Təsvir

Coğrafiya_1 və ya coğrafiya_2 boşdursa YALAN qayıdır. Coğrafiyanın xaricində heç bir coğrafiya nöqtəsi olmadığı təqdirdə DOĞRU qaytarır_2.

İki CEOGRAPHY s a və b verildikdə, ST_COVEREDBY (a, b) ST_COVERS (b, a) ilə eyni nəticəni verir. Mübahisələrin əks qaydasına diqqət yetirin.

Qayıdış növü

ST_COVERS

Təsvir

Coğrafiya_1 və ya coğrafiya_2 boşdursa YALAN qayıdır. Coğrafiya xaricində heç bir coğrafiya nöqtəsi olmadıqda DOĞRU qaytarır_1.

Qayıdış növü

Aşağıdakı sorğu POLYGON ((1 1, 20 1, 10 20, 1 1)) üç nöqtənin (0, 0), (1, 1) və (10, 10) hər birini əhatə etdiyini yoxlayır çoxbucağın xarici, sərhəd və daxili hissələrində.

ST_DIFFERENCE

Təsvir

Coğrafiya_1 və coğrafiya_2 nöqtə dəsti fərqini təmsil edən Coğrafi məlumatları qaytarır.

Həndəsə_1 geometriyanın içərisində tamamilə yer alırsa, ST_DIFFERENCE boş bir Coğrafi məlumat verir.

Məhdudiyyətlər

BigQuery Coğrafyasının təmsil etdiyi əsas həndəsi obyektlər a-ya uyğundur Bağlı nöqtə qoyuldu. Bu səbəbdən ST_DIFFERENCE, coğrafiya_1 və coğrafiya_2 nöqtə seti fərqinin bağlanmasıdır. Bu o deməkdir ki, coğrafiya_1 ilə coğrafiya_2 kəsişirsə, coğrafiya_2 sərhədinin bir hissəsi fərqdə ola bilər.

Qayıdış növü

ST_DIMENSION

Təsvir

GEOGRAPHY girişindəki ən yüksək ölçülü elementin ölçüsünü qaytarır.

Mümkün olan hər bir elementin ölçüsü belədir:

  • Bir nöqtənin ölçüsü 0-dır.
  • Linestring ölçüsü 1-dir.
  • Çoxbucağın ölçüsü 2-dir.

GEOGRAPHY giriş boşdursa, ST_DIMENSION -1 qaytarır.

Qayıdış növü

ST_DISJOINT

Təsvir

Coğrafiya_1 ilə coğrafiyanın_2 kəsişməsi boş olduqda, yəni coğrafiyada_1 heç bir nöqtə coğrafiyada da görünməzsə DOĞRU qaytarır.

ST_DISJOINT, ST_INTERSECTS-in məntiqi inkar edilməsidir.

Qayıdış növü

ST_DISTANCE

Təsvir

Boş olmayan iki Coğrafiya s arasındakı ən qısa məsafəni qaytarır.

GEOGRAPHY s girişlərindən biri boşsa, ST_DISTANCE NULL qaytarır.

İsteğe bağlı use_spheroid parametri bu funksiyanın məsafəni necə ölçdüyünü təyin edir. Use_spheroid FALSE olarsa, funksiya mükəmməl bir kürənin səthindəki məsafəni ölçür.

Use_spheroid parametri hazırda yalnız FALSE dəyərini dəstəkləyir. Use_spheroid-in standart dəyəri YANLIDIR.

Qayıdış növü

ST_DUMP

Təsvir

Hər elementin GEOGRAPHY girişinin tərkib hissəsi olduğu sadə Coğrafiya sətrini qaytarır. Sadə Coğrafiya tək bir nöqtədən, linestring və ya çoxbucaqdan ibarətdir. GEOGRAPHY giriş sadədirsə, nəticə tək bir elementdir. GEOGRAPHY giriş bir kolleksiya olduqda, ST_DUMP, kolleksiyadakı hər bir komponent üçün bir sadə Coğrafiya ilə ARRAY qaytarır.

Ölçü təmin edildiyi təqdirdə, funksiya yalnız uyğun ölçünün CEOGRAPHY s-lərini qaytarır. -1 ölçüsü ölçünün buraxılmasına bərabərdir.

Qaytarma Növü

Aşağıdakı nümunə, ST_DUMP-nun mürəkkəb bir coğrafiyada sadə coğrafiyaları necə qaytaracağını göstərir.

Aşağıdakı misal, ST_DUMP-un ölçü arqumenti ilə yalnız verilən ölçünün sadə coğrafiyalarını necə qaytaracağını göstərir.

ST_DWITHIN

Təsvir

Coğrafiya_1-də ən azı bir nöqtə ilə coğrafiya_2-də bir nöqtə arasındakı məsafə, əks halda məsafə mübahisəsi ilə verilən məsafədən az və ya bərabərdirsə, DOĞRU qaytarır, YALAN qayıdır. GEOGRAPHY girişlərindən biri boşdursa, ST_DWithin FALSE qaytarır. Verilən məsafə Yer səthində metrdir.

İsteğe bağlı use_spheroid parametri bu funksiyanın məsafəni necə ölçdüyünü təyin edir. Use_spheroid FALSE olarsa, funksiya mükəmməl bir kürənin səthindəki məsafəni ölçür.

Use_spheroid parametri hazırda yalnız FALSE dəyərini dəstəkləyir. Use_spheroid-in standart dəyəri YANLIDIR.

Qayıdış növü

ST_ENDPOINT

Təsvir

Linestring coğrafiyasının son nöqtəsini nöqtə coğrafiyası kimi qaytarır. Giriş linestring deyilsə və ya giriş boşdursa bir səhv qaytarır. Səhv əvəzinə etibarsız giriş üçün NULL əldə etmək üçün SAFE prefiksindən istifadə edin.

Qaytarma Növü

ST_EQUALS

Təsvir

Coğrafiya_1 və coğrafiya_2 eyni şeyi ifadə edərsə DOĞRU qaytarır

Coğrafi dəyər. Daha doğrusu, bu, aşağıdakı şərtlərdən birinin mövcud olduğu mənasını verir: + ST_COVERS (coğrafiya_1, coğrafiya_2) = TRUE və ST_COVERS (coğrafiya_2, coğrafiya_1) = TRUE + Həm coğrafiya_1 həm də coğrafiya_2 boşdur.

Bu səbəbdən, nöqtələrin və ya təpələrin düzülüşü fərqlənsə də, eyni həndəsi quruluşu təmsil etdikləri müddətdə iki Coğrafiya bərabər ola bilər.

Məhdudiyyətlər

ST_EQUALS-ın keçid funksiyası olmasına zəmanət verilmir.

Qayıdış növü

ST_GEOGFROM

Təsvir

STRING və ya BYTES dəyəri üçün ifadəni Coğrafiya dəyərinə çevirir.

İfadə bir STRING dəyərini təmsil edirsə, aşağıdakı formatlardan birində etibarlı bir Coğrafi Təmsil etmə olmalıdır:

  • WKT formatı. Bu format və istifadə tələbləri haqqında daha çox məlumat üçün ST_GEOGFROMTEXT-ə baxın.
  • Onaltılıq mətn formatında WKB. Bu format və istifadə tələbləri haqqında daha çox məlumat üçün ST_GEOGFROMWKB-a baxın.
  • GeoJSON formatı. Bu format və istifadə tələbləri haqqında daha çox məlumat üçün ST_GEOGFROMGEOJSON-a baxın.

İfadə BYTES dəyərini təmsil edirsə, WKB formatında etibarlı Coğrafiya ikili ifadəsi olmalıdır. Bu format və istifadə tələbləri haqqında daha çox məlumat üçün ST_GEOGFROMWKB-a baxın.

Ifadə NULL, çıxış NULL olarsa.

Qayıdış növü

Bu, WKT formatlı bir sətir alır və Coğrafiya poliqonunu qaytarır:

Bu, WKB formatlı onaltılı kodlanmış bir sətir alır və Coğrafi nöqtəni qaytarır:

Bu, WKB formatlı baytları alır və Coğrafiya nöqtəsini qaytarır:

Bu bir GEOJSON formatlı bir sətir alır və bir Coğrafiya poliqonunu qaytarır:

ST_GEOGFROMGEOJSON

Təsvir

Giriş GeoJSON təmsilçiliyinə uyğun bir Coğrafi dəyər qaytarır.

ST_GEOGFROMGEOJSON, RFC 7946 uyğun olan girişi qəbul edir.

Make_valid parametri TRUE olaraq ayarlanırsa, funksiya Açıq Məkan Konsorsiumu semantikasına uyğun olmayan çoxbucaqlıları düzəltməyə çalışır. Bu parametr adlanan arqument sintaksisindən istifadə edir və make_valid = & gt argument_value sintaksisindən istifadə etməklə təyin edilməlidir.

BigQuery CEOGRAPHY sferik geodeziya kənarlarına malikdir, GeoJSON Həndəsə obyektinin açıq şəkildə planar kənarları vardır. Bu iki növ kənar arasında çevrilmək üçün BigQuery lazım olan yerə xəttə əlavə nöqtələr əlavə edir ki, nəticədə ortaya çıxan kənar ardıcıllığı orijinal kənarından 10 metr məsafədə qalsın.

Coğrafi məlumatı GeoJSON olaraq formatlamaq üçün ST_ASGEOJSON-a baxın.

Məhdudiyyətlər

Giriş aşağıdakı məhdudiyyətlərə tabedir:

  • ST_GEOGFROMGEOJSON yalnız JSON həndəsə fraqmentlərini qəbul edir və bütöv bir JSON sənədini qəbul etmək üçün istifadə edilə bilməz.
  • Giriş JSON parçası Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon və GeometryCollection daxil olan bir GeoJSON həndəsə növündən ibarət olmalıdır. Feature və FeatureCollection kimi hər hansı digər GeoJSON növü səhvlə nəticələnəcəkdir.
  • GeoJSON həndəsə tipinin koordinat üzvündə bir mövqe tam iki elementdən ibarət olmalıdır. Birincisi uzunluq, ikincisi enlikdir. Bu səbəbdən, ST_GEOGFROMGEOJSON koordinat üzvündə bir mövqe üçün isteğe bağlı üçüncü elementi dəstəkləmir.

Qayıdış növü

ST_GEOGFROMTEXT

İmza 1

Təsvir

Giriş WKT təmsilçiliyinə uyğun bir Coğrafi dəyər qaytarır.

Bu funksiya BOOL tipli, yönümlü bir isteğe bağlı parametri dəstəkləyir. Bu parametr TRUE olaraq təyin olunarsa, girişdəki çoxbucaqlıların aşağıdakı kimi yönəldildiyi qəbul edilir: kimsə çoxbucaqlı sərhəd boyunca giriş zirvələri qaydasında gəzirsə, çoxbucağın içi sol tərəfdədir. Bu, WKT-nin yarımkürədən böyük poliqonları təmsil etməsinə imkan verir. Orient YALAN və ya buraxılmışsa, bu funksiya daha kiçik sahəsi olan çoxbucağı qaytarır. Ayrıca ST_GEOGFROMTEXT-yə yönəldilmiş = TRUE ilə oxşar olan ST_MAKEPOLYGONORIENTED-ə baxın.

Coğrafi məlumatı WKT kimi formatlaşdırmaq üçün ST_ASTEXT istifadə edin.

Məhdudiyyətlər

  • Bütün giriş kənarlarının sferik geodeziya olduğu və yox düz düz xətlər. Planar proyeksiyada məlumat oxumaq üçün ST_GEOGFROMGEOJSON istifadə etməyi düşünün. Sferik geodeziya ilə planar xətlər arasındakı fərqlər haqqında daha çox məlumat üçün Koordinat sistemləri və kənarlarına baxın.
  • Funksiya nə Z şəkilçisi olan üçölçülü həndəsələri, nə də M şəkilçisi ilə xətti istinad sistemi həndəsələrini dəstəkləyir.
  • Funksiya yalnız həndəsə primitivlərini və çox hissəli həndəsələri dəstəkləyir. Xüsusilə yalnız Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon və GeometryCollection dəstəkləyir.

Qayıdış növü

Aşağıdakı sorğuda WKT string POLYGON ((0 0, 0 2, 2 2, 2 0, 0 0)) həm yönəlməmiş çoxbucaqlı, həm də yönümlü bir çoxbucaqlı olaraq oxunur və hər nəticənin (1, 1).

İmza 2

Təsvir

Giriş WKT təmsilçiliyinə uyğun bir Coğrafi dəyər qaytarır.

Bu funksiya BOOL tipli üç isteğe bağlı parametrləri dəstəkləyir: orientated, planar, and make_valid. Bu imza adlanan arqumentlər sintaksisindən istifadə edir və parametrlər parameter_name = & gt parameter_value sintaksisindən istifadə edərək istənilən qaydada təyin olunmalıdır.

İstiqamətləndirilmiş parametr TRUE olaraq təyin olunduqda, girişdəki çoxbucaqlıların aşağıdakı kimi yönəldildiyi qəbul edilir: kimsə çoxbucaqlı sərhəd boyunca giriş təpələri qaydasında gəzirsə, çoxbucağın içi sol tərəfdədir. Bu, WKT-nin yarımkürədən böyük poliqonları təmsil etməsinə imkan verir. Orient YALAN və ya buraxılmışsa, bu funksiya daha kiçik sahəsi olan çoxbucağı qaytarır. Ayrıca ST_GEOGFROMTEXT-yə yönəldilmiş = TRUE ilə oxşar olan ST_MAKEPOLYGONORIENTED-ə baxın.

Parametr düzəldicisi TRUE olaraq təyin olunduqda, xətt sətirlərinin və çoxbucaqlıların kənarlarında BigQuery-nin sferik geodeziya semantikasından çox, düzən xəritə semantikasından istifadə edildiyi düşünülür. Sferik geodeziya ilə planar xətlər arasındakı fərqlər haqqında daha çox məlumat üçün Koordinat sistemləri və kənarlarına baxın.

Make_valid parametri TRUE olaraq ayarlanırsa, funksiya Açıq Məkan Konsorsiumu semantikasına uyğun olmayan çoxbucaqlıları düzəltməyə çalışır.

Coğrafi məlumatı WKT kimi formatlaşdırmaq üçün ST_ASTEXT istifadə edin.

Məhdudiyyətlər

  • Bütün giriş kənarları varsayılan olaraq sferik geodeziya olduğu qəbul edilir və yox düz düz xətlər. Planar proyeksiyada məlumat oxumaq üçün planar = & gt TRUE arqumentini ötürün və ya ST_GEOGFROMGEOJSON istifadə etməyi düşünün. Sferik geodeziya ilə planar xətlər arasındakı fərqlər haqqında daha çox məlumat üçün Koordinat sistemləri və kənarlarına baxın.
  • Funksiya nə Z şəkilçisi olan üçölçülü həndəsələri, nə də M şəkilçisi ilə xətti istinad sistemi həndəsələrini dəstəkləyir.
  • Funksiya yalnız həndəsə primitivlərini və çox hissəli həndəsələri dəstəkləyir. Xüsusilə yalnız Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon və GeometryCollection dəstəkləyir.
  • yönümlü və planar eyni zamanda DOĞRU'ya bərabər ola bilməz.
  • oriental və make_valid eyni zamanda TRUE-a bərabər ola bilməz.

Aşağıdakı sorğuda WKT sətri POLYGON ((0 0, 0 2, 2 2, 0 2, 0 0)) həm yönəlməmiş çoxbucaqlı, həm də yönümlü çoxbucaqlı olaraq oxunur və hər nəticənin (1, 1).

Aşağıdakı sorğu etibarsız bir çoxbucaqlı bir WKT sətrini Coğrafi məlumatlara çevirir. WKT sətri etibarlı bir çoxbucaqlının iki xassəsini pozur - çoxbucağı təsvir edən döngə bağlanmır və öz-özünə kəsişmədən ibarətdir. Make_valid seçimi ilə ST_GeogFromText onu uğurla çox poliqonlu bir forma çevirir.

ST_GEOGFROMWKB

Təsvir

Onaltılı mətn STRING və ya BYTES dəyəri üçün ifadəni Coğrafiya dəyərinə çevirir. İfadə WKB formatında olmalıdır.

Coğrafi məlumatı WKB kimi formatlaşdırmaq üçün ST_ASBINARY istifadə edin.

Məhdudiyyətlər

Bütün giriş kənarlarının sferik geodeziya olduğu və yox düz düz xətlər. Planar proyeksiyada məlumat oxumaq üçün ST_GEOGFROMGEOJSON istifadə etməyi düşünün.

Qayıdış növü

ST_GEOGPOINT

Təsvir

Tək bir nöqtə ilə Coğrafiya yaradır. ST_GEOGPOINT göstərilən FLOAT64 Boylam və enlem parametrlərindən bir nöqtə yaradır və bu nöqtəni Coğrafi məlumat dəyərində qaytarır.

Məhdudiyyətlər

  • Enlemler [-90, 90] aralığında olmalıdır. Bu aralığın xaricindəki enliklər səhvlə nəticələnəcəkdir.
  • [-180, 180] aralığından kənar boylamlara icazə verilir ST_GEOGPOINT [-180, 180] daxilində bir uzunluq əldə etmək üçün giriş uzunluğu modulu 360 istifadə edir.

Qayıdış növü

ST_GEOGPOINTFROMGEOHASH

Təsvir

GeoHash-da müəyyən edilmiş bir sərhəd qutusunun ortasındakı bir nöqtəyə uyğun bir Coğrafi dəyər qaytarır.

Qayıdış növü

ST_GEOHASH

Təsvir

Coğrafiya_deyiminin GeoHash təqdimatını qaytarır. Nəticədə GeoHash ən çox maksimum simvol ehtiva edəcəkdir. Daha az simvol aşağı dəqiqliyə (və ya fərqli olaraq, daha böyük bir məhdudlaşdırıcı qutuya) uyğun gəlir.

Boş bir coğrafi obyekt üzərində ST_GeoHash NULL qaytarır.

Məhdudiyyətlər

  • Yalnız tək nöqtələri təmsil edən Coğrafi obyektlər dəstəklənir.
  • Maksimumların maksimum dəyəri 20-dir.

Qayıdış növü

Seattle Center-in bir GeoHash-ı 10 dəqiqliklə qaytarır.

ST_INTERSECTION

Təsvir

İki giriş CEOGRAPHY s-nin nöqtə dəsti kəsişməsini təmsil edən Coğrafi məlumatları qaytarır. Beləliklə, kəsişmədə hər nöqtə həm coğrafiyada_1, həm də coğrafiyada_2 görünür.

İki giriş coğrafiyası bir-birindən ayrılıbsa, yəni həm giriş həndəsəsi_1, həm də həndəsə_2-də görünən nöqtələr yoxdursa, boş bir Coğrafiya geri qaytarılır.

Müvafiq predikat funksiyaları üçün ST_INTERSECTS, ST_DISJOINT-ə baxın.

Qayıdış növü

ST_INTERSECTS

Təsvir

Coğrafiya_1 ilə coğrafiya_2 nöqtə dəsti kəsişməsi boş deyilsə, DOĞRU qaytarır. Beləliklə, hər iki giriş Coğrafiya s-də görünən ən azı bir nöqtə varsa, bu funksiya TRUE qaytarır.

ST_INTERSECTS TRUE qaytararsa, ST_DISJOINT'nin FALSE qaytaracağını nəzərdə tutur.

Qayıdış növü

ST_INTERSECTSBOX

Təsvir

Coğrafiya [lng1, lng2] və [lat1, lat2] arasındakı düzbucaqlı kəsişsə, DOĞRU qaytarır. Düzbucaqlının kənarları sabit uzunluq və enlem xətlərini izləyir. lng1 və lng2 düzbucağı bağlayan ən qərbdə və şərqdə sabit uzunluq xətlərini, lat1 və lat2 isə düzbucağı bağlayan minimum və maksimum sabit enlik xətlərini təyin edir.

Bütün uzunluq və enlem arqumentlərini dərəcə ilə göstərin.

Məhdudiyyətlər

Giriş arqumentləri aşağıdakı məhdudiyyətlərə tabedir:

  • Enlemler [-90, 90] dərəcə aralığında olmalıdır.
  • Uzunluqlar [-180, 180] dərəcə aralığında olmalıdır.

Qayıdış növü

ST_ISCOLLECTION

Təsvir

Xalların, linestrings və poligonların ümumi sayı birdən çoxdursa, DOĞRU qaytarır.

Boş Coğrafiya kolleksiya deyil.

Qayıdış növü

ST_ISEMPTY

Təsvir

Verilən Coğrafiya boş olduğu təqdirdə, DOĞRU qaytarır, yəni Coğrafiya hər hansı bir nöqtə, sətir və ya çoxbucaq içermir.

Qeyd: BigQuery boş Coğrafiya, müəyyən bir həndəsə şəkli ilə əlaqələndirilmir. Məsələn, ST_GEOGFROMTEXT (& # 39POINT EMPTY & # 39) və ST_GEOGFROMTEXT (& # 39GEOMETRYCOLLECTION EMPTY & # 39) ifadələrinin nəticələri eynidir.

Qayıdış növü

ST_LENGTH

Təsvir

Coğrafiya girişindəki xətlərin ümumi uzunluğunu qaytarır.

Coğrafi_ekis nöqtə və ya çoxbucaqlıdırsa, sıfır qaytarır. Geography_expression bir kolleksiyadırsa, kolleksiyada sətir yoxdursa, kolleksiyadakı sətirlərin uzunluğunu qaytarır, sıfır verir.

İsteğe bağlı use_spheroid parametri bu funksiyanın məsafəni necə ölçdüyünü təyin edir. Use_spheroid FALSE olarsa, funksiya mükəmməl bir kürənin səthindəki məsafəni ölçür.

Use_spheroid parametri hazırda yalnız FALSE dəyərini dəstəkləyir. Use_spheroid-in standart dəyəri YANLIDIR.

Qayıdış növü

ST_MAKELINE

Təsvir

Giriş GEOGRAPHY s-nin hər birinin nöqtə və ya xətt təpələrini verildiyi qaydada birləşdirərək tək bir linestring ilə Coğrafiya yaradır.

ST_MAKELINE iki variantda gəlir. Birinci variant üçün giriş iki Coğrafi sənəd olmalıdır. İkincisi üçün giriş GEOGRAPHY tipli ARRAY olmalıdır. Hər iki variantda da hər bir Coğrafi məlumat aşağıdakı dəyərlərdən birindən ibarət olmalıdır:

ST_MAKELINE-in ilk variantı üçün GEOGRAPHY girişi NULL olarsa, ST_MAKELINE NULL qaytarır. İkinci variant üçün ARRAY girişi və ya ARRAY girişindəki hər hansı bir element NULL olduqda, ST_MAKELINE NULL qaytarır.

Məhdudiyyətlər

Hər kənar 180 dərəcədən az olmalıdır.

Qeyd: BigQuery & # 39s snapping prosesi kifayət qədər qısa kənarları ata bilər və iki son nöqtəni bir araya gətirə bilər. Məsələn, iki giriş Coğrafi məlumatın hər biri bir nöqtə ehtiva edirsə və iki nöqtə çəkmə radiusundan az məsafədə ayrılırsa, nöqtələr bir-birinə bağlanacaqdır. Belə bir vəziyyətdə nəticə tam bir nöqtəyə sahib Coğrafiya olacaqdır.

Qaytarma növü

ST_MAKEPOLYGON

Təsvir

Creates a GEOGRAPHY containing a single polygon from linestring inputs, where each input linestring is used to construct a polygon ring.

ST_MAKEPOLYGON comes in two variants. For the first variant, the input linestring is provided by a single GEOGRAPHY containing exactly one linestring. For the second variant, the input consists of a single GEOGRAPHY and an array of GEOGRAPHY s, each containing exactly one linestring. The first GEOGRAPHY in either variant is used to construct the polygon shell. Additional GEOGRAPHY s provided in the input ARRAY specify a polygon hole. For every input GEOGRAPHY containing exactly one linestring, the following must be true:

  • The linestring must consist of at least three distinct vertices.
  • The linestring must be closed: that is, the first and last vertex have to be the same. If the first and last vertex differ, the function constructs a final edge from the first vertex to the last.

For the first variant of ST_MAKEPOLYGON , if either input GEOGRAPHY is NULL , ST_MAKEPOLYGON returns NULL . For the second variant, if input ARRAY or any element in the ARRAY is NULL , ST_MAKEPOLYGON returns NULL .

NOTE: ST_MAKEPOLYGON accepts an empty GEOGRAPHY as input. ST_MAKEPOLYGON interprets an empty GEOGRAPHY as having an empty linestring, which will create a full loop: that is, a polygon that covers the entire Earth.

Constraints

Together, the input rings must form a valid polygon:

  • The polygon shell must cover each of the polygon holes.
  • There can be only one polygon shell (which has to be the first input ring). This implies that polygon holes cannot be nested.
  • Polygon rings may only intersect in a vertex on the boundary of both rings.

Every edge must span strictly less than 180 degrees.

Each polygon ring divides the sphere into two regions. The first input linesting to ST_MAKEPOLYGON forms the polygon shell, and the interior is chosen to be the smaller of the two regions. Each subsequent input linestring specifies a polygon hole, so the interior of the polygon is already well-defined. In order to define a polygon shell such that the interior of the polygon is the larger of the two regions, see ST_MAKEPOLYGONORIENTED .

NOTE: BigQuery's snapping process may discard sufficiently short edges and snap the two endpoints together. Hence, when vertices are snapped together, it is possible that a polygon hole that is sufficiently small may disappear, or the output GEOGRAPHY may contain only a line or a point.

Return type

ST_MAKEPOLYGONORIENTED

Təsvir

Like ST_MAKEPOLYGON , but the vertex ordering of each input linestring determines the orientation of each polygon ring. The orientation of a polygon ring defines the interior of the polygon as follows: if someone walks along the boundary of the polygon in the order of the input vertices, the interior of the polygon is on the left. This applies for each polygon ring provided.

This variant of the polygon constructor is more flexible since ST_MAKEPOLYGONORIENTED can construct a polygon such that the interior is on either side of the polygon ring. However, proper orientation of polygon rings is critical in order to construct the desired polygon.

If the input ARRAY or any element in the ARRAY is NULL , ST_MAKEPOLYGONORIENTED returns NULL .

NOTE: The input argument for ST_MAKEPOLYGONORIENTED may contain an empty GEOGRAPHY . ST_MAKEPOLYGONORIENTED interprets an empty GEOGRAPHY as having an empty linestring, which will create a full loop: that is, a polygon that covers the entire Earth.

Constraints

Together, the input rings must form a valid polygon:

  • The polygon shell must cover each of the polygon holes.
  • There must be only one polygon shell, which must to be the first input ring. This implies that polygon holes cannot be nested.
  • Polygon rings may only intersect in a vertex on the boundary of both rings.

Every edge must span strictly less than 180 degrees.

ST_MAKEPOLYGONORIENTED relies on the ordering of the input vertices of each linestring to determine the orientation of the polygon. This applies to the polygon shell and any polygon holes. ST_MAKEPOLYGONORIENTED expects all polygon holes to have the opposite orientation of the shell. See ST_MAKEPOLYGON for an alternate polygon constructor, and other constraints on building a valid polygon.

NOTE: Due to BigQuery's snapping process, edges with a sufficiently short length will be discarded and the two endpoints will be snapped to a single point. Therefore, it is possible that vertices in a linestring may be snapped together such that one or more edge disappears. Hence, it is possible that a polygon hole that is sufficiently small may disappear, or the resulting GEOGRAPHY may contain only a line or a point.

Return type

ST_MAXDISTANCE

Returns the longest distance in meters between two non-empty GEOGRAPHY s that is, the distance between two vertices where the first vertex is in the first GEOGRAPHY , and the second vertex is in the second GEOGRAPHY . If geography_1 and geography_2 are the same GEOGRAPHY , the function returns the distance between the two most distant vertices in that GEOGRAPHY .

If either of the input GEOGRAPHY s is empty, ST_MAXDISTANCE returns NULL .

The optional use_spheroid parameter determines how this function measures distance. If use_spheroid is FALSE , the function measures distance on the surface of a perfect sphere.

The use_spheroid parameter currently only supports the value FALSE . The default value of use_spheroid is FALSE .

Return type

ST_NPOINTS

Təsvir

ST_NUMPOINTS

Təsvir

Returns the number of vertices in the input GEOGRAPHY . This includes the number of points, the number of linestring vertices, and the number of polygon vertices.

NOTE: The first and last vertex of a polygon ring are counted as distinct vertices.

Return type

ST_PERIMETER

Təsvir

Returns the length in meters of the boundary of the polygons in the input GEOGRAPHY .

If geography_expression is a point or a line, returns zero. If geography_expression is a collection, returns the perimeter of the polygons in the collection if the collection does not contain polygons, returns zero.

The optional use_spheroid parameter determines how this function measures distance. If use_spheroid is FALSE , the function measures distance on the surface of a perfect sphere.

The use_spheroid parameter currently only supports the value FALSE . The default value of use_spheroid is FALSE .

Return type

ST_POINTN

Təsvir

Returns the Nth point of a linestring geography as a point geography, where N is the index. The index is 1-based. Negative values are counted backwards from the end of the linestring, so that -1 is the last point. Returns an error if the input is not a linestring, if the input is empty, or if there is no vertex at the given index. Use the SAFE prefix to obtain NULL for invalid input instead of an error.

Return Type

The following example uses ST_POINTN , ST_STARTPOINT and ST_ENDPOINT to extract points from a linestring.

ST_SIMPLIFY

Təsvir

Returns a simplified version of geography , the given input GEOGRAPHY . The input GEOGRAPHY is simplified by replacing nearly straight chains of short edges with a single long edge. The input geography will not change by more than the tolerance specified by tolerance_meters . Thus, simplified edges are guaranteed to pass within tolerance_meters of the original positions of all vertices that were removed from that edge. The given tolerance_meters is in meters on the surface of the Earth.

Note that ST_SIMPLIFY preserves topological relationships, which means that no new crossing edges will be created and the output will be valid. For a large enough tolerance, adjacent shapes may collapse into a single object, or a shape could be simplified to a shape with a smaller dimension.

Constraints

For ST_SIMPLIFY to have any effect, tolerance_meters must be non-zero.

ST_SIMPLIFY returns an error if the tolerance specified by tolerance_meters is one of the following:

  • A negative tolerance.
  • Greater than

Return type

The following example shows how ST_SIMPLIFY simplifies the input line GEOGRAPHY by removing intermediate vertices.

The following example illustrates how the result of ST_SIMPLIFY can have a lower dimension than the original shape.

ST_SNAPTOGRID

Təsvir

Returns the input GEOGRAPHY , where each vertex has been snapped to a longitude/latitude grid. The grid size is determined by the grid_size parameter which is given in degrees.

Constraints

Arbitrary grid sizes are not supported. The grid_size parameter is rounded so that it is of the form (10^n), where (-10 < n < 0).

Return type

ST_STARTPOINT

Təsvir

Returns the first point of a linestring geography as a point geography. Returns an error if the input is not a linestring or if the input is empty. Use the SAFE prefix to obtain NULL for invalid input instead of an error.

Return Type

ST_TOUCHES

Təsvir

Returns TRUE provided the following two conditions are satisfied:

  1. geography_1 intersects geography_2 .
  2. The interior of geography_1 and the interior of geography_2 are disjoint.

Return type

ST_UNION

Təsvir

Returns a GEOGRAPHY that represents the point set union of all input GEOGRAPHY s.

ST_UNION comes in two variants. For the first variant, input must be two GEOGRAPHY s. For the second, the input is an ARRAY of type GEOGRAPHY .

For the first variant of ST_UNION , if an input GEOGRAPHY is NULL , ST_UNION returns NULL . For the second variant, if the input ARRAY value is NULL , ST_UNION returns NULL . For a non- NULL input ARRAY , the union is computed and NULL elements are ignored so that they do not affect the output.

See ST_UNION_AGG for the aggregate version of ST_UNION .

Return type

ST_UNION_AGG

Təsvir

Returns a GEOGRAPHY that represents the point set union of all input GEOGRAPHY s.

ST_UNION_AGG ignores NULL input GEOGRAPHY values.

See ST_UNION for the non-aggregate version of ST_UNION_AGG .

Return type

ST_WITHIN

Təsvir

Returns TRUE if no point of geography_1 is outside of geography_2 and the interiors of geography_1 and geography_2 intersect.

Given two geographies a and b , ST_WITHIN(a, b) returns the same result as ST_CONTAINS (b, a) . Note the opposite order of arguments.

Return type

Təsvir

Returns the longitude in degrees of the single-point input GEOGRAPHY .

For any input GEOGRAPHY that is not a single point, including an empty GEOGRAPHY , ST_X returns an error. Use the SAFE. prefix to obtain NULL .

Return type

The following example uses ST_X and ST_Y to extract coordinates from single-point geographies.

Təsvir

Returns the latitude in degrees of the single-point input GEOGRAPHY .

For any input GEOGRAPHY that is not a single point, including an empty GEOGRAPHY , ST_Y returns an error. Use the SAFE. prefix to return NULL instead.

Return type

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.


GeographicLib

Would it be possible to calculate the intersection point between two geodesic
lines using GeographicLib?

I've been reading the documentation but I haven't been able to find anything
regarding this functionality.

Thanks in advance,
Gonzalo

The code below is a simple solution to the intersection problem
using the gnomonic projection. In this projection geodesics are
nearly straight and they are exactly straight if they go
through the center of projection. So the intersection of two
geodesics can be found as follows: Guess an intersection point.
Project the two line segments into gnomonic, compute their
intersection in this projection, use this intersection point as
the new center, and repeat.

The attached code implements this (without any attempt to figure
out a termination condition). Here's an example of its
operation. Note that the 4 points must be in the same
hemisphere centered at the intersection point for the gnomonic
projection to be defined.

Line A: Istanbul - Washington
Line B: Reyjkavik - Accra

g++ -I/usr/local -L/usr/local -Wl,"-rpath=/usr/local/lib"
-lGeographic -o intersect intersect.cpp

echo 42 29 39 -77 64 -22 6 0 | ./intersect

Initial guess 37.75 -17.5
Increment 16.97176336894064 2.933476949591608
Increment -0.004733759685677796 0.002667305917045226
Increment -3.072813115068129e-10 1.835989138498917e-10
Increment 1.4210854715202e-14 -5.329070518200751e-15
Increment 0 0
Increment 0 0
Increment 0 0
Increment 0 0
Increment 0 0
Increment 0 0
Final result 54.7170296089477 -14.56385574430775
Azimuths on line A -84.14506440848534 -84.14506440848535
Azimuths on line B 160.9174944697586 160.9174944697586

Thank you very much for your fast response. I’ve compiled your sample program
and it works OK.

The problem is that my knowledge regarding geographical calculations and
projections is quite limited, so it’s going to take me some time to understand
the code.

My goal is to check if I can implement by myself other calculations like for
example: distance between a location and a geodesic line or check if three
locations are aligned. I’ll get to you with my conclusions.

For more information on how to do these problems see Sections 11
and 13 of

C. F. F. Karney,
Geodesics on an ellipsoid of revolution,
Feb. 2011, http://arxiv.org/abs/1102.1215

The code below is a simple solution to the interception problem
using the gnomonic projection.

The problem is as follows:

A plane is traveling from A1 to A2. A missile battery is
located at B1. Find the point B2 on the path of the plane, such
that the distance from B1 to B2 is minimum.

The solution is similar to the intersection problem:

guess a position B2 make this the center of a gnomonic
projection map A1, A2, B1 to this projection solve the planar
interception problem to obtained an updated position B2 repeat.
The final azimuths printed allow you to verify that the
interception angle is 90 deg.

A1 = Istanbul, A2 = Washington, B1 = Reyjkavik

g++ -I/usr/local -L/usr/local -Wl,"-rpath=/usr/local/lib"
-lGeographic -o intercept intercept.cpp

echo 42 29 39 -77 64 -22 | ./intercept

Initial guess 40.5 -24
Increment 14.43198468492627 2.186112681554786
Increment -0.003453185661449254 -0.1234026147103826
Increment -2.147899635929207e-09 -1.132893178379391e-06
Increment -1.4210854715202e-14 3.552713678800501e-15
Increment 7.105427357601002e-15 -3.552713678800501e-15
Increment -7.105427357601002e-15 0
Increment 1.4210854715202e-14 7.105427357601002e-15
Increment -1.4210854715202e-14 0
Increment 7.105427357601002e-15 -7.105427357601002e-15
Increment -7.105427357601002e-15 0
Final result 54.92853149711691 -21.93729106604878
Azimuth to A1 89.82530404926784
Azimuth to A2 -90.17469595073216
Azimuth to B1 -0.1746959507321521

It a is very useful tool, but which is the way to perform intersection of two geodesics in a similar manner to FAAs Compsys?

I'm not sure what you're asking for here. If you want a slick
GUI such as Compsys offers, then I can't help.

Ok, Compsys is an achievement of many people, but your achievement is also remarkable by alone person.

I do not understand the problem, that is why i can not do the code or follow the instructions you gave.

My question is to intersect two geodesic path, which is the first step? I suppose to calculate first the two path then transform into gnomonic projection and finally calculate the intersection point. It is that correct?

The algorithm is described in section 8 of "Algorithms for geodesics". I hope this provides you with the information you need.

The solution for calculating the intersection always returns the nearest intersection point without taking directionality into account. But what if you need the antipodal intersection point?
Example: plane A travels in a straight line from N52 E15 with an initial bearing of 80 degrees plane B travels in a straight line from N51 E15 with an initial bearing of 110 degrees. Where do they collide?
The solution above returns N51.41228, E10.46628, but that would only be true when the planes traveled in the opposite directions. Instead, it should be something like S51.4117, W169.9028 (approximately determined visually)

For each plane, pick two points (1000km apart, let's say) on its path
which straddle the intended intersection point (visually determined as
you say). (These points can be computed by solving the direct geodesic
problem with distances of around 20000km.) Then run the algorithm with
these points.

So the answer is S51.63673 W168.33512

Thank you very much!
I've incorporated it on this page: http://www.javawa.nl/coordcalc_en.html
It's a tool for projecting points, calculate distances and intersections etc.
(BTW: the coordinates in my example weren't correct, because I used a bearing of 100 degrees instead of 110)

On the 2nd question (about the distance from a point to a geodesic), using the 2nd provided source file intercept.cpp, i downloaded the last version of the library and installed it in std place (/usr/local, w.o. errors, tests succeeded too)

/usr/local/lib: ldconfig -p | grep -i geographic
libGeographic.so.19 (libc6,x86-64) => /usr/local/lib/libGeographic.so.19
libGeographic.so (libc6,x86-64) => /usr/local/lib/libGeographic.so
/usr/local/lib:

$ g++ intercept.cpp
/tmp/ccQGg0bv.o: In function main': intercept.cpp:(.text+0xbe): undefined reference to GeographicLib::Geodesic::Geodesic(double, double)'
intercept.cpp:(.text+0xd7): undefined reference to GeographicLib::Gnomonic::Gnomonic(GeographicLib::Geodesic const&)' /tmp/ccQGg0bv.o: In function GeographicLib::Geodesic::Inverse(double, double, double, double, double&, double&) const':
intercept.cpp:(.text.ZNK13GeographicLib8Geodesic7InverseEddddRdS1 [ZNK13GeographicLib8Geodesic7InverseEddddRdS1] +0x8f): undefined reference to GeographicLib::Geodesic::GenInverse(double, double, double, double, unsigned int, double&, double&, double&, double&, double&, double&, double&) const' /tmp/ccQGg0bv.o: In function GeographicLib::Gnomonic::Forward(double, double, double, double, double&, double&) const':
intercept.cpp:(.text.ZNK13GeographicLib8Gnomonic7ForwardEddddRdS1 [ZNK13GeographicLib8Gnomonic7ForwardEddddRdS1] +0x77): undefined reference to GeographicLib::Gnomonic::Forward(double, double, double, double, double&, double&, double&, double&) const' /tmp/ccQGg0bv.o: In function GeographicLib::Gnomonic::Reverse(double, double, double, double, double&, double&) const':
intercept.cpp:(.text.ZNK13GeographicLib8Gnomonic7ReverseEddddRdS1 [ZNK13GeographicLib8Gnomonic7ReverseEddddRdS1] +0x77): undefined reference to GeographicLib::Gnomonic::Reverse(double, double, double, double, double&, double&, double&, double&) const' collect2: error: ld returned 1 exit status

I am trying to see if i can get the c++ solution to work, if it's not too much trouble.


The tool seems to be just calculating the Euclidean distance between the two points (the square root of the sum of the squared differences between the coordinates). This doesn't make any sense for latitudes and longitudes, which are not coordinates in a Cartesian coordinate system. Not only is this number not a meaningful distance, but it no longer contains the information required to reconstruct a distance from it, so you won't be able to calculate anything meaningful from it you need to go back to the latitudes and longitudes themselves.

To calculate distances between points given by latitudes and longitudes precisely, you need to know which geoid was used as a reference in specifying them. But since you only want to get within 95% of the answer, you can safely assume that the Earth is a sphere.

There are two possible meanings for "the distance between two points" on a sphere. You can take the Euclidean distance between the two points (the actual points, not their latitude/longitude coordinates like your tool does), or you can take distance along the shortest curve along the surface of the Earth. Again, if you only want to get to within 95% of the answer and the distances are as small as in your example, the difference is negligble, so you can take the Euclidean distance, which is easier to calculate.

To get the Euclidean distance, you can first calculate the Cartesian coordinates of the points from their latitudes and longitudes. Denoting the latitude by $ heta$, the longitude by $phi$ and the Earth's radius by $R$ (with $Rapprox 6371 mathrm$), these are given by

$vec=left(eginxyzend ight) = left(egin Rcos hetacosphi Rcos hetasinphi Rsin heta end ight). $

Then you get the distance between them using

Since you seem to have small distances and aren't interested in precision, you can simplify this by expanding the trigonometric functions around one of the points, or, for greater precision, around the midpoint $ heta=( heta_1+ heta_2)/2$, $phi=(phi_1+phi_2)/2$:

$vec-vecapprox Rleft(egin sin hetacosphi( heta_2- heta_1)-cos hetasinphi(phi_2-phi_1) sin hetasinphi( heta_2- heta_1)+cos hetacosphi(phi_2-phi_1) cos heta( heta_2- heta_1) end ight), $


Computational geometry.

  • Intervals. An interval is defined by two Comparable objects of the same type. Program Interval.java represents a 1D interval.
  • Intervals. A 2D interval is defined by two 1D intervals, possibly of different types. (Maybe we should make them the same type for simplicity since that's all we need.) Program Interval2D.java represents a 2D interval.
  • Polygons. Polygons are a useful mathematical abstraction for representing the shapes of real-world objects (letters for optical character recognition, obstacles to be avoided by a robot, US congressional district, pieces of an airfoil). Program Polygon.java is a data type for closed polygons. A polygon is a sequence of points p0 through pN, where we assume the first point is equal to the last point, i.e., the polygon is closed. The perimeter is the sum of the Euclidean distances of the N line segments. The signed area of a non self-intersecting polygon is given by

The polygon is counterclockwise if the area is positive. We assume the points are indexed 0 through N-1 and that point N equals point 0. The centroid (or center of mass) of a non self-intersecting polygon is given by the point (x, y) where x and y are defined by

To draw a shaded polygon on screen, we need to know whether each pixel (i, j) is inside or outside the polygon. Jordan curve theorem implies any polygon partitions plane into a finite inside region and an infinite outside region. Solution (ray crossing method): draw a ray from (i, j) down and count the number of times it crosses the polygon (even = outside, odd = inside). Intution: think of polygon as a fence and count # times you jump over the fence.


Distance & travel time in Excel – Google Maps API

Let’s say your Google Maps API key is in a cell named gmaps.key

This API is really easy to use compared to Bing maps (as we need to make just one call).

https://maps.googleapis.com/maps/api/distancematrix/ xml ?origins= $1 &destinations= $2 &mode= $3 &key=gmaps.key

For example, let’s lookup the travel time and distance between Microsoft & APPLE offices.

The response is XML (if you want json, then replace xml with json) like below:

<?xml version=”𔄣.0″” encoding=””UTF-8″”?>
<DistanceMatrixResponse>
<status>OK</status>
<origin_address>Apple Campus, Cupertino, CA 95014, USA</origin_address>
<destination_address>Redmond, WA, USA</destination_address>
<row>
<element>
<status>OK</status>
<duration>
<value> 47736 </value>
<text> 13 hours 16 mins </text>
</duration>
<distance>
<value> 1379709 </value>
<text> 1,380 km </text>
</distance>
</element>
</row>
</DistanceMatrixResponse>

We can FILTERXML this response to extract the important bits like this:


2. Data Acquisition

In photogrammetry data acquisition is define as the process of obtaining the reliable information about the object of interest. This is achieved without physical being in contact with the objects.

The remotely acquired image can be grouped into four:

Geometric Information: It involves in the spatial position and the shape of objects.

Physical Information: It refers to the electromagnetic radiation properties of objects.

Semantic Information: It is refer to the meaning of a required image.

Temporal Information: Recorded images with different date shows the change in the object.


2.1 Geometric Characteristics of Aerial Photographs:

Aerial photographs are classified into two categories: vertical or oblique. Vertical photographs have the camera axis directed as vertically as possible. Most of time vertical photography use single lens camera to acquire remotely sensed image. It is very hard to obtain a true vertical image due to the angular rotation or tilts. This angular rotation or tilts are due to the angular attitude of the aircraft at the instant of exposure. This unavoidable tilts which results in 1 to 3 degree inclination of camera optical axis results in the capturing of titled photographs.

If there is intention of degree of inclination of camera optical axis then it is called Oblique photographs. High oblique photographs contains the image of horizon and Low Oblique photographs exclude it.

2.2 Geometric Characteristics of a Vertical Photographs:

Photographs taken by the camera are the perspective view. Image we see is the 3D view and camera convert 3D look of the image to the 2D. Our brain process the depth and other features of the photographs by using the 3D concept. Camera uses powerful concept of perspective to transfer 3D image to 2D.

Most vertical image acquires distortion in image due to image motion and image displacement due to topography and the effect of parallax. The geometric center of the air photo or the principal point does not have image displacement. The perpendicular from the principal point to the ground is called the Nadir or the Plumb point. Towards the margins of the air photo, the image displacement increases due to effect of the parallax.

The word parallax is derived from the Greek term parallaxis,which means alteration. The object we are observing at any given distance is dependent on the viewpoint or the position of the viewer. Perspective shift occurs when a close object is observed from various viewpoints with respective to the distant background.

Parallax can be describe with the help of the geometry. On the above figure object A and Object B are two viewpoints observing the object O. D is the baseline distance between two viewpoints, and then unknown variable R can be calculated. You can use trigonometry to calculate the unknown values.

In a simple way to explain the parallax is the way our eyes operate. We are always using parallax but do not realize because our brain process things very fast. Hold your arm straight in front of you at eye level and then point your forefinger up. After that alternatively blink each of your eyes and you will notice the forefingers that is arm length appears to move with the respect to the background object. This is the parallax effect.

2.3 Flight Characteristics:

Most of Photographs taken by the frame camera are along flight lines. The line on the ground which is just under the camera lens during photo capturing is called the nadir line. All the photographs taken with the degree of endlap. Endlap is the repeat of the some portion of the successive photographs. This not only ensure that end part of photographs is covered but also it is essential for the stereoscopic coverage.

Aerial photographs are generally taken North-South or East-West direction along flightlines. Flightlines are the path taken by the aircraft to cover the area of interest. This are imaginary lines drawn on the paper by the specialist so whole region is covered for the photographs and also there is enough succession of overlapping. The photos that overlaps within flightlines are called forward overlap and between flightlines are called sidelap.(image source: www.nrcan.gc.ca)

The area that is overlapped for the forward should be between 60-70 percentage. It is used for the stereoscopic view and complete coverage of the area of interest.

The area that is overlapped for the sidelap should be between 25-40 percentage. It is used to ensure that no area is left unphotographhed.

2.4 Coverage Errors: There are two errors that can lead for unsuccessful capturing of photographs: Drift and Crab. Drift is the lateral shift of the aircraft from the flight lines that may be caused by the blowing wind or the pilot error. So it is said that it is good practice to capture a photographs on a sunny day with no wind. Crab occurs when the aircraft is not oriented with flightline.


GIS Resources

The committee formally known as the GIS Committee is now GSADD (Geographic, Spatial and Demographic Data) Workgroup. Materials on this page have been developed by members of this committee.

Address Validation Reference Data - July 2015

Street address and county location at diagnosis are characteristically critically important elements for GIS mapping and analysis. Correct and complete geocoding to coordinate point locations (e.g., latitude/longitude) and standard data analysis areas (e.g., census tract and block) are a function of valid input in these standard NAACCR abstract fields.

The Wisconsin Cancer Reporting System has purchased licensing from the United States Postal Service (USPS) to access USA-wide zip code and street address Data (including County FIPS for addresses.) Using this authoritative reference data, the current validity of individual address zip codes, city/locality names, and county locations can be validated individually and in combination. These records can be used as visual job aids for abstractors as well as validation templates for automated edits in the field or at the central cancer registry.

  • Zip Code Data General Documentation
  • Zip Code Reference Files – DBF
  • Zip Code Reference Files – Single MDB
  • Zip Code Reference Files

American Community Survey Census Tract Data

The NAACCR GIS Committee has created a data table of commonly used demographic and socio-economic variables at the census tract level from the Census Bureau’s American Community Survey (ACS). Most variables are given as percentages of the population to facilitate geographic comparisons. ACS tract-level data are from 5-year periods and covers all of the U.S. and Puerto Rico. The data file downloads contain the tract data table in both SAS and MS Access format, a data dictionary, and a summary report. The SAS code library used to create the data tables is also available and includes a Word file describing the steps in the process.

Note: Updated SAS codes for ACS census tract-level data and urban/rural census tract-level data are available on the NAACCR Call for Data Website under the Certification Tab.

  • ACS Census Tract Data 2011-2015 (uses Census 2010 geographies)
  • ACS Census Tract Data 2007-2011 (uses Census 2010 geographies)
  • ACS Census Tract Data 2006-2010 (uses Census 2010 geographies)
  • ACS Census Tract Data 2005-2009 (uses Census 2000 geographies)
  • ACS Census Tract SAS Code Library

Cluster Analysis Software Review

The GIS Committee, working with a consultant, Luc Anselin, PhD of the University of Illinois at Urbana-Champaign, selected four spatial analysis software packages to be reviewed based on the following criteria: 1) they were free and/or open source, 2) they were up-to-date and under active development, 3) they came with a manual and documentation, 4) they were downloadable from the Internet, and 5) they worked within a Microsoft Windows operating system. This report, was accepted by the NAACCR Board of Directors on August 18, 2004.

NAACCR Geocoder

Due to a partnership between NAACCR, Texas A&M University, and the National Cancer Institute, NAACCR members have access to a single, uniform geocoding platform for open use by all NAACCR Full Member Registries. This system, Automated Geospatial Geocoding Interface Environment or AGGIE, system is accessible through your MyNAACCR log-in. The NAACCR AGGIE Geocoder is also integrated within the SEER DMS registry software package.

To access, first log-on to MyNAACCR.

There are resources on this page to assist with geocoding. For personal assistance or technical issues, please contact Dr. Recinda Sherman at .

Geocoding Best Practices Guide

This Guide was authored by Daniel W. Goldberg of the University of Southern California (USC) GIS Research Laboratory, with expert input and guidance from members of the NAACCR GIS Committee. The Guide serves to centralize much of the available research and practice scholarship on these topics to provide a single, comprehensive perspective on all aspects of geocoding. Geocoding, for example, may involve the process of assigning latitude and longitude coordinates to street addresses.

The Guide is designed for a variety of users, including cancer registry staff who design geocoding systems, those who geocode cancer data, and researchers who use these data for public health research and practice. Dr. John Wilson, Director of the USC GIS Research Laboratory, notes that the Best Practices Guide “will serve as a rich reference manual for anyone who wants to inject more science and less art (uncertainty) into their geocoding tasks.

NAACCR Geocoder Data Dictionary

This document defines the data items generated the by the NAACCR Geocoder during the batch database geocoding process.

NAACCR Geocoder Tutorial

In addition to the materials below, NAACCR is available to individually assist registries with issues related to geocoding and use of the NAACCR Geocoder.


2 A View System for Providing Environmental Information Prior to Work

In this section, we develop a view system to provide environmental information to teleoperators before work on the basis of human spatial cognition. First, we explain human spatial cognition according to psychological knowledge. Next, we assume the effects of acquiring environmental information for teleoperation. Finally, we develop a view system based on human spatial cognition and presume the effects of this view system.

2.1 Human Spatial Cognition

Humans store mental representations known as cognitive maps (Edward, 1948). These maps can be built by acquiring knowledge from survey and route perspectives (Golledge & Stimson, 1997). Humans acquire survey knowledge from external viewpoints, whereas route knowledge can be acquired from internal or personal viewpoints. Thus, survey knowledge is usually described in absolute coordinates such as east and west, whereas route knowledge is described in terms of relative coordinates such as front and back. Moreover, maps are usually used to express survey knowledge, whereas pictures taken from a human viewpoint are usually used to express route knowledge. For example, the maps illustrated in Figure 3(a) are used for the survey knowledge and described in terms such as south and north, whereas the pictures shown in Figure 3(b) come from the route knowledge and are described in terms of right and left (Figures 3(a) and (b) represent the campus of Waseda University).