0

我正在做一个小型煎茶项目。我正在尝试添加拖图。第二张地图应该显示我的位置。在第二张地图上,我试图显示我的位置 -

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');
}
4

1 回答 1

0

像这样的东西应该工作。只需确保将代码中的 yourMapInstance 更改为您的谷歌地图的变量。

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


    }
});
于 2013-04-25T22:42:26.497 回答