أكثر

كيفية تمرير البيانات المخصصة في نقطة GeoJSON؟

كيفية تمرير البيانات المخصصة في نقطة GeoJSON؟


لدي تطبيق يقوم بإنشاء تدفق GeoJSON على الخادم ، والذي يتم عرضه بعد ذلك على العميل (باستخدام CesiumJS). تم إنشاء GeoJSON باستخدام GeoTools.

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

أقوم بإضافة نقاط باستخدام هذا الرمز:

إضافة نقطة باطلة محمية (خط الطول المزدوج النهائي ، خط العرض المزدوج النهائي ، منشئ GeometryBuilder النهائي ، أداة بناء SimpleFeatureBuilder النهائية ، القائمة النهائية الميزات) {النقطة النهائية = builder.point (lon ، lat) ؛ fbuilder.add (نقطة) ؛ ميزة SimpleFeature النهائية = fbuilder.buildFeature (خالية) ؛ features.add (ميزة) ؛ }

إذا أردت إضافة خاصية سلسلة إلى GeoJSON ، على سبيل المثال ، الاسمبطاقة تعريفوالقيمةfooBar123.

كيف أفعل ذلك في Java (كيف يمكنني تعديل الكود أعلاه من أجلالمعرّف: fooBar123لتظهر في سلسلة نتائج GeoJSON)؟


بالنسبة للمعرف ، قم بتمريره ببساطة إلى featureBuilder بدلاً من null ؛

بالنسبة إلى الخصائص الأخرى ، تحتاج إلى تعديل مخطط قاعدة البيانات الذي أنشأته باستخدام featureBuilder. أسهل طريقة للقيام بذلك هي استخدام DataUtilities.createType

SimpleFeatureType TYPE = DataUtilities.createType ("Test"، "ian: String، location: Point")؛ النقطة النهائية = نقطة البناء (132.159633 ، 43.350116) ؛ SimpleFeatureBuilder fBuild = جديد SimpleFeatureBuilder (TYPE) ؛ fBuild.add ("اختبار الاختبار") ؛ fBuild.add (نقطة) ؛ SimpleFeature feature = fBuild.buildFeature ("foo123")؛

والتي ستنشئ GeoJSON مثل:

{"النوع": "الميزة" ، "الهندسة": {"النوع": "النقطة" ، "الإحداثيات": [132.1596،43.3501]} ، "الخصائص": {"إيان": "اختبار الاختبار"} ، "المعرف ":" foo123 "}

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