1

我在 Sencha touch 2 中定义了一个谷歌地图。它正在显示地图,但它没有响应触摸事件。我不能移动或捏它。

Ext.define('AddressBook.view.contact.Show', {
    extend: 'Ext.Panel',
    xtype: 'contact-show',
    requires: [
        'Ext.Map'
    ],
    config: {
        title: 'Information',
        layout: 'card',
        items: [
            {
                xtype: 'map',
                mapOptions : {
                    zoom : 15,
                    mapTypeId : google.maps.MapTypeId.ROADMAP,
                    navigationControl: true,
                    navigationControlOptions: {
                        style: google.maps.NavigationControlStyle.DEFAULT
                    }
                }
            }
        ]
    },

    centerMap: function(newRecord) {
        ...
    },

    setMarkers: function(markers) {
        ...
    }
});

我在 app.js 中创建了它:

Ext.Loader.setConfig({ enabled: true });

Ext.application({
    ...

    launch: function() {
        Ext.Viewport.add({
            xclass: 'AddressBook.view.contact.Show'
        });
    }
});

我包括谷歌脚本:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"</script>

问题是 Sencha 提供的“地图”示例似乎运行良好。但它使用 Ext.setup() 和 Ext.create() 在 app.js 中显示地图。我无法弄清楚为什么它以这种方式工作正常。但我也不能使用这种方式来创建地图。有谁知道有什么问题?

4

1 回答 1

0

发现了问题。来自 Sencha 的“地图”示例包含一个脚本,该脚本在示例中不存在,但存在于我用作项目模板的另一个示例中。

<link rel="stylesheet" href="css/example.css" type="text/css"/>

由于这个不存在的脚本包括谷歌地图在示例“地图”中工作。

换句话说,如果您将其与 Google 地图一起包含在您的项目中,它将变得毫无反应!我不得不剥离“地图”示例以最终找到问题,这花费了我很多时间,这要感谢有人在成为示例之前没有清理他的代码!

顺便说一句,这就是“navigationview”示例还冻结了 Google Map 的原因,因为它需要这个损坏的脚本来显示它的样式。

我要求 Sencha 团队从他们的示例中删除这个令人困惑的代码。

于 2012-09-25T08:49:16.473 回答