一、名詞解釋
分辨率(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/