Mapbar的基本演算法

2021-09-06 00:05:08 字數 1897 閱讀 6108

mapbar的地圖,在地標標註上是有優勢的

mapbar基本演算法

因為我當初是用在php下的,所以用了php表示演算法,基本差不多,應該看得懂:

基礎**:""

每層地圖切片存放在資料夾名稱:

$levelstr=array("w","0","1","2","3","4","5","6","7","8","9","10","11","12","15");

即第0層地圖切片放在"w/" 下

每層地圖切片所跨的經度數(緯度跨度需要*0.8這個係數):

$clipnum=array(90,40,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01,0.005,0.002);

如第1層的每切片跨經度是90度,跨緯度是90*0.8=72度。即如經度-180~180,共360度,東西半球各需要180/90=2塊切片,mapbar的每切片畫素為300x300,所以完整地圖長度畫素應是300*4=1200畫素。緯度是-90~90,共180度,南北半球各需要90/72=1.25,需要取大於此數的最小整數即2,所以南北半球加起來仍需要4塊,而不是180/72=2.5取整後的3塊。從中間0度赤道向兩邊平鋪的,因此上下兩塊各有3/4塊區域留有空白。

哈哈,有點缺乏耐心啦,將就著結合一小段程式來理解吧

//每層的最大橫向畫素數(除以2得到是縱向最大畫素)

function maxpixel($zoom)

//經度換算

function pixeltolng($x,$zoom)

function lngtopixel($lng,$zoom)

//緯度換算

function pixeltolat($y,$zoom)

function lattopixel($lat,$zoom)

$blocksize=array(10,10,10,10,10,10,10,10,10,10,50,50,50,50,50);

//$para['clipxno']是橫向切片序號,注意這個序號不是從0開始的

//橫向切片序號運算公式,已知經度是$para['x1']計算所在切片序號:$para['clipxno']=floor($para['x1']/$clipnum[$level]);

//縱向切片序號運算公司,已知緯度是$para['y1']計算所在切片序號:$para['clipyno']=floor($para['y1']/($clipnum[$level]*0.8));

//所以倒如第一層第一塊切片(經緯度分別為-180,90所在的切片)的序號是

$para['clipxno']=floor(-180/90)=-2;$para['clipyno']=floor(90/72)=2;

$para['folderxno']=(int)floor($para['clipxno']/$blocksize[$level]);//切片分資料夾存放位置

$para['folderyno']=(int)floor($para['clipyno']/$blocksize[$level]);

if($para['folderxno']<0)

if($para['folderyno']<0)

//計算檔案序號

$para['filexno']=$para['clipxno']-$para['folderxno']*$blocksize[$level];

$para['fileyno']=$para['clipyno']-$para['folderyno']*$blocksize[$level];

//計算出完整切片位置

$para['url']=

"".$levelstr[$level]."/".$para['folderxno']."_".$para['folderyno'].

"/".$para['filexno']."_".$para['fileyno'].".png";

演算法解讀 基本的演算法

1.執行迴圈操作求1 n的和 要完成這個計算,可以通過以下迴圈步驟求出 a.將求和變數sum的初始值設為0.b.將和sum為計算結果,value為加數 c.value在n以下時,重複執行4 5的操作 d.計算sum value的值並將值存入sum中 e.每次value值加1.1 public sta...

二維世界的商業前景 Mapbar掘金經緯間

與綜合性搜尋相比,以企業資訊為中心的地圖搜尋與商業的結合更為緊密 mapbar,掘金經緯間 對於地圖服務這個概念,人們可能存在一定誤解,會把它和提供地圖的測繪機構混淆起來。地圖資料是以道路資訊為主的,表現為經緯度的資料,任何公司都可以通過合法途徑購買到。但如何補充更多的商業資訊內容,同時把這些綜合資...

基本的排序演算法

演算法思路 假設a 1 n 是乙個有n個元素的陣列。首先從a 1 n 找到最小元素,將其放在a 1 中 從a 2 n 中找到最小元素,將其放在a 2 中 重複a i n 中找到最小元素,將其放在a i 中 直至i n 1 元素比較次數 n i 1 n i ni 1i n n 1 2 時間複雜度為o ...