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

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Clemens Beyer-3
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
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapbender_users
Reply | Threaded
Open this post in threaded view
|

Re: Map Center und Zoomlevel von außen steuerbar? Set map center and zoom level from outside the application?

Astrid Emde (WhereGroup)
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-element-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
> [hidden email]
> 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

  [hidden email]
  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
-------------------------------
_______________________________________________
Mapbender_users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapbender_users
Reply | Threaded
Open this post in threaded view
|

Re: Map Center und Zoomlevel von außen steuerbar? Set map center and zoom level from outside the application?

Clemens Beyer-3
Hallo Astrid,

vielen Dank (und bitte auch ein großes Dankeschön an Andriy weiterleiten). Ich werde versuchen, die Funktion einzubauen, und lasse euch selbstverständlich wissen, ob es geklappt hat.

LG,
Clemens

Am 11. Januar 2018 um 08:43 schrieb Astrid Emde <[hidden email]>:
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-element-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
[hidden email]
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: <a href="tel:%2B49%280%29228%2090%2090%2038%20-%2022" value="+4922890903822" target="_blank">+49(0)228 90 90 38 - 22
 Fax: <a href="tel:%2B49%280%29228%2090%2090%2038%20-%2011" value="+4922890903811" target="_blank">+49(0)228 90 90 38 - 11

 [hidden email]
 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
-------------------------------


_______________________________________________
Mapbender_users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapbender_users
Reply | Threaded
Open this post in threaded view
|

Re: Map Center und Zoomlevel von außen steuerbar? Set map center and zoom level from outside the application?

Clemens Beyer-3
In reply to this post by Astrid Emde (WhereGroup)
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
1 id main_rechts
2 name main_rechts
3 scrolling no
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 <[hidden email]>:
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-element-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
[hidden email]
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: <a href="tel:%2B49%280%29228%2090%2090%2038%20-%2022" value="+4922890903822" target="_blank">+49(0)228 90 90 38 - 22
 Fax: <a href="tel:%2B49%280%29228%2090%2090%2038%20-%2011" value="+4922890903811" target="_blank">+49(0)228 90 90 38 - 11

 [hidden email]
 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
-------------------------------


_______________________________________________
Mapbender_users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapbender_users