Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自浏览器包的Meteor地理位置_Meteor - Fatal编程技术网

来自浏览器包的Meteor地理位置

来自浏览器包的Meteor地理位置,meteor,Meteor,我尝试在atmosphere和web上搜索任何包,以获取用户使用桌面浏览器访问应用程序时的地理位置(纬度、经度),但找不到任何包。现有的应用程序只提供移动服务,例如。有人能告诉我如何通过Meteor从桌面获取用户的地理位置(纬度、经度)吗?谢谢我知道这是一篇老文章,但是我想把它写下来 您可以尝试使用该软件包。它有地理位置和许多其他HTML5API可供使用 在客户端上安装软件包之后 var html5api = new Html5Api(); 然后请求地理位置权限: var geoLocatio

我尝试在atmosphere和web上搜索任何包,以获取用户使用桌面浏览器访问应用程序时的地理位置(纬度、经度),但找不到任何包。现有的应用程序只提供移动服务,例如。有人能告诉我如何通过Meteor从桌面获取用户的地理位置(纬度、经度)吗?谢谢

我知道这是一篇老文章,但是我想把它写下来

您可以尝试使用该软件包。它有地理位置和许多其他HTML5API可供使用

在客户端上安装软件包之后

var html5api = new Html5Api();
然后请求地理位置权限:

var geoLocation = html5api.geoLocation();
拥有权限后,获取位置

if (geoLocation) {
    geoLocation.getLocation(function(err, res){
        if (err) console.log(err);
        else console.log(res);
    });
}
结果会是这样的:

{
    accuracy: 30 // in meters
    altitude: null
    altitudeAccuracy: null
    heading: null
    latitude: <latitude>
    longitude: <longitude>
    speed: null
    timestamp: 1457901207220
}

常规Javascript
navigator.geolocation.getCurrentPosition
应该可以正常工作。你试过了吗?你可以在网站上读到更多的东西,那里已经有一个来自Meteor development group的不错的软件包。
if (geoLocation) {
    geoLocation.watch(function (err, res) {
        if (err) console.log(err);
        else {
            // the result will be in res.result
            console.log(res.result);
            Meteor.setInterval(function () {
                // to stop watching a location, you need a watchId which is available in res.watchId when the watch started
                geoLocation.stopWatching(res.watchId);
            }, 30 * 1000);
        }
    });
}