问题
when i used the sencha touch2.2.1,i met a question. In the viewer:
items: [{
id: 'mapCanvas',
xtype:'map',
useCurrentLocation: true,
}]
In the controller:
var map= Ext.getCmp('mapCanvas');
console.dir(map);
var marker= new google.maps.Marker({
position: new google.maps.LatLng(25,118),
});
marker.setMap(map);
report the error:
Uncaught InvalidValueError: setMap: not an instance of Map, and not an instance of StreetViewPanorama
I can see the map,but i can't see the marker, and how to solve the problem?
回答1:
Try this:
marker = new google.maps.Marker({
position : position,
setMap : map
});
It worked for me!
回答2:
map
is not an instance of 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);
回答3:
You can add the marker to the map directly by using the marker's setMap() method, as shown in the example below:
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);
回答4:
var map is a HTML element you need an instance of the google.maps.Map Object
var map = google.maps.Map(document.querySelector("#mapCanvas"),{
center: new google.maps.LatLng(24.027872, -104.655278),
zoom: 12
});
then....
var marker= new google.maps.Marker({
position: new google.maps.LatLng(25,118),
map: map
});
回答5:
The marker.setMap
method expects the argument to be a google.maps.Map object. This is not one of those:
var map= Ext.getCmp('mapCanvas');
回答6:
Try this:
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);
Here map
is the rendered google.map.Map
instance
回答7:
mapCanvas is Ext map component which holds the map instance.
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());
来源:https://stackoverflow.com/questions/20003952/uncaught-invalidvalueerror-setmap-not-an-instance-of-map