嘿朋友们,我是Sencha Touch平台的新手。
我想找到用户current location
,marker
请帮帮我。我陷入了这种状态。
有没有什么新的好教程给我,请与我分享..
在此先感谢您的时间。
嘿朋友们,我是Sencha Touch平台的新手。
我想找到用户current location
,marker
请帮帮我。我陷入了这种状态。
有没有什么新的好教程给我,请与我分享..
在此先感谢您的时间。
好问题。我以前遇到过类似的问题。但是,后来,我想出了解决方案。
这是您可以解决的方法。
使用Phonegap 的 Geolocation API进行演示
通过 geolocation api 获取地理位置。
vat lat, lng;
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;
Ext.Msg.alert("Geolocation","Latitude:"+ lat +", Longitude:"+ lng);
}
function geoLocationError() {
Ext.Msg.alert('Error','Error while getting geolocation');
}
然后使用 lat 和 lng 的值将地图的中心设置为它,并将标记的位置设置为该值。
...
...
var position = new google.maps.LatLng(lat,lng);
map = this.add({
xtype: 'map',
getLocation: true,
autoLoad: true,
mapOptions: {
zoom: 15,
center: position,
mapTypeId: google.maps.MapTypeId.ROADMAP,
navigationControl: true,
zoomControl: true,
mapTypeControl: true,
scrollwheel: true,
scaleControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE
}
}
});
marker = new google.maps.Marker({
id: 'geoLocMarker',
position: position,
map: map.getMap(),
visible: true
});
...
...
我还为使用 sencha touch 2.3.1 的类似应用程序
使用 Ext.util.Geolocation 类获取当前位置并使用以下代码自动更新 currentPosition。
Ext.create('Ext.util.Geolocation', {
autoUpdate: true,
allowHighAccuracy: true,
frequency: '5000', // set the milliseconds for the location update
listeners: {
locationupdate: function(geo) {
latitude=Global.currentUserLocations.currentLat;
longitude=Global.currentUserLocations.currentLong;
if(Global.currentUserPositionMarker)
{
latlng1=new google.maps.LatLng(latitude, longitude);
Global.currentUserPositionMarker.setPosition(latlng1);
}
}
}
});
上面的代码对我有用,我已经在我的应用程序中使用它来获取 currentLocation 并将标记移动到 currentPosition。
如果您只使用 Ext.Map.getGeo() 会简单得多,如下所示:
var geo = extmap.down("#Map").getGeo();
var currentPosition = new google.maps.LatLng(geo.getLatitude(), geo.getLongitude());
只要您将地图实例化,如果浏览器客户端允许您获取当前位置,它就应该获取当前位置。
!