zoukankan      html  css  js  c++  java
  • 关于百度地图分辨率resolution的计算

     

    一、名词解释  

      分辨率(resolution,港台称之为解析度)就是屏幕图像的精密度,是指显示器所能显示的像素的多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。(百度百科)

      而地面分辨率是以一个像素(pixel)代表的地面尺寸(米)。

    二、百度地图坐标概述

      百度地图使用经纬度地理坐标(lng, lat)和像素坐标(x, y)两种,同时百度api提供两种坐标转换的方法

      经纬度转换为地理坐标的方法为:

    方法     返回值描述    
    pointToPixel(point:Point)    Pixel                              经纬度坐标转换为像素坐标。

      地理坐标转换为经纬度的方法为:

    方法返回值描述
    pixelToPoint(pixel:Pixel) Point 像素坐标转换为经纬度坐标。

     

    ------------------------------------------------

      博主经营一家发饰淘宝店,都是纯手工制作哦,开业冲钻,只为信誉!需要的亲们可以光顾一下!谢谢大家的支持!
    店名:
      小鱼尼莫手工饰品店
    经营:
      发饰、头花、发夹、耳环等(手工制作)
    网店:
      http://shop117066935.taobao.com/

      ---------------------------------------------------------------------

    继续正题... 

      


    三、分辨率计算方法

      a) 分辨率与地图比例尺之间换算方法:

                    

        Scale:地图比例尺;

        Resolution:地图分辨率;

        PPI:每英寸的像素点数。

        具体参考文章: http://www.cnblogs.com/qiongmiaoer/archive/2013/03/13/2958288.html

      b) 分辨率根据定义( 实际距离/像素值 ),在大比例尺地图下可以近似的用此方法进行计算,就不考虑地球形状因素了,计算方法为:

         分辨率res = (lng1-lng2)/ (x1-x2);

        或 res = (lat1-lat2)/(y1-y1);

    四、一般地图中分辨率特性

      同级别地图中分辨率是固定值,因而无论使用经度还是纬度计算,结果都是不变的。

    五、百度地图中分辨率特性

      同级别地图中百度分辨率不是固定值,且经度方向,纬度方向变化幅度也不相同,可以通过以下方法测试:  

      var bounds = map.getBounds();               //假设定义好了百度地图为map     
       var geoPointLB = bounds.getSouthWest();    //左下角点地理坐标
       var geoPointRT = bounds.getNorthEast();    //右上角点地理坐标
       var pixelPointLB = BaiduMap.map.pointToPixel(geoPointLB);  //左下角点像素坐标
       var pixelPointRT = BaiduMap.map.pointToPixel(geoPointRT);  //右上角点像素坐标
      
      var resX = (geoPointRT.lng - geoPointLB.lng) / (pixelPointRT.x - pixelPointLB.x);    //分辨率 = 经度差 / x差
      var resY = (geoPointRT.lat - geoPointLB.lat) / (pixelPointRT.y - pixelPointLB.y);    //分辨率 = 纬度差 / y差

      测试结果:resX和resY是不同的。

      原因:百度地图为了数据保密做的一些“纠正”,防止一些不法用途。

      目前解决方案:将百度地图分为经度方向分辨率、纬度方向分辨率,可以一定程度上减小误差,具体实现方法同上方代码示例。 

    店名:
      小鱼尼莫手工饰品店
    经营:
      发饰、头花、发夹、耳环等(手工制作)
    网店:
      http://shop117066935.taobao.com/

  • 相关阅读:
    javaScript中eval()方法转换json对象
    JS 根据参数是否为空进行true|false判断呢
    mybatis返回map类型数据空值字段不显示(三种解决方法)
    值类型与引用类型的区别
    随机生成四位数字和字母
    彩票
    冒泡排序
    查询资料:二分查找法
    随机数生成机制
    运算符
  • 原文地址:https://www.cnblogs.com/qiongmiaoer/p/2951812.html
Copyright © 2011-2022 走看看