web-dev-qa-db-fra.com

Uncaught InvalidValueError: setMap: pas une instance de Map

quand j'ai utilisé le Sencha Touch2.2.1, j'ai rencontré une question . Dans le spectateur:

items: [{
    id: 'mapCanvas',
    xtype:'map',
    useCurrentLocation: true,
}]

Dans le contrôleur:

var map= Ext.getCmp('mapCanvas');
console.dir(map);
var marker= new google.maps.Marker({
                position: new google.maps.LatLng(25,118),
            });
marker.setMap(map);

signaler l'erreur:

Uncaught InvalidValueError: setMap: pas une instance de Map, ni une instance de StreetViewPanorama

Je peux voir la carte, mais je ne peux pas voir le marqueur et comment résoudre le problème?

13
user2996645

Essaye ça:

    marker = new google.maps.Marker({
                position : position,
                setMap : map
            }); 

Cela a fonctionné pour moi!

16
Chris

map n'est pas une instance de google map.

var map= Ext.getCmp('mapCanvas').getMap(); // add getMap() here to get the map instance
console.dir(map);
var marker= new google.maps.Marker({
    position: new google.maps.LatLng(25,118),
});
marker.setMap(map);
5
zizoujab

Vous pouvez ajouter le marqueur à la carte directement à l'aide de la méthode setMap () du marqueur, comme illustré dans l'exemple ci-dessous:

var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
  zoom: 4,
  center: myLatlng
}
var map = new google.maps.Map(document.getElementById("map"), mapOptions);

var marker = new google.maps.Marker({
    position: myLatlng,
    title:"Hello World!"
});

// To add the marker to the map, call setMap();
marker.setMap(map);
2
Aman

var map est un élément HTML dont vous avez besoin d'une instance de l'objet google.maps.Map

var map = google.maps.Map(document.querySelector("#mapCanvas"),{
      center: new google.maps.LatLng(24.027872, -104.655278),
      zoom: 12
    });

puis....

var marker= new google.maps.Marker({
  position: new google.maps.LatLng(25,118),
  map: map
    });
1
Elias

Essaye ça:

var  latlngbounds = new google.maps.LatLngBounds(),
     position = new google.maps.LatLng(25,118),
     marker = new google.maps.Marker({
            position : position,
            map : map
        }); 

latlngbounds.extend(position);

map.fitBounds(latlngbounds);

Ici map est l'instance rendue google.map.Map

0
Anand Gupta

La méthode marker.setMap s'attend à ce que l'argument soit un objet google.maps.Map. Ce n'est pas l'un d'entre eux:

var map= Ext.getCmp('mapCanvas');
0
geocodezip

mapCanvas est un composant de carte externe contenant l'instance de carte.

var map= Ext.getCmp('mapCanvas');
console.dir(map);
var marker= new google.maps.Marker({
                    position: new google.maps.LatLng(25,118),
              });
marker.setMap(map.getMap());
0
koti bajjuri