我正在研究一个小的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');
}
答案 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
请参阅此处的答案。