FAQ

地(dì / de)圖

地(dì / de)圖類型

問: SuperMap iMobile for Android 支持哪些數據類型?
答:
  1. 支持擴展名爲(wéi / wèi) *.smwu、*.sxwu的(de) SuperMap GIS 工作空間文件的(de)打開、關閉、創建和(hé / huò)保存;
  2. 支持擴展名爲(wéi / wèi) *.udb/*.udd/*.udbx 的(de) SuperMap GIS 數據源文件的(de)打開、關閉、創建、保存等;
  3. 支持以(yǐ)文件型數據源的(de)方式打開和(hé / huò)關閉擴展名爲(wéi / wèi) *.sci 的(de) SuperMap GIS 緩存文件;
  4. 支持以(yǐ)文件型數據源的(de)方式打開和(hé / huò)關閉擴展名爲(wéi / wèi) *.sit 的(de) SuperMap GIS 影像文件;
  5. 支持SuperMap GIS矢量數據集的(de)打開、關閉、查詢、修改、删除等。其中 SuperMap GIS 矢量數據集包括:點數據集(Point)、線數據集(Line)、面數據集(Region)、純屬性數據集(Tabular)、文本數據集(Text)、複合數據集(CAD);
  6. 支持 SuperMap GIS 格網數據集(grid)的(de)打開、關閉、創建金字塔等。SuperMap GIS 格網數據集屬于(yú)栅格數據集類型,例如高程數據集 ( DEM ) 和(hé / huò)土地(dì / de)利用圖;
  7. 支持 SuperMap GIS 影像數據集 (Image) 的(de)打開,關閉等。SuperMap GIS 影像數據集用于(yú)描述影像數據,不(bù)具備屬性信息,例如影像地(dì / de)圖 (bmp、jpg) 、多波段影像和(hé / huò)實物地(dì / de)圖等;
  8. 支持在(zài)線或離線應用 SuperMapCloud、SuperMap iServer、MapWord、BaiduMap、GoogleMaps、OGC 的(de) WMTS 服務等網絡地(dì / de)圖服務。
問: 如何使用 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ǐ)打開?
答:
  1. 先确認用的(de)是(shì)什麽坐标系的(de)天地(dì / de)圖,如果是(shì)墨卡托投影的(de)天地(dì / de)圖,需要(yào / yāo)在(zài)url後面加上(shàng)“&topleftcornerexchange=1”這(zhè)是(shì)因爲(wéi / wèi)墨卡托天地(dì / de)圖默認從左上(shàng)角開始繪制的(de);
  2. 如果還是(shì)不(bù)顯示,把手機目錄下sdcard/SuperMap/data/裏面的(de)緩存數據删除再重新加載;
  3. 如果還是(shì)不(bù)顯示,建議更換網絡環境。
問: 天地(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)?
答:
  1. 關閉Map對象 Map.Close() ;
  2. 關閉MapControl對象 MapControl.dispose() ;
  3. 關閉Workspace對象 Workspace.Close()、Workspace.dispose()。
問: 加載删格瓦片地(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)沖突。