鷹眼實現方法(轉自己zkjbeyond (jigi) 發表于CSDN的《arcims(HtmlView)開發經驗總結(4) 鷹眼實現》)
Posted on 2006-04-12 18:59 Kevin Meng 閱讀(411) 評論(0) 編輯 收藏根據arcIMS代碼說明,掌握邏輯后,mapinfo,mapx,mo等實現就容易了。
開始前,大家首先要對arcims中,如何記錄地圖位置熟悉。
抓一副全圖,存成gif文件,作為鷹眼圖底圖。
var ? fullOVLeft ? = ? 116; ? ? ? ? //全圖時,地圖最左邊代表的經度 ? ? ? 當你用其他坐標體系的坐標時,這個值不同。一般,我們熟悉經緯度。
var ? fullOVRight ? = ? 117; ? ? ? //全圖時,地圖最右邊代表的經度
var ? fullOVTop ? = ? 40; ? ? ? ? ? ? //全圖時,地圖最上邊代表的經度
var ? fullOVBottom ? = ? 39.6; ? //全圖時,地圖最下邊代表的經度
//點擊鷹眼, ? 入口參數是 ? 屏幕 ? 鼠標的坐標
function ? ovMapClick(x,y) ? {
var ? ovWidth ? = ? 150; ? ? ? ? //我們鷹眼圖的寬度 ? 單位px,是屏幕單位
var ? ovHeight ? = ? 100; ? ? ? //鷹眼圖的高度 ? ? ? ? 單位px,是屏幕單位
//下面兩行代碼得到,為什么要兩個呢。可能我們顯示的時候,把服務器返回的圖片壓縮了。
//每 ? px單位的屏幕寬度 ? 代表的 ? 經度距離
var ? ovXincre ? = ? fullOVWidth ? / ? ovWidth;
//每 ? px單位的屏幕寬度 ? 代表的 ? 緯度距離
var ? ovYincre ? = ? fullOVHeight ? / ? ovHeight;
? ? ? ? ? ? ?
var ? ovX ? = ? x;
var ? ovY ? = ? ovHeight ? - ? y;//注意,屏幕 ? 和 ? 地理 ? 坐標原點不同。在其他文章中提到過。
? ? ? ? ? ? ? ? //下面兩行代碼我們得到了 ? 鼠標點擊位置代表的 ? 地理位置。(經緯度)
var ? ovmapX ? = ? ovX ? * ? ovXincre ? + ? fullOVLeft;
var ? ovmapY ? = ? ovY ? * ? ovYincre ? + ? fullOVBottom;
//arcims帶的,當我們想看上一操作的地圖時,這些保存的東西就有用咯。
saveLastExtent();
? ? ? ? ? ? ? ? //下面代碼表示 ? 改變地圖的中心點,但是room ? 值不變。arcIMS中,是以下實現的。在
mapxtreme中,一個函數就OK了。
? ? ? ? ? ? ? ? //熟悉arcIMS的,以下代碼可能明白。
eLeft ? = ? ovmapX ? - ? xHalf;
eRight ? = ? ovmapX ? + ? xHalf;
eTop ? = ? ovmapY ? + ? yHalf;
eBottom ? = ? ovmapY ? - ? yHalf;
sendMapXML();
}