أكثر

حساب المسافة بين نقطة وخط افتراضي لاثنين من خطوط الطول / العرض

حساب المسافة بين نقطة وخط افتراضي لاثنين من خطوط الطول / العرض


يرجى الرجوع إلى المثال والصورة المقابلة.

أرغب في تحقيق ما يلي: توفير موقعين (خط الطول / الطول) ، وهما موضحان أدناه على النحو التالي أ و ب. من هذا ، سيتم رسم خط افتراضي ثم المسافة بين هذا الخط و ج (في أي قياس).

لقد حققت ذلك حاليًا في Google Maps API v3 ولكني أرغب أيضًا في أن أكون قادرًا على القيام بذلك خلف الكواليس باللغة التي اخترتها. أي نصائح / أفكار موضع تقدير كبير!


def get_perp (X1، Y1، X2، Y2، X3، Y3): "" "******************************* **************************************************** *************** الغرض - X1 ، Y1 ، X2 ، Y2 = نقطتان تمثلان نهايات مقطع السطر X3 ، Y3 = نقطة الإزاحة 'إرجاع - X4 ، Y4 = إرجاع أشر على السطر عموديًا على الإزاحة أو لا شيء إذا لم توجد مثل هذه النقطة '************************************ **************************************************** ************ "" XX = X2 - X1 YY = Y2 - Y1 ShortestLength = ((XX * (X3 - X1)) + (YY * (Y3 - Y1))) / ( (XX * XX) + (YY * YY)) X4 = X1 + XX * أقصر طول Y4 = Y1 + YY * أقصر طول إذا كان X4  X1 و Y4  Y1: إرجاع X4 ، Y4 إرجاع بلا

أقصر مسافة هي المسافة التي تحتاجها إلا إذا كنت مخطئا؟


ربما أجعل الأمر معقدًا للغاية ، لكن ما تريده هو المسافة من نقطة إلى خط. هذه هي المسافة من نقطة على طول AB تربط بين AB و C بخط متعامد مع AB. يُعطى هذا المتجه العمودي على AB بواسطة

v = [x2-x1، - (y2-y1)] # النقطة A هي [x1، y1] النقطة B هي [x2، y2]

(لقد استخدمت الأقواس المربعة لتعريف متجه ، أو مصفوفة مكونة من عنصرين). المسافة بين C [xp، yp] والنقطة A هي

u = [x1-xp، y1-xp]

المسافة بين الخط و C هي مجرد إسقاط u على v. إذا افترضنا أن mod (v) = 1 (فقط تطبيعه) ، إذن

المسافة = u * v = القيمة المطلقة ((x2-x1) * (y1-yp) - (x1-xp) * (y2-y1))

التعقيد الوحيد هو أنك ربما تريد التأكد من أن إحداثياتك ليست أزواج عرض / سجل WGS84 ، ولكنها متوقعة (أو استخدم الإحداثيات الجيوديسية). يمكنك استخدام OGR أو Proj4 لهذا الغرض.


كوني كرهًا قليلاً لكل هذه الرياضيات أيضًا ، كنت سأواجهها من زاوية مختلفة. سأجعله خطًا "فعليًا" ، بدلاً من خط افتراضي ، ثم استخدم الأدوات الموجودة.

إذا كان A و B يشتركان في سمة ، فيمكنك توصيلهما عن طريق رسم خط (لدى Kosmo GIS أداة ستنشئ خطوطًا من النقاط ، وأعتقد أن هناك أيضًا مكون QGIS الإضافي لهذا). بمجرد حصولك على الخطوط ، ستمنحك وظيفة "قريب" في طبقة النقطة "C" المسافة إلى الخط. دع البرنامج يتعامل مع الرياضيات نيابة عنك!


إذا كنت تستخدم جافا على نظام أندرويد ، فهو سطر واحد فقط مع وظيفة المكتبة

استيراد com.google.maps.android.PolyUtil.distanceToLine ثابت ؛

المسافة الخط:

المسافة المزدوجة العامة الثابتة (LatLng p ، بداية LatLng ، نهاية LatLng)

تحسب المسافة على الكرة بين النقطة ص والمقطع المستقيم الذي يبدأ حتى النهاية.

المعلمات: p - النقطة المراد قياسها

البداية - بداية المقطع المستقيم

النهاية - نهاية المقطع المستقيم

العوائد: المسافة بالأمتار (بافتراض الأرض الكروية)

فقط أضف مكتبة إلى ملف

التبعيات {compile 'com.google.maps.android:android-maps-utils:0.5+'}

استخدم الصيغة التالية لإيجاد المسافة بين خطي عرض:

مرر خطوط العرض والطول مع الوظيفة والوحدة التي تريد المسافة فيها ("K" للكيلومتر و "M" للأميال). ارجوا ان يساعدك هذا.

Location.distanceBetween () سيفعل ذلك لنقطتي إحداثيات خط الطول.

عندما تسافر براً (حتى عن طريق السفر الجوي أيضًا) ، يلعب تأثير الأرض نظرًا لأن الأرض ليست مسطحة. لكن يجب أن تهتم صيغة Haversine هذه بالفعل. ثانيًا ، ما قد يقوله الناس ، هو أنه عندما تسافر براً ، لا تذهب مباشرة بين نقطتين. تأخذ عددًا كبيرًا من الأدوار. ولكي تحدد "بدقة" المسافة بين نقطتين ، قد ترغب في أخذ هذه المنعطفات في الاعتبار أيضًا.

لقد وجدت نموذج الكود في الرابط التالي لحساب المسافة التي تمر عبر الطرق.

يبدو أن المسافة بين الممرات الراديوية أكبر ، لأن القطارات والشاحنات لا تتحرك على طول الخط المستقيم ، بل تتحرك الطائرات.

أنت بحاجة إلى خريطة طريق لتحدث حساب المسافة


وظائف الجغرافيا في معيار SQL

تعمل وظائف الجغرافيا على قيم BigQuery GeOGRAPHY أو تنشئها. يبدأ توقيع أي دالة جغرافية بـ ST_. يدعم BigQuery الوظائف التالية التي يمكن استخدامها لتحليل البيانات الجغرافية ، وتحديد العلاقات المكانية بين الميزات الجغرافية ، وإنشاء أو معالجة البيانات الجغرافية.

تقوم كافة دالات BigQuery الجغرافية بإرجاع NULL إذا كانت أي وسيطة إدخال فارغة.

فئات

يتم تجميع وظائف الجغرافيا في الفئات التالية بناءً على سلوكها:

فئة المهام وصف
المنشئون ST_GEOGPOINT
ST_MAKELINE
ST_MAKEPOLYGON
ST_MAKEPOLYGONORIENTED
الوظائف التي تنشئ قيمًا جغرافية جديدة من الإحداثيات أو المناطق الجغرافية الموجودة.
موزعي ST_GEOGFROM
ST_GEOGFROMGEOJSON
ST_GEOGFROMTEXT
ST_GEOGFROMWKB
ST_GEOGPOINTFROMGEOHASH
الوظائف التي تنشئ مناطق جغرافية من تنسيق خارجي مثل WKT و GeoJSON.
المنسقون ST_ASBINARY
ST_ASGEOJSON
ST_ASTEXT
ST_GEOHASH
الوظائف التي تقوم بتصدير المناطق الجغرافية إلى تنسيق خارجي مثل WKT.
التحولات ST_BOUNDARY
ST_CENTROID
ST_CENTROID_AGG (إجمالي)
ST_CLOSESTPOINT
ST_CONVEXHULL
ST_DIFFERENCE
ST_DUMP
ST_INTERSECTION
ST_SIMPLIFY
ST_SNAPTOGRID
ST_UNION
ST_UNION_AGG (إجمالي)
الوظائف التي تولد جغرافيا جديدة على أساس المدخلات.
الموصلات ST_DIMENSION
ST_DUMP
ST_ENDPOINT
ST_ISCOLLECTION
ST_ISEMPTY
نقاط ST_NPOINTS
ST_NUMPOINTS
ST_POINTN
ST_STARTPOINT
ST_X
مكان قذر
الوظائف التي توفر الوصول إلى خصائص جغرافية ما دون آثار جانبية.
المسند ST_CONTAINS
ST_COVEREDBY
ST_COVERS
ST_DISJOINT
ST_DWITHIN
ST_EQUALS
ST_INTERSECTS
ST_INTERSECTSBOX
ST_TOUCHES
ST_WITHIN
الدالات التي تُرجع TRUE أو FALSE لبعض العلاقات المكانية بين منطقتين جغرافيتين أو بعض خصائص منطقة جغرافية ما. تُستخدم هذه الوظائف بشكل شائع في عبارات التصفية.
مقاسات ST_AREA
ST_DISTANCE
ST_LENGTH
ST_MAXDISTANCE
ST_PERIMETER
الوظائف التي تحسب قياسات منطقة جغرافية واحدة أو أكثر.
تجمع ST_CLUSTERDBSCAN الوظائف التي تؤدي التجميع في المناطق الجغرافية.

ST_AREA

وصف

إرجاع المساحة بالمتر المربع التي تغطيها المضلعات في جغرافيا الإدخال.

إذا كانت geography_expression عبارة عن نقطة أو خط ، يتم إرجاع صفر. إذا كانت geography_expression عبارة عن مجموعة ، يتم إرجاع مساحة المضلعات في المجموعة إذا كانت المجموعة لا تحتوي على مضلعات ، يتم إرجاع صفر.

تحدد المعلمة use_spheroid الاختيارية كيفية قياس هذه الوظيفة للمسافة. إذا كانت قيمة use_spheroid تساوي FALSE ، فإن الدالة تقيس المسافة على سطح كرة كاملة.

تدعم المعلمة use_spheroid حاليًا القيمة FALSE فقط. القيمة الافتراضية لـ use_spheroid هي FALSE.

نوع الإرجاع

ST_ASBINARY

وصف

لعرض تمثيل WKB لإدخال جغرافي.

راجع ST_GEOGFROMWKB لإنشاء مخطط جغرافي من WKB.

نوع الإرجاع

ST_ASGEOJSON

وصف

لعرض تمثيل GeoJSON المتوافق مع RFC 7946 لمدخلات الجغرافيا.

يحتوي BigQuery GeOGRAPHY على حواف جيوديسية كروية ، بينما يحتوي كائن GeoJSON Geometry بشكل واضح على حواف مستوية. للتحويل بين هذين النوعين من الحواف ، يضيف BigQuery نقاطًا إضافية إلى الخط عند الضرورة بحيث يظل تسلسل الحواف الناتج في نطاق 10 أمتار من الحافة الأصلية.

راجع ST_GEOGFROMGEOJSON لإنشاء مخطط جغرافي من GeoJSON.

نوع الإرجاع

ST_ASTEXT

وصف

لعرض تمثيل WKT لإدخال جغرافي.

راجع ST_GEOGFROMTEXT لإنشاء مخطط جغرافي من WKT.

نوع الإرجاع

ST_BOUNDARY

وصف

إرجاع جغرافي واحد يحتوي على اتحاد حدود كل مكون في المدخلات الجغرافية.

يتم تعريف حدود كل مكون من مكونات الجغرافيا على النحو التالي:

  • حدود النقطة فارغة.
  • تتكون حدود السطر من نقاط نهاية الخيط السطرى.
  • تتكون حدود المضلع من السلاسل الخطية التي تشكل غلاف المضلع وكل من ثقوب المضلع & # 39.

نوع الإرجاع

ST_CENTROID

وصف

ترجع ال النقطه الوسطى جغرافيا الإدخال كنقطة واحدة جغرافيا.

ال النقطه الوسطى من الجغرافيا هو المتوسط ​​المرجح للنقط الوسطى من المكونات عالية الأبعاد في الجغرافيا. يتم تعريف النقطه الوسطى للمكونات في كل بعد على النحو التالي:

  • النقطه الوسطى من النقاط هي المتوسط ​​الحسابي لإحداثيات الإدخال.
  • النقطه الوسطى من الزنبركات هي النقطه الوسطى لجميع الحواف الموزونة بالطول. النقطه الوسطى من كل حافة هي نقطة المنتصف الجيوديسية للحافة.
  • النقطه الوسطى من المضلع هي مركز كتلته.

إذا كان الإدخال "جغرافي" فارغًا ، يتم إرجاع جغرافي فارغ.

القيود

في حالة عدم إمكانية تحديد النقطه الوسطى للجغرافيا بنقطة واحدة على سطح الأرض ، وهو أمر غير مرجح ، يتم إرجاع نقطة حتمية ولكنها عشوائية. لا يمكن أن يحدث هذا إلا إذا كانت النقطه الوسطى تقع بالضبط في مركز الأرض ، مثل النقطه الوسطى لزوج من النقاط المضادة للوجه ، واحتمال حدوث ذلك ضئيل للغاية.

نوع الإرجاع

ST_CENTROID_AGG

وصف

يحسب النقطه الوسطى لمجموعة من المدخلات الجغرافيا كنقطة واحدة جغرافيا.

ال النقطه الوسطى على مجموعة من المدخلات الجغرافيا هي المتوسط ​​المرجح للنقطة الوسطى لكل فرد جغرافي. فقط الجغرافيا ذات البعد الأعلى الموجود في المدخلات تساهم في النقطه الوسطى للمجموعة بأكملها. على سبيل المثال ، إذا كان الإدخال يحتوي على كل من جغرافي مع سطور و جغرافي بنقاط فقط ، فإن ST_CENTROID_AGG ترجع المتوسط ​​المرجح لخط جغرافي مع سطور ، لأن تلك لها أبعاد قصوى. في هذا المثال ، يتجاهل ST_CENTROID_AGG GEOGRAPHY بنقاط فقط عند حساب النقطه الوسطى التجميعية.

ST_CENTROID_AGG يتجاهل القيم الجغرافية للإدخال NULL.

راجع ST_CENTROID للنسخة غير المجمعة من ST_CENTROID_AGG وتعريف النقطه الوسطى لقيمة جغرافية فردية.

نوع الإرجاع

تحسب الاستعلامات التالية النقطه الوسطى الكلي علي مجموعه من القيم الجغرافيه. يحتوي الإدخال في الاستعلام الأول على نقاط فقط ، وبالتالي تساهم كل قيمة في النقطه الوسطى التجميعية. لاحظ أيضًا أن ST_CENTROID_AGG هي ليس يعادل استدعاء ST_CENTROID نتيجة ST_UNION_AGG تتم إزالة التكرارات بواسطة الاتحاد ، على عكس ST_CENTROID_AGG. الإدخال إلى الاستعلام الثاني له أبعاد مختلطة ، والقيم ذات البعد الأعلى فقط في المجموعة ، الخطوط ، تؤثر على النقطه الوسطى الكلي.

ST_CLOSESTPOINT

وصف

إرجاع GeOGRAPHY الذي يحتوي على نقطة في geography_1 مع أصغر مسافة ممكنة إلى geography_2. هذا يعني أن المسافة بين النقطة التي أرجعها ST_CLOSESTPOINT و geography_2 أقل من أو تساوي المسافة بين أي نقطة أخرى في geography_1 و geography_2.

إذا كان أي من المدخلات GEOGRAPHY s فارغًا ، فتُرجع ST_CLOSESTPOINT القيمة NULL.

تحدد المعلمة use_spheroid الاختيارية كيفية قياس هذه الوظيفة للمسافة. إذا كانت قيمة use_spheroid تساوي FALSE ، فإن الدالة تقيس المسافة على سطح كرة كاملة.

تدعم المعلمة use_spheroid حاليًا القيمة FALSE فقط. القيمة الافتراضية لـ use_spheroid هي FALSE.

نوع الإرجاع

ST_CLUSTERDBSCAN

يقوم بتجميع DBSCAN على عمود من المناطق الجغرافية. تُرجع رقم مجموعة يستند إلى 0.

معلمات الإدخال

  • geography_column: عمود الجغرافيا المجمعة.
  • إبسيلون: epsilon الذي يحدد نصف القطر ، مُقاسًا بالأمتار ، حول قيمة أساسية. قيمة FLOAT64 غير سالبة.
  • الحد الأدنى_الجغرافيات: يحدد الحد الأدنى لعدد المناطق الجغرافية في مجموعة واحدة. فقط المدخلات الكثيفة تشكل كتلة ، وإلا فإنها تصنف على أنها ضوضاء. قيمة INT64 غير سالبة.

OVER: يحدد نافذة. انظر وظائف التحليل. استخدام جملة OVER مع ST_CLUSTERDBSCAN متوافق مع ما يلي:

أنواع الجغرافيا وخوارزمية DBSCAN

تحدد خوارزمية DBSCAN مجموعات البيانات عالية الكثافة وتميز القيم المتطرفة في مناطق الضوضاء منخفضة الكثافة. يتم تصنيف المناطق الجغرافية التي تم تمريرها عبر geography_column بإحدى الطرق الثلاث بواسطة خوارزمية DBSCAN:

  • القيمة الأساسية: الجغرافيا هي القيمة الأساسية إذا كانت ضمن مسافة إبسيلون من الحد الأدنى للجغرافيات ، بما في ذلك نفسها. تبدأ القيمة الأساسية كتلة جديدة ، أو تضاف إلى نفس المجموعة كقيمة أساسية ضمن مسافة إبسيلون. يتم تجميع القيم الأساسية في مجموعة مع جميع القيم الأساسية والحدودية الأخرى الموجودة ضمن مسافة إبسيلون.
  • قيمة الحدود: الجغرافيا هي قيمة حدودية إذا كانت ضمن مسافة إبسيلون من قيمة أساسية. تتم إضافته إلى نفس المجموعة كقيمة أساسية ضمن مسافة إبسيلون. قد تكون قيمة الحدود ضمن مسافة epsilon لأكثر من مجموعة واحدة. في هذه الحالة ، قد يتم تعيينه بشكل تعسفي لأي من المجموعات وستنتج الوظيفة نفس النتيجة في الاستدعاءات اللاحقة.
  • الضوضاء: الجغرافيا هي ضوضاء إذا لم تكن جوهرية ولا قيمة حدودية. يتم تعيين قيم الضوضاء لمجموعة NULL. دائمًا ما يتم تصنيف الجغرافيا الفارغة على أنها ضوضاء.

القيود

  • الحد الأدنى للوسيطة هو INT64 غير سلبي و epsilon هو FLOAT64 غير سلبي.
  • لا يمكن أن تنضم منطقة جغرافية فارغة إلى أي مجموعة.
  • يمكن أن تكون التعيينات العنقودية المتعددة ممكنة لقيمة حدية. إذا كانت الجغرافيا عبارة عن قيمة حد ، فسيقوم ST_CLUSTERDBSCAN بتعيينها إلى نظام مجموعة تعسفي صالح.

نوع الإرجاع

INT64 لكل موقع جغرافي في عمود الجغرافيا.

ينفذ هذا المثال تجميع DBSCAN بنصف قطر 100000 متر مع وسيطة دنيا جغرافية تبلغ 1. المناطق الجغرافية التي يتم تحليلها عبارة عن مزيج من النقاط والخطوط والمضلعات.

ST_CONTAINS

وصف

تُرجع TRUE إذا لم تكن هناك نقطة من geography_2 خارج geography_1 ، وتعرض العناصر الداخلية FALSE بخلاف ذلك.

ملاحظة: جغرافيا لا تحتوي على حدودها الخاصة. قارن مع ST_COVERS.

نوع الإرجاع

يختبر الاستعلام التالي ما إذا كان المضلع POLYGON ((1 1 ، 20 1 ، 10 20 ، 1 1)) يحتوي على كل من النقاط الثلاث (0 ، 0) ، (1 ، 1) ، و (10 ، 10) ، التي تقع على السطح الخارجي والحدود والداخلية للمضلع على التوالي.

ST_CONVEXHULL

وصف

إرجاع الهيكل المحدب لمدخلات الجغرافيا. البدن المحدب هو أصغر جغرافيا محدبة تغطي المدخلات. تكون الجغرافيا محدبة إذا كانت الحافة الجيوديسية التي تربط النقاط موجودة أيضًا في نفس الجغرافيا لكل زوج من النقاط في الجغرافيا.

في معظم الحالات ، يتكون الهيكل المحدب من مضلع واحد. تشمل حالات الحافة البارزة ما يلي:

  • البدن المحدب لنقطة واحدة هو أيضًا نقطة.
  • البدن المحدب المكون من نقطتين أو أكثر من النقاط الخطية عبارة عن سلسلة خطية طالما أن هذا الخط محدب.
  • إذا كان المدخل الجغرافي يمتد لأكثر من نصف كرة ، فإن الهيكل المحدب هو الكرة الأرضية الكاملة. يتضمن هذا أي إدخال يحتوي على زوج من النقاط المضادة للوجه.
  • تقوم ST_CONVEXHULL بإرجاع NULL إذا كان الإدخال إما NULL أو GEOGRAPHY فارغًا.

نوع الإرجاع

يمكن أن يكون الهيكل المحدب الذي تم إرجاعه بواسطة ST_CONVEXHULL نقطة ، أو خط مستقيم ، أو مضلع ، اعتمادًا على الإدخال.

ST_COVEREDBY

وصف

تُرجع FALSE إذا كانت geography_1 أو geography_2 فارغة. إرجاع TRUE إذا لم تكن هناك نقاط جغرافية_1 تقع في الجزء الخارجي من الجغرافيا_2.

بالنظر إلى جغرافيين أ وب ، تُرجع ST_COVEREDBY (أ ، ب) نفس النتيجة مثل ST_COVERS (ب ، أ). لاحظ الترتيب المعاكس للحجج.

نوع الإرجاع

ST_COVERS

وصف

تُرجع FALSE إذا كانت geography_1 أو geography_2 فارغة. إرجاع TRUE إذا لم تكن هناك نقاط جغرافية_2 تقع في الجزء الخارجي من geography_1.

نوع الإرجاع

يختبر الاستعلام التالي ما إذا كان المضلع POLYGON ((1 1 ، 20 1 ، 10 20 ، 1 1)) يغطي كل نقطة من النقاط الثلاث (0 ، 0) ، (1 ، 1) ، و (10 ، 10) ، التي تقع على السطح الخارجي والحدود والداخلية للمضلع على التوالي.

ST_DIFFERENCE

وصف

إرجاع GeOGRAPHY الذي يمثل اختلاف مجموعة النقاط بين geography_1 و geography_2.

إذا تم تضمين geometry_1 بالكامل في geometry_2 ، فإن ST_DIFFERENCE تُرجع جغرافيًا فارغًا.

القيود

تتوافق الكائنات الهندسية الأساسية التي يمثلها BigQuery GeOGRAPHY مع ملف مغلق مجموعة نقطة. لذلك ، ST_DIFFERENCE هو إغلاق اختلاف مجموعة النقاط بين geography_1 و geography_2. هذا يعني أنه في حالة تقاطع geography_1 و geography_2 ، فقد يكون هناك فرق بين جزء من حدود geography_2.

نوع الإرجاع

ST_DIMENSION

وصف

تُرجع بُعد العنصر ذو الأبعاد الأعلى في جغرافيا الإدخال.

أبعاد كل عنصر محتمل هي كما يلي:

  • بعد النقطة 0.
  • أبعاد سلسلة الخطوط هي 1.
  • أبعاد المضلع هي 2.

إذا كان الإدخال GEOGRAPHY فارغًا ، فتُرجع ST_DIMENSION -1.

نوع الإرجاع

ST_DISJOINT

وصف

لعرض TRUE إذا كان تقاطع geography_1 و geography_2 فارغًا ، أي أنه لا توجد نقطة في geography_1 تظهر أيضًا في geography_2.

ST_DISJOINT هو النفي المنطقي لـ ST_INTERSECTS.

نوع الإرجاع

ST_DISTANCE

وصف

تعرض أقصر مسافة بالأمتار بين نسختين جغرافيتين غير فارغتين.

إذا كان أي من المدخلات GEOGRAPHY s فارغًا ، فتُرجع ST_DISTANCE القيمة NULL.

تحدد المعلمة use_spheroid الاختيارية كيفية قياس هذه الوظيفة للمسافة. إذا كانت قيمة use_spheroid تساوي FALSE ، فإن الدالة تقيس المسافة على سطح كرة كاملة.

تدعم المعلمة use_spheroid حاليًا القيمة FALSE فقط. القيمة الافتراضية لـ use_spheroid هي FALSE.

نوع الإرجاع

ST_DUMP

وصف

إرجاع صفيف من الجغرافيا البسيطة حيث كل عنصر هو أحد مكونات المدخلات الجغرافية. تتكون الجغرافيا البسيطة من نقطة واحدة ، أو خط مستقيم ، أو مضلع. إذا كان إدخال الجغرافيا بسيطًا ، تكون النتيجة عنصرًا واحدًا. عندما تكون المدخلات GEOGRAPHY عبارة عن مجموعة ، تقوم ST_DUMP بإرجاع ARRAY مع جغرافي واحد بسيط لكل مكون في المجموعة.

إذا تم توفير البعد ، فإن الدالة ترجع فقط الجغرافيا للبعد المقابل. البعد -1 يعادل حذف البعد.

نوع الإرجاع

يوضح المثال التالي كيف تقوم ST_DUMP بإرجاع مناطق جغرافية بسيطة ضمن منطقة جغرافية معقدة.

يوضح المثال التالي كيف أن ST_DUMP مع وسيطة البعد لا تُرجع سوى مناطق جغرافية بسيطة للبعد المحدد.

ST_DWITHIN

وصف

تُرجع TRUE إذا كانت المسافة بين نقطة واحدة على الأقل في geography_1 ونقطة واحدة في geography_2 أقل من المسافة المحددة بواسطة وسيطة المسافة أو تساويها ، يتم إرجاع FALSE. إذا كان أي من المدخلات GEOGRAPHY فارغًا ، فإن ST_DWithin ترجع FALSE. المسافة المحددة بالأمتار على سطح الأرض.

تحدد المعلمة use_spheroid الاختيارية كيفية قياس هذه الوظيفة للمسافة. إذا كانت قيمة use_spheroid تساوي FALSE ، فإن الدالة تقيس المسافة على سطح كرة كاملة.

تدعم المعلمة use_spheroid حاليًا القيمة FALSE فقط. القيمة الافتراضية لـ use_spheroid هي FALSE.

نوع الإرجاع

ST_ENDPOINT

وصف

تُرجع النقطة الأخيرة من جغرافية خطية كنقطة جغرافية. تُرجع خطأ إذا لم يكن الإدخال عبارة عن سلسلة سطرية أو إذا كان الإدخال فارغًا. استخدم البادئة SAFE للحصول على NULL لإدخال غير صالح بدلاً من الخطأ.

نوع الإرجاع

ST_EQUALS

وصف

إرجاع TRUE إذا كانت geography_1 و geography_2 تمثلان نفس الشيء

القيمة الجغرافية. بتعبير أدق ، هذا يعني أن أحد الشروط التالية ينطبق: + ST_COVERS (geography_1 ، geography_2) = TRUE و ST_COVERS (geography_2 ، geography_1) = TRUE + كل من geography_1 و geography_2 فارغتان.

لذلك ، قد يتساوى اثنان جغرافيان حتى لو كان ترتيب النقاط أو الرؤوس مختلفًا ، طالما أنها لا تزال تمثل نفس البنية الهندسية.

القيود

لا يمكن ضمان أن تكون ST_EQUALS دالة متعدية.

نوع الإرجاع

ST_GEOGFROM

وصف

تحويل تعبير لقيمة STRING أو BYTES إلى قيمة جغرافية.

إذا كان التعبير يمثل قيمة سلسلة ، فيجب أن يكون تمثيلًا جغرافيًا صالحًا بأحد التنسيقات التالية:

  • تنسيق WKT. لمعرفة المزيد حول هذا التنسيق ومتطلبات استخدامه ، راجع ST_GEOGFROMTEXT.
  • WKB بتنسيق نص سداسي عشري. لمعرفة المزيد حول هذا التنسيق ومتطلبات استخدامه ، راجع ST_GEOGFROMWKB.
  • تنسيق GeoJSON. لمعرفة المزيد حول هذا التنسيق ومتطلبات استخدامه ، راجع ST_GEOGFROMGEOJSON.

إذا كان التعبير يمثل قيمة BYTES ، فيجب أن يكون تعبيرًا ثنائيًا صالحًا لـ GEOGRAPHY بتنسيق WKB. لمعرفة المزيد حول هذا التنسيق ومتطلبات استخدامه ، راجع ST_GEOGFROMWKB.

إذا كان التعبير NULL ، يكون الإخراج NULL.

نوع الإرجاع

يأخذ هذا سلسلة بتنسيق WKT ويعيد مضلع جغرافي:

يأخذ هذا سلسلة WKB ذات تشفير سداسي عشري وتعيد نقطة جغرافية:

يأخذ هذا البايت بتنسيق WKB ويعيد نقطة جغرافية:

يأخذ هذا سلسلة بتنسيق GEOJSON ويعيد مضلع GEOGRAPHY:

ST_GEOGFROMGEOJSON

وصف

تُرجع قيمة GEOGRAPHY التي تتوافق مع تمثيل GeoJSON للإدخال.

يقبل ST_GEOGFROMGEOJSON الإدخال المتوافق مع RFC 7946.

إذا تم تعيين المعلمة make_valid على TRUE ، تحاول الوظيفة إصلاح المضلعات التي لا تتوافق مع دلالات Open Geospatial Consortium. تستخدم هذه المعلمة بنية وسيطة مسماة ، ويجب تحديدها باستخدام بنية make_valid = & gtuments_value.

يحتوي BigQuery GeOGRAPHY على حواف جيوديسية كروية ، بينما يحتوي كائن GeoJSON Geometry بشكل واضح على حواف مستوية. للتحويل بين هذين النوعين من الحواف ، يضيف BigQuery نقاطًا إضافية إلى الخط عند الضرورة بحيث يظل تسلسل الحواف الناتج في نطاق 10 أمتار من الحافة الأصلية.

راجع ST_ASGEOJSON لتنسيق الجغرافيا مثل GeoJSON.

القيود

الإدخال يخضع للقيود التالية:

  • تقبل ST_GEOGFROMGEOJSON أجزاء هندسة JSON فقط ولا يمكن استخدامها لاستيعاب مستند JSON بالكامل.
  • يجب أن يتكون جزء JSON المدخل من نوع GeoJSON الهندسي ، والذي يتضمن Point و MultiPoint و LineString و MultiLineString و Polygon و MultiPolygon و GeometryCollection. أي نوع GeoJSON آخر مثل Feature أو FeatureCollection سوف ينتج عنه خطأ.
  • يجب أن يتكون الموضع في عضو الإحداثيات لنوع GeoJSON الهندسي من عنصرين بالضبط. الأول هو خط الطول والثاني هو خط العرض. لذلك ، لا يدعم ST_GEOGFROMGEOJSON العنصر الثالث الاختياري لمنصب في عضو الإحداثيات.

نوع الإرجاع

ST_GEOGFROMTEXT

التوقيع 1

وصف

تُرجع قيمة GEOGRAPHY التي تتوافق مع تمثيل WKT للإدخال.

تدعم هذه الوظيفة معلمة اختيارية من النوع BOOL ، موجهة. إذا تم تعيين هذه المعلمة على TRUE ، فمن المفترض أن تكون أي مضلعات في الإدخال موجهة على النحو التالي: إذا سار شخص ما على طول حدود المضلع بترتيب رؤوس الإدخال ، فسيكون الجزء الداخلي من المضلع على اليسار. يسمح هذا لـ WKT بتمثيل مضلعات أكبر من نصف الكرة الأرضية. إذا كانت التوجيهات هي FALSE أو تم حذفها ، فإن هذه الدالة تُرجع المضلع بمساحة أصغر. راجع أيضًا ST_MAKEPOLYGONORIENTED الذي يشبه ST_GEOGFROMTEXT مع الاتجاه = TRUE.

لتنسيق GEOGRAPHY بتنسيق WKT ، استخدم ST_ASTEXT.

القيود

  • يُفترض أن تكون جميع حواف الإدخال عبارة عن جيوديسية كروية ، و ليس خطوط مستوية مستقيمة. لقراءة البيانات في الإسقاط المستوي ، ضع في اعتبارك استخدام ST_GEOGFROMGEOJSON. لمزيد من المعلومات حول الاختلافات بين الجيوديسيا الكروية والخطوط المستوية ، راجع أنظمة التنسيق والحواف.
  • لا تدعم الوظيفة الأشكال الهندسية ثلاثية الأبعاد التي لها لاحقة Z ، كما أنها لا تدعم هندسة نظام الإحالة الخطية مع لاحقة M.
  • تدعم الوظيفة الأساسيات الهندسية والأشكال الهندسية متعددة الأجزاء فقط. على وجه الخصوص ، يدعم فقط Point و MultiPoint و LineString و MultiLineString و Polygon و MultiPolygon و GeometryCollection.

نوع الإرجاع

يقرأ الاستعلام التالي سلسلة WKT POLYGON ((0 0 ، 0 2 ، 2 2 ، 2 0 ، 0 0)) كمضلع غير موجه وكمضلع موجه ، ويتحقق مما إذا كانت كل نتيجة تحتوي على النقطة (1 ، 1).

التوقيع 2

وصف

تُرجع قيمة GEOGRAPHY التي تتوافق مع تمثيل WKT للإدخال.

تدعم هذه الوظيفة ثلاث معلمات اختيارية من النوع BOOL: موجهة ومستوية و make_valid. يستخدم هذا التوقيع بناء جملة الوسائط المسماة ، ويجب تحديد المعلمات باستخدام صياغة المعلمات = & gt ، في أي ترتيب.

إذا تم تعيين المعلمة الموجهة إلى TRUE ، فمن المفترض أن تكون أي مضلعات في الإدخال موجهة على النحو التالي: إذا سار شخص ما على طول حدود المضلع بترتيب رؤوس الإدخال ، فسيكون الجزء الداخلي من المضلع على اليسار. يسمح هذا لـ WKT بتمثيل مضلعات أكبر من نصف الكرة الأرضية. إذا كانت التوجيهات هي FALSE أو تم حذفها ، فإن هذه الدالة تُرجع المضلع بمساحة أصغر. راجع أيضًا ST_MAKEPOLYGONORIENTED الذي يشبه ST_GEOGFROMTEXT مع الاتجاه = TRUE.

إذا تم تعيين مستوى المعلمة على TRUE ، فمن المفترض أن تستخدم حواف سلاسل الخطوط والمضلعات دلالات الخريطة المستوية ، بدلاً من الدلالات الجيوديسية الكروية الافتراضية في BigQuery. لمزيد من المعلومات حول الاختلافات بين الجيوديسيا الكروية والخطوط المستوية ، راجع أنظمة التنسيق والحواف.

إذا تم تعيين المعلمة make_valid على TRUE ، تحاول الوظيفة إصلاح المضلعات التي لا تتوافق مع دلالات Open Geospatial Consortium.

لتنسيق GEOGRAPHY بتنسيق WKT ، استخدم ST_ASTEXT.

القيود

  • يُفترض أن تكون جميع حواف الإدخال جيوديسية كروية بشكل افتراضي ، و ليس خطوط مستقيمة مستوية. لقراءة البيانات في الإسقاط المستوي ، قم بتمرير وسيطة planar = & gt TRUE ، أو ضع في اعتبارك استخدام ST_GEOGFROMGEOJSON. لمزيد من المعلومات حول الاختلافات بين الجيوديسيا الكروية والخطوط المستوية ، راجع أنظمة التنسيق والحواف.
  • لا تدعم الوظيفة الأشكال الهندسية ثلاثية الأبعاد التي لها لاحقة Z ، كما أنها لا تدعم هندسة نظام الإحالة الخطية مع لاحقة M.
  • تدعم الوظيفة الأساسيات الهندسية فقط والهندسة متعددة الأجزاء. على وجه الخصوص ، يدعم فقط Point و MultiPoint و LineString و MultiLineString و Polygon و MultiPolygon و GeometryCollection.
  • الموجهة والمستوية لا يمكن أن تكون مساوية لـ TRUE في نفس الوقت.
  • الموجهة و make_valid لا يمكن أن تساوي TRUE في نفس الوقت.

يقرأ الاستعلام التالي سلسلة WKT POLYGON ((0 0 ، 0 2 ، 2 2 ، 0 2 ، 0 0)) كمضلع غير موجه وكمضلع موجه ، ويتحقق مما إذا كانت كل نتيجة تحتوي على النقطة (1 ، 1).

يقوم الاستعلام التالي بتحويل سلسلة WKT ذات المضلع غير الصحيح إلى GEOGRAPHY. تنتهك سلسلة WKT خاصيتين لمضلع صالح - الحلقة التي تصف المضلع ليست مغلقة ، وتحتوي على تقاطع ذاتي. باستخدام الخيار make_valid ، يقوم ST_GeogFromText بتحويله بنجاح إلى شكل متعدد الأضلاع.

ST_GEOGFROMWKB

وصف

يحول تعبيرًا عن قيمة سلسلة نصية سداسية عشرية أو بايت إلى قيمة جغرافية. يجب أن يكون التعبير بتنسيق WKB.

لتنسيق GEOGRAPHY كـ WKB ، استخدم ST_ASBINARY.

القيود

يُفترض أن تكون جميع حواف الإدخال عبارة عن جيوديسية كروية ، و ليس خطوط مستوية مستقيمة. لقراءة البيانات في الإسقاط المستوي ، ضع في اعتبارك استخدام ST_GEOGFROMGEOJSON.

نوع الإرجاع

ST_GEOGPOINT

وصف

ينشئ جغرافيا بنقطة واحدة. ينشئ ST_GEOGPOINT نقطة من معلمات خط الطول وخط العرض FLOAT64 المحددة ويعيد تلك النقطة في قيمة جغرافية.

القيود

  • يجب أن تكون خطوط العرض في النطاق [-90 ، 90]. ستؤدي خطوط العرض خارج هذا النطاق إلى حدوث خطأ.
  • خطوط الطول خارج النطاق [-180 ، 180] مسموح بها باستخدام ST_GEOGPOINT إدخال معامل خط الطول 360 للحصول على خط طول داخل [-180 ، 180].

نوع الإرجاع

ST_GEOGPOINTFROMGEOHASH

وصف

ترجع قيمة GEOGRAPHY التي تقابل نقطة في منتصف المربع المحيط المحدد في GeoHash.

نوع الإرجاع

ST_GEOHASH

وصف

إرجاع تمثيل GeoHash للتعبير الجغرافي. سوف يحتوي GeoHash الناتج على أقصى عدد من الأحرف. عدد أقل من الأحرف يتوافق مع دقة أقل (أو ، كما هو موصوف بشكل مختلف ، لمربع إحاطة أكبر).

يؤدي ST_GeoHash فوق كائن GEOGRAPHY فارغ إلى إرجاع NULL.

القيود

  • يتم دعم الكائنات الجغرافية التي تمثل نقاطًا مفردة فقط.
  • الحد الأقصى لقيمة maxchars هو 20.

نوع الإرجاع

تُرجع GeoHash لمركز سياتل بدقة 10 أحرف.

ST_INTERSECTION

وصف

لعرض جغرافي يمثل تقاطع مجموعة النقاط لمدخلات جغرافيين. وهكذا ، تظهر كل نقطة في التقاطع في كل من geography_1 و geography_2.

إذا كان المدخلان الجغرافيان منفصلان ، أي أنه لا توجد نقاط تظهر في كل من هندسة الإدخال_1 والهندسة_2 ، فسيتم إرجاع جغرافي فارغ.

راجع ST_INTERSECTS ، ST_DISJOINT لوظائف المسند ذات الصلة.

نوع الإرجاع

ST_INTERSECTS

وصف

لعرض TRUE إذا كان تقاطع تعيين النقاط بين geography_1 و geography_2 غير فارغ. وبالتالي ، ترجع هذه الدالة TRUE إذا كانت هناك نقطة واحدة على الأقل تظهر في كل من المدخلات الجغرافية.

إذا قامت ST_INTERSECTS بإرجاع TRUE ، فهذا يعني أن ST_DISJOINT ترجع FALSE.

نوع الإرجاع

ST_INTERSECTSBOX

وصف

لعرض TRUE إذا تقاطعت الجغرافيا المستطيل بين [lng1، lng2] و [lat1، lat2]. حواف المستطيل تتبع خطوط الطول والعرض الثابتة. lng1 و lng2 يحددان خطوط الطول الثابتة في أقصى الغرب والشرق التي تربط المستطيل ، وتحدد خطوط الطول 1 والعرض 2 الحد الأدنى والحد الأقصى لخطوط العرض الثابتة التي تربط المستطيل.

حدد كل وسيطات خطوط الطول والعرض بالدرجات.

القيود

تخضع وسائط الإدخال للقيود التالية:

  • يجب أن تكون خطوط العرض في نطاق [-90 ، 90] درجة.
  • يجب أن تكون خطوط الطول في نطاق [-180 ، 180] درجة.

نوع الإرجاع

ST_ISCOLLECTION

وصف

تُرجع TRUE إذا كان العدد الإجمالي للنقاط والسلاسل الخطية والمضلعات أكبر من واحد.

الجغرافيا الفارغة ليست مجموعة.

نوع الإرجاع

ST_ISEMPTY

وصف

إرجاع TRUE إذا كانت الجغرافيا المعطاة فارغة أي أن الجغرافيا لا تحتوي على أي نقاط أو خطوط أو مضلعات.

ملاحظة: لا ترتبط الجغرافيا الفارغة في BigQuery بشكل هندسي معين. على سبيل المثال ، نتائج التعبيرات ST_GEOGFROMTEXT (& # 39POINT EMPTY & # 39) و ST_GEOGFROMTEXT (& # 39GEOMETRYCOLLECTION EMPTY & # 39) متطابقة.

نوع الإرجاع

ST_LENGTH

وصف

لعرض الطول الإجمالي للأسطر بالأمتار في جغرافيا الإدخال.

إذا كانت geography_expression عبارة عن نقطة أو مضلع ، يتم إرجاع صفر. إذا كانت geography_expression عبارة عن مجموعة ، يتم إرجاع طول الأسطر في المجموعة إذا كانت المجموعة لا تحتوي على أسطر ، يتم إرجاع صفر.

تحدد المعلمة use_spheroid الاختيارية كيفية قياس هذه الوظيفة للمسافة. إذا كانت قيمة use_spheroid تساوي FALSE ، فإن الدالة تقيس المسافة على سطح كرة كاملة.

تدعم المعلمة use_spheroid حاليًا القيمة FALSE فقط. القيمة الافتراضية لـ use_spheroid هي FALSE.

نوع الإرجاع

ST_MAKELINE

وصف

ينشئ مخططًا جغرافيًا بخط مستقيم واحد عن طريق ربط رؤوس النقاط أو الخطوط لكل من المدخلات الجغرافية بالترتيب المعطى لها.

يأتي ST_MAKELINE في نوعين مختلفين. بالنسبة للمتغير الأول ، يجب أن يكون الإدخال جغرافيين. بالنسبة للثاني ، يجب أن يكون الإدخال عبارة عن صفيف من النوع الجغرافي. في أي من المتغيرات ، يجب أن يتكون كل إدخال جغرافي من إحدى القيم التالية:

بالنسبة للمتغير الأول من ST_MAKELINE ، إذا كان أي من المدخلات GEOGRAPHY هو NULL ، فإن ST_MAKELINE ترجع NULL. بالنسبة للمتغير الثاني ، إذا كان ARRAY المدخلات أو أي عنصر في ARRAY هو NULL ، فإن ST_MAKELINE ترجع NULL.

القيود

يجب أن تمتد كل حافة بدقة أقل من 180 درجة.

ملاحظة: قد تتجاهل عملية محاذاة BigQuery & # 39s حواف قصيرة بدرجة كافية وتجمع نقطتي النهاية معًا. على سبيل المثال ، إذا كان اثنان من المدخلات الجغرافية يحتوي كل منهما على نقطة وتم فصل النقطتين بمسافة أقل من نصف القطر المفاجئ ، فسيتم قطع النقاط معًا. في مثل هذه الحالة ستكون النتيجة جغرافيا بنقطة واحدة بالضبط.

نوع الإرجاع

ST_MAKEPOLYGON

وصف

ينشئ مخططًا جغرافيًا يحتوي على مضلع واحد من مدخلات Linestring ، حيث يتم استخدام كل سطر إدخال لإنشاء حلقة مضلع.

يأتي ST_MAKEPOLYGON في شكلين مختلفين. بالنسبة للمتغير الأول ، يتم توفير تسلسل الإدخال بواسطة جغرافيا واحدة تحتوي بالضبط على سطر واحد. 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.

القيود

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

وصف

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.

القيود

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

وصف

ST_NUMPOINTS

وصف

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

وصف

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

وصف

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.

نوع الإرجاع

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

ST_SIMPLIFY

وصف

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 أصلي 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.

القيود

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.
  • أكثر من

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

وصف

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.

القيود

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

وصف

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.

نوع الإرجاع

ST_TOUCHES

وصف

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

وصف

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

وصف

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

وصف

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

وصف

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.

وصف

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,
جونزالو

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
عملية. 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
الرمز.

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

شكرا جزيلا!
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 pن, where we assume the first point is equal to the last point, i.e., the polygon is closed. ال محيط is the sum of the Euclidean distances of the N line segments. ال 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 النقطه الوسطى (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 داخل region and an infinite في الخارج منطقة. 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 أ and Object ب are two viewpoints observing the object ا. د is the baseline distance between two viewpoints, and then unknown variable ص يمكن حسابها. 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 إلى الأمام overlap and between flightlines are called sidelap.(image source: www.nrcan.gc.ca)

The area that is overlapped for the إلى الأمام 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. سلطعون 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).