Angular-google-maps:如何设置当前用户在加载地图上的位置?

时间:2016-01-11 20:12:50

标签: javascript angularjs google-maps ionic-framework angular-google-maps

我正在使用http://angular-google-maps.org/和IONIC-framework。

我以这种方式手动设置中心:

.controller('mainCtrl', function($scope) {
        $scope.map = {
          center: {
            latitude: 51.219053,
            longitude: 4.404418
          },
        ...

我正在尝试在地图加载时使用Angular-google-maps设置用户位置。

我还必须在config()中创建新函数吗?因为我想要运行它。

1 个答案:

答案 0 :(得分:2)

要设置用户的位置,您首先需要知道他们的位置。要做到这一点,你需要询问他们的位置,以便获得他们的经纬度。

我使用此插件来提示并获取用户的位置。

https://github.com/ionberry/cordova-plugin-geolocation-ios9-fix

获得纬度和经度后,您可以将地图的中心设置为用户的位置。如果您选择显示标记,则它们将以用户当前所在的位置为中心。

使用上面的插件获取用户的位置:

var positionOptions = {
    timeout: 10000,
    enableHighAccuracy: true
};

var getPosition = function() {

    var q = $q.defer();

    $ionicPlatform.ready().then(
        function() {
            $cordovaGeolocation.getCurrentPosition(positionOptions).then(
                function(position) {
                    q.resolve(position);
                }, function(error) {
                    q.reject(error);
                }
            );
        }
    );

    return q.promise;
};

这将返回具有纬度和经度的位置对象。从那里,您可以将用户的纬度和经度传递给地图配置对象。如果您需要其他详细信息,geolocation插件有很好的文档。