起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3981|回复: 9

[用户待确认] 还是距离问题!!!急需解决!

[复制链接]

67

主题

198

帖子

725

积分

高级会员

Rank: 4

积分
725
QQ
发表于 2019-3-19 15:48:31 | 显示全部楼层 |阅读模式
地图足迹案例不能解决我的问题。我要的是当前位置到数据集中N个地点的距离。

截图

截图


目前,首行数据的距离是随着定位的变化而变化的,其他所有距离都不变。
所以怎么做到地理位置组件赋值到动态数据当前行。或者计算行。
求速速解决。

132

主题

562

帖子

1249

积分

金牌会员

Rank: 6Rank: 6

积分
1249
QQ
发表于 2019-3-20 12:31:08 | 显示全部楼层
你用的哪个组件?我也在用
回复 支持 反对

使用道具 举报

发表于 2019-3-20 13:52:02 | 显示全部楼层
本帖最后由 牛刀服务-LYL 于 2019-3-20 13:54 编辑

在页面加载完成事件中增加如下代码:将计算得到的距离加载到数据表restData2中并显示到页面上。
        function Rad(d){
            return d * Math.PI / 180.0;//经纬度转换成三角函数中度分表形式。
        }
        //计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
        function GetDistance(lat1,lng1,lat2,lng2){
            var self = this;
            var a = Rad(lat1) - Rad(lat2);
            var  b = Rad(lng1) - Rad(lng2);
            var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
            Math.cos(Rad(lat1))*Math.cos(Rad(lat2))*Math.pow(Math.sin(b/2),2)));
            s = s *6378.137 ;// EARTH_RADIUS;
            s = Math.round(s * 10000) / 10000; //输出为公里
            //s=s.toFixed(4);
            return s;
        }
        var self = this;
        var rows = [];
        var rows1 = [];
        //北京天安门
        var lat1 = this.comp('restData').getValue("fweidu");
        var lng1 = this.comp('restData').getValue("fjingdu");
        //目标位置
        this.comp('restData1').each(function(param){
            var lat2 = param.row.fweidu;
            var lng2 = param.row.fjingdu;
            var fweizhimc = param.row.fweizhimc;
            var juli = GetDistance(lat1,lng1,lat2,lng2);
            rows.push({
                    "fid": $Uuid.createUUID(),
                    "fweizhimc":fweizhimc,
                    "fjuli":juli
                });
        });
        //按距离进行排序方法一
        rows.sort(function(a,b){  
            if(a.fjuli<b.fjuli){  
                return -1;  
            }else if(a.fjuli>b.fjuli){  
                return 1;  
            }  
            return 0;  
        });  
        //restData2就是展示距离的数据表
        self.comp('restData2').loadData(rows);
回复 支持 反对

使用道具 举报

发表于 2019-3-20 13:58:50 | 显示全部楼层
本帖最后由 牛刀服务-LYL 于 2019-3-20 14:02 编辑

数据表设计如下图所示,当前位置坐标数据表和目标位置数据表自己维护数据: 1553061251(1).png

2.png
1.png
回复 支持 反对

使用道具 举报

发表于 2019-3-20 14:01:50 | 显示全部楼层
效果图如下:
1553061308(1).png
回复 支持 反对

使用道具 举报

67

主题

198

帖子

725

积分

高级会员

Rank: 4

积分
725
QQ
 楼主| 发表于 2019-3-21 15:35:12 | 显示全部楼层
牛刀服务-LYL 发表于 2019-3-20 13:52
在页面加载完成事件中增加如下代码:将计算得到的距离加载到数据表restData2中并显示到页面上。
        fu ...

这一步怎么做的,执行哪个操作,画代码?复杂逻辑?能复制代码吗
回复 支持 反对

使用道具 举报

67

主题

198

帖子

725

积分

高级会员

Rank: 4

积分
725
QQ
 楼主| 发表于 2019-3-21 15:35:49 | 显示全部楼层
1787810030 发表于 2019-3-20 12:31
你用的哪个组件?我也在用

市场中的位置信息组件
回复 支持 反对

使用道具 举报

132

主题

562

帖子

1249

积分

金牌会员

Rank: 6Rank: 6

积分
1249
QQ
发表于 2019-3-21 15:43:59 | 显示全部楼层
大灰兔 发表于 2019-3-21 15:35
市场中的位置信息组件

我用的这2个,你试了能用吧?我还没试
QQ截图20190321154010.png
回复 支持 反对

使用道具 举报

67

主题

198

帖子

725

积分

高级会员

Rank: 4

积分
725
QQ
 楼主| 发表于 2019-3-21 19:53:18 | 显示全部楼层
1787810030 发表于 2019-3-21 15:43
我用的这2个,你试了能用吧?我还没试

都可以用,第一个是定位获取当前位置,第二个是获取距离。
回复 支持 反对

使用道具 举报

67

主题

198

帖子

725

积分

高级会员

Rank: 4

积分
725
QQ
 楼主| 发表于 2019-3-22 16:48:35 | 显示全部楼层
牛刀服务-LYL 发表于 2019-3-20 13:52
在页面加载完成事件中增加如下代码:将计算得到的距离加载到数据表restData2中并显示到页面上。
        fu ...

这些代码如何添加?通过什么方式?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-19 09:48 , Processed in 0.068515 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表