zoukankan      html  css  js  c++  java
  • Google Maps API 进级:计算折线长度

    转自:http://hi.baidu.com/xfm_zhr/blog/item/fbfe5c274a87a904908f9d28.html

    1.       如何编码经纬度

    对于静态、不需要修改的数据,可利用Google提供的在线编码工具进行获取。详情参见相关文档。

    对于需动态生成的数据,可根据Google提供的编码算法说明,对进行编码实现使用。有关编码说明参加Google的相关文档。

    2.       有关计算折线长度

    基本思路:将地球作为一个完美球体。计算折线相邻两点的距离(弧长,半径*弧度)进行累加即可获取。

    因为以上方法采取了近似处理,因此获取的值仅供参考。

    几个关于GlatLng的方法:

    GlatLng.lat();//返回角度值纬度

    GlatLng.lng();//返回角度值经度

    GlatLng.latRadians();//返回弧度值纬度

    GlatLng.lngRadians();//返回弧度值经度。

    计算弧长示例:

    function getDistance2(from, to, unit) {

            //地球半径

            var R = 6378.137;

            //千米英里转化进制

            var M = 1.609344;

            with (Math)

             {

                var lat1 = from.latRadians();

                var lng1 = from.lngRadians();

                var lat2 = to.latRadians();

                var lng2 = to.lngRadians();

               

                var dist = 2 * asin(sqrt( pow( (sin( (lat1 - lat2) /2 ) ), 2) + cos(lat1) * cos(lat2) * pow( (sin( (lng1 - lng2) / 2) ) ,2) ) ) * R;

            }

           

            if (unit=="M")

            {

                dist = dist / M;

            }

            return dist;

    }

    计算折线总长示例:

       function getDistance() {

            var dist = 0;

           

            //折线上总的顶点数

            var count = polyline.getVertexCount();

           

            //历遍所有顶点,计算距离

            for(var i=0; i<count-1; i++){

                dist += getDistance2(polyline.getVertex(i), polyline.getVertex(i+1));

            }

            return dist;

        }

  • 相关阅读:
    PHP自学2——将用户提交表单存储到外部普通文件中
    PHP自学1——简单表单提交
    自学php的几个例子(包含AMP(Apache、MySQL、PHP)环境搭建链接)
    自学SQL语言的例子(使用MySQL实现)
    自学XML DOM的几个例子
    学习DTD和Schema的几个例子
    自学Xpath的几个例子
    自学XSL的几个例子
    java数据库连接池的介绍与定义一个简单的连接池
    Jquery Ajax 复杂json对象提交到WebService
  • 原文地址:https://www.cnblogs.com/wangpei/p/1626963.html
Copyright © 2011-2022 走看看