OPENLAYERS이용 MAP으로부터 축척 구하기


30 May
30May

[용어설명]

  • 축척 
    –  보여지는 지도상에서 1 유닛(보통 m)이 나타내는 거리값
  • Resolution (해상도)
    – 현재축척에서 1픽셀이 표현하는 거리값 (이미 설정된 UNIT기준)
  • INCHES_PER_UNIT
    – 각 유닛이 몇 인치로 구성되는 지를 나타내는 값 – OpenLayers.Util CLASS에 있음.
    OpenLayers.INCHES_PER_UNIT = {
           ‘inches’: 1.0,
           ‘ft’: 12.0,
           ‘mi’: 63360.0,
           ‘m’: 39.37,
           ‘km’: 39370,
           ‘dd’: 4374754,
           ‘yd’: 36
       };
  • DOTS_PER_INCHES
    –  1인치에 몇개의 픽셀을 표현할건지를 나타내는 값
    OpenLayers.DOTS_PER_INCHES = 96 (혹은 72)

  

 


현재축척 = map.getResolution() * OpenLayers.INCHES_PER_UNIT[map.getUnits()] * OpenLayers.DOTS_PER_INCH

 

해설 :

To find the scale a resolution represents, you have to know how big a pixel is;

OL doesn’t know that for sure, but makes some reasonable assumptions.

If you look at Util.js, and search for getScaleFromResolution(), you will find that it uses 2 constants, INCHES_PER_UNIT and DOTS_PER_INCH, and the calculation is “resolution * OpenLayers.INCHES_PER_UNIT[units] * OpenLayers.DOTS_PER_INCH”. For degrees this is resolution*4374754*72 (314,982,288), so the maximum scale is 1:442,943,843. In metres, the maximum scale is 156543.0339*39.3701*72 (2,834.6472) or 1:443,744,273.

댓글
* 이메일이 웹사이트에 공개되지 않습니다.