转:读取arcgisserver瓦片数据

getURL: function(bounds){

           var lon1=bounds.left;

           var lat1=bounds.top;

           var lon2=bounds.right;

           var lat2=bounds.bottom;

         var picHeight=256;    //图片大小

         var picResolution,picRow,picCol;   //分辨率,所求图片行号,列号

         var tileOriginX,tileOriginY;    //切图原点

         var iResolution=[1058.3354500042335,529.16772500211675,264.58386250105838,132.29193125052919]; //每个级别的分辨率

         var temp1=new Array();

         var i,zoom=0,path;    //zoom代表缩放级别;

      

              tileOriginX=-5123300;

              tileOriginY=10002300;

              //计算zoom

              picResolution=(lon2-lon1)/picHeight;

         for(i=0;i<iResolution.length;i++){

                   temp1[i]=Math.abs(iResolution[i]-picResolution);

                    if(i>=1){

                            if(temp1[i]<=temp1[i-1]){

                                   zoom=i;

                            }

                     }

              } //end for

              //计算行列号(使用瓦片的中心点经纬度计算)

              picRow=Math.ceil(Math.abs((tileOriginY-(lat1+lat2)/2)/(iResolution[zoom]*picHeight)))-1;

         picCol=Math.ceil(Math.abs((tileOriginX-(lon1+lon2)/2)/(iResolution[zoom]*picHeight)))-1;

              //计算瓦片路径,把级别、行列十进制转化为十六进制

              zoom=zoom.toString(16);

              picRow=picRow.toString(16);

              picCol=picCol.toString(16);

              var zoomTemp="00"+zoom.toString();

              var picRowTemp="00000000"+picRow.toString();

              var picColTemp="00000000"+picCol.toString();

              zoom="L"+zoomTemp.substring(zoom.length,zoom.length+2);

              picRow="R"+picRowTemp.substring(picRow.length,picRow.length+8);

              picCol="C"+picColTemp.substring(picCol.length,picCol.length+8);

              path="http://localhost/openlayer/Layers/_alllayers/"+zoom+"/"+picRow+"/"+picCol+".png";

              //http://localhost/openlayer/layers/_alllayers/L02/R0000004c/C0000004a.png

              //alert("path:"+path);

              return path;

      },  //end function

原文地址:https://www.cnblogs.com/wenwu/p/3064751.html