微信小程序计算两坐标距离

微信小程序计算两坐标距离,第1张

对于iOS或者安卓同学来说,可能会觉得特别简单吧。OC里就有原生类CLLocation计算坐标距离。当然,大多数时候我们都是直接使用第三方计算,比如百度SDK。

但是接触到微信小程序后,由于可能刚起步,许多API并不完善。像百度SDK关于微信小程序的就没有提供这样的接口去计算。 百度地图微信小程序JS API

仔细翻一番看看,在开发指南->获取地图数据 菜单下只看到4个最基本的功能(POI检索、POI检索热词联想、逆地址解析、天气查询),并没有看到关于计算距离的。看到这些还好,至少不会继续下去入坑了。

后来我就度娘了,第一条检索就是腾讯地图开放平台的内容。这也是为什么今天我要写这篇文章的原因,我入坑了。友情提示,使用腾讯地图确实可以计算两坐标距离,但是呢?只能是10km以内的距离。不然调用后返回结果: status: 373, message: "起终点距离超长"

如果不在意只是10km以内距离的话,想要去集成腾讯地图SDK,文档在此  腾讯地图微信小程序JavaScript SDK

最终解决方案只能自己算了,不用第三方了。

//计算两坐标点之间的距离

  getDistance: function (lat1, lng1, lat2, lng2) {

    lat1 = lat1 || 0

    lng1 = lng1 || 0

    lat2 = lat2 || 0

    lng2 = lng2 || 0

    var rad1 = lat1 * Math.PI / 180.0

    var rad2 = lat2 * Math.PI / 180.0

    var a = rad1 - rad2

    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0

    var r = 6378137

    return (r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)))).toFixed(0)

  },

需要注意的是,该方法返回单位为米,如果想要转换成公里,除以1000即可。

可以。

获取经纬度位置信息功能的方法:

方法一:使用xGeocoding工具,批量获得Google Earth/Google Map/百度/腾讯/高德等地图的经纬度。工具地址:http://www.gpsspg.com/xgeocoding/。

1.打开百度地图“坐标拾取系统”:输入网址”http://api.map.baidu.com/lbsapi/getpoint/index.html“,进入”坐标拾取系统“

2.进入”坐标拾取系统“后,就可以方便的查询自己的精准地理信息了,我们以”海尔工业园“为例,寻找它的详细坐标。在搜索栏输入“海尔工业园”点击搜索,如图,就会在地图上出现相应的标记,点击你要找的某一个,就能看到相应的坐标。

3.把找到的坐标输入到搜索栏,把后面“坐标反查”给勾上,点击搜索,就会对应的坐标打上标记,同时会有相应地址在最右边

4.把鼠标在地图上滑行,你可以看到,鼠标滑到每一个地方,都会显示对应的坐标。

方法二:使用Python程序,直接嵌入即可。

你好:

上面的程序,请看如下代码:

# -*- coding: cp936 -*-

end=input("是否结束(y/n):")

while end=="n":

    print "Number of coordinates:2"

    xx=input("x's:")

    yy=input("y's:")

    a=float(list(xx)[0])

    b=float(list(xx)[1])

    c=float(list(yy)[0])

    d=float(list(yy)[1])

    print "第一个点是:("+str(a)+","+str(c)+")"

    print "第一个点是:("+str(b)+","+str(d)+")"

    x0=c-a

    y0=float(d-b)

    print "直线方程为:",

    if x0==0:

        print "x=",a

    else:

        print "y=%r(x-%r)+%r"%(y0/x0,a,c)

    print


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12045421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存