Сенча сенсорный - не в состоянии гуглить маркеры карты - PullRequest
1 голос
/ 05 января 2012

Я изучаю сенсорный сенсор и пытаюсь поставить маркеры на карте Google.Я просмотрел большинство примеров в Интернете, но не могу заставить маркер и информационное окно работать.Ниже мой код:

myApp.views.MapCard = Ext.extend(Ext.Panel, {
    id: "mapcard",
    layout: 'card',
    initComponent: function() {
        this.map = new Ext.Map({
            useCurrentLocation: true,
            mapOptions: {
                zoom: 12,
            },
        });

        this.panel = new Ext.Panel({
            layout: 'fit',
            items: this.map,
        });

        this.items = this.panel;

        myApp.views.MapCard.superclass.initComponent.call(this);

        refresh = function(theMap) {
            var geoTag = {
                lat: '47.584863',
                longi: '-122.147026',
                text: 'Hello World',
            }
            addMarker(geoTag, theMap);
        }

        addMarker = function(geoTag, theMap) {
            var latLng = new google.maps.LatLng(geoTag.lat, geoTag.longi);
            var marker = new google.maps.Marker({
                map: theMap.map,
                position: latLng
            });

            google.maps.event.addListener(marker, "click", function() {
                geoTagBubble.setContent(tweet.text);
                geoTagBubble.open(theMap.map, marker);
            });
        };

        geoTagBubble = new google.maps.InfoWindow();

        refresh(this.map);
    },

});

Ext.reg('mapcard', myApp.views.MapCard);

Я также не могу получить текущее местоположение пользователя, я уверен, что карта не загружается во время initComponent.Я бы позвонил в службу json, чтобы вытащить широту и долготу и выполнить цикл позже.Если есть лучшая реализация, пожалуйста, дайте мне знать!

Спасибо за тонну!

1 Ответ

3 голосов
/ 05 января 2012

Вот довольно минимальный пример приложения, которое демонстрирует это: http://septa.mobi

Вы можете найти исходный код в view-source или на GitHub: https://github.com/mjumbewu/Septnuts/

Вот панель, где маркердобавлено на карту: https://github.com/mjumbewu/Septnuts/blob/master/src/Septnuts/MapPanel.js

ВНИМАНИЕ: в Sencha Touch 1.x есть ошибка , которая не позволяет встроенным картам Google получать ЛЮБЫЕ события нажатия

Вам необходимо включить этот патч после включения sencha-touch.js, чтобы любой обработчик кликов на карте работал: https://github.com/mjumbewu/Septnuts/blob/master/src/sencha-maptouch-patch.js

...