web-dev-qa-db-ja.com

Uncaught InvalidValueError:setMap:マップのインスタンスではありません

sencha touch2.2.1を使用したところ、質問に遭遇しました。ビューアで:

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

コントローラで:

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

エラーを報告する:

Uncaught InvalidValueError:setMap:Mapのインスタンスではなく、StreetViewPanoramaのインスタンスでもありません

地図は表示されますが、マーカーが表示されません。問題を解決するにはどうすればよいですか。

13
user2996645

これを試して:

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

それは私のために働いた!

16
Chris

mapは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

次の例に示すように、マーカーのsetMap()メソッドを使用して、マーカーを地図に直接追加できます。

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は、google.maps.Mapオブジェクトのインスタンスが必要なHTML要素です

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

その後...

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

これを試して:

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);

ここでmapはレンダリングされたgoogle.map.Mapインスタンス

0
Anand Gupta

marker.setMapメソッドは、引数がgoogle.maps.Mapオブジェクトであると想定しています。これはそれらの1つではありません。

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

mapCanvasは、マップインスタンスを保持するExtマップコンポーネントです。

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