作者:皇皇
問:如果您在OpenStack平臺中創建虛擬機時出現以下錯誤信息Build of instance aborted: Flavor is disk is too small for requested image. Flaver disk is bytes, image is bytes.,怎么辦? 答:出現上述現象的原因是創建虛擬機時指定的硬盤大小小于其對應鏡像所需的硬盤大小,比如,若您當前正在創建SuperMap iCloudManager或SuperMap iportal或SuperMap iServer虛擬機,則您需要將硬盤大小最低設置為20;若您當前正在創建SuperMap iDesktop鏡像,則您需要將硬盤大小最低設置為30.
問:如果啟動SuperMap iCloudManager時,tomcat中報錯“您使用的數據庫中的數據版本過低,請升級后重試”怎么辦? 答:這樣的錯誤出現在您使用已有數據庫啟動SuperMap iCloudManager服務時,同時原有虛擬平臺配置的是vSphere,此時,您需要對數據庫進行升級操作,具體步驟如下: (1)停止SuperMap iCloudManager服務,執行%SuperMap iCloudManager_Home%/bin 目錄下的shutdown.bat或shutdown.sh文件; (2)升級數據庫,執行%SuperMap iCloudManager_Home%/bin目錄下的upgradeData.bat或upgradeData.sh文件。 注意:升級數據庫前請確保以下幾點:①現有數據庫中沒有正在執行的任務;②能連接vSphere平臺;③沒有不存在的虛擬機或模板。否則升級不成功。 (3)重啟SuperMap iCloudManager服務,即執行%SuperMap iCloudManager_Home%/bin目錄下的startup.bat或startup.sh文件。
問:OpenStack 平臺,調整 GIS 環境規格失敗怎么辦? 答:檢查OpenStack中是否存在ssh 沒有權限問題,節點A需要通過ssh無密碼訪問節點B 在節點A的/var/lib/nova目錄下執行 ssh -t rsa(不需要輸入額外信息,直接回車即可)生成公鑰(id_rsa.pub)與密鑰(id_rsa)文件(確保生成的目錄位于/var/lib/nova下) 將公鑰文件拷貝到節點B的/var/lib/nova/.ssh/目錄下(不存在則創建) 將節點B上/var/lib/nova/.ssh/目錄下執行命令 cat id_rsa.pub >> authorized_keys(根據實際需要進行多個key的管理) 節點B上執行命令chmod 700 /var/lib/nova/.sshchmod 600 /var/lib/nova/.ssh/anthorized_keyschown nova:nova /var/lib/nova/.ssh/id_rsa /var/lib/nova/.ssh/authorized_keys
問:Windows系統下,許可管理中的許可信息頁面顯示“獲取許可信息失敗”怎么辦? 答:先用SuperMap.LicenseCenter工具查看下當前是否有可用許可,如果許可有效,以管理員身份打開命令行窗口,cd 到【SuperMap iCloudManager 安裝目錄】的bin目錄下。輸入 startup.bat,啟動 SuperMap iCloudManager 服務。
問:如果您想換一個SuperMap iCloudManager產品包,但是想保留現有數據以及相關配置,怎么辦? 答:您只需將%SuperMap iCloudManager_HOME%/icm_config目錄下的*.PRoperties和database.db(僅在使用的是SQLite數據庫時才有)文件拷貝至您的新包中即可。
問:配置 iCloudManager 使用 MySQL 數據庫后發現輸入中文報錯undefined,怎么讓 MySQL 支持中文? 答:修改my.cnf文件,將默認編碼設置為utf8.參考以下修改:#vim /etc/mysql/my.cnf [client] default-character-set=utf8 [mysqld] default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci
問:OpenStack 平臺調整GIS 環境規格后,有時候許可丟失怎么辦? 答:重啟 GIS 環境。
問:Docker container 掛起導致 GIS 環境訪問不到怎么辦? 答:GIS環境訪問不到了,發現對應的 container 掛起,無法進行停止,刪除操作。登陸到 Docker 所在主機,使用 uname -a 查看當前 Kernel 的版本。如果您的版本過舊(例如為4.2.0-30.35),請升級 Kernel 為最新。升級 Ubuntu 的 Kernel 可參考:http://kernel.ubuntu.com。也可參考腳本: https://gist.github.com/mmstick/8493727。
問:當 iCloudManager 使用華為 FusionCompute 云平臺時,GIS 環境沒有成功創建,且在日志文件中有網絡或存儲出錯的提示,如“WARN -虛擬機sm-iportal-53創建失敗:指定位置下不存在網絡條件滿足虛擬機啟動的節點”,或者是“WARN -虛擬機sm-iportal-53創建失敗:指定位置下不存在存儲條件滿足虛擬機啟動的節點”的提示,怎么解決? 答:由于 FusionCompute 云平臺存在多個網絡和存儲位置,當出現 GIS 環境創建不成功且日志中出現類似的警告信息,很有可能是您在 iCloudManager 中配置的虛擬化平臺與 GIS 環境的鏡像文件不在同一個網絡或者存儲位置。為解決此問題,需要您修改創建 GIS 環境目標的存儲位置。 具體的解決步驟如下: (1)停止 iCloudManager,即執行【SuperMap iCloudManager 安裝目錄】/bin 目錄下的 shutdown.bat或shutdown.sh 文件; (2)打開【SuperMap iCloudManager 安裝目錄】/webapps/icloud/WEB-INF 目錄下的 icloud.xml 文件, (3)在 icloud.xml 文件中,找到 FusionCompute 配置 bean(id=”fusionComputeConfig”),在該標簽下添加 dataStoreName 和 portGroupName 兩個參數。具體的參數信息如下: 注意:后面兩行是新增配置項,value 值(即示例代碼中的中文部分)應該填寫為真實名稱。 (4)重啟 iCloudManager,再創建您需要的 GIS 環境。
問:如何配置 iCloudManager 使用其他數據庫? 答:iCloudManager 默認使用 SQLite 數據庫,該數據庫無需安裝和管理配置。若想要 iCloudManager 調用 MySQL 數據庫,則需要進行相關配置,具體配置過程請參考數據庫配置。 決定數據庫類型的配置文件為(%SuperMap iCloudManager_HOME%/icm_config)下的 database.properties ,該文件中的 database_type 屬性決定了數據庫類型。修改好配置信息后,重啟 iCloudManager,重啟后將初始化 iCloudManager ,具體的初始化過程請參考初始化 iCloudManager幫助文檔。
問:GIS 環境在創建過程中,若在任務管理頁面顯示該任務執行失敗,且有“IP * * * *不可用。請檢查網絡配置信息后,再重試”這樣的提示,怎么處理? 答:出現這樣的報錯,首先可能是因為網絡配置信息不正確;其次可能因為不能夠從 DNSmasq 獲取IP地址,出現這樣的情況,最簡單的方法是關掉機器上所有的 DNSmasq 進程,并重新啟動 nova-work。 具體操作步驟如下: (1)第一步:檢查網絡配置信息和虛擬平臺的配置信息,確定網絡可用后,點擊該任務對應的“重試”按鈕。重試后,若該任務執行成功,則可以不用進行以下步驟。 (2)第二步:檢查了網絡配置信息并“重試”后,還是有這樣的提示,則需要對 OpenStack 的 Controller 節點(DNSmasq所在機器)進行配置。配置方法是,在 Controller 節點(DNSmasq所在機器),執行“killall dnsmasq” 和 “service neutron-dhcp-agent restart”。 (3)第三步,重啟 Controller 節點后,在iCloudManager 的任務管理頁面,點擊該任務對應的“重試”按鈕。
問:iCloudManager 在使用過程中,如何把當前的云計算平臺切換到其他的云計算平臺? 答:需要切換虛擬平臺,由于 iCloudManager 調用的數據庫類型不同,操作也不同,下面根據數據庫類型分類講解具體的操作步驟: 當 iCloudManager 調用 SQLite 數據庫時: (1)若 iCloudManager 還在運行中,請先將其關閉,即執行【SuperMap iCloudManager 安裝目錄】/bin 目錄下的shutdown.bat/shutdown.sh 文件。 (2)刪除【%SuperMap iCloudManager_HOME%/icm_config】目錄下的database.db文件。 (3)重啟 SuperMap iCloudManager 服務,即執行【SuperMap iCloudManager 安裝目錄】/bin 目錄下的 startup.bat/startup.sh 文件。 (4)訪問服務(http://:8080/icloud/),對 iCloudManager 重新進行初始化,初始化的方法請參考“初始化 iCloudManager”。 當 iCloudManager 調用 MySQL 數據庫時: (1)若 iCloudManager 還在運行中,請先將其關閉,即執行【SuperMap iCloudManager 安裝目錄】/bin 目錄下的shutdown.bat/shutdown.sh 文件。 (2)刪除 MySQL 數據庫中存儲 iCloudManager 相關信息的表。具體操作是,選擇 iCloudManager 調用的數據庫,數據庫名由 database.properties 文件內的 jdbcUrl 屬性的 [database] 值決定,選擇所有的表,然后刪除。 (3)重啟 SuperMap iCloudManager 服務,即執行【SuperMap iCloudManager 安裝目錄】/bin 目錄下的 startup.bat或startup.sh 文件)。 (4)訪問服務(http://:8080/icloud/),對 iCloudManager 重新進行初始化,初始化的方法請參考“初始化 iCloudManager”。 注意:刪除 database.db 文件或數據庫表之前,請做好備份工作。
問:三維插件客戶端與WebGL客戶端的對比與選擇。 答:1、對比: (1)插件客戶端起步較早,功能齊全,能加載的數據類型多,支持符號化表達等;而WebGL客戶端起步較晚目前實現的功能較少,支持添加地形、影像和OSGB數據,矢量數據需要生成OSGB緩存才能加載到WebGL客戶端,對符號支持能力還 (2)插件客戶端需要安裝插件,兼容性較差,目前最高兼容IE10瀏覽器;而WebGL客戶端兼容性很好,支持如IE、谷歌、火狐等絕大多數支持WebGL的瀏覽器。 2、選擇: 建議優先考慮WebGL客戶端,因為WebGL客戶端產品對瀏覽器支持較好,在初期可以先評估一下自己做的頁面WebGL客戶端是否滿足需求,如果滿足不到,如要展示管線數據,再考慮使用插件客戶端。建議長期關注WebGL客戶端,目前沒有的功能,很可能之后就有了。參考:http://support.supermap.com.cn:8090/webgl/downloads.html
問:為什么插件客戶端三維球會遮蓋DIV層,設置z-Index也無效,該怎么辦? 答: 這其實與z-index無關,瀏覽器解析頁面時,會先判斷元素的類型,如果是窗口類型的,會優先于非窗口類型的元素,顯示在頁面最頂端,如果同屬于非窗口類型的,才回去判斷z-index的大小。所以無論設置什么z-index值也被壓蓋了。 解決辦法:用iframe,給要拖拽的div上加一層透明的iframe標簽,再放在三維球上. 參考:http://blog.csdn.net/u010176097/article/details/52190842 也可以在搜索引擎搜索關鍵字“object壓蓋div”了解更多.
問:為什么iClient javaScript 里OMSBuilding范例換了底圖就沒效果了? 答:OMSBuilding只能使用全球范圍3857(墨卡托)坐標系底圖,添加的數據必須為4326(WGS-84)坐標系
問:如何修改地圖上各種控件的位置? 答:1.Map.addControl(controls,pixels),說明:二者均可為數組,數組時一一對應,SuperMap.Pixel(x,y,mode)x、y相對map div左上角像素位置,mode位字符串,可選左上、右上、右下、左下,值為SuperMap.Pixel.Mode.LeftTop等,詳見類參考 2.修改CSS,可見控件一般有固定的css類可修改css調整樣式
問:為何設置點feature樣式不生效? 答:可能是由于Vector圖層設置了StyleMap(未設置樣式的要素在4中狀態下應用此樣式)屬性,而點樣式沒有設置pointRadius樣式導致的,設置pointRadius大于0即可顯示該點。
問:使用iClient for Javascript客戶端渲染面對像,設置填充色之后,縮放地圖時面對像會出現混亂顯現 答:這是由于給面對像的style設置了點的樣式造成的,建議面對像的style只設置fill和stroke樣式
問:如何判斷點是否在范圍內、線面是否相交等 答:1.SuperMap.Bounds的contains開頭的方法等 2.部分Geometry的intersects方法等 3.使用iServer疊加分析服務,參數類使用GeometryOverlayAnalystParameters
問:如何控制Vector圖層顯示級別? 答:map.events.on(“zoomend “,callback),監視地圖縮放完成事件,回調函數獲取當前比例尺或縮放級別,再設置圖層顯隱,layer.setVisibility(),基類方法,所有layer子類繼承
問:iClinet for JavaScript在客戶端制作柱狀圖的時候,由于值太小導致在圖表上顯示很短,如何讓它顯示的大一點 答:修改圖表chartsSetting對象的codomain屬性值,即通過設置合適的值域,讓柱狀圖顯示更協調
問:多個緩存地圖服務疊加的時候出現偏移怎么辦? 答:首先確定坐標系和比例尺是否一致,如果是一致的,可以嘗試使用地圖的同步加載,設置DPI,scales/resolutions,bounds,再進行疊加
問:iClinet for JavaScript在客戶端制作柱狀圖的時候,如何修改Y軸刻度的數量 答:修改圖表chartsSetting對象的axisYTick屬性值就可以更改Y軸刻度的數量
問:點圖層在桌面設置好風格之后,使用iServer發布地圖服務,發現地圖邊緣的點被截斷是怎么回事? 答:由于桌面計算地圖范圍的時候,是計算的點集的最大外接矩形,點的圖標大小并不會計算在內。如果需要客戶端出圖完整,需要給layer設置displayOutsideMaxExtent為true即可。
問:點圖層在桌面設置好風格之后,使用iServer發布地圖服務,發現地圖邊緣的點被截斷是怎么回事? 答:由于桌面計算地圖范圍的時候,是計算的點集的最大外接矩形,點的圖標大小并不會計算在內。如果需要客戶端出圖完整,需要給layer設置displayOutsideMaxExtent為true即可。
問:iClinet for JavaScript做圖層過濾的時候,代碼看著沒問題但是總是不成功 答:可能的原因就是圖層名沒寫對,比如圖層名為China_Province_pg_1@China#1,如果寫成[email protected]就過濾不成功,尤其是過濾專題圖的時候
問:使用動態分塊圖層時可不可以不做監聽,定義完直接添加到地圖中? 答:可以,但是需要在定義rest動態分塊圖層的時候手動設置地圖最大范圍、dpi(iServer發布的rest地圖服務默認dpi為96)、比例尺數組或分辨率數組。
問:SuperMap iClient for JavaScript中查詢中如何設置使返回結果以一定的方式進行排序? 答:SuperMap.REST.FilterParameter類中orderBy參數,相當于 SQL 語句中的 ORDER BY 子句,其格式為:ORDER BY <列名>, 列名即屬性表中每一列的名稱,列又可稱為屬性,在 SuperMap 中又稱為字段。 對單個字段排序時,該字段的用法為 orderBy = “字段名”; 對多個字段排序時,字段之間以英文逗號進行分割,用法為 orderBy = “字段名1, 字段名2”。 例如,現有一個國家數據集,它有兩個字段分別為“SmArea”和“pop_1994”, 分別表示國家的面積和1994年的各國人口數量。 如果要按照各國人口數量對記錄進行排序,則 orderBy = “pop_1994”; 如果要以面積和人口進行排序,則 orderBy = “SmArea, pop_1994”。
問:同步加載rest動態圖層只設置分辨率或比例尺出白圖,兩個都設置能出圖但是比例尺控件顯示不正確怎么辦? 答:遇到這種情況,手動設置一下地圖坐標單位即可。
問:UTFGrid圖層的pixcell與utfgridResolution兩個屬性對應關系 答:1.其中pixcell為發送給服務端請求utfgrid瓦片的精度,數值越小,精度越高,相應的瓦片大小也就越大;
2.utfgridResolution為客戶端解析瓦片使用的精度,應該與pixcell的值相等,否則會產生位置與屬性對應不上的問題;
3.通常如果UTFGrid圖層為面圖層,對應的數據量會比較大,為了不影響頁面的正常瀏覽,可以將這兩個屬性設的大一些;
問:iClinet for JavaScript使用UTFGrid時,返回結果不正確 答:1、map上設置projection和maxExtent這兩個參數 2、給pixcell和utfgridResolution這兩個屬性設置合適的值
問:進行sql查詢時,設置了分組GroupBy,為什么返回的是每組第一個feature 答:需要設置返回字段fields,例如count(*)
問:為什么動畫圖層中的動畫播放完就會消失而不是一直留在頁面上。 答:在動畫播放的最后時刻設置有feature,就會一直留在頁面上。
問:如何讓iServer設置顯示壓蓋 答:此功能是通過iClient for javascript在前端去實現的,初始化SuperMap.Layer.TiledDynamicRESTLayer時可設置overlapDisplayed和overlapDisplayedOptions
問:用SuperMap.Popup.FramedCloud創建了彈出式懸浮窗,如何去掉其陰影 答:假設popup為您的彈出窗變量名,調用popup.shadowDiv.innerhtml=’;
問:怎么對feature的點要素渲染一張圖片 答:SuperMap.Feature.Vector.style中設置externalGraphic即可渲染外部圖表。
問:GraphicLayer有沒有辦法加載自定義圖片作為點圖標? 答:目前graphicLayer只支持三種樣式:SuperMap.Style.Circle圓形,SuperMap.Style.Clover三葉草,SuperMap.Style.RegularShap正多邊形,暫時不支持自定義的圖片樣式。
問:在開發動態標繪功能時,使用客戶端提供的標繪面板和屬性面板,但是無法正常加載。 答:客戶端提供了兩個div面板:標繪面板和屬性面板,大大簡化了用戶編輯和繪制標繪符號的方式,注意的是初始化面板需要將iClient for JavaScript包中samples/js/plottingPanle文件夾拷貝到項目中,如果相對路徑出現錯誤報404,還需要將plottingPanle文件夾里PlottingPanel.js文件里的相對路徑改正
問:怎么對數據服務或地圖服務進行同步查詢? 答:iClient默認的查詢方法是異步的,可以使用iServer REST API自己構建Ajax請求,實現同步查詢。
問:怎么區分地圖縮放后觸發的事件中是鼠標雙擊放大還是滾輪放大 答:1、把默認的雙擊放大事件取消掉。 2、對地圖div綁定雙擊事件。 3、對div的雙擊事件中可以獲取到屏幕坐標,根據屏幕坐標可以獲取到地理坐標,然后手動執行放大一級。 這樣就能區分雙擊和滾動滑輪的縮放事件。
問:SuperMap iClient for JavaScript中怎么將geometry對象轉換成字符串保存在數據庫中? 答:可以使用geometry.toString()來將geometry轉換成字符串。 使用fromWKT()將字符串轉換成geometry對象。
問:如何吧geometry轉換為KML 答:使用SuperMap.Format.KML,在實例化后調用write(features)方法可將Feature數組轉換為字符串。
問:如何吧geometry轉變為geojson 答:使用SuperMap.Format.GeoJSON,實例化后調用write方法可以將一個要素對象,幾何對象,要素對象數組序列化為一個GeoJSON字符串。
問:使用AnimatorVector做StretchLine動畫渲染,為什么線一閃而過,沒有伸展的效果 答:除了填寫必要的屬性外,還需注意后一狀態的線數據需包含前一狀態線數據的所有節點。
問:在地圖上添加熱力圖后,拖動地圖渲染的熱力圖點會變化。 答:HeatMapLayer的maxWeight和minWeight參數,如果不設置,將按照當前屏幕范圍內熱點所擁有的權重最大值最小值繪制熱點圖。拖動地圖時當前屏幕范圍內的最大值最小值會變化,渲染的熱力圖點就會變化。
問:鼠標在Vector圖層要素上時,可以觸發要素的鼠標事件,但是不能拖動地圖,怎么處理? 答:該問題已經在iClient for JavaScript8.0.2及之后的的版本解決,更新iClient for JavaScript版本為8.0.2及以后即可。
問:使用SuperMap.Layer.Graphic的時候,添加一萬個點左右就會卡的不行,是怎么回事? 答:可能是矢量要素的image屬性重復定義造成的,此屬性需要預先定義再調用即可
問:在IE8中,將popup的背景設置為透明,會出現微軟字體模糊的情況是怎么回事? 答:初始化popup后設置popup.div.style.filter = “”即可
問:拖動地圖瀏覽的時候,邊緣部分出圖的時候,總是有個出圖拼接的過程,用戶體驗不佳,有什么好的解決辦法嗎? 答:客戶端出圖是根據當前視圖范圍請求的,可以給底圖設置buffer屬性,類型為number,當設置為1時,會額外請求一圈瓦片,可以提高地圖瀏覽的時候的用戶體驗。不過當buffer值設置的過大的時候,會造成請求過多,造成iServer并發壓力,所以需要根據自身的服務器性能來設置合適的值
新聞熱點
疑難解答