when i used the sencha touch2.2.1,i met a question. In the viewer:
items: [{
id: \'mapCanvas\',
xtype:\'map\',
useCurrentLocation: true,
}]
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');
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
});
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());
Try this:
marker = new google.maps.Marker({
position : position,
setMap : map
});
It worked for me!
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
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);