أكثر

تحرير مجموعة علامات GeoJSON باستخدام Mapbox.js

تحرير مجموعة علامات GeoJSON باستخدام Mapbox.js


لا يمكنني معرفة كيفية تصميم جميع النقاط المميزة من ملف GeoJson المحلي مرة واحدة باستخدام Mapbox.js. يحتوي ملف GeoJSON الخاص بي على 500 نقطة تقريبًا. يمكنني استعراض كل نقطة في ملف GeoJSON وتعيين خصائصها بشكل فردي ولكن هذا غير عملي بسبب عدد النقاط في ملفي. يمكنني عرض نقاطي على خريطتي باستخدام الكود أدناه ولكن لا يمكنني معرفة الكود المتضمن في تصميم كل هذه النقاط بلون أو رمز معين.

هذا ما لدي حتى الآن (تمت إزالة مفتاح mapbox api الخاص بي):

   خريطة نشرة!      

وإليك مقتطف من ملف GeoJSON الخاص بي:

var rodents1 = {"type": "FeatureCollection"، "features": [{"type": "Feature"، "geometry": {"type": "Point"، "الإحداثيات": [-71.1491،42.3419]} ، "خصائص": {"FIELD3": "القوارض"}}،

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

// قم بعمل كائن للبحث عن لون سداسي عشري لكل فئة في var colours للبيانات الخاصة بك = {"Rodent": '# ff0000'، "Fox": '#adadad'، "Coyote": '# 20b2aa'}؛ // خيارات العلامة الافتراضية لعلامة الدائرة var markerOptions = {radius: 8، fillColor: "# ff7800"، // سيتم تحديثها لكل ميزة ، أسفل اللون: "# 000" ، weight: 1 ، opacity: 1 ، fillOpacity : 0.8} ؛ // init the map var = L.mapbox.map ('map'، 'mapbox.streets') .setView ([42.35، -71.08]، 13)؛ // إضافة geojson: سيتم تصميم كل ميزة وفقًا للخصائص الموجودة في FIELD3 L.geoJson (القوارض 1، {pointToLayer: function (feature، latlng) {// set fillColor بالبحث عن مفتاح FIELD3 في علامة قائمة الألوان الخاصة بكOptions.fillColor = colours [feature.properties [FIELD3]] ؛ إرجاع L.circleMarker (latlng، markerOptions) ؛}}). addTo (خريطة) ؛

شاهد الفيديو: Parsing Json in Java Tutorial - Part 1: Jackson and Simple Objects