显示我在sencha touch中的当前位置

时间:2013-04-18 20:11:10

标签: google-maps sencha-touch

我正在研究一个小的sencha progect。我想添加两个地图。第二张地图应该显示我的位置。在第二张地图上,我试图用 -

显示我的位置
useCurrentLocation: true,

这是我的代码。它没有告诉我我现在的位置。第一张地图效果很好......

我做错了什么?

Ext.define('WhatsUnderMe.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
'Ext.TitleBar',
'Ext.Video',
'Ext.Map',
'Ext.util.GeoLocation',
],
config: {
    tabBarPosition: 'bottom',
    items: [
    {
        xtype: 'map',
        useCurrentLocation: true,
        title: 'My Position',
        iconCls: 'home',
        mapOptions:{
            zoom: 16,
            mapTypeId: google.maps.MapTypeId.SATELLITE 
        },
    },
    {
        xtype: 'map',
        title: 'Under Me',
        iconCls: 'star',
        mapOptions:{
            zoom: 15,
            center: new google.maps.LatLng(lat, lng),
            mapTypeId: google.maps.MapTypeId.SATELLITE 
        },
    }
    ]
  },

});

var lat, lng;
var position;
var geoLocationOptions = { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
navigator.geolocation.getCurrentPosition(geoLocationSuccess,geoLocationError,geoLocationOptions);

function geoLocationSuccess(position) {
    lat = position.coords.latitude;
    lng = position.coords.longitude;
}

function geoLocationError() {
 Ext.Msg.alert('Error','Error while getting location');
}

2 个答案:

答案 0 :(得分:0)

这样的事情应该有效。只需确保将代码中的MapInstance更改为google地图的变量。

Ext.device.Geolocation.getCurrentPosition({
    allowHighAccuracy: true,
    maximumAge: 0,
    success: function(position) {


        var lat = position.coords.latitude,
            lon = position.coords.longitude;

        var userLocation = new google.maps.LatLng(lat,lon);


        var userLocationMarker = new google.maps.Marker({
            position: userLocation,
            map: yourMapInstance,
            clickable: false
        });


        yourMapInstance.setCenter(userLocation);


    },
    failure: function() {

        Ext.Msg.alert('Argh','Can\'t Find You!');


    }
});

答案 1 :(得分:0)

此问题已在此处得到解答:Sencha touch 2 - Display current location on map

请参阅此处的答案。