2

我在 Windows XP 上使用 Eclipse。我下载了 GeoTools 2.7.4-bin.zip 文件并开始将一些 .jar 文件添加到我的项目中。我的项目的特殊之处在于这是一个 Android 项目。

我正在开发一个 Android 应用程序,它可以让我在地图(谷歌地图)上显示一些功能(点但不仅仅是),所以我尝试使用 GeoTools 来做到这一点。但 Android 不支持 Swings。我的代码是

/*code i m using */

package info.ipower.geotools;

import java.io.File;

import org.geotools.data.FileDataStore;

import org.geotools.data.FileDataStoreFinder;

import org.geotools.data.simple.SimpleFeatureSource;

import org.geotools.map.FeatureLayer;

import org.geotools.map.Layer;

import org.geotools.map.MapContent;

import org.geotools.styling.SLD;

import org.geotools.styling.Style;

import org.geotools.swing.JMapFrame;

import org.geotools.swing.data.JFileDataStoreChooser;


/**
 * Prompts the user for a shapefile and displays the contents on the screen in a map frame.
 * <p>
 * This is the GeoTools MapApplication application used in documentationa and tutorials. *
 */

public class GeoMap{

    /**
     * GeoTools MapApplication demo application. Prompts the user for a shapefile and displays its
     * contents on the screen in a map frame
     */
    public static void main(String[] args) throws Exception {
        // display a data store file chooser dialog for shapefiles
        File file = JFileDataStoreChooser.showOpenFile("shp", null);
        if (file == null) {
            return;
        }

        FileDataStore store = FileDataStoreFinder.getDataStore(file);
        SimpleFeatureSource featureSource = store.getFeatureSource();

        // Create a map content and add our shapefile to it
        MapContent map = new MapContent();
        map.setTitle("MapApplication");

        Style style = SLD.createSimpleStyle(featureSource.getSchema());
        Layer layer = new FeatureLayer(featureSource, style);
        map.addLayer(layer);

        // Now display the map
        JMapFrame.showMap(map);
    }

}

但它给了我在日食中的以下错误

- JFileDataStoreChooser 类型中的方法 showOpenFile(String, Component) 指的是缺少的类型 Component

  • java.awt.Component 类型无法解析。它是从所需的 .class 文件中间接引用的
  • java.awt.HeadlessException 类型无法解析。它是从所需的 .class 文件中间接引用的
  • 无法解析类型 javax.swing.JFileChooser。它是从所需的 .class 文件中间接引用的
  • JMapFrame 类型中的方法 showMap(MapContext) 不适用于参数 (MapContent)
  • javax.swing.JFrame 类型无法解析。它是从所需的 .class 文件中间接引用的,请任何人帮助我解决这些错误
4

1 回答 1

3

不幸的是,Swing 没有在 Android 上实现,所以你运气不好。事实上,甲骨文和谷歌刚刚打了一场大的法律战,部分原因就在于此。我很确定将任何严肃的 Swing 应用程序或库移植到 Android 上是一项重大的工作:几乎是从头开始重写。

于 2012-06-22T12:16:08.343 回答