1

私はOracleArcSDE9.2を実行していて、GeoTools 8.5を使用していますが、GeoToolsのドキュメントに記載されていることを実行しても機能しないようです。私は持っています

Map<String, Object> params = new HashMap<String, Object>();
params.put( "dbtype", "arcsde" );
params.put( "server", "164.64.146.42" );
params.put( "port", "5151" );
params.put( "instance", "sde" );
params.put( "user", "sde_admin" );
params.put( "password", "whatever" );

DataStore dataStore;
String typeName;

try
{
    dataStore = DataStoreFinder.getDataStore(params);
    typeName = dataStore.getTypeNames()[0];
} catch (IOException e)
{
    e.printStackTrace();
}

FeatureSource source = dataStore(typeName);

ただし、dataStore = dataStoreFinder.getDataStore(params)の後、dataStoreは常にnullのままであり、接続されなかったことを示します。nullのdataStoreオブジェクトを使用しようとしない限り、例外は発生しません。また、スキーマを要求されないため、機能することは期待できません。GeoServerを使用して同じSDEジオデータベースに正常に接続すると、スキーマパラメータ(私の場合は「envq.nmenv.state.nm.us」)が要求されます。それをサーバー名のどこかに追加しますか?または、これが接続されないために私は何が欠けていますか?今は読み取り専用に接続しようとしていますが、最終的にはGeoToolsを使用してデータを入れたいと思っています。

4

1 に答える 1

1

GeoTools ライブラリを使用するソフトウェア uDig を使用すると、私の質問に答えてくれます。uDig 経由で ArcSDE DataStore からロードする場合、uDig は次の jar の場所を知るように求めます: jsde92_sdk.jar jpe92_sdk.jar icu4j_3_2.jarファイル名geoserver-2.2.2-arcsde-plugin.zip内の ArcSDE Data Store Extension の下でGeoServerとともに配布さ れます それらの場所を CLASSPATH に追加するか、Eclipse で [プロジェクト] -> [プロパティ] -> [Java ビルド パス] に移動し、[外部 JAR を追加] に移動します。 . 3 つすべてを選択します。その時点で、上記のコードは変更されずに機能します。

于 2012-12-28T22:02:33.913 に答える