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

QQ登录

只需一步,快速开始

查看: 4147|回复: 10

[处理中4] 怎么计算两个经纬度之间的距离呢?

[复制链接]

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
发表于 2016-8-30 18:56:59 | 显示全部楼层 |阅读模式
获取到了双方的经纬度,现在需要计算距离,不知道怎么计算,百度了下用的是 sin  cos 等三角函数

0

主题

1639

帖子

497

积分

中级会员

Rank: 3Rank: 3

积分
497
QQ
发表于 2016-8-31 09:57:11 | 显示全部楼层
已经有人问过了,你可以参考一下http://bbs.wex5.com/forum.php?mo ... =%E8%B7%9D%E7%A6%BB
回复我的时候请点击我当前评论旁边的回复按钮,能保证第一时间看到您的回复,在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
 楼主| 发表于 2016-8-31 11:15:04 | 显示全部楼层
cgrddv 发表于 2016-8-31 09:57
已经有人问过了,你可以参考一下http://bbs.wex5.com/forum.php?mod=viewthread&tid=101117&highlight=%E8% ...

经纬度计算距离时,先是给定了一个经纬度为具体数字,之后通过定位获取设备的经纬度,计算两点之间的距离,会是特别大(完全不对)  但是如果是把获取的经纬度,直接用数字写上去,然后计算距离 是准确的   
回复 支持 反对

使用道具 举报

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
 楼主| 发表于 2016-8-31 11:33:47 | 显示全部楼层

经纬度计算距离遇到的问题

借用了论坛其他人通过经纬度计算两点之间距离的方法,如果是直接给定两个经纬度的话
var lat1 = 116.566862;
var lng1 = 39.909941;

var lat2 = 116.48257;
var lng2 = 39.93187;
这样可以正常计算

但是如果通过设备获取到的经纬度进行计算
var lat1 = position.coords.latitude;
var lng1 = position.coords.longitude;
(此时获取到的经纬度在数值上 和 上面 lat1 lng1的一样)
var lat2 = 116.48257;
var lng2 = 39.93187;
计算的结果完全不对

计算的方法没错,会不会是需要类型转换什么的
回复 支持 反对

使用道具 举报

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
 楼主| 发表于 2016-8-31 14:29:00 | 显示全部楼层
求解决
回复

使用道具 举报

0

主题

1639

帖子

497

积分

中级会员

Rank: 3Rank: 3

积分
497
QQ
发表于 2016-8-31 14:42:30 | 显示全部楼层
你看看lat1 和lng1这两个坐标。是不是数值类型的,你跟一下数据,看看那个function里的各个变量有什么变化
回复我的时候请点击我当前评论旁边的回复按钮,能保证第一时间看到您的回复,在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
 楼主| 发表于 2016-8-31 15:55:15 | 显示全部楼层
应该不是数值类型的
回复 支持 反对

使用道具 举报

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
 楼主| 发表于 2016-8-31 15:56:51 | 显示全部楼层
cgrddv 发表于 2016-8-31 14:42
你看看lat1 和lng1这两个坐标。是不是数值类型的,你跟一下数据,看看那个function里的各个变量有什么变化 ...

不是数值类型的,我不知道怎么跟。。 只有获取位置成功之后才能调用那个成功回调函数,用浏览器的话不行,没有模拟器,直接在手机上看的
回复 支持 反对

使用道具 举报

0

主题

1639

帖子

497

积分

中级会员

Rank: 3Rank: 3

积分
497
QQ
发表于 2016-8-31 16:08:32 | 显示全部楼层
沉江小鱼 发表于 2016-8-31 15:56
不是数值类型的,我不知道怎么跟。。 只有获取位置成功之后才能调用那个成功回调函数,用浏览器的话不行 ...

那你parseFloat转换一下,你可以alert一下typeOf那两个变量。在手机上alert可以使用
回复我的时候请点击我当前评论旁边的回复按钮,能保证第一时间看到您的回复,在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
 楼主| 发表于 2016-8-31 16:16:40 | 显示全部楼层
cgrddv 发表于 2016-8-31 16:08
那你parseFloat转换一下,你可以alert一下typeOf那两个变量。在手机上alert可以使用 ...

我上午用那个parseFloat 还是不行,刚才alert下那个的类型 是 number的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 10:52 , Processed in 0.068716 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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