一、ArcGIS for Android的簡介
ArcGIS是由Esri公司開發的一套地理信息系統軟體,ArcGIS for Android則是其Android平台下的應用程序。ArcGIS for Android提供了一系列幫助開發人員構建具有豐富地圖功能的Android應用程序的工具和API,不但可以呈現地圖、地理位置和位置感知數據,還可以處理各種交互行為、可定製化樣式和控制項,總之,ArcGIS for Android為開發人員提供了豐富的地圖應用開發工具。
二、ArcGIS for Android的主要功能
1、地圖:ArcGIS for Android支持載入和顯示各種符號、標記、線條和圖形,還可以在地圖上添加影像、標記、圖層及交互控制項等。它還支持在地圖上添加事件和處理各種地圖事件。
2、位置感知:支持獲取設備的詳細位置信息,包括高程、經緯度等,並可以將其結合到地圖上進行顯示。還可以使用位置服務來查詢所需的離線地圖和其他資源。
3、交互:ArcGIS for Android支持各種交互操作,例如放大、縮小、平移、旋轉、傾斜等,還支持添加自定義工具欄和控制項、執行分析和查詢。還可以輕鬆實現多點觸摸和手勢識別等操作。
4、可定製化:ArcGIS for Android具有可定製化樣式和控制項,可以輕鬆定製應用程序界面的外觀和行為。同時也可以添加自定義的樣式和符號。
5、離線:ArcGIS for Android支持在無網路環境下使用,可以使用預先下載的地圖數據和資源。
三、ArcGIS for Android的代碼示例
1、地圖顯示示例
MapView mMapView = findViewById(R.id.mapView); ArcGISMap map = new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.056295, -117.195800, 16); mMapView.setMap(map);
2、位置感知示例
LocationDisplay mLocationDisplay = mMapView.getLocationDisplay(); mLocationDisplay.setAutoPanMode(LocationDisplay.AutoPanMode.RECENTER); mLocationDisplay.startAsync();
3、交互示例
mMapView.setOnTouchListener(new DefaultMapViewOnTouchListener(this, mMapView) { @Override public boolean onSingleTapConfirmed(MotionEvent e) { android.graphics.Point screenPoint = new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY())); Point mapPoint = mMapView.screenToLocation(screenPoint); ... return true; } });
4、可定製化示例
SimpleLineSymbol lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.BLUE, 3.0f); mSwatch.setImageDrawable(new SimpleLineSymbolSwatchGenerator(lineSymbol).generateSwatchDrawable(this));
mapView.setViewpoint(new Viewpoint(GraphicsUtils.getEnvelope(-38.145, 144.827, -38.039, 144.991), new SpatialReference(102100))); mapView.setViewpointScaleAsync(100000); mapView.setBackgroundColor(Color.rgb(255,246,229));
5、離線示例
OfflineMapTask mOfflineMapTask = new OfflineMapTask(mMapView.getMap(), mAreaOfInterest, mMinimumScale, mMaximumScale); OfflineMapParameters parameters = mOfflineMapTask.createDefaultOfflineMapParameters(); parameters.setMinScale(mMinimumScale); parameters.setMaxScale(mMaximumScale); parameters.setScale(mInitialScale); parameters.setAreaOfInterest(mAreaOfInterest); parameters.setOutPath(mOutputMapPath); mOfflineMapTask.performOfflineMap(parameters, mPortalItem);
原創文章,作者:OJNZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131071.html