Google Maps setCenter()

J'utilise google maps. Dans mon code, j'ai utilisé la fonction setCenter (). Mon problème est que le marqueur est toujours situé dans le coin supérieur gauche de la zone de la carte (pas au centre). Merci de me dire comment le résoudre?

Mon morceau de code est

lat = 46.437857;
lon = -113.466797;

marker = new GMarker(new GLatLng(lat, lon));


var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(20, 40));
map.addControl(new GLargeMapControl3D(), topRight);
map.setCenter(new GLatLng(lat, lon), 5);

map.addOverlay(marker);
23
demandé sur Minderov 2010-05-05 16:47:24

5 réponses

@ phoenix24 réponse m'a réellement aidé (dont le propre asnwer n'a pas résolu mon problème btw). Les arguments corrects pour setCenter sont

map.setCenter({lat:LAT_VALUE, lng:LONG_VALUE});

Google Documents

En passant, si votre variable est lat et lng, le code suivant fonctionnera

map.setCenter({lat:lat, lng:lng});

Cela a en fait résolu mon problème très complexe, alors j'ai pensé que je vais le poster ici.

17
répondu Hammad Khan 2016-04-03 15:44:24
 function resize() {
        var map_obj = document.getElementById("map_canvas");

      /*  map_obj.style.width = "500px";
        map_obj.style.height = "225px";*/
        if (map) {
            map.checkResize();
            map.panTo(new GLatLng(lat,lon));
        }
    }

<body onload="initialize()" onunload="GUnload()" onresize="resize()">
<div id="map_canvas" style="width: 100%; height: 100%">
</div>

12
répondu hotcoder 2010-05-06 11:38:48

J'ai cherché et cherché et finalement trouvé que ie a besoin de connaître la taille de la carte. Définissez la taille de la carte pour correspondre à la taille div.

map = new GMap2(document.getElementById("map_canvas2"), { size: new GSize(850, 600) });

<div id="map_canvas2" style="width: 850px; height: 600px">
</div>
3
répondu user459913 2011-08-27 19:43:25

Dans votre code, à la ligne

map.setCenter(new GLatLng(lat, lon), 5);

La méthode setCenter ne prend qu'un seul paramètre, pour l'emplacement lat:long. Pourquoi passez-vous deux paramètres là-bas ?

Je vous suggère de le changer en,

map.setCenter(new GLatLng(lat, lon));
0
répondu phoenix24 2010-05-05 12:58:46

Pour moi les solutions ci-dessus n'ont pas fonctionné alors j'ai essayé

map.setCenter(new google.maps.LatLng(lat, lng));

Et cela a fonctionné comme prévu.

0
répondu itzmukeshy7 2018-04-06 02:25:12