أكثر

تصدير المضلع في geojson كمضلع متعدد


أي شخص يعرف ما إذا كان هناك أي طريقة لتصدير طبقة مضلعة في geojson ، كمضلع متعدد؟

لدي ملف شكل متعدد الأضلاع. ولكن هناك مضلعات مفردة ومتعددة.

عندما أقوم بتصديرها إلى geojson ، حصلت على كلا الهيكلين: المضلعات ذات الميزة الفردية ، يتم تصديرها كمضلعات (مع 3 صفائف)

"النوع": "المضلع" ، "الإحداثيات": [[[100.0 ، 0.0] ، [101.0 ، 0.0] ، [101.0 ، 1.0] ، [100.0 ، 1.0] ، [100.0 ، 0.0]] ، [[100.2 ، 0.2 ] ، [100.8 ، 0.2] ، [100.8 ، 0.8] ، [100.2 ، 0.8] ، [100.2 ، 0.2]]

وبعض المضلعات المكونة من عدة سمات يتم تصديرها كمضلع متعدد ، بأربع مصفوفات:

"النوع": "مضلع متعدد" ، "إحداثيات": [[[102.0 ، 2.0] ، [103.0 ، 2.0] ، [103.0 ، 3.0] ، [102.0 ، 3.0] ، [102.0 ، 2.0]]] ، [[ 100.0 ، 0.0] ، [101.0 ، 0.0] ، [101.0 ، 1.0] ، [100.0 ، 1.0] ، [100.0 ، 0.0]] ، [[100.2 ، 0.2] ، [100.8 ، 0.2] ، [100.8 ، 0.8] ، [ 100.2 ، 0.8] ، [100.2 ، 0.2]]]

ما أحتاجه هو الحصول على جيوجسون يُظهر المضلعات ومتعددة الأضلاع بالبنية الثانية (أربعة مصفوفات)

يمكن لأي شخص أن يخبرني ما إذا كان ذلك ممكنًا ، أو أي دليل حول كيفية القيام بذلك؟


يمكنك تحويل جميع بياناتك إلى مضلعات متعددة باستخدام ogr2ogr من خلال تحديد "نوع طبقة جديد" باستخدام-Nlt MULTIPOLYGON. ومع ذلك ، لست متأكدًا مما إذا كانت النتيجة هي بالضبط ما تؤمن به عندما يكون للمضلع المتعدد جزء واحد فقط.

هذا مثلث على شكل مضلع

{"النوع": "FeatureCollection"، "features": [{"type": "Feature"، "properties": {}، "geometry": {"type": "Polygon"، "الإحداثيات": [[[ 95.0 ، 216.0] ، [241.0 ، 253.0] ، [175.0 ، 138.0] ، [95.0 ، 216.0]]]}}]}

هذا هو نفس المثلث مثل متعدد الأضلاع

{"النوع": "FeatureCollection"، "features": [{"type": "Feature"، "properties": {}، "geometry": {"type": "MultiPolygon"، "الإحداثيات": [[[ [95.0 ، 216.0] ، [241.0 ، 253.0] ، [175.0 ، 138.0] ، [95.0 ، 216.0]]]]}}]}

تعديل

ومع ذلك ، إذا كان الهدف هو دمج جميع الميزات المنفصلة ، سواء المضلعات أو متعددة الأضلاع في معلم واحد من النوع متعدد المضلعات ، فيجب عليك إنشاء اتحاد. إذا كان خليطك من المضلعات ومتعدد الأضلاع موجودًا في ملف "mix.shp" ، فإن الأمر المطلوب استخدامه هو:

ogr2ogr -f geojson union.json mix.shp -dialect sqlite -sql "حدد st_union (هندسة) من مزيج"

تحتوي النتيجة "union.json" على مضلع واحد كما يتضح من تقرير ogr2ogr:

اسم الطبقة: OGRGeoJSON Geometry: Multi Polygon Feature Count: 1 ... OGRFeature (OGRGeoJSON): 0 MULTIPOLYGON (((125 229،185 289،252 234،208 169،125 229)) ، ...

إذا كنت تقوم بتصدير geojson الخاص بك من postgis ، فيمكنك استخدام وظيفة ST_MULTI للتأكد من أن الميزة ستكون MULTIPOLYGON إذا كان مضلعًا ، أو MULTILINESTRING إذا كان سطرًا أو MULTIPOINT إذا كانت نقطة

حدد ST_AsGeoJSON (ST_Multi (geom)) :: json من الجدول WHERE id = 0 ؛

تحرير: تقنية إخراج ميزة التجميع في geoson من postgis "حساس" بعض الشيء:

حدد row_to_json (fc) من (حدد 'FeatureCollection' كنوع ، array_to_json (array_agg (f)) كميزات FROM (حدد 'Feature' As type ، ST_AsGeoJSON (ST_Multi (lg.geom)) :: json As geometry ، row_to_json (( field1، field2، fieldx)) كخصائص من جدول كـ lg) As f) As fc؛

نرى أننا نستخدم ST_MULTI للتأكد من أن كل ميزة ستكون MULTIPOLYGON. يجب عليك تعديل اسم الجدول وأسماء الحقول في الاستعلام.


نظم المعلومات الجغرافية على القضبان

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

المتطلبات: استيراد معلومات المضلعات الحالية والخريطة التي توفر خطوط الطول والعرض باستخدام المضلع.

التحدي الأول: فهم الأساسيات والمصطلحات

سأفعله للمرة الأولى ، مثل ما هو SRID الذي يجب أن أستخدمه ، وما نوع البيانات الذي يجب أن أستخدمه ، وما هو نظام الإحداثيات الذي يجب أن أستخدمه؟ بعد إجراء بحث شامل ، انتهيت من استخدام srid 4326 ، نوع بيانات متعدد الأضلاع ونظام إحداثيات WGS 84.

قد لا يفهم الكثير منكم ما تعنيه WGS 84؟ يرمز WGS 84 إلى النظام الجيوديسي العالمي وهو نوع من المسح (القياسي) الذي تم إجراؤه في عام 1984. هناك أنواع مختلفة من المعايير الموجودة حاليًا مثل WGS 72 و WGS 66 و WGS 60 وما إلى ذلك. هذه هي الاستطلاعات (المعايير) التي يتم إجراؤها في تلك السنوات من خلال وضع بعض الافتراضات حول الأرض. لذلك ، على سبيل المثال ، إذا قمنا بحساب موقع الهند باستخدام WGS 84 ، فقد يكون مختلفًا إذا قمنا بالحساب باستخدام WGS 72.

يرمز SRID إلى معرّف نظام الإسناد المكاني الذي يخبرنا عن نظام الإحداثيات الذي كنا نستخدمه أثناء جمع البيانات المكانية.

التحدي 2: استيراد البيانات

نظرًا لأننا نستخدم قضبان مدعومة بـ postgresql ، فإن استيراد البيانات إلى قاعدة البيانات أمر سهل للغاية ولكن ليس في هذه الحالة لأننا حصلنا على معلومات بتنسيق geojson لم أره من قبل. لحسن الحظ ، توفر الياقوت جوهرة تسمى rgeo-json تجعل حياتنا سهلة. فيما يلي مقتطف الشفرة الذي كتبته لاستيراد بيانات geojson.

حيث المضلع هو نموذجنا. هنا ملف الهجرة الخاص بنا يبدو كما يلي:

التحدي 3: تعيين نقطة باستخدام مضلع باستخدام استعلام SQL

PostGIS هو امتداد لقاعدة بيانات postgres يمكّن postgres من إجراء حسابات مكانية. للعثور على هذه النقطة ، تكمن في أي مضلع نحتاج إلى استخدام وظيفة st_contains. لاستخدام st_contains ، علينا أولاً أن نتأكد مما إذا كان يجب أن تستخدم شكلين هندسيين نفس SRID أم لا ، أي في حالتنا هو 4326. نظرًا لأننا في قاعدة البيانات الخاصة بي نقوم بتخزين خطوط الطول والعرض كأعمدة عائمة ، نحتاج أولاً إلى كتابةهما إلى كنقطة وقم بتعيين SRID على 4326 على النحو التالي:

الآن الاستعلام النهائي للعثور على المضلع المناسب:

على الرغم من أن الأمر استغرق وقتًا لإكمال المتطلبات ، إلا أنني شعرت في النهاية أنني فعلت شيئًا مختلفًا عما أفعله عادةً. آمل أن يلقي هذا المقال بعض الضوء على نظم المعلومات الجغرافية.


احصل على geojson من خرائط جوجل

طبقة البيانات | API جافا سكريبت للخرائط ، يتيح لك هذا المثال سحب وإسقاط إما ملف GeoJSON أو مجموعة مختارة من نص GeoJSON لمزيد من المعلومات حول كيفية العمل مع طبقة بيانات الخريطة ، راجع خرائط google. callback.call (thisArg، geometry.get ()) توفر طبقة بيانات خرائط Google حاوية للبيانات الجغرافية المكانية التعسفية (بما في ذلك GeoJSON). إذا كانت بياناتك موجودة في ملف مستضاف على نفس النطاق مثل تطبيق Maps JavaScript API الخاص بك ، فيمكنك تحميله باستخدام طريقة map.data.loadGeoJson (). يجب أن يكون الملف على نفس المجال ، ولكن يمكنك استضافته في نطاق فرعي مختلف.

طبقة البيانات: قم بسحب وإفلات GeoJSON ، لذلك ستتألف هذه المشاركة من الحلول التي توصلت إليها للحصول على إحداثيات geoJSON لرسم المضلعات باستخدام Google Maps React. هنا نحصل على العنوان لمعرّف مكان ترميز مكوّن جغرافيًا انحياز رمز المنطقة (ES) انحياز رمز المنطقة (الولايات المتحدة) خدمة الاتجاهات عرض الاتجاهات النصية مع setPanel () خدمة الاتجاهات (معقدة) أوضاع السفر في نقاط الطريق في الاتجاهات في الاتجاهات القابلة للسحب خدمة مصفوفة المسافة تُظهر خدمة الارتفاع الارتفاع على طول المسار


Mapbox-gl-native - خرائط تفاعلية وقابلة للتخصيص تمامًا في Android و iOS و macOS و Node

مكتبة لتضمين خرائط متجه تفاعلية وقابلة للتخصيص في تطبيقات أصلية على أنظمة أساسية متعددة. يأخذ أوراق أنماط تتوافق مع مواصفات نمط Mapbox ، ويطبقها على مربعات متجهة تتوافق مع مواصفات Mapbox Vector Tile ، ويعرضها باستخدام OpenGL. Mapbox GL JS هو النظير المستند إلى WebGL ، وهو مصمم للاستخدام على الويب. إذا لم يكن النظام الأساسي أو إطار عمل التطبيق المختلط مدرجًا هنا ، ففكر في تضمين Mapbox GL JS باستخدام إمكانات الويب القياسية على النظام الأساسي الخاص بك.


1 إجابة 1

ما لم تكن this.policyData عبارة عن مصفوفة ثلاثية الأبعاد من المواضع ، فلا ينبغي تمريرها إلى فئة MultiPolygon. إذا كانت this.policyData عبارة عن صفيف أو مجموعة ميزات من الأشكال ، فيمكنك إضافتها مباشرةً إلى مصدر البيانات مثل this.policyDataSource.add (this.policyData)

إذا كانت this.policyData عبارة عن مجموعة معالم من المضلعات ، وتريد تحويلها إلى مضلع متعدد لسبب ما (لست متأكدًا من سبب رغبتك في القيام بذلك) ، فسيتعين عليك إنشاء وتصنيف وتكرار كل مضلع وإضافة إحداثياته القيم للمصفوفة. فمثلا:


ما هو استخدام GeoJSON؟

GeoJSON هو تنسيق تبادل بيانات جغرافي مكاني قياسي مفتوح يمثل ميزات جغرافية بسيطة وخصائصها غير المكانية. استنادًا إلى JavaScript Object Notation (JSON) ، GeoJSON هو تنسيق لترميز مجموعة متنوعة من هياكل البيانات الجغرافية. أضف ملف GeoJSON كطبقة لـ Map Viewer.

ثانيًا ، كيف أقوم بفتح ملف GeoJSON؟ GeoJSON عارض الخرائط مع محرك الأقراص. يسمح لك بالتحقق من صحة ملف GeoJSON وعرضه على خريطة جوجل. تستطيع افتح ملفات GeoJSON من جهاز الكمبيوتر الخاص بك ، Google Drive. GeoJSON Map Viewer هي أداة تعرض ملف ملف GeoJSON في متصفحك.

تعرف أيضًا ، ما هو الفرق بين JSON و GeoJSON؟

GeoJSON هو تنسيق لترميز مجموعة متنوعة من هياكل البيانات الجغرافية. أ GeoJSON قد يمثل الكائن شكلًا هندسيًا أو معلمًا أو مجموعة من الميزات. كاملة GeoJSON بنية البيانات هي دائمًا كائن (بتنسيق جسون مصطلحات). في GeoJSON، يتكون الكائن من مجموعة من أزواج الاسم / القيمة - تسمى أيضًا الأعضاء.

متعدد المضلع. أ متعدد المضلع هو متعدد الأسطح عناصره هي المضلعات.


Spatial4j هي ​​مكتبة جافا مفتوحة المصدر ذات أغراض مكانية / جغرافية مكانية ASL مرخصة. قدراته الأساسية ثلاثية الأبعاد: لتوفير أشكال مشتركة مدركة جغرافيًا ، لتوفير حسابات المسافة والرياضيات الأخرى ، وقراءة تنسيقات الأشكال مثل WKT و GeoJSON.

قراءة وكتابة مجموعات البيانات الجغرافية المكانية النقطية والمتجهة مباشرة من Node.js باستخدام ربط GDAL الأصلي هذا. تأتي GDAL 2.0.1 (GEOS 3.4.2 ، Proj.4 4.8.0) مجمعة ، لذا ستعمل node-gdal مباشرة خارج الصندوق. للبدء ، تصفح وثائق API أو الأمثلة. هذا الربط هو تعاون بين Natural Atlas و Mapbox. المساهمون فيها هم براندون ريفيز ، وبريان ريفيز ، ودين سبرينغماير ، وزاك ماكورميك ، وآخرين.


استعلامات GeoSpatial المفهرسة

يدعم الفهرس الجغرافي المكاني مجموعة متنوعة من استعلامات AQL ، والتي يمكن بناؤها بمساعدة وظائف المرافق الجغرافية. هناك ثلاث وظائف جغرافية محددة يمكن تحسينها ، بشرط استخدامها بشكل صحيح: GEO_DISTANCE ، GEO_CONTAINS ، GEO_INTERSECTS. بالإضافة إلى ذلك ، هناك دعم مدمج لتحسين الوظائف الجغرافية القديمة DISTANCE و NEAR و WITHIN (الأخيرتان فقط إذا تم استخدامهما في إصدار 4 وسيطات ، بدون المسافة).

إذا كنت في شك فيما إذا كان قد تم تحسين استعلامك بشكل صحيح ، فتحقق من إخراج شرح AQL للتحقق من استخدام الفهرس.

الاستعلام عن النتائج بالقرب من الأصل (استعلام نوع NEAR)

مثال أساسي لاستعلام عن نتائج بالقرب من نقطة أصل:

يمكن أن تكون المعلمة الأولى كائن GeoJSON أو مصفوفة إحداثيات بترتيب [خطوط الطول ، خطوط العرض]. المعلمة الثانية هي حقل المستند الذي تم إنشاء الفهرس عليه. تعرض الدالة GEO_DISTANCE دائمًا المسافة بالأمتار ، لذلك ستتلقى النتائج حتى 100 كم.

الاستعلام عن النتائج التي تم فرزها بالقرب من الأصل (استعلام نوع NEAR)

مثال أساسي لاستعلام عن أقرب 1000 نتيجة لنقطة الأصل (فرز تصاعدي):

يمكن أن تكون المعلمة الأولى كائن GeoJSON أو مصفوفة إحداثيات بترتيب [خطوط الطول ، خطوط العرض]. المعلمة الثانية هي حقل المستندات الذي تم إنشاء الفهرس عليه.

يمكنك أيضًا الحصول على النتائج الأبعد (المسافة مرتبة بترتيب تنازلي):

الاستعلام عن النتائج ضمن المسافة

استعلام يقوم بإرجاع المستندات على مسافة 1 كم أو أبعد من ذلك ، حتى 100 كم من الأصل. سيؤدي هذا إلى إرجاع المستندات بقيمة GeoJSON الموجودة في حلقة البحث المحددة.

استعلام عن النتائج المضمنة في المضلع

استعلام يقوم بإرجاع المستندات التي يتم تضمين هندستها المخزنة في GeoJSON Polygon.

يجب أن تكون المعلمة الأولى لـ GEO_CONTAINS مضلعًا. الأنواع الأخرى غير صالحة. يجب أن تحتوي المعلمة الثانية على حقل المستند الذي تم إنشاء الفهرس عليه.

استعلام عن نتائج متقاطعة مع مضلع

استعلام يقوم بإرجاع مستندات بها نقطة تقاطع للشكل الهندسي المخزن مع GeoJSON Polygon.

يجب أن تكون المعلمة الأولى لـ GEO_INTERSECTS مضلعًا. الأنواع الأخرى غير صالحة. يجب أن تحتوي المعلمة الثانية على حقل المستند الذي تم إنشاء الفهرس عليه.


تحويل shp إلى wkt أو geojson

هل يعرف أحد كيف يمكنني تحويل ملف شكل (خط) بتنسيق wkt أو geojson؟

لدي سطح المكتب ArcGIS 10.2.

بواسطة DanPatterson_Re متعب

الكثير من التحويلات "من". لكن الأمل ضئيل في التحويل من "إلى" باستخدام الإصدار 10.2. هل تبحث فقط عن تحويلات Arc * أو نظرت بالخارج إلى خيارات أخرى؟

كتب دان باترسون:

الكثير من التحويلات "من". لكن الأمل ضئيل في التحويل من "إلى" باستخدام الإصدار 10.2. هل تبحث فقط عن تحويلات Arc * أو تبحث بالخارج عن خيارات أخرى؟

في الأساس ، يجب علي استيراد shp في برنامج يبدو أنه ليس مرنًا للغاية فيما يتعلق بالتوقعات (فقط WGS84). في الواقع لا يقرأ بعض ملفات الأشكال الخاصة بي. لقد تم اقتراح أنه إذا كان shp الخاص بي موجودًا بالفعل في الإحداثيات الجغرافية WGS84 ، فحينئذٍ يتعين عليّ التصدير إلى تنسيق مبسط مثل wkt أو geojson وإعادة الاستيراد إلى GIS وتعريف الإسقاط على أنه WGS84 (EPSG 4326).

منذ خبرتي ، لم أسمع أبدًا عن تنسيق الملف هذا ، وقد أجريت بعض الأبحاث ويبدو أنه يمكنني فعل شيء ما باستخدام Phyton ؟؟ ليس لدي أدنى فكرة عن كيفية استخدامه ، لذا حاولت استخدام أداة التحويل "Json to Features ". لست متأكدًا من أنني فعلت الشيء الصحيح لأنه لا يبدو أنه يحدث فرقًا .. لست متأكدًا أيضًا مما تفعله "أداة التحويل" هذه لملف الأشكال الخاص بي. لما هذا؟


11 عرض سمات البيانات / التصفية حسب البيانات

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

  1. قم بتحميل الملف في QGIS
  2. انقر بزر الماوس الأيمن على الطبقة. في القائمة ، انقر فوق & quotOpenOpen attribute table & quot
    1. يتم عرض جميع المعلومات الواردة في الطبقة هنا

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

    1. انقر نقرًا مزدوجًا فوق الطبقة
    2. في نافذة & quot في الجزء السفلي الأيمن ، انقر فوق الزر & quot إنشاء الاستعلام & quot
    3. في الحوار الموجود أسفل & quotFields & quot ، نضغط مرتين على & quotBezirk_Nam & quot
      1. يمكنك أيضًا عرض المعلومات الموجودة في حقل في نافذة القيم
      2. يتم عرض هذا الاسم الآن في حقل تعبير عامل التصفية المحدد للموفر
      1. من الممكن إنشاء استعلام أكثر تعقيدًا باستخدام عوامل التشغيل المنطقية

      تلميح: اعتمادًا على إصدار QGIS ، قد يبدو الاستعلام مختلفًا أيضًا. فيما يلي مثال على أنه استعلام SQL مع مسارات HVV و S-Bahn.


      شاهد الفيديو: regelmatige veelhoeken (شهر اكتوبر 2021).