jp.co.melco.preserv.spatial
クラス psvFeatureMap

java.lang.Object
  拡張jp.co.melco.preserv.spatial.psvFeatureMap
すべての実装インタフェース:
jp.co.melco.preserv.psvContainable, psvFeatureSearchable, psvSpatialContainable
直系の既知のサブクラス:
psvGeometryFeatureMap, psvInternalTopologyFeatureMap

public class psvFeatureMap
extends java.lang.Object
implements jp.co.melco.preserv.psvContainable, psvSpatialContainable

地物の一覧を管理するマップです。
本マップでは以下の機能を実現・提供します。


注意:地物マップが不要になった場合は必ず地物マップ管理クラスとの 関連を解放するAPI(psvFeatureMap#releaseMapBinder())を呼び出してください。 この処理を行わない場合、メモリリークの原因となりますのでご注意ください。
(理由:地物マップと地物マップ管理クラスは内部で相互参照を持っています。 つまり上記のAPIを呼び出すまで地物マップ管理クラスは当該地物マップを参照し続けます。 その結果、地物マップ管理クラスがGCの対象となるまで、当該地物マップもGCの対象とは ならず削除したつもりの地物マップがメモリリークしたような振る舞いとなります。 ただし、地物マップと地物マップ管理クラスの寿命が同じ(=不要となるタイミングが同じ) であれば地物マップ管理クラスがGCの対象となった時点で地物マップも同様にGCの対象と なりますので、上記のAPIを呼び出さなくてもメモリリークは発生しません。)

導入されたバージョン:
Ver.6.0
作成者:
PreSerV Development Team

入れ子クラスの概要
protected static class psvFeatureMap.DelegateFailListener
           説明: 複数のFeatureContainerのエラーを、psvFeatureMapのエラーとしてまとめる為のクラスです。
protected static class psvFeatureMap.DelegateLoadListener
           説明: コンテナごとに通知される読み込み通知を、 psvFeatureMap単位で纏める為のリスナです。
protected static interface psvFeatureMap.FeatureContainable
          地物の一覧を管理・操作するためのインタフェースを提供します。
protected static class psvFeatureMap.FeatureContainer
          レイヤ単位の地物を管理するマップです。
protected static interface psvFeatureMap.FeatureContainerFactory
          レイヤ単位の地物管理用コンテナを生成するインタフェースを提供します。
protected static class psvFeatureMap.FeatureLoadable
          地物を読み込むためのインタフェースを提供します。
protected static class psvFeatureMap.SameFeatureSelect
          同じ地物管理キーを持つ地物を検索する検索クラスです。
protected static class psvFeatureMap.SpatialFeatureContainerFactory
          空間情報を持つ地物を管理するコンテナを生成するファクトリクラスです。
protected static class psvFeatureMap.TreeBelongsFeatureSelect
          psvTreeに属しているpsvFeatureを全て検索するクラスです。
 
フィールドの概要
protected  psvMapBinder binder
          地物マップ管理クラスです。
protected  psvFeatureMap.DelegateFailListener delegateFailListener
          FeatureContainerに追加し、各FeatureContainerごとのエラーをpsvFeatureMap単位に 纏めるためのリスナです。
protected  psvFeatureMap.DelegateLoadListener delegateLoadListener
          コンテナごとに通知される読み込み通知を、 psvFeatureMap単位で纏める為のリスナです。
protected  psvDrawOptimizer drawOptimizer
          描画最適化用インタフェースです。
protected  jp.co.melco.preserv.spatial.psvFeatureRequestListener featureRequestListener
          地物マップ管理クラスからの地物操作リクエストイベントを処理するリスナです。
protected  psvSpatialLayerAccessor layers
          空間レイヤオブジェクトです。
protected  psvPortrayalManager portrayalManager
          描画管理クラスです。
protected  psvReloadEventListener reloadEventListener
          リロードイベント通知リスナです。
protected  psvServerConnectionListener serverConnectionListener
          サーバ接続状態変更時のイベント処理リスナです。
protected  java.util.List spatialLayerChangeListeners
          空間レイヤの変更を通知するリスナの一覧です。
 
コンストラクタの概要
psvFeatureMap()
          地物マップを生成します。
 
メソッドの概要
 void addFailListener(jp.co.melco.preserv.psvFailListener listener)
           
 boolean addFeature(psvFeature feature)
          マップに地物を追加します。
 void addLoadListener(psvSpatialLoadEventListener listener)
          地物読み込みリスナを追加します。
 void addSpatialLayerChangeListener(psvSpatialLayerChangeListener listener)
          空間レイヤ変更通知リスナを追加します。
 boolean changeFeature(psvFeature feature)
          指定された地物の更新を行います。
protected  void clearContainerTable()
          内部の地物管理用コンテナの一覧を初期化します。
 void clearPortrayalManager()
          描画管理オブジェクトの設定を解除します。
 boolean containsFeature(java.lang.Long internalKey)
          地物が本クラス管理下にあるかを返します。
protected  psvFeatureMap.FeatureContainerFactory createFeatureContainerFactory()
          地物管理用のコンテナ生成オブジェクトを生成します。
protected  java.util.List createFeatureLayerChangeListenerList()
          空間レイヤ変更リスナリストを生成します。
protected  psvFeatureMap.FeatureLoadable createFeatureLoader()
          地物の読込み処理を行うオブジェクトを生成して返します。
protected  jp.co.melco.preserv.spatial.psvFeatureRequestListener createFeatureRequestListener()
          地物マップ管理クラスからの地物操作リクエストイベントを処理するリスナを生成します。
protected  psvFeatureMap.FeatureContainable createInternalContainer(java.lang.String name)
          内部で使用する、レイヤ単位で地物を管理するためのコンテナを生成します。
protected  java.util.Map createInternalMapsTable()
          内部管理用のマップの一覧を管理するテーブルを生成します。
protected  psvServerConnectionListener createServerConnectionListener()
          サーバ接続状態変更時のイベント処理リスナを生成します。
protected  psvSpatialLayerAccessor createSpatialLayerAccessor(java.lang.String[] layerNames, java.util.Map layerInfo)
          指定されたレイヤ情報の一覧を管理するオブジェクトを生成します。
protected  psvSpatialLayerAttribFactory createSpatialLayerAttribFactory()
          レイヤ属性オブジェクトを生成するファクトリを生成します。
 boolean draw(jp.co.melco.preserv.psvScreen screen, int dsx, int dsy, int dex, int dey, boolean needClear, java.awt.Color col)
          DC座標で指定された矩形の地図情報を描画する方法を定義します。
protected  java.util.Iterator getContainersIteratorOf(java.lang.String[] lnames)
          指定されたレイヤ名称に対応するコンテナに順次アクセスするためのイテレータを取得します。
 java.util.Collection getContains(java.util.Collection targets, psvGMObject region)
          指定された地物群の中で、指定された幾何オブジェクトを包含するすべての地物を取得します。
 java.util.Collection getContains(psvGMObject geometry)
          指定された幾何オブジェクトを包含するすべてのレイヤの地物を取得します。
 java.util.Collection getContains(java.lang.String[] layers, psvGMObject geometry)
          指定されたレイヤで、指定された幾何オブジェクトを包含するすべての地物を取得します。
 psvFeature getContainsFeature(java.lang.Long internalKey)
          地物が本クラス管理下にある場合はその地物を返します。
protected static java.lang.Object[] getContainsMeshes(jp.co.melco.preserv.psvAnyMap map)
          本クラス管理下にあるpsvTreeのメッシュIDの一覧を返します。
protected  psvMapBinder getDefaultMapBinder()
          地物マップ管理クラス未設定時にのみ使用する既定の地物マップ管理オブジェクトを取得します。
protected  psvPortrayalManager getDefaultPortrayalManager()
          既定の描画管理オブジェクトを取得します。
protected  psvFeatureMap.DelegateFailListener getDelegateFailListener()
          delegateFailListenerを取得します。
protected  psvFeatureMap.DelegateLoadListener getDelegateLoadListener()
          delegateLoadListenerを取得します。
 psvFeature getFeature(java.lang.Long key)
          指定された地物管理キーを持つ地物を取得します。
 java.util.Collection getFeatureByAttribute(java.lang.String layer, java.lang.Object attribute, java.lang.Object value, boolean allowPartial)
          指定された主題属性値を持つ地物を取得します。
protected  psvFeatureMap.FeatureContainable getFeatureContainer(java.lang.String name)
          指定されたレイヤ名称に対応するコンテナを取得します。
 java.util.Collection getInside(java.util.Collection targets, psvGMObject region)
          指定された地物群の中で、指定された幾何オブジェクトに包含されるすべての地物を取得します。
 java.util.Collection getInside(psvGMObject geometry)
          指定された幾何オブジェクトに包含されるすべてのレイヤの地物を取得します。
 java.util.Collection getInside(java.lang.String[] layers, psvGMObject geometry)
          指定されたレイヤで、指定された幾何オブジェクトに包含されるすべての地物を取得します。
 java.util.Collection getIntersection(java.util.Collection targets, psvGMObject region)
          指定された地物群の中で、指定された幾何オブジェクトと交差するすべての地物を取得します。
 java.util.Collection getIntersection(psvGMObject geometry)
          指定された幾何オブジェクトと交差するすべてのレイヤの地物を取得します。
 java.util.Collection getIntersection(java.lang.String[] layers, psvGMObject geometry)
          指定されたレイヤで、指定された幾何オブジェクトと交差するすべての地物を取得します。
protected  java.util.Collection getIntersectsFeatures(java.lang.String[] lnames, jp.co.melco.preserv.psvRegion region)
          指定されたレイヤ名称で指定された領域と交差する地物の一覧を取得します。
 psvSpatialLayerAttribAccessible getLayerAttribOf(java.lang.String name)
          指定したレイヤ名称を持つ空間レイヤ属性を取得します。
 java.util.Collection getLayered(java.util.Collection targets, java.lang.String[] layers)
          指定された地物群で、指定されたレイヤに属するすべての地物を取得します。
 psvMapBinder getMapBinder()
          地物マップ管理クラスを取得します。
 java.util.Collection getNearestNeighbor(double x, double y)
          指定された点に最も近い地物を取得します。
 java.util.Collection getNearestNeighbor(java.lang.String[] layers, double x, double y)
          指定されたレイヤ内で、指定された点に最も近い地物を取得します。
 psvPortrayalManager getPortrayalManager()
          描画管理オブジェクトを取得します。
protected  java.lang.String[] getTargetLayerNames(java.lang.String[] allNames)
          指定されたレイヤ名称一覧の中から本マップで扱うレイヤ名の一覧を取得します。
protected  java.util.Collection getVisibleFeatures(java.lang.String[] lnames, jp.co.melco.preserv.psvRegion region, jp.co.melco.preserv.psvScreen screen)
          指定された領域・スケールで可視となる地物の一覧を取得します。
 java.util.Collection getWithin(java.util.Collection targets, psvGMObject region, double distance)
          指定された地物群の中で、指定された幾何オブジェクトとの距離が 指定距離内に存在する地物の一覧を取得します。
 java.util.Collection getWithin(psvGMObject region, double distance)
          指定された幾何オブジェクトから指定された距離範囲内に存在する地物の一覧を取得します。
 java.util.Collection getWithin(java.lang.String[] layers, psvGMObject region, double distance)
          指定されたレイヤ内で、指定された幾何オブジェクトから指定された距離範囲内に存在する地物の一覧を取得します。
 boolean isUseDrawLayerLimit()
          psvDrawOptimizerのレイヤ描画判定使用フラグを返します。
 boolean isUseDrawRegionModify()
          psvDrawOptimizerの描画範囲変更有効化フラグを返します。
 boolean load(jp.co.melco.preserv.psvRegionBounds rbound)
          指定領域に含まれる即読みメッシュに所属する図形オブジェクトを全て読み直します。
 boolean load(java.lang.String[] layerNames, jp.co.melco.preserv.psvRegionBounds loadArea)
          地図の領域を指定して読込を行います。
 boolean loadFeatureAttribute(psvFeature feature)
          指定された地物の主題属性をロードします。
 boolean loadFeatureRelationship(psvFeature feature)
          関連属性をロードします。
 boolean loadFeatureTemporal(psvFeature feature)
          指定された地物の時間属性をロードします。
protected  void notifyBuiltLayers()
          空間レイヤが構築された事を本クラスに登録されているリスナに通知します。
protected  void notifyClearedLayers()
          空間レイヤが消去された事を本クラスに登録されているリスナに通知します。
protected  void notifyWillBuildLayers()
          空間レイヤが構築される事を本クラスに登録されているリスナに通知します。
protected  void notifyWillClearLayers()
          空間レイヤが消去される事を本クラスに登録されているリスナに通知します。
protected  java.lang.String paramString()
          属性値の文字列表現を取得します。
 void rehash_bbox(jp.co.melco.preserv.psvScreen screen)
          マップに登録されているオブジェクトの矩形の再定義を行う方法を定義します。
 void releaseDrawOptimzier()
          描画最適化オブジェクトを解除します。
 void releaseMapBinder()
          地物マップ管理クラスを削除します。
 void releaseReloadEventListener()
          設定されたリロードイベント通知リスナを解除します。
 boolean reload_all()
          即読みメッシュに所属する図形オブジェクトを全て読み直します。
 boolean reload(java.lang.String[] layerNames)
          指定レイヤ名の全領域を再読込します。
 boolean reloadArea(jp.co.melco.preserv.psvRegionBounds rbound)
          指定領域に含まれる即読みメッシュに所属する図形オブジェクトを全て読み直します。
 boolean reloadArea(java.lang.String[] layerNames, jp.co.melco.preserv.psvRegionBounds reloadArea)
          地図の領域を指定して再読込を行います。
 boolean removeFailListener(jp.co.melco.preserv.psvFailListener listener)
           
 boolean removeFeature(psvFeature feature)
          地物を削除します。
 boolean removeLoadListener(psvSpatialLoadEventListener listener)
          地物読み込みリスナを削除します。
 void removeSpatialLayerChangeListener(psvSpatialLayerChangeListener listener)
          空間レイヤ変更通知リスナを削除します。
 boolean search(jp.co.melco.preserv.psvSearchable args)
          指定された検索条件に該当する地物を検索します。
 void setDrawOptimizer(psvDrawOptimizer drawOptimizer)
          描画最適化オブジェクトを設定します。
 void setMapBinder(psvMapBinder binder)
          地物マップ管理クラスを設定します。
 void setPortrayalManager(psvPortrayalManager manager)
          描画管理オブジェクトを設定します。
 void setReloadEventListener(psvReloadEventListener reloadEventListener)
          リロードイベント通知リスナを設定します。
 void setUseDrawLayerLimit(boolean useDrawLayerLimit)
          psvDrawOptimizerのレイヤ描画判定使用フラグを設定します。
 void setUseDrawRegionModify(boolean useDrawRegionModify)
          psvDrawOptimizerの描画範囲変更有効化フラグを設定します。
 java.lang.String toString()
           
protected  void updateLayerInfo()
          レイヤ情報を更新します。
protected  void updateLayerInfo(java.lang.String[] layerNames, java.util.Map layerInfo)
          指定されたレイヤ名と各レイヤの詳細情報をもとにレイヤ情報を更新します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

layers

protected psvSpatialLayerAccessor layers
空間レイヤオブジェクトです。


binder

protected psvMapBinder binder
地物マップ管理クラスです。
コンストラクタで初期化された後は必ず非nullとなります。


portrayalManager

protected psvPortrayalManager portrayalManager
描画管理クラスです。


featureRequestListener

protected jp.co.melco.preserv.spatial.psvFeatureRequestListener featureRequestListener
地物マップ管理クラスからの地物操作リクエストイベントを処理するリスナです。


serverConnectionListener

protected psvServerConnectionListener serverConnectionListener
サーバ接続状態変更時のイベント処理リスナです。


reloadEventListener

protected psvReloadEventListener reloadEventListener
リロードイベント通知リスナです。


spatialLayerChangeListeners

protected java.util.List spatialLayerChangeListeners
空間レイヤの変更を通知するリスナの一覧です。


drawOptimizer

protected psvDrawOptimizer drawOptimizer
描画最適化用インタフェースです。


delegateFailListener

protected psvFeatureMap.DelegateFailListener delegateFailListener
FeatureContainerに追加し、各FeatureContainerごとのエラーをpsvFeatureMap単位に 纏めるためのリスナです。


delegateLoadListener

protected psvFeatureMap.DelegateLoadListener delegateLoadListener
コンテナごとに通知される読み込み通知を、 psvFeatureMap単位で纏める為のリスナです。

コンストラクタの詳細

psvFeatureMap

public psvFeatureMap()
地物マップを生成します。

メソッドの詳細

createFeatureLayerChangeListenerList

protected java.util.List createFeatureLayerChangeListenerList()
空間レイヤ変更リスナリストを生成します。

戻り値:
空間レイヤ変更リスナリスト

createInternalMapsTable

protected java.util.Map createInternalMapsTable()
内部管理用のマップの一覧を管理するテーブルを生成します。

戻り値:
内部管理用のマップの一覧を管理するテーブル

createFeatureContainerFactory

protected psvFeatureMap.FeatureContainerFactory createFeatureContainerFactory()
地物管理用のコンテナ生成オブジェクトを生成します。
本メソッドはコンストラクタから一度だけ呼び出されます。
SpatialFeatureContainerFactoryを作成して返します。

戻り値:
コンテナ生成オブジェクト
関連項目:
psvFeatureMap.SpatialFeatureContainerFactory

getMapBinder

public psvMapBinder getMapBinder()
地物マップ管理クラスを取得します。
未設定の場合は null が返ります。

定義:
インタフェース psvSpatialContainable 内の getMapBinder
戻り値:
地物マップ管理クラス

setMapBinder

public void setMapBinder(psvMapBinder binder)
地物マップ管理クラスを設定します。
合わせてレイヤ情報を更新します。

定義:
インタフェース psvSpatialContainable 内の setMapBinder
パラメータ:
binder - 地物マップ管理クラス
戻り値:
サーバ通信クラス
関連項目:
getMapBinder()

releaseMapBinder

public void releaseMapBinder()
地物マップ管理クラスを削除します。


createFeatureRequestListener

protected jp.co.melco.preserv.spatial.psvFeatureRequestListener createFeatureRequestListener()
地物マップ管理クラスからの地物操作リクエストイベントを処理するリスナを生成します。
ここで取得されるリスナは、地物の追加・削除・更新の通知にあわせて、地物マップの対応する API(追加・削除・更新)を呼び直します。 これによりサーバに対する操作と地物マップの 同期を実現します。
ただし地物取得イベントでは何も行いません。

戻り値:
地物マップ管理クラスからの地物操作リクエストイベントを処理するリスナ
関連項目:
addFeature(psvFeature), removeFeature(psvFeature), changeFeature(psvFeature)

createServerConnectionListener

protected psvServerConnectionListener createServerConnectionListener()
サーバ接続状態変更時のイベント処理リスナを生成します。
ここで返されるリスナは、接続完了時にpsvFeatureMap#updateLayerInfo()を呼び出します。
接続切断時 及び 接続失敗時は何も行いません。

戻り値:
サーバ接続状態変更時のイベント処理を行うリスナ

isUseDrawRegionModify

public boolean isUseDrawRegionModify()
psvDrawOptimizerの描画範囲変更有効化フラグを返します。

戻り値:
psvDrawOptimizerの描画範囲変更有効化フラグ

setUseDrawRegionModify

public void setUseDrawRegionModify(boolean useDrawRegionModify)
psvDrawOptimizerの描画範囲変更有効化フラグを設定します。

パラメータ:
useDrawRegionModify - psvDrawOptimizerの描画範囲変更有効化フラグ

isUseDrawLayerLimit

public boolean isUseDrawLayerLimit()
psvDrawOptimizerのレイヤ描画判定使用フラグを返します。

戻り値:
psvDrawOptimizerのレイヤ描画判定使用フラグ

setUseDrawLayerLimit

public void setUseDrawLayerLimit(boolean useDrawLayerLimit)
psvDrawOptimizerのレイヤ描画判定使用フラグを設定します。

パラメータ:
useDrawLayerLimit - psvDrawOptimizerのレイヤ描画判定使用フラグ

setDrawOptimizer

public void setDrawOptimizer(psvDrawOptimizer drawOptimizer)
描画最適化オブジェクトを設定します。

パラメータ:
drawOptimizer - 描画最適化オブジェクト

releaseDrawOptimzier

public void releaseDrawOptimzier()
描画最適化オブジェクトを解除します。


setReloadEventListener

public void setReloadEventListener(psvReloadEventListener reloadEventListener)
リロードイベント通知リスナを設定します。

パラメータ:
reloadEventListener - リロードイベント通知リスナ

releaseReloadEventListener

public void releaseReloadEventListener()
設定されたリロードイベント通知リスナを解除します。


addSpatialLayerChangeListener

public void addSpatialLayerChangeListener(psvSpatialLayerChangeListener listener)
空間レイヤ変更通知リスナを追加します。

定義:
インタフェース psvSpatialContainable 内の addSpatialLayerChangeListener
パラメータ:
listener - 空間レイヤ変更通知リスナ

removeSpatialLayerChangeListener

public void removeSpatialLayerChangeListener(psvSpatialLayerChangeListener listener)
空間レイヤ変更通知リスナを削除します。

定義:
インタフェース psvSpatialContainable 内の removeSpatialLayerChangeListener
パラメータ:
listener - 空間レイヤ変更通知リスナ

notifyWillClearLayers

protected void notifyWillClearLayers()
空間レイヤが消去される事を本クラスに登録されているリスナに通知します。


notifyClearedLayers

protected void notifyClearedLayers()
空間レイヤが消去された事を本クラスに登録されているリスナに通知します。


notifyWillBuildLayers

protected void notifyWillBuildLayers()
空間レイヤが構築される事を本クラスに登録されているリスナに通知します。


notifyBuiltLayers

protected void notifyBuiltLayers()
空間レイヤが構築された事を本クラスに登録されているリスナに通知します。


getDefaultMapBinder

protected psvMapBinder getDefaultMapBinder()
地物マップ管理クラス未設定時にのみ使用する既定の地物マップ管理オブジェクトを取得します。
本メソッドで取得された地物マップ管理オブジェクトは内部で使用するのみで、外部に公開されません。

戻り値:
既定の地物マップ管理オブジェクト
関連項目:
getMapBinder(), setMapBinder(psvMapBinder)

updateLayerInfo

protected void updateLayerInfo()
レイヤ情報を更新します。
内部的には、更新後に管理するレイヤ名を getTargetLayerNames(String[]) メソッドで、 各レイヤの詳細情報を保持するMapは psvMapBinder#getFeatureLayerInfo() メソッドで それぞれ取得し、 updateLayerInfo(String[], Map) メソッドに処理を委譲します。
本メソッドは地物マップ管理クラスが設定された際に(=setMapBinder(psvMapBinder)メソッドから) 呼び出されます。

関連項目:
setMapBinder(psvMapBinder), updateLayerInfo(String[], Map), getTargetLayerNames(String[]), psvMapBinder.getFeatureLayerNames(), psvMapBinder.getFeatureLayerInfo()

updateLayerInfo

protected void updateLayerInfo(java.lang.String[] layerNames,
                               java.util.Map layerInfo)
指定されたレイヤ名と各レイヤの詳細情報をもとにレイヤ情報を更新します。
それまで保持していた地物を破棄し、再度レイヤ情報から構築します。

パラメータ:
layerNames - 更新後に管理対象となるレイヤ名称の一覧
layerInfo - 各レイヤの詳細情報一覧

getTargetLayerNames

protected java.lang.String[] getTargetLayerNames(java.lang.String[] allNames)
指定されたレイヤ名称一覧の中から本マップで扱うレイヤ名の一覧を取得します。
管理対象のレイヤを制限したい場合は本メソッドをオーバライドし、 適切なレイヤ名称を返すよう実装します。
デフォルトでは全レイヤを対象として返します。

パラメータ:
allNames - レイヤ名称の候補の一覧
戻り値:
本マップで対象とするレイヤ名称の一覧

clearContainerTable

protected void clearContainerTable()
内部の地物管理用コンテナの一覧を初期化します。


createSpatialLayerAccessor

protected psvSpatialLayerAccessor createSpatialLayerAccessor(java.lang.String[] layerNames,
                                                             java.util.Map layerInfo)
指定されたレイヤ情報の一覧を管理するオブジェクトを生成します。

パラメータ:
layerNames - 管理対象のレイヤ名称一覧
layerInfo - レイヤ情報テーブル
戻り値:
レイヤ情報の一覧を管理するオブジェクト

createSpatialLayerAttribFactory

protected psvSpatialLayerAttribFactory createSpatialLayerAttribFactory()
レイヤ属性オブジェクトを生成するファクトリを生成します。

戻り値:
レイヤ属性オブジェクトを生成するファクトリ

createInternalContainer

protected psvFeatureMap.FeatureContainable createInternalContainer(java.lang.String name)
内部で使用する、レイヤ単位で地物を管理するためのコンテナを生成します。
実際のコンテナ生成処理は FeatureContainerFactory#featureContainerFactory.createFeatureContainer(String, FeatureLoadable) メソッドで行います。
生成されたコンテナの一覧は内部で管理されます。

パラメータ:
name - レイヤ名称
戻り値:
レイヤ単位で地物を管理するマップ
関連項目:
psvFeatureMap.FeatureContainerFactory

createFeatureLoader

protected psvFeatureMap.FeatureLoadable createFeatureLoader()
地物の読込み処理を行うオブジェクトを生成して返します。

戻り値:
地物の読込み処理を行うオブジェクト

getLayerAttribOf

public psvSpatialLayerAttribAccessible getLayerAttribOf(java.lang.String name)
指定したレイヤ名称を持つ空間レイヤ属性を取得します。

定義:
インタフェース psvSpatialContainable 内の getLayerAttribOf
パラメータ:
name - レイヤ名称
戻り値:
空間レイヤ属性

getPortrayalManager

public psvPortrayalManager getPortrayalManager()
描画管理オブジェクトを取得します。

定義:
インタフェース psvSpatialContainable 内の getPortrayalManager
戻り値:
描画管理オブジェクト

setPortrayalManager

public void setPortrayalManager(psvPortrayalManager manager)
描画管理オブジェクトを設定します。

定義:
インタフェース psvSpatialContainable 内の setPortrayalManager
パラメータ:
manager - 描画管理オブジェクト

clearPortrayalManager

public void clearPortrayalManager()
描画管理オブジェクトの設定を解除します。

定義:
インタフェース psvSpatialContainable 内の clearPortrayalManager

getDefaultPortrayalManager

protected psvPortrayalManager getDefaultPortrayalManager()
既定の描画管理オブジェクトを取得します。

戻り値:
既定の描画管理オブジェクト
関連項目:
setPortrayalManager(psvPortrayalManager), getPortrayalManager(), clearPortrayalManager()

getFeature

public psvFeature getFeature(java.lang.Long key)
指定された地物管理キーを持つ地物を取得します。
地物が本クラス管理下にある場合はその地物を優先的に返します。
本クラス管理下に無い場合は、サーバから取得して本クラス管理下に置いた後返します。
対応する地物が存在しない場合 又は 地物の取得に失敗した場合は Null を返します。

パラメータ:
key - 地物管理キー
戻り値:
対応する地物

containsFeature

public boolean containsFeature(java.lang.Long internalKey)
地物が本クラス管理下にあるかを返します。

パラメータ:
internalKey - 検索地物の地物管理キー
戻り値:
true:管理下存在 false:管理下無し

getContainsFeature

public psvFeature getContainsFeature(java.lang.Long internalKey)
地物が本クラス管理下にある場合はその地物を返します。
対応する地物が存在しない場合は Null を返します。

パラメータ:
internalKey - 地物管理キー
戻り値:
対応する地物

addFeature

public boolean addFeature(psvFeature feature)
マップに地物を追加します。
追加に成功した場合はtrue、それ以外の場合はfalseが返ります。

注意:本メソッドではDBに対する追加処理は行われません。DBに追加を行いたい場合はpsvMapBinderクラスのAPIを利用してください。

パラメータ:
feature - 地物
戻り値:
追加に成功した場合はtrue、それ以外の場合はfalse

getFeatureContainer

protected psvFeatureMap.FeatureContainable getFeatureContainer(java.lang.String name)
指定されたレイヤ名称に対応するコンテナを取得します。

パラメータ:
name - コンテナが対応するレイヤ名称
戻り値:
コンテナ

removeFeature

public boolean removeFeature(psvFeature feature)
地物を削除します。
削除に成功した場合は true 、それ以外の場合は false を返します。

注意:本メソッドではDBに対する削除処理は行われません。DBから削除したい場合はpsvMapBinderクラスのAPIを利用してください。

パラメータ:
feature - 地物
戻り値:
削除に成功すると true 、それ以外の場合は false

changeFeature

public boolean changeFeature(psvFeature feature)
指定された地物の更新を行います。
更新に成功すると true 、それ以外の場合は false を返します。

注意:本メソッドではDBに対する変更処理は行われません。DBに変更を行いたい場合はpsvMapBinderクラスのAPIを利用してください。

パラメータ:
feature - 地物
戻り値:
更新に成功すると true 、それ以外の場合は false

getFeatureByAttribute

public java.util.Collection getFeatureByAttribute(java.lang.String layer,
                                                  java.lang.Object attribute,
                                                  java.lang.Object value,
                                                  boolean allowPartial)
指定された主題属性値を持つ地物を取得します。
ただし地物マップ管理クラスが未設定の場合は空のコレクションを返します。

パラメータ:
layer - レイヤ
attribute - 主題属性種別
value - 主題属性値
allowPartial - 部分一致を許可するか否かを表すフラグ  部分一致を許可する場合:true、完全一致のみを許可する場合:false
戻り値:
条件に一致する地物(psvFeature)
関連項目:
loadFeatureAttribute(psvFeature)

loadFeatureAttribute

public boolean loadFeatureAttribute(psvFeature feature)
指定された地物の主題属性をロードします。
主題属性を操作する前に必ず本メソッドによりロード処理を完了させておく必要があります。
ロードに成功すると true 、それ以外の場合は false を返します。

パラメータ:
feature - 地物
戻り値:
ロードに成功した場合: true 、それ以外の場合:false

loadFeatureTemporal

public boolean loadFeatureTemporal(psvFeature feature)
指定された地物の時間属性をロードします。
時間属性を操作する前に必ず本メソッドによりロード処理を完了させておく必要があります。
ロード処理に成功すると true 、それ以外の場合は false を返します。

パラメータ:
feature - 地物
戻り値:
ロード処理に成功した場合:true 、それ以外の場合:false

loadFeatureRelationship

public boolean loadFeatureRelationship(psvFeature feature)
関連属性をロードします。
関連属性を操作する前に必ず本メソッドによりロード処理を完了させておく必要があります。
ロード処理に成功すると true 、それ以外の場合は false を返します。

パラメータ:
feature - 地物
戻り値:
ロード処理に成功した場合: true 、それ以外の場合: false

getContains

public java.util.Collection getContains(psvGMObject geometry)
指定された幾何オブジェクトを包含するすべてのレイヤの地物を取得します。
内部的にはレイヤ名称指定無し(= null)で getContains(String[], psvGMObject) を呼び直します。

定義:
インタフェース psvFeatureSearchable 内の getContains
パラメータ:
geometry - 幾何オブジェクト
戻り値:
地物
関連項目:
getContains(String[], psvGMObject)

getContains

public java.util.Collection getContains(java.lang.String[] layers,
                                        psvGMObject geometry)
指定されたレイヤで、指定された幾何オブジェクトを包含するすべての地物を取得します。
指定された幾何オブジェクトが表す領域が読み込み前の場合は足りないメッシュを読込み後、検索を行います。

定義:
インタフェース psvFeatureSearchable 内の getContains
パラメータ:
layers - レイヤ名称
geometry - 幾何オブジェクト
戻り値:
地物
関連項目:
getContains(Collection, psvGMObject)

getContainersIteratorOf

protected java.util.Iterator getContainersIteratorOf(java.lang.String[] lnames)
指定されたレイヤ名称に対応するコンテナに順次アクセスするためのイテレータを取得します。
null が指定された場合はすべてのレイヤのコンテナに順次アクセスするためのイテレータを返します。

パラメータ:
lnames - レイヤ名称
戻り値:
コンテナのイテレータ

getContains

public java.util.Collection getContains(java.util.Collection targets,
                                        psvGMObject region)
指定された地物群の中で、指定された幾何オブジェクトを包含するすべての地物を取得します。

定義:
インタフェース psvFeatureSearchable 内の getContains
パラメータ:
targets - 地物群
region - 幾何オブジェクト
戻り値:
地物

getInside

public java.util.Collection getInside(psvGMObject geometry)
指定された幾何オブジェクトに包含されるすべてのレイヤの地物を取得します。
内部的にはレイヤ名称指定無し(= null)で getInside(String[], psvGMObject) を呼び直します。

定義:
インタフェース psvFeatureSearchable 内の getInside
パラメータ:
geometry - 幾何オブジェクト
戻り値:
条件に該当する地物
関連項目:
getInside(String[], psvGMObject)

getInside

public java.util.Collection getInside(java.lang.String[] layers,
                                      psvGMObject geometry)
指定されたレイヤで、指定された幾何オブジェクトに包含されるすべての地物を取得します。
指定された幾何オブジェクトが表す領域が読み込み前の場合は足りないメッシュを読込み後、検索を行います。

定義:
インタフェース psvFeatureSearchable 内の getInside
パラメータ:
layers - レイヤ名称
geometry - 幾何オブジェクト
戻り値:
条件に該当する地物
関連項目:
getInside(Collection, psvGMObject)

getInside

public java.util.Collection getInside(java.util.Collection targets,
                                      psvGMObject region)
指定された地物群の中で、指定された幾何オブジェクトに包含されるすべての地物を取得します。

定義:
インタフェース psvFeatureSearchable 内の getInside
パラメータ:
targets - 地物群
region - 幾何オブジェクト
戻り値:
条件に該当する地物群

getIntersection

public java.util.Collection getIntersection(psvGMObject geometry)
指定された幾何オブジェクトと交差するすべてのレイヤの地物を取得します。 内部的にはレイヤ名称指定無し(= null)で getIntersection(String[], psvGMObject) を呼び直します。

定義:
インタフェース psvFeatureSearchable 内の getIntersection
パラメータ:
geometry - 幾何オブジェクト
戻り値:
条件に該当する地物群
関連項目:
getIntersection(String[], psvGMObject)

getIntersection

public java.util.Collection getIntersection(java.lang.String[] layers,
                                            psvGMObject geometry)
指定されたレイヤで、指定された幾何オブジェクトと交差するすべての地物を取得します。 指定された幾何オブジェクトが表す領域が読み込み前の場合は足りないメッシュを読込み後、検索を行います。

定義:
インタフェース psvFeatureSearchable 内の getIntersection
パラメータ:
layers - レイヤ名称
geometry - 幾何オブジェクト
戻り値:
条件に該当する地物群
関連項目:
getIntersection(Collection, psvGMObject)

getIntersection

public java.util.Collection getIntersection(java.util.Collection targets,
                                            psvGMObject region)
指定された地物群の中で、指定された幾何オブジェクトと交差するすべての地物を取得します。

定義:
インタフェース psvFeatureSearchable 内の getIntersection
パラメータ:
targets - 地物群
region - 幾何オブジェクト
戻り値:
条件に該当する地物群

getNearestNeighbor

public java.util.Collection getNearestNeighbor(double x,
                                               double y)
指定された点に最も近い地物を取得します。
同一距離に複数の地物が存在する場合はそのすべてを返します。
内部的にはレイヤ名称未指定(= null)で getNearestNeighbor(String[],double,double) を呼び直します。

定義:
インタフェース psvFeatureSearchable 内の getNearestNeighbor
パラメータ:
x - X座標
y - Y座標
戻り値:
条件に該当する地物群
関連項目:
getNearestNeighbor(String[], double, double)

getNearestNeighbor

public java.util.Collection getNearestNeighbor(java.lang.String[] layers,
                                               double x,
                                               double y)
指定されたレイヤ内で、指定された点に最も近い地物を取得します。
同一距離に複数の地物が存在する場合はそのすべてを返します。
ただし検索対象は読込み済みのメッシュのみです。

定義:
インタフェース psvFeatureSearchable 内の getNearestNeighbor
パラメータ:
layers - レイヤ名称一覧
x - X座標
y - Y座標
戻り値:
条件に該当する地物群

getWithin

public java.util.Collection getWithin(psvGMObject region,
                                      double distance)
指定された幾何オブジェクトから指定された距離範囲内に存在する地物の一覧を取得します。
内部的にはレイヤ名称指定無し(= null)で getWithin(String[], psvGMObject,double) を呼び直します。

定義:
インタフェース psvFeatureSearchable 内の getWithin
パラメータ:
region - 幾何オブジェクト
distance - 距離
戻り値:
条件に該当する地物群
関連項目:
getWithin(String[], psvGMObject, double)

getWithin

public java.util.Collection getWithin(java.lang.String[] layers,
                                      psvGMObject region,
                                      double distance)
指定されたレイヤ内で、指定された幾何オブジェクトから指定された距離範囲内に存在する地物の一覧を取得します。
指定された幾何オブジェクトの外接矩形領域を全方向に指定距離分だけ広げた矩形領域が 読み込み前の場合は足りないメッシュを読込み後、検索を行います。

定義:
インタフェース psvFeatureSearchable 内の getWithin
パラメータ:
layers - レイヤ名称一覧
region - 幾何オブジェクト
distance - 距離
戻り値:
条件に該当する地物群
関連項目:
getWithin(Collection, psvGMObject, double)

getWithin

public java.util.Collection getWithin(java.util.Collection targets,
                                      psvGMObject region,
                                      double distance)
指定された地物群の中で、指定された幾何オブジェクトとの距離が 指定距離内に存在する地物の一覧を取得します。

定義:
インタフェース psvFeatureSearchable 内の getWithin
パラメータ:
targets - 検索対象の地物一覧
region - 検索領域を表す幾何オブジェクト
distance - 検索範囲
戻り値:
条件に該当する地物の一覧

getLayered

public java.util.Collection getLayered(java.util.Collection targets,
                                       java.lang.String[] layers)
指定された地物群で、指定されたレイヤに属するすべての地物を取得します。

定義:
インタフェース psvFeatureSearchable 内の getLayered
パラメータ:
targets - 地物群
layers - レイヤ名称
戻り値:
条件に該当する地物群

rehash_bbox

public void rehash_bbox(jp.co.melco.preserv.psvScreen screen)
マップに登録されているオブジェクトの矩形の再定義を行う方法を定義します。

定義:
インタフェース jp.co.melco.preserv.psvContainable 内の rehash_bbox
パラメータ:
screen - グラフィックスウィンドウオブジェクト
関連項目:
psvContainable.rehash_bbox(jp.co.melco.preserv.psvScreen)

search

public boolean search(jp.co.melco.preserv.psvSearchable args)
指定された検索条件に該当する地物を検索します。
既存のPreSerVクラスの使用にあたっては、以下の制約があります。
・psvPolygonSelect.
内部でポリゴン、ポリラインを特別扱いしているが、幾何の形状を反映出来ない為、使用は推奨しないものとします。
・psvArgsSelect.
地物はpsvShapeのset_valuesをサポートしない。 よって、その値による検索もサポートしないものとします。
・psvAttribSelect.
地物は属性をサポートしない為、これをサポートしません。
※但し、psvVisibleSelectに関しては、地物は常にvisible==trueとして結果を返します。
・psvImageSelect.
地物はpsvImageSymbolではない為、これをサポートしません。
・psvLayerSelect.
地物はレイヤオブジェクトを持たない為、これをサポートしません。
・psvStringSelect.
地物はpsvTextContextを持たない為、これをサポートしません。

また、psvSearchのレイヤ描画プライオリティと、drawメソッドはサポートされていません。

定義:
インタフェース jp.co.melco.preserv.psvContainable 内の search
パラメータ:
args - 検索条件
戻り値:
true:検索条件に該当する地物が存在した場合 false:そうでない場合
関連項目:
psvAbstractFeatureSelect

draw

public boolean draw(jp.co.melco.preserv.psvScreen screen,
                    int dsx,
                    int dsy,
                    int dex,
                    int dey,
                    boolean needClear,
                    java.awt.Color col)
DC座標で指定された矩形の地図情報を描画する方法を定義します。

定義:
インタフェース jp.co.melco.preserv.psvContainable 内の draw
パラメータ:
screen - グラフィックスウィンドウオブジェクト
dsx - 開始X座標(DC座標)
dsy - 開始Y座標(DC座標)
dex - 終了X座標(DC座標)
dey - 終了Y座標(DC座標)
needClear - falseを設定。この機能では、未使用
col - nullを設定。この機能では、未使用

戻り値:
呼び出しが成功した場合は、trueそうでない場合は、false
関連項目:
psvContainable.draw(jp.co.melco.preserv.psvScreen, int, int, int, int, boolean, java.awt.Color)

getVisibleFeatures

protected java.util.Collection getVisibleFeatures(java.lang.String[] lnames,
                                                  jp.co.melco.preserv.psvRegion region,
                                                  jp.co.melco.preserv.psvScreen screen)
指定された領域・スケールで可視となる地物の一覧を取得します。

パラメータ:
lnames - 検索対象のレイヤ名称一覧
region - 検索対象の領域
screen - 描画スクリーン
戻り値:
条件に該当する地物の一覧

getIntersectsFeatures

protected java.util.Collection getIntersectsFeatures(java.lang.String[] lnames,
                                                     jp.co.melco.preserv.psvRegion region)
指定されたレイヤ名称で指定された領域と交差する地物の一覧を取得します。
ただし検知性が無効のレイヤについては検索対象外となります。

パラメータ:
lnames - 検索対象のレイヤ名称一覧
region - 検索対象の領域
戻り値:
条件に該当する地物の一覧

getContainsMeshes

protected static java.lang.Object[] getContainsMeshes(jp.co.melco.preserv.psvAnyMap map)
本クラス管理下にあるpsvTreeのメッシュIDの一覧を返します。

パラメータ:
map - 空間DMマップ以外の全てのマップ基本クラス
戻り値:
本クラス管理下にあるpsvTreeのメッシュIDの一覧

reload_all

public boolean reload_all()
即読みメッシュに所属する図形オブジェクトを全て読み直します。

定義:
インタフェース jp.co.melco.preserv.psvContainable 内の reload_all
戻り値:
true:成功した場合、false:失敗した場合
関連項目:
psvContainable.reload_all()

reload

public boolean reload(java.lang.String[] layerNames)
指定レイヤ名の全領域を再読込します。

パラメータ:
layerNames - 再読込を行う指定レイヤ名
戻り値:
true:再読込成功 false:再読込失敗

reloadArea

public boolean reloadArea(jp.co.melco.preserv.psvRegionBounds rbound)
指定領域に含まれる即読みメッシュに所属する図形オブジェクトを全て読み直します。

定義:
インタフェース jp.co.melco.preserv.psvContainable 内の reloadArea
パラメータ:
rbound - 再読込み対象領域
戻り値:
true:成功した場合、false:失敗した場合
関連項目:
psvContainable.reloadArea(jp.co.melco.preserv.psvRegionBounds)

reloadArea

public boolean reloadArea(java.lang.String[] layerNames,
                          jp.co.melco.preserv.psvRegionBounds reloadArea)
地図の領域を指定して再読込を行います。

パラメータ:
layerNames - 再読込を行うレイヤ名(null時は全レイヤを対象)
reloadArea - 再読込を行う領域
戻り値:
true:再読込成功 false:再読込失敗

load

public boolean load(jp.co.melco.preserv.psvRegionBounds rbound)
指定領域に含まれる即読みメッシュに所属する図形オブジェクトを全て読み直します。

定義:
インタフェース jp.co.melco.preserv.psvContainable 内の load
パラメータ:
rbound - 再読込み対象領域
戻り値:
true:成功した場合、false:失敗した場合
関連項目:
psvContainable.load(jp.co.melco.preserv.psvRegionBounds)

load

public boolean load(java.lang.String[] layerNames,
                    jp.co.melco.preserv.psvRegionBounds loadArea)
地図の領域を指定して読込を行います。

パラメータ:
layerNames - 読込を行うレイヤ名(null時は全レイヤを対象)
loadArea - 読込を行う領域
戻り値:
true:読込成功 false:読込失敗

toString

public java.lang.String toString()

paramString

protected java.lang.String paramString()
属性値の文字列表現を取得します。

戻り値:
属性値の文字列表現

addFailListener

public void addFailListener(jp.co.melco.preserv.psvFailListener listener)
定義:
インタフェース jp.co.melco.preserv.psvContainable 内の addFailListener

removeFailListener

public boolean removeFailListener(jp.co.melco.preserv.psvFailListener listener)
定義:
インタフェース jp.co.melco.preserv.psvContainable 内の removeFailListener

getDelegateFailListener

protected psvFeatureMap.DelegateFailListener getDelegateFailListener()
delegateFailListenerを取得します。

戻り値:
取得されたdelegateFailListener
関連項目:
delegateFailListener

getDelegateLoadListener

protected psvFeatureMap.DelegateLoadListener getDelegateLoadListener()
delegateLoadListenerを取得します。
delegateLoadListenerは取得時に生成されます。

戻り値:
delegateLoadListener

addLoadListener

public void addLoadListener(psvSpatialLoadEventListener listener)
地物読み込みリスナを追加します。

パラメータ:
listener - 地物読み込みリスナ

removeLoadListener

public boolean removeLoadListener(psvSpatialLoadEventListener listener)
地物読み込みリスナを削除します。

パラメータ:
listener - 地物読み込みリスナ