无法读取 Android 中的形状文件

Unable to read shape file in Android

我正在尝试使用 ShapefileFeatureTable() 读取 android 中的形状文件。无论我给出什么路径,它都会说,"File Not Found" 异常。

try 
{
    ShapefileFeatureTable shpFileFeatTable = new ShapefileFeatureTable("/storage/sdcard/map.shp");
} 
catch (FileNotFoundException e) 
{
    e.printStackTrace();
} 
catch(Exception e)
{
    e.printStackTrace();
}

谁能帮帮我?

注意:我正在开发 Android 模拟器。我也在使用 arcGIS 库。

如果对您有帮助,请参阅此示例

https://developers.arcgis.com/android/api-reference/reference/com/esri/core/geodatabase/ShapefileFeatureTable.html

您的应用可能没有请求从外部存储读取的权限。您需要将以下内容放入 AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

目前,ShapefileFeatureTable 是只读的,但如果此 class 将来获得编辑功能并且您想进行编辑,您的应用将需要请求写入权限嗯:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

有关详细信息,请参阅 http://developer.android.com/guide/topics/manifest/uses-permission-element.html

也有可能(但不太可能)您的文件路径完全不正确。如果您请求读取权限并仍然获得 FileNotFoundException,请检查 new File("/path/to/file.shp").exists() 的值。如果 Android 看不到该文件,ArcGIS 也看不到该文件。

事实证明,它正在显示 shapefile。我必须清空 MapView 才能看到它。

<com.esri.android.map.MapView
    android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
</com.esri.android.map.MapView>

我有同样的问题。确保与 map.shp 相关的其他文件位于同一文件夹的旁边。与map.shp相关的其他文件的扩展名是:.dbf .prj .sbn .sbx .shp.xml .shx