0

嗨,我正在尝试向 sencha touch v.2.2.1 谷歌地图添加一个标记。我可以看到地图,但看不到标记。我还添加了所需的库: <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>

config: {
    items: [{
        xtype: 'map',
        itemId: 'mapHomeView',
        width: Ext.os.deviceType == 'Phone' ? null : 1500,
        height: Ext.os.deviceType == 'Phone' ? null : 350,
        useCurrentLocation: true,
        listeners: {
        maprender: function(extMapComponent, googleMapComp){
            var marker = new google.maps.Marker({
                title: 'test',
                position: new google.maps.LatLng (49.279989, -123.126333),
                map: Ext.ComponentQuery.query('#mapHomeView')[0].map,
                // map: googleMapComp,
            });

            marker.setMap(Ext.ComponentQuery.query('#mapHomeView')[0].map);
        }
    }]
}

我正在使用谷歌浏览器来测试应用程序。我在设置中启用了位置请求。

line map: ... 和注释 map: ... line 都不起作用。

4

1 回答 1

0

这解决了我的问题。我在 sencha touch 的示例中找到了它:

config: {
    control: {
        'map[itemId="mapHomeView"]': {
            maprender: 'mapHomeViewMapRenderer'
        }
    }
},

mapHomeViewMapRenderer: function(comp, map) {
    var map = Ext.ComponentQuery.query('#mapHomeView')[0].getMap();

    var image = new google.maps.MarkerImage(
        'resources/images/point.png',
        new google.maps.Size(32, 31),
        new google.maps.Point(0, 0),
        new google.maps.Point(16, 31)
    );

    var shadow = new google.maps.MarkerImage(
        'resources/images/shadow.png',
        new google.maps.Size(64, 52),
        new google.maps.Point(0, 0),
        new google.maps.Point(-5, 42)
    );

    var position = new google.maps.LatLng(49.279989, -123.126333);

    var marker = new google.maps.Marker({
        position: position,
        title: 'test',
        shadow: shadow,
        icon: image,
        map: map
    });
},
于 2013-07-09T23:41:51.447 回答