地(dì / de)圖
地(dì / de)圖類型
問: | SuperMap iMobile for Android 支持哪些數據類型? |
---|---|
答: |
|
問: | 如何使用 SuperMap iServer、超圖雲等網絡地(dì / de)圖服務? |
答: |
網絡地(dì / de)圖服務是(shì)一(yī / yì /yí)種獨立的(de)數據源類型,可以(yǐ)在(zài)工作空間中打開,獲得對應的(de)網絡地(dì / de)圖服務數據集,将該數據集作爲(wéi / wèi)一(yī / yì /yí)個(gè)圖層加入到(dào)地(dì / de)圖中顯示。 |
問: | 如何打開多個(gè)在(zài)線地(dì / de)圖服務? |
答: |
打開多個(gè)在(zài)線地(dì / de)圖服務需要(yào / yāo)實例化多個(gè)數據源連接參數類DatasourceConnectionInfo,分别設置每個(gè)在(zài)線地(dì / de)圖服務的(de)參數。一(yī / yì /yí)個(gè)數據源連接對應一(yī / yì /yí)個(gè)别名,數據源連接參數中别名需要(yào / yāo)不(bù)一(yī / yì /yí)緻。 |
問: | 是(shì)否支持海圖數據,怎麽打開海圖數據? |
答: |
移動端不(bù)能直接打開海圖數據,但是(shì)可以(yǐ)先在(zài)iDesktop中打開海圖數據,制作緩存,然後在(zài)iServer中發布爲(wéi / wèi)rest地(dì / de)圖服務,在(zài)移動端打開rest地(dì / de)圖服務,加載地(dì / de)圖即可。 |
地(dì / de)圖顯示
問: | 以(yǐ)公開發布的(de)網絡地(dì / de)圖服務作爲(wéi / wèi)底圖時(shí),疊加的(de)其他(tā)數據和(hé / huò)GPS數據爲(wéi / wèi)什麽會偏移? |
---|---|
答: |
公開發布的(de)網絡地(dì / de)圖服務通常都經過數據的(de)加密偏移,如百度地(dì / de)圖服務;或者采用特定的(de)投影坐标系,如谷歌地(dì / de)圖服務;以(yǐ)此類網絡地(dì / de)圖服務作爲(wéi / wèi)地(dì / de)圖疊加數據時(shí),需要(yào / yāo)先将要(yào / yāo)疊加的(de)數據進行相應的(de)加密偏移處理和(hé / huò)轉換到(dào)相同的(de)投影坐标系,才能正确的(de)疊加顯示。 |
問: | SuperMap iMobile加載天地(dì / de)圖和(hé / huò)本地(dì / de)sci圖層未疊加在(zài)一(yī / yì /yí)起? |
答: |
結果不(bù)正确是(shì)因爲(wéi / wèi)坐标系不(bù)一(yī / yì /yí)緻,使用map.setdynamicprojection(true)開啓動态投影再查看。 |
問: | 調用不(bù)出(chū)在(zài)線天地(dì / de)圖服務,其他(tā)在(zài)線地(dì / de)圖服務可以(yǐ)打開? |
答: |
|
問: | 天地(dì / de)圖與本地(dì / de)數據疊加的(de)二維地(dì / de)圖縮放和(hé / huò)中心點設置不(bù)生效? |
答: |
經過動态投影之(zhī)後的(de)地(dì / de)圖範圍不(bù)再是(shì)天地(dì / de)圖的(de)原有範圍了(le/liǎo)。應該獲取到(dào)天地(dì / de)圖的(de)數據集,再獲取到(dào)天地(dì / de)圖數據集的(de)bounds,再用map.setviewbounds設置對應的(de)顯示範圍。 |
問: | 如何實現加載在(zài)線地(dì / de)圖高清顯示? |
答: |
在(zài)添加或者打開地(dì / de)圖之(zhī)前設置地(dì / de)圖高清顯示:map.setHighDefinitionMode(true)。 |
問: | 爲(wéi / wèi)什麽在(zài)桌面軟件(SuperMap iDesktop/iDesktopX)中爲(wéi / wèi)地(dì / de)圖設置了(le/liǎo)填充符号,在(zài)iMobile中打開地(dì / de)圖時(shí)卻不(bù)顯示該符号? |
答: |
原因是(shì)該符号爲(wéi / wèi)桌面軟件符号庫内置符号,若要(yào / yāo)在(zài)移動端顯示,需要(yào / yāo)把這(zhè)種内置符号在(zài)iDesktop以(yǐ)圖片符号的(de)格式導入,方可在(zài)移動端直接打開顯示。 |
其它
問: | 在(zài)移動終端上(shàng)顯示線、面數據慢的(de)原因? |
---|---|
答: |
常見原因是(shì)被顯示的(de)數據集沒有建立空間索引。建議用 SuperMap iDesktop 給相關數據集建立空間索引,這(zhè)樣将在(zài)移動終端上(shàng)極大(dà)提高線、面顯示速度。 |
問: | 如何監聽地(dì / de)圖中心點和(hé / huò)比例尺發生變化? |
答: |
使用mapControl.setMapParamChangedListener(MapParameterChangedListener listener) 設置地(dì / de)圖參數變化監聽器,在(zài)回調事件中去監聽地(dì / de)圖參數變化。 |
問: | 如何監聽地(dì / de)圖參數變化? |
答: |
使用MapControl類的(de)setMapParamChangedListener(MapParameterChangedListener listener)地(dì / de)圖參數變化監聽方法,可以(yǐ)監聽地(dì / de)圖比例尺、角度、範圍和(hé / huò)尺寸變化。 |
問: | 地(dì / de)圖、地(dì / de)圖控件和(hé / huò)工作空間該如何關閉?關閉的(de)順序是(shì)怎樣的(de)? |
答: |
|
問: | 加載删格瓦片地(dì / de)圖外圍有白色背景,如何取消? |
答: |
可以(yǐ)用LayerSettingImage.setTransparent(true)設置影像圖層背景色透明顯示。 |
問: | 如何獲取手指點擊屏幕處所對應的(de)地(dì / de)圖坐标點? |
答: |
先通過MapControl類下的(de)setGestureDetector()設置用戶手勢識别器中的(de)短按或長按方法獲取觸屏位置的(de)屏幕坐标Point,然後使用map.pixelToMap()方法将屏幕點轉地(dì / de)圖點坐标Point2D。 |
問: | 量算繪制,如何移動地(dì / de)圖? |
答: |
當Action不(bù)爲(wéi / wèi)PAN漫遊的(de)時(shí)候,如果想要(yào / yāo)移動地(dì / de)圖,需要(yào / yāo)雙指按住屏幕,拖動即可移動地(dì / de)圖。 |
問: | 數據集爲(wéi / wèi)屬性表數據,如何給屬性表添加記錄? |
答: |
addNew(Geometry geometry, java.util.Map values) 方法中Geometry參數爲(wéi / wèi)空,Map對象中存儲需要(yào / yāo)傳入的(de)字段和(hé / huò)字段值即可。 |
服務
問: | 訪問SuperMap iServer發布的(de)rest地(dì / de)圖服務,該服務在(zài)SuperMap iServer更新後,能否在(zài)Android端也(yě)實時(shí)更新,動态出(chū)圖? |
---|---|
答: |
可以(yǐ)做到(dào)Android端實時(shí)更新,動态出(chū)圖,隻需清除數據集和(hé / huò)該圖層的(de)緩存即可,代碼如下: Layer imageLayer=mapControl.getMap().getLayers().get("rest"); DatasetImage image=(DatasetImage) imageLayer.getDataset(); imageLayer.removeCache(); image.getMapCacheService().removeCache(); |
專題圖
問: | 線、面圖層的(de)專題标簽在(zài)小比例尺下不(bù)顯示? |
---|---|
答: |
主要(yào / yāo)是(shì)由于(yú)在(zài)小比例尺下,專題标簽大(dà)于(yú)線和(hé / huò)面對象的(de)大(dà)小,默認不(bù)顯示,可以(yǐ)設置ThemeLabel.setSmallGeometryLabeled(true)在(zài)小比例尺下也(yě)能顯示。 |
問: | 創建标簽專題圖,怎麽讓一(yī / yì /yí)部分标簽不(bù)顯示? |
答: |
分兩種情況: 1.如果隻是(shì)讓一(yī / yì /yí)些小對象的(de)标簽不(bù)顯示,可以(yǐ)設置themeLabel.setSmallGeometryLabeled(false)屬性。 2.如果讓某些特定的(de)标簽對象不(bù)顯示的(de)話,可以(yǐ)做如下設置: QueryParameter parameter=new QueryParameter(); parameter.setAttributeFilter("SMID=5"); themeLabelLayer.setDisplayFilter(parameter); mapcontrol.getMap().refresh(); |
導航
問: | 運行導航功能時(shí)失敗的(de)原因? |
---|---|
答: |
常見原因是(shì)缺少語音資源,請将産品包中Resource文件夾下的(de)voice文件夾拷貝到(dào)工程目錄中的(de)assets文件夾下。 |
三維
問: | 加載三維場景,能否設置某些建築模型不(bù)可見? |
---|---|
答: |
1.需要(yào / yāo)查詢出(chū)哪些id的(de)模型不(bù)可見; 2.通過Layer3DOSGBFile.setObjectsVisible(int[] ids, boolean value) 來(lái)設置指定id的(de)模型隊列是(shì)否可見。 |
問: | 加載三維場景,能否設置某些建築模型高亮顯示? |
答: |
1.需要(yào / yāo)查詢出(chū)哪些id的(de)模型高亮顯示; 2.通過Layer3DOSGBFile.setObjectsColor(int[] ids, Color value) 來(lái)設置指定id的(de)模型隊列的(de)顯示顔色。 |
問: | 打開三維場景,選中某個(gè)模型後,如何獲取該模型的(de)屬性信息? |
答: |
通過Layer3DOSGBFile.getAllFieldValueOfLastSelectedObject() 方法獲取最後一(yī / yì /yí)次選擇的(de)模型的(de)所有屬性信息。 |
問: | 如何将屏幕坐标轉三維坐标? |
答: |
使用scene.pixelToGlobe(Point point,PixelToGlobeMode mode)方法将屏幕像素點坐标轉換爲(wéi / wèi)三維坐标。 |
許可
問: | 如何獲取設備ID來(lái)申請許可? |
---|---|
答: |
通過environment.getDeviceID()獲取設備ID,獲取時(shí)需要(yào / yāo)注意:1.設備的(de)wifi權限須打開;2.targetSDKVersion版本不(bù)高于(yú)28。 |
問: | 使用序列号激活的(de)方式,如何查看許可使用數量和(hé / huò)剩餘數量? |
答: |
使用RecycleLicenseManager.queryLicenseCount(String ),然後通過回調函數獲取數量。 |
示例代碼
問: | 運行工程的(de)時(shí)候報“.so文件與jar包”不(bù)匹配? |
---|---|
答: |
出(chū)現這(zhè)種報錯可從如下幾點排查: 1、工程中引用的(de)iMobile for Android的(de).so文件和(hé / huò)jar包版本是(shì)否一(yī / yì /yí)緻; 2、工程中除了(le/liǎo)引用iMobile for Android中的(de).so文件,也(yě)引用了(le/liǎo)第三方的(de).so文件,導緻有沖突; 3、工程 |
問: | SampleCode 運行不(bù)成功常見原因? |
答: |
1. 首先檢查範例程序用到(dào)的(de)數據和(hé / huò)許可是(shì)否放到(dào)了(le/liǎo)代碼指定的(de)位置。 2. 查看工程最低權限是(shì)否配置完全,點擊工程 AndroidManifest.xml 節點裏的(de) permissions 頁面,添加以(yǐ)下“Uses Permission”: 1)<uses-permission android:name="android.permission.INTERNET"/> 2)<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 3)<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 4)<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 5)<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"> 3. 是(shì)否将 android-sdk-windows 中的(de) tools 和(hé / huò) platform-tools 文件夾路徑添加到(dào)環境變量中。 4. 當 SampleCode 用到(dào)的(de)數據量較大(dà)時(shí),要(yào / yāo)先查看SdCard的(de)容量是(shì)否滿足,若不(bù)滿足,要(yào / yāo)先擴充 SdCard 的(de)容量。 5. 有時(shí) SampleCode 運行不(bù)起來(lái),可以(yǐ)嘗試先卸載示例程序,再次運行,防止之(zhī)前 SampleCode 卸載不(bù)完全導緻的(de)沖突。 |