Skip to content
This repository has been archived by the owner on Jul 27, 2023. It is now read-only.

Wrong initialization scrip of the map #41

Open
bobonov opened this issue Feb 7, 2018 · 2 comments
Open

Wrong initialization scrip of the map #41

bobonov opened this issue Feb 7, 2018 · 2 comments

Comments

@bobonov
Copy link

bobonov commented Feb 7, 2018

Since the map is initialized in the following way:

function map_init(){
    var map = L.map('w0', {});

this make map unavailable in global scope therefore is impossible to operate via javascript on the map (ie change the center)
Something, at javascript level, like this should work.

var map;
function map_init(){
    map = L.map('w0', {});

So in the php code in Map.php:
line 103 from

array_unshift($js, "var $name = L.map('$id', $options);");

to

array_unshift($js, "$name = L.map('$id', $options);");

and line 122

$view->registerJs("function {$name}_init(){\n" . implode("\n", $js) . "}\n{$name}_init();");

to

$view->registerJs("var {$name};\nfunction {$name}_init(){\n" . implode("\n", $js) . "}\n{$name}_init();");
@bobonov
Copy link
Author

bobonov commented Feb 7, 2018

I made a test and is sufficient to change line 103 in this way the map var is implicitly global.

@bobonov
Copy link
Author

bobonov commented Feb 7, 2018

I think layers/* (I checked only some of them) suffer from same issue.
In the files I checked is sufficient to remove var in front of the javascript variable declaration.
form

$js = "var $name = $js;"

to

$js = "$name = $js;"

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant