Vairāk

Problēmas ar OpenLayers 2.14. Funkcija Draw.Feature neaktivizē daudzstūra zīmēšanas audeklu. Ko man darīt?


Atbildot uz kopienas lūgumiem precizēt manu problēmu un iesniegt visu kodu, es atļaujos rediģēt iepriekšējo ziņu, cerot, ka šoreiz problēma tiks izskaidrota skaidrāk un ja risinājums tiks atrasts, tas var palīdzēt citiem kuri uzdodas tādai situācijai kā mana.

Savā projektā es izveidoju karti, kurā ir pāris pārklājumi, no kuriem 4 pieder Google Maps (reljefs, satelīts, ceļi un hibrīds).

Mans mērķis bija izveidot funkciju, kas izsauc OpenLayers.Control.DrawFeature, lai definētu slāni, kurā gala lietotājs var uzzīmēt daudzstūri. Funkcija tiek aktivizēta, nospiežot pogu.

Es klausījos Tomasa ieteikumu un ievietoju brīdinājuma līniju, lai pārliecinātos, ka, nospiežot pogu, funkcija darbojas. Rezultāts ir tāds, ka, noklikšķinot uz pogas, ekrānā parādījās ziņojums, bet nekas vairāk.

Mans jautājums ir šāds: kādi funkcijas pielāgojumi man būtu jāveic, lai tā varētu darboties? Kur es kļūdījos?

Es iedvesmojos no: http://dev.openlayers.org/examples/draw-feature.html, bet, tā kā esmu diezgan jauns interneta ĢIS biznesā (visticamāk, pieredzes trūkuma dēļ), mana pielāgotā funkcija nedarbojās .

Ja es nokopēju kodu no augšējās piedāvātās saites, tas darbojas perfekti, bet mans mērķis ir saprast tā loģiku un spēt izveidot kaut ko neatkarīgu.

Šeit ir mans HTML kods:

Myproject body {platums: 960 pikseļi; augstums: 500 pikseļi; stāvoklis: radinieks; } #map {width: 100%; augstums: 100%; } div.fill {platums: 100%; augstums: 100%; } div.ol-peles pozīcija {platums: 50 pikseļi; augstums: 50 pikseļi; pozīcija = radinieks; krāsa: sarkana; } .layersDiv {fona krāsa: sarkana; }

Scaleline-id

{fons: zaļš; mala: 10 pikseļi; fonts: Times New Roman; platums: 50 pikseļi; fonta krāsa: sarkana; }

Koordinātas

{fons: rozā; mala: 10 pikseļi; pozīcija: absolūta; fonta krāsa: zila; }

  
Izvēlieties slāni
Apkārtnes
Ceļi
Konstrukcijas
Google Maps hibrīds
Zīmēšana

OL2.js ir OpenLayers v 2.14 skripts, kas kopēts lokāli.


Pieņemot, ka jūsutetatiek izsaukta funkcija, es redzu, ka jūs izveidojat jaunu apstrādātāju, kas jums nav vajadzīgs.

Sekojošaistetafunkcijai vajadzētu darboties:

funkcija teta () {var x = jauns OpenLayers.Layer.Vector ("viens"); var p = jauns OpenLayers.Control.DrawFeature (x, OpenLayers.Handler.Polygon); map.addLayer (x); map.addControl (p); p.aktivizēt (); }


Skatīties video: Openlayers 6 Tutorial #6 - Layer Switcher (Oktobris 2021).