在什么情况下我才能判断用户是否选择不分享他们的位置

At what point can I tell if a user has chosen to not share their location?

本文关键字:选择 分享 他们的 位置 是否 用户 情况下 判断 在什么      更新时间:2023-09-26

我正在尝试使用PHP和javascript发送一个网络摄像头图像和其他一些数据-不要问,这只是我开始的一个小项目,希望能学到一些东西。为了使lat和lon变得可用,我必须在检索lat和lon后调用网络摄像头函数。这是我正在使用的javascript(地理位置部分来自Lynda.com)。我将其与JpegCam结合起来)。我添加了纬度和纬度来保存这些值。然后我调用网络摄像头函数now_go(),它使用getElementById()获得时间和长度。只要用户分享他们的位置,这种方法就很有效。如果没有,则不会调用now_go()函数。但是如果我更早调用它,那么即使用户决定共享他们的位置,也无法获得经纬度。那么在游戏的哪个阶段我才能判断用户是否选择不分享?

 <script type="text/javascript">
    var t = new bwTable();
    var geo;
    function getGeoLocation() {
        try {
            if( !! navigator.geolocation ) return navigator.geolocation;
            else return undefined;
        } catch(e) {
            return undefined;
        }
    }
    function show_coords(position) {
        var lat = position.coords.latitude;
        var lon = position.coords.longitude;
        element('lat').innerHTML = lat;
        element('lon').innerHTML = lon;
        t.updateRow(0, [ lat.toString(), lon.toString() ] );
        dispResults();
        now_go();
    }
    function dispResults() {
        element('results').innerHTML = t.getTableHTML();
    }
    function init() {
        if((geo = getGeoLocation())) {
            statusMessage('Using HTML5 Geolocation')
            t.setHeader( [ 'Latitude', 'Longitude' ] );
            t.addRow( [ '&nbsp;', '&nbsp;' ] );
        } else {
            statusMessage('HTML5 Geolocation is not supported.')
        }
        geo.getCurrentPosition(show_coords);
    }
    window.onload = function() {
        init();
    }
</script>

这是webcam脚本的一部分,我把它变成了一个函数,这样我就可以在获取lat和lon后调用它:

 <script language="JavaScript">
        function now_go(){
            var lat = null;
            var lon = null;
     if ($("#lat").length > 0){          
      var lat = document.getElementById('lat').innerHTML;
         }
          if ($("#lon").length > 0){          
      var lon = document.getElementById('lon').innerHTML;
          }
            webcam.set_api_url( 'webcam/test/' + lat + '/' + lon);
    webcam.set_quality( 90 ); // JPEG quality (1 - 100)
    webcam.set_shutter_sound( true, '/mark/js/webcam/shutter.mp3' );
       }    
</script>

我确信这段代码有其他问题,但这是它现在的样子。早上5点。我想这种情况还会持续一段时间。

任何意见或建议都很好。

谢谢,div标记

查看此链接。navigator.geolocation.getCurrentPosition()方法还有第二个参数,它可以让你传入另一个函数:

navigator.geolocation.getCurrentPosition(show_coords, function(error) {
    switch(error.code)  
    {  
        case error.PERMISSION_DENIED: alert("user did not share geolocation data");  
        break;  
        case error.POSITION_UNAVAILABLE: alert("could not detect current position");  
        break;  
        case error.TIMEOUT: alert("retrieving position timedout");  
        break;  
        default: alert("unknown error");  
        break;  
    }  
});