zoukankan      html  css  js  c++  java
  • Application.DoEvents()

    刚刚做一个小的地图瓦片下载程序,本来想加个进度条来显示下载进度,但是不知道要下多少张图片,progressBar不太会用,于是直接加了个lable标签计数。

    发现在运行的时候,lable标签并没有实时显示计数结果,鼠标拖动窗体程序会卡死,于是百度了一下,ok,Application.DoEvents()就这样出现在了眼前,加到循环后面,运行完美。

    Application.DoEvents():刷新窗体信息


    计算瓦片的位置百度搜索:Slippy map tilenames(瓦片和经纬度换算)

     使用了墨卡托投影的googlemap、天地图影像等,相应纬度对应的瓦片纵轴序号

    private int getMercatorLatitude(double lati)
            {
                double maxlat = Math.PI;
    
                double lat = lati;
               
                if (lat > 90) lat = lat - 180;
                if (lat < -90) lat = lat + 180;
    
                // conversion degre=>radians
                // 转换度数到弧度
                double phi = Math.PI * lat / 180;
    
                double res;
                  //网上其他帖子这个地方有问题,应该为加号
                //double temp = Math.Tan(Math.PI / 4 + phi / 2);
                //res = Math.Log(temp);
                //下面这一句是上面的合并
                res = 0.5 * Math.Log((1 + Math.Sin(phi)) / (1 - Math.Sin(phi)));
                double maxTileY = Math.Pow(2, zoom);
                int result = (int)(((1 - res / maxlat) / 2) * (maxTileY));
    
                return (result);
            }
    View Code

    来自:http://www.360doc.com/content/13/0129/18/11253639_263089923.shtml

  • 相关阅读:
    jQuery ajax传多个参数
    PHP 上传图片和安全处理
    PHP CI框架email类发送邮件
    2016-4-7
    jquery 轮播图
    CI控制器的继承问题
    2016-4-1
    2016-3-31 总结
    php内置函数call_user_func()
    discuz-目录
  • 原文地址:https://www.cnblogs.com/dazhangyu/p/4959371.html
Copyright © 2011-2022 走看看