[Mapbender-users] Map Center und Zoomlevel von außen steuerbar? Set map center and zoom level from outside the application?

Clemens Beyer c.beyer at ceit.at
Tue Feb 6 07:16:35 PST 2018


Hallo,

ich habe das nun wie beschrieben versucht. Zuerst hole ich mir den Frame:

var theFrame=parent.parent.$("#main_rechts");

Danach definiere ich mbWidget wie vorgegeben:

var mbWidget =
theFrame.contents().find(".mb-element-map").data('mapbenderMbMap');

Allerdings liefert die nächste Zeile

var ol2map = mbWidget.map.olMap;

die Fehlermeldung

TypeError: mbWidget is undefined.

Den MB-Frame habe ich aber doch korrekt angesprochen? Denn wenn ich

    $('#main_rechts',parent.parent.document).each(function() {
        $.each(this.attributes,function(i,a){
            console.log(i,a.name,a.value)
        })
    })

laufen lasse, erhalte ich die zum MB-Frame gehörigen Daten:

0 src /mapbender3/application/centropemap
<http://map.centropemap.org/main.php>
1 id main_rechts <http://map.centropemap.org/main.php>
2 name main_rechts <http://map.centropemap.org/main.php>
3 scrolling no <http://map.centropemap.org/main.php>
4 noresize

Kann es sein, dass das nur mit Iframes funktioniert, nicht aber mit
herkömmlichen Frames? Ich bin leider kein jQuery-Experte.

LG,
Clemens


Am 11. Januar 2018 um 08:43 schrieb Astrid Emde <astrid.emde at wheregroup.com>
:

> Hallo Clemens,
>
> hier kommt die verspätete Antwort auf deine Anfrage. Ich habe mich dazu
> mit dem Entwickler Andriy Oblivantsev abgestimmt.
>
> Antwort: ja, das ist möglich.
>
> In Mapbender Map Element ist die OL2 API vorhanden:
>
> $(".mb-element-map").data('mapbenderMbMap').map.olMap
>
> Beispiel Aufruf für die Kartenbewegung um 10px nach unten-rechts:
>
> var mbWidget = $(".mb-element-map").data('mapbenderMbMap');
> var ol2map = mbWidget.map.olMap;
>
>
> ol2map.moveByPx(10,10);
>
> Die Funktionen/Events sind hier beschrieben:
>
> http://dev.openlayers.org/docs/files/OpenLayers/Map-js.html
> Wie über IFrame auf die DOM Objekte zuzugreifen, soll man sich hier
> informieren:
>
> https://api.jquery.com/contents/
>
> So änhlich soll das Aufruf von einem anderem IFrame sein:
>
> // MB IFrame raussuchen
> var iframe = $("#mbIframeID");
>
> // MB Map Element Widget in IFrame raussuchen
> var mbWidget = iframe.contents().find(".mb-el
> ement-map").data('mapbenderMbMap');
>
> // OpenLayers2 map API holen
> // http://dev.openlayers.org/docs/files/OpenLayers/Map-js.html
> var ol2map = mbWidget.map.olMap;
>
>
> // Um 10px nach unten rechts bewegen
> ol2map.moveByPx(10, 10);
>
> Falls du noch weitere Unterstützung brauchen solltest, kannst du dich
> gerne melden.
>
> Astrid
>
>
> Am 2017-12-17 19:57, schrieb Clemens Beyer:
>
>> Liebe Community,
>>
>> ich habe Mapbender3 in einem Frameset laufen
>> (http://map.centropemap.org). Im linken Frame befindet sich eine
>> Menüleiste, im rechten Frame ist Mapbender. Ich würde nun gern
>> abhängig von Ereignissen im linken Frame die Mapbender-Karte
>> verschieben bzw. eine neue bbox setzen bzw. den Zoomlevel ändern.
>> Geht das (und wenn ja, wie kann ich das bewerkstelligen)?
>>
>> LG aus Wien,
>> Clemens Beyer
>>
>> Dear Mapbender community,
>>
>> I have a Mapbender3 installation running in a frameset
>> (http://map.centropemap.org). The left frame shows a menu, the right
>> frame shows tha Mapbender app. I would like to set a new map center
>> and zoom level depending on events in the menu frame. Is this possible
>> (and, if so, how can I apply a new map center or bbox and zoom level)?
>>
>> Best regards from Vienna,
>> Clemens Beyer
>> _______________________________________________
>> Mapbender_users mailing list
>> Mapbender_users at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/mapbender_users
>>
>
> --
> Mit freundlichen Grüßen
>
> Astrid Emde
> GIS-Consultant
>
> -----------------------------------
> Aufwind durch Wissen!
> Qualifizierte Open-Source-Schulungen
> bei der www.foss-academy.com
> -----------------------------------
>
>  Astrid Emde
>  WhereGroup GmbH & Co.KG
>  Eifelstraße 7
>  53119 Bonn
>  Germany
>
>  Fon: +49(0)228 90 90 38 - 22
>  Fax: +49(0)228 90 90 38 - 11
>
>  astrid.emde at wheregroup.com
>  www.wheregroup.com
>
>  Folgen Sie der WhereGroup auf twitter: http://twitter.com/WhereGroup_com
>
> Amtsgericht Bonn, HRA 6788
> -------------------------------
> Komplementärin:
> WhereGroup Verwaltungs GmbH
> vertreten durch:
> Olaf Knopp, Peter Stamm
> -------------------------------
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapbender_users/attachments/20180206/520251f6/attachment.html>


More information about the Mapbender_users mailing list