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?
Essaye ça:
marker = new google.maps.Marker({
position : position,
setMap : map
});
Cela a fonctionné pour moi!
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);
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);
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
});
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
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');
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());