基于angularJs坐标转换指令(经纬度中的度分秒转化为小数形式 )
阅读原文时间:2023年07月08日阅读:2

最近项目中,需要用户输入经纬度信息,因为数据库设计的时候,不可能分三个字段来存储这种信息,只能用double类型来进行存储。

计算公式  double r=度+分/60+秒/3600







经纬度转换控件

<script>  
        var app = angular.module("app", \[\], function () {  
            console.log("test");  
        });  
        app.controller("test", \["$scope", function ($scope) {  
            $scope.longitude = 113.211;  
            console.log($scope.longitude);  
            $scope.$watch("longitude",function(newValue,oldValue) {  
                console.log(newValue);  
            });  
        }\]);  
        app.directive("coordTransform", function () {  
            return {  
                restrict: 'E',  
                scope: {  
                    ngModel:"="  
                },  
                templateUrl: function () {  
                    return "LongitudeAndLatitudeTemplate.html";  
                },  
                link: function (scope, elements, attrs) {  
                     if (angular.isUndefined(scope.ngModel)) {  
                         return "";  
                     }  
                     scope.obj = {  
                        du: null,  
                        fen: null,  
                        miao: null  
                    };  
                    var model = scope.ngModel.toString();  
                    var str = model.split(".");  
                     //度  
                    var du = str\[0\];  
                     //分  
                    var tp = "0." + str\[1\];  
                    var res = String(tp \* 60);  
                    var str1 = res.split(".");  
                    var fen = str1\[0\];  
                    //秒  
                    var tp1 = "0." + str1\[1\];  
                    var miao = tp1 \* 60;

                    scope.obj = {  
                        du: du,  
                        fen: fen,  
                        miao:miao  
                    };  
                    scope.$watch("obj", function (newValue, oldValue) {  
                        if (angular.isUndefined(oldValue) || angular.isUndefined(newValue)||oldValue===newValue) {  
                            return;  
                        }  
                        var f = parseFloat(scope.obj.fen) + parseFloat(scope.obj.miao / 60);  
                        scope.ngModel = parseFloat(scope.obj.du) + parseFloat(f / 60);  
                       // scope.$apply(scope.ngModel);  
                    },true);  
                }  
            }  
        });  
</script>  


这里是经纬度转换实例



下面是模板的html文件

° '  "

 项目地址:https://github.com/gdoujkzz/coord-transform.git

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章