أكثر

إضافة طبقات WMS متعددة في OpenLayers

إضافة طبقات WMS متعددة في OpenLayers


لدي مجموعة من الطبقات التي أمرر إليهاmap.addLayers (). عندما أمرر المصفوفة إلى الوظيفة في$ (document) .ready (function () {})، فإنه لا يضيفهم إلى الخريطة (أيطبقات الخريطةليس لديه أي من الطبقات الجديدة المضافة. ولكن إذا فتحت وحدة تحكم JavaScript وقمت بتشغيل الوظيفة ، فإنها تعمل وستظهر الطبقات المضافة.

هذا هو الكود الخاص بي:

function crear (n) {$ .getJSON ('json / capas.json'، function (data) {console.log (data)؛ for (var i = 0؛ i 

تمت تهيئة OpenLayers بتنسيقcapaBase ().

لقد حاولت إضافتها بشكل فردي في ملفإلى عن علىloop ولكن هذا أيضًا لا يعمل أيضًا.

أيه أفكار؟

تحديث

إذا قمت بتغيير وظيفة الإنشاء الخاصة بي ونقل JSON الخاص بي محليًا ، فستعمل بشكل جيد.

function crear (n) {console.log ("crear capa:" + n)؛ لـ (var i = 0؛ i 

هذا هو JSON الذي أستخدمه.

[{"0": {"id": "crashicaule"، "class": "MATORRAL"، "field": "CVE_UNION"، "القيم": [{"0": "MC"}] ، "الطبقات" : "mx: usv250s5_union"، "url": "http: // localhost: 8082 / geoserver / wms"}، "1": {"id": "microfilo"، "class": "MATORRAL"، "field" : "CVE_UNION" ، "القيم": [{"0": "MDM"}] ، "الطبقات": "mx: usv250s5_union" ، "url": "http: // localhost: 8082 / geoserver / wms"} ، "2": {"id": "rosetofilo"، "class": "MATORRAL"، "field": "CVE_UNION"، "القيم": [{"0": "MDR"}] ، "الطبقات": " mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 3 ": {" id ":" submontano "،" class ":" MATORRAL "،" field ":" CVE_UNION "،" القيم ": [{" 0 ":" MSM "}]،" الطبقات ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 4 ": {" id ":" perennifolia "،" class ":" SELVAS "،" field ":" CVE_UNION "،" القيم ": [{" 0 ":" SAP "}] ،" الطبقات ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 5 ": {" id ":" caducifolia "،" class ":" SELVAS "،" field ":" CVE_UNION " ، "القيم": [{"0": "SBC"}]، "الطبقات": "mx: usv250s5_union"، "url": "http: // localhost: 8082 / geoserver / wms"} ، "6": {"id": "encino"، "class": "BOSQUES"، "field": "CVE_UNION"، "القيم": [{"0": "BQ"}، {"1": "BQP"}]، "الطبقات": "mx: usv250s5_union"، "url": "http: // localhost: 8082 / geoserver / wms"}، "7": {"id": "pino"، "class ":" BOSQUES "،" field ":" CVE_UNION "،" القيم ": [{" 0 ":" BP "} ، {" 1 ":" BPQ "}] ،" الطبقات ":" mx: usv250s5_union "، "url": "http: // localhost: 8082 / geoserver / wms"}، "8": {"id": "mezquite"، "class": "BOSQUES"، "field": "CVE_UNION"، "القيم ": [{" 0 ":" BP "} ، {" 1 ":" BPQ "}] ،" الطبقات ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 9 ": {" id ":" tascate "،" class ":" BOSQUES "،" field ":" CVE_UNION "،" القيم ": [{" 0 ":" BJ "}]،" الطبقات ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 10 ": {" id ":" mesofilo "،" class ":" BOSQUES "،" الحقل ":" CVE_UNION "،" القيم ": [{" 0 ":" BM "}] ،" الطبقات ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "} ، "11": {"id": "oyamel"، "class": "BOSQUES"، "field": "CVE_UNION"، "القيم": [{"0": "BA"}] ، "الطبقات": "mx: usv250s5_union"، "url": "http: // localhost: 8082 / geoserve r / wms "}،" 12 ": {" id ":" inducidos "،" class ":" PASTIZALES "،" field ":" CVE_UNION "،" القيم ": [{" 0 ":" PI "}] ، "الطبقات": "mx: usv250s5_union"، "url": "http: // localhost: 8082 / geoserver / wms"}، "13": {"id": "halofilo"، "class": "PASTIZALES" ، "الحقل": "CVE_UNION" ، "القيم": [{"0": "PH"}] ، "الطبقات": "mx: usv250s5_union" ، "url": "http: // localhost: 8082 / geoserver / wms "}،" 14 ": {" id ":" natural "،" class ":" PASTIZALES "،" field ":" CVE_UNION "،" القيم ": [{" 0 ":" PN "}]،" الطبقات ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 15 ": {" id ":" Cultivados "،" class ":" PASTIZALES "،" الحقل ":" CVE_UNION "،" القيم ": [{" 0 ":" PC "}] ،" الطبقات ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms " }، "16": {"id": "gipsofilo"، "class": "PASTIZALES"، "field": "CVE_UNION"، "القيم": [{"0": "PY"}] ، "الطبقات" : "mx: usv250s5_union"، "url": "http: // localhost: 8082 / geoserver / wms"}، "17": {"id": "riego"، "class": "AGRICULTURA"، "field" : "CVE_UNION"، "القيم": [{"0": "RA"}، {"1": "RAP"}، {"2": "RAS"}، {"3": "RP"}، {"4": "RS"} ، {"5": "RSP"}] ، "طبقة s ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 18 ": {" id ":" temporal "،" class ":" AGRICULTURA "،" الحقل ":" CVE_UNION "،" القيم ": [{" 0 ":" TA "} ، {" 1 ":" TAP "} ، {" 2 ":" TAS "} ، {" 3 ":" TP " } ، {"4": "TS"} ، {"5": "TSP"}] ، "الطبقات": "mx: usv250s5_union" ، "url": "http: // localhost: 8082 / geoserver / wms" }، "19": {"id": "mezquital"، "class": "VEGETACION"، "field": "CVE_UNION"، "القيم": [{"0": "MKX"}] ، "الطبقات" : "mx: usv250s5_union"، "url": "http: // localhost: 8082 / geoserver / wms"}، "20": {"id": "tular"، "class": "VEGETACION"، "field" : "CVE_UNION" ، "القيم": [{"0": "VT"}] ، "الطبقات": "mx: usv250s5_union" ، "url": "http: // localhost: 8082 / geoserver / wms"} ، "21": {"id": "sinvegetacion"، "class": "VEGETACION"، "field": "CVE_UNION"، "القيم": [{"0": "DV"}]، "الطبقات": " mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 22 ": {" id ":" asentamientos "،" class ":" INFRASTRUCTURA "،" field ":" CVE_UNION "،" القيم ": [{" 0 ":" AH "}]،" Layers ":" mx: usv250s5_union "،" url ":" http: // localhost: 8082 / geoserver / wms "}،" 23 ": {" id ":" carretera " ، "class": "INFRASTRUCTURA"، "field": "EDO_CLAVE"، "القيم": [{"0": "29"}]، "الطبقات": "tlx: carreteraTLX"، "url": "http: // localhost: 8082 / geoserver / wms "}}]

لأسباب تتعلق بالصيانة ، أود الاحتفاظ بـ JSON كملف منفصل وتحميله في الوظيفة.

لذا فإن سؤالي المحدث هو: لماذا يتم التعامل مع تحميل JSON من ملف خارجي بشكل مختلف في OpenLayers ، عن تحميل JSON محليًا؟


حاول إضافة كل طبقة (أو قائمة الطبقات ، حسب ما تفضله) في وظيفة النجاح الخاصة بك$ .getJSONو اتصلكرير ()في وثيقتك جاهزة. ان لم،map.addLayers ([])سيتم الاتصال به قبل اكتمال الاستجابة ... لذلك سيحاول إضافة قائمة فارغة

function crear (n) {$ .getJSON ('json / capas.json'، function (data) {console.log (data)؛ for (var i = 0؛ i 

شاهد الفيديو: How to create map with GeoServer Open Layer and WMS. WFS?