2

WindowsXPで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 に答える