Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: krpano.com Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Donnerstag, 26. Oktober 2017, 12:51

Maps plugin: how to use gmAPI?

Hi to everyone!

I'd like to use the gmAPI object which is mentioned in this page of the documentation. This part of the documentation being rather obscure (unlike the rest of the documentation I should say), could anyone tell me how to use this gmAPI object? How to access it? Where is it?

Greetings,

Seb

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »seb-visitit« (26. Oktober 2017, 13:09)


2

Donnerstag, 26. Oktober 2017, 13:43

Hi,

here an example:

Call in the 'onmapready' event a custom action:

Quellcode

1
2
3
4
<plugin name="map"
    ...
    onmapready="gmapi_test();"
    />


and in in that custom (Javascript) Action access the gmAPI object via the 'caller' object (that is the plugin[map] object):

Quellcode

1
2
3
4
5
6
7
<action name="gmapi_test" type="Javascript"><![CDATA[
    var gmAPI = caller.gmAPI;
    if (gmAPI) // check if having the gmAPI
    {
        gmAPI.map.setOptions(...);
    }
]]></action>


Best regards,
Klaus

3

Donnerstag, 26. Oktober 2017, 14:13

Thanks Klaus for the quick answer!

How would I do (if doable) with external JS? I mean:

In my vtourskin.xml:

Quellcode

1
2
3
4
5
<layer name="skin_map_container" type="container" align="leftop" width="100%" height="100%" bgroundedge="get:skin_settings.design_bgroundedge" maskchildren="true">
  <layer name="skin_map" state="closed" url="" visible="false" align="lefttop" width="100%" height="50%" x="0" y="0" zorder="1" lat="0" lng="0" zoom="10" bgalpha="0" maptype="hybrid" onmapready="skin_addmapspots(); js(map());">
  							[...]
      						</layer>
					</layer>


Im my custom JS file:

Quellcode

1
2
3
function googleMap() {
  // How to get gmAPI from here?
}

4

Donnerstag, 26. Oktober 2017, 14:18

e.g.

Quellcode

1
2
3
4
5
function googleMap() {
  var krpano = document.getElementById("krpanoSWFObject");
  var mapsplugin = krpano.get("plugin[map]");
  mapsplugin.gmAPI.setOptions(...);
}

5

Donnerstag, 26. Oktober 2017, 14:22

Thanks again. Excuse my newbiness, but "plugin[map]" is null in my case. I edited the vtourskin.xml excerpt in my previous post to be more explicit.
I can get layer[skin_map], but it has no gmAPI attribute :-/

6

Donnerstag, 26. Oktober 2017, 14:28

Hi,

the name 'plugin[map]' depends of course on the name that was used in the xml to load the maps plugin.

And right for the vtourskin.xml this would be the 'layer[skin_map]'.

When layer[skin_map].gmAPI is undefined there could be normally only these reasons:
- you're trying to get gmAPI before the onmapsready event has been called/processed,
- or the googlemaps.js is too old (it would need to be 1.19-pr9 or higher),
- or you're using bing instead of google maps,
- or you're using flash instead of html5.

Try to check if one of these is true.

Best regards,
Klaus

7

Donnerstag, 26. Oktober 2017, 14:34

Thanks again Klaus, you nailed it! I was using an up-to-date krpanotools binary, but an out-of-date googlemaps.js. It's working now :-).

Ähnliche Themen