sencha touch权威指南---学习笔记5-经纬度获取计算直线距离

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <link rel="stylesheet" href="sdk-touch/resources/css/sencha-touch.css" />
    <link rel="stylesheet" href="resources/css/app.css" />
    <!--<script src="sdk-touch/sencha-touch.js"></script>-->
    <script src="sdk-touch/sencha-touch-all.js"></script>
    <!--<script src="sdk-touch/sencha-touch-all-debug.js"></script>-->
    <!--<script src="sdk-touch/sencha-touch-debug.js"></script>-->
    <script src="app.js"></script>
</head>
<body>
</body>

</html>

/**
 * Created by-PC on 2014/8/12.
 */
Ext.define(‘MyApp.controller.calculate‘, {
    toRad: function (d) {
        return d * Math.PI / 180;
    },
    getDisance: function (lat1, lng1, lat2, lng2) { //#lat为纬度, lng为经度, 一定不要弄错
        var dis = 0;
        var radLat1 = this.toRad(lat1);
        var radLat2 = this.toRad(lat2);
        var deltaLat = radLat1 - radLat2;
        var deltaLng = this.toRad(lng1) - this.toRad(lng2);
        var dis = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(deltaLat / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(deltaLng / 2), 2)));
        return dis * 6378137;
    }
});

/**
 * Created by-PC on 2014/8/12.
 */
Ext.define(‘MyApp.controller.controller‘, {
    extend: ‘Ext.app.Controller‘,
    launch: function () {
        this.callParent(arguments);
        console.log(‘launch‘);
        //北京天安门的地理坐标
        var pk_la = 39.90960456049752;
        var pk_lo = 116.3972282409668;

/*Ext.util.geolocation.getCurrentPosition(function (position) {
            console.log(position.coords.latitude);
            console.log(position.coords.longitude);
        });*/
        //var me_la = Ext.device.geolocation.latitude;
        //var me_lo = Ext.device.geolocation.longitude;

navigator.geolocation.getCurrentPosition(function(position){
            //alert(position.coords.latitude+‘+‘+position.coords.longitude);

//var me_la = Ext.Device.Geolocation.getLatitude;//不能实现获取
            //var me_lo = Ext.Device.Geolocation.getLongitude;//不能实现获取

var me_la = position.coords.latitude;
            var me_lo = position.coords.longitude;

var g = Ext.create(‘MyApp.controller.calculate‘);
            var distance = g.getDisance(pk_la, pk_lo, me_la, me_lo);

//console.log(me_la);
            //console.log(me_lo);
            //console.log(distance);

Ext.getCmp(‘locLabelID‘).setValue(distance+‘米‘);

});

},
    init: function () {
        this.callParent();
        console.log(‘init1‘);
    }
});

/**
 * Created by-PC on 2014/8/12.
 */
Ext.define(‘MyApp.view.mainContainer‘,{
    extend:‘Ext.Container‘,
    alias: ‘widget.mainContainer‘,
    requires: [‘Ext.Toolbar‘],
    initialize:function(){
        this.callParent();

var topToolBar={
            xtype:‘toolbar‘,
            title:‘直线距离‘,
            docked:‘top‘,
            items:[
                {
                    xtype:‘spacer‘
                }
            ]
        };

var locLabel = {
            xtype: ‘textfield‘,
            name: ‘title‘,
            label: ‘你与天安门的距离是:‘,
            id:‘locLabelID‘
        };

this.add([
            topToolBar,
            locLabel

]);
    }
    /*config:{
        layout: {
            type: ‘fit‘
        }
    }*/
});

sencha touch权威指南---学习笔记5-经纬度获取计算直线距离

时间: 2024-10-26 20:46:42

sencha touch权威指南---学习笔记5-经纬度获取计算直线距离的相关文章

Git权威指南学习笔记(一)Git初始化

1.在Git中配置用户名和邮件地址 $ git config --global user.name "Jymn_Chen" $ git config --global user.email "[email protected]" 注意把用户名和邮件地址替换成你自己的资料. 在这里的参数global表示配置的作用范围是当前用户,如果将参数改为system,那么配置的作用范围是系统中的所有用户. 2.创建版本库 新建一个目录并cd到目录中,执行以下命令: $ git i

Git权威指南学习笔记(二)Git暂存区

如下图所示: 左侧为工作区,是我们的工作目录. 右侧为版本库,其中: index标记的是暂存区(stage),所处目录为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的目录树.HEAD指向master分支. objects标记的是Git的对象库,所处目录为.git/objects,文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们可以清晰地看出add,commit等命令的转化关系.下面通过git diff和git status两条命

JavaScript权威指南学习笔记之一

1.关于分号 javascript里面不强制使用分号来表示一行语句的结束,但是最好能够在写js之前,特别是在原有的js上面新增时,最好前置一个分号.避免这种情况发生:  2.JavaScript类型转换 3.关于=== ①如果类型不同则不等 ②null===null或undefined===undefined ③true===true或false===false ④NaN不等 ⑤0===0 0===-0 ⑥如果是同一个object,array,function则相等 4.关于== ①如果已经==

MongoDB权威指南学习笔记4---查询相关的知识点

1 find find({查询条件},{"key":1,"email":1})  后面表示返回哪些键 2 可用的比较操作符 $lt , $lte,$gt,$gte 比如db.users.find({"age":{"$gte":18,"$lte":30}}) 3不等于 find(...{"key":{"$ne":"value"}} 4 in find

MongoDB权威指南学习笔记5---索引相关的知识点

1 查看查询计划 db.user.find({"username":"xxx"}) .explain() db.doc.find({"es_y":"2014"}).explain() {  "cursor" : "BasicCursor",  "isMultiKey" : false,  "n" : 0,  "nscannedObject

Hadoop权威指南学习笔记一

Hadoop权威指南学习笔记一 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习参考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm 1. 数据的增长远远超过了磁盘的读取速度,传统的数据存储方式和分析方式变得不再适用于大数据的处理. Hadoop分为两大核心技术,HDFS(HadoopDistributed File System-分布式hadoop文件处理系统)和MapReduce(分为Map-数据映射等

CSS权威指南学习笔记系列(1)CSS和文档

题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对,请谅解和指出.谢谢大家.正文: 第一章 CSS和文档---------- 1.CSS,称为层叠样式表.使用CSS的理由有:a.易于使用,样式表能大大减少Web创作人员的工作量:b.在多个页面上使用样式,可以创建一个样式表,然后把这个样式表应用到多个页面:c.层叠,CSS还规定了冲突规则:这些规则统称

Hadoop权威指南学习笔记二

MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm 上一篇介绍了什么是Hadoop.Hadoop的作用等.本篇相同基于Hadoop权威指南,结合迪伦的Hadoop的视频教程对MapReduce做一个介绍. 1. MapReduce是Hadoop的核心之中的一个.MapReduce分为两个部分,Mapper和Ruducer模块.简单

Hadoop权威指南学习笔记三

HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm Hadoop说白了就是一个提供了处理分析大数据的文件集群,当中最重要的无疑是HDFS(Hadoop Distributed File System)即Hadoop分布式文件系统. 1. HDFS是一种以流式数据訪问模式(一次写入多次读取的模式)存储超大文件的系统. 其不须要的高端的硬件系统