真的可以在一些帮助下做,当用户靠近某个设定的兴趣点时,我试图在 sencha 的帮助下在 android 手机上推送警报。
在我看来,我有一张地图
{
xtype: 'map',
id: 'mapOne',
cls: 'center',
flex: 1,
width: '100%',
mapOptions : {
mapTypeControl : false,
navigationControl : true,
streetViewControl : false,
backgroundColor: 'transparent',
disableDoubleClickZoom: true,
zoom: 10,
draggable: true,
keyboardShortcuts: true,
scrollwheel: false,
enableHighAccuracy: true
},
listeners : {
maprender : function(comp, map){
var currentMarker = new google.maps.Marker({
position: new google.maps.LatLng(setlat,setlon),
//title : 'Sencha HQ',
map: map,
icon: image
});
setTimeout( function(){map.panTo (new google.maps.LatLng(markerlat, markerlong));} , 1);
}
}
在我的控制器中,我在渲染地图之前设置了以下内容
var poi = new google.maps.LatLng(markerlat, markerlong);
然后在我的控制器中初始化一个地理定位对象,如下所示
var geo = Ext.create('Ext.util.Geolocation', {
autoUpdate: true,
frequency :3000,//every 3 seconds
listeners: {
locationupdate: function(geo) {
var curlat = geo.position.coords.latitude;
var curlong = geo.position.coords.longitude;
console.log('New GEO CURRENT: ' + curlat + ' ' + curlong);
var me = new google.maps.LatLng(curlat, curlong);
if (me == poi){
alert("poi found");
}
},
locationerror: function(geo, bTimeout, bPermissionDenied, bLocationUnavailable, message) {
if(bTimeout){
alert('Timeout occurred.');
} else {
alert('Error occurred.');
}
}
}
});
我还设置了一个地理标记,以查看我是否在 poi 附近被检测到。
GeoMarker = new GeolocationMarker(mapOne);
它直接在标记顶部显示我的 GeoMarker,没有警报。我尝试了一些不同的类似事情,但没有成功,如下所示....
if (GeoMarker == poi){
alert("poi found");
}
我知道在这两种情况下我的过程都是错误的,因为我的位置不会与 poi 完全相同,但我无法弄清楚如何将当前位置的适当接近设置为警报。我发现很难找到任何文档来说明如何成功实现与在 poi 警报方面类似的东西。任何可能有帮助的帮助或文档链接将不胜感激。
提前致谢