天天看點

lzugis——Arcgis Server for JavaScript API之自定義InfoWindow

用過Arcgis Server for JavaScript API肯定知道InfoWIndow,你在用InfoWindow的時候會發現各種問題,例如不能完全顯示的問題,遮蓋對象的問題等等,是以呢我在實作這個功能的時候動了下腦子,想自己用div+css弄一個,倒騰了半天,弄出來了一個如下所示的:

lzugis——Arcgis Server for JavaScript API之自定義InfoWindow

做的比較醜陋,樣式方面還得好好下下功夫,東西是差不多實作了,下面說說思路:

首先,DIV定義,這個樣式,我定義了5個div,分别是infowin,title,colse,content,arrow,其中,infowin是整個InfoWindow的大架構,title為标題,close為關閉按鈕,content為主要内容,arrow為下面的小尾巴,我們可以将這個小尾巴做的長一點,以免對象被遮蓋的情況,代碼為:

定義了div就得進行布局,定義樣式了,樣式為:

樣式定義完之後就得考慮事件了,一般InfoWindow是在點選某個對象時彈出來的,是以我們得定義對象圖層的click事件:

點選對象,在滑鼠的點選位置出現,是以我們得将infowin的position樣式設為absolute,并定義left和top分别為clientX和clientY,并将其display設定為block,将其顯示,實作的詳細代碼如下:

目前隻實作到了這兒, 還有以下問題待解決:1、地圖拖動後infowin随着地圖的關聯;2、地圖縮放後infowin随着地圖的關聯;3、内容不在可視範圍時候的移動;4、樣式,挺難看的。希望有人實作後共享下代碼,造福全GISer。

lzugis

繼續閱讀