2016年2月15日月曜日

GeoExt3-dev 4 - GeoExt.component.OverviewMap Example 2

3-2 JavaScript ファイルの作成
「overviewMap.js(4-geoext3.js)」は、マップを表示するための JavaScript ファイルです。

「4-geoext3.js」
Ext.require([
/** require( expressions, [fn], [scope] )
 * Loads all classes by the given names and all their 
 * direct dependencies; optionally executes the given 
 * callback function when finishes, within the optional 
 * scope.
 * 指定された名前とそのすべての直接依存によって、すべて
 * のクラスをロードします。任意の範囲内で、終了するとき
 * に任意で与えられたコールバック関数を実行します。
 * (GeoExt doc[w/ext])
 */
 'GeoExt.component.Map',
 /** GeoExt.component.Map
  * The map component and a panel side by side
  * map component(マップコンポーネント)とパネルの位置関
  * 係(並び)。
  * (GeoExt doc[w/ext])
  */
 'GeoExt.component.OverviewMap'
 /** GeoExt.component.OverviewMap
  * An GeoExt.component.OverviewMap displays an overview 
  * map of an parent map. You can use this component as 
  * any other Ext.Component, e.g give it as an item to a 
  * panel.
  * GeoExt.component.OverviewMapは 親マップの overview
  * (概要)マップを表示します。このコンポーネントを任意の
  * 他の Ext.Component として使用できます。例えば、それを 
  * item(項目)として panel(パネル)に与えることができます。
  * (GeoExt doc[w/ext])
  */
]);
var mapComponent,
 mapPanel,
 overviewMap1,
 overviewMap2;
Ext.application({
/** Ext.app.Application
 * Represents an Ext JS application, which is typically 
 * a single page app using a Viewport.
 * An application consists of one or more Views. The 
 * behavior of a View is managed by its corresponding 
 * ViewController and ViewModel.
 * Global activities are coordinated by Controllers 
 * which are ultimately instantiated by an instance 
 * of this (or a derived) class.
 * 通常、ビューポートを使用して1つのページの app である 
 * ExtJS アプリケーションを表します。
 * アプリケーションは、1つまたは複数の View で構成されて
 * います。View の動作は、その対応する ViewController 
 * と ViewModel によって管理されます。
 * グローバルな動作は、このインスタンス(または派生)
 * クラスで最終的にインスタンス化されている Controller 
 * によって調整されます。(GeoExt doc[w/ext])
 */
 name: 'OverviewMaps',
 /** name : String
  * The name of your application. This will also be the 
  * namespace for your views, controllers models and 
  * stores. Don't use spaces or special characters in 
  * the name. Application name is mandatory.
  * アプリケーションの名前。これはまた、views、controllers 
  * models と stores の名前空間になります。name には
  * スペースや特殊文字を使用しないでください。アプリケー
  * ション名は必須です。初期値は、''。
  * (GeoExt doc[w/ext])
  */
 launch: function(){
 /** launch( profile ) : Booleantemplate
  * Called automatically when the page has completely 
  * loaded. This is an empty function that should be 
  * overridden by each application that needs to take 
  * action on page load.
  * ページが完全にロードされたときに自動的に呼び出されます。
  * これは、ページのロード時にアクションを実行する必要があ
  * る各アプリケーションによって上書きされなければならない
  * 空の関数です。(GeoExt doc[w/ext])
  */
  var source, source2,
   layer, layer2,
   olMap,
   description,
   ovMapPanel1, ovMapPanel2;
  source = new ol.source.MapQuest({layer: 'sat'});
  /** ol.source.MapQuest
   * Layer source for the MapQuest tile server.
   * MapQuest タイルサーバのレイヤソース。(ol3 API
   * 2 - ol3ex 23b - MapQuest example 2 参照)
   */
  layer = new ol.layer.Tile({
  /** ol.layer.Tile 
   * For layer sources that provide pre-rendered, tiled 
   * images in grids that are organized by zoom levels 
   * for specific resolutions. 
   * プリレンダリング(事前描画)を提供するレイヤソースの
   * ための、特定の解像度でのズームレベルによって編成され
   * ているグリッドのタイルイメージ。(ol3 API)
   */
   source: source
  });
  source2 = new ol.source.MapQuest({layer: 'osm'});
  layer2 = new ol.layer.Tile({
   source: source2
  });
  olMap = new ol.Map({
   layers: [layer],
   interactions: ol.interaction.defaults().extend([
   /** ol.interaction.defaults
    * Set of interactions included in maps by default. 
    * Specific interactions can be excluded by setting 
    * the appropriate option to false in the constructor 
    * options, but the order of the interactions is fixed. 
    * If you want to specify a different order for 
    * interactions, you will need to create your own 
    * ol.interaction.Interaction instances and insert 
    * them into a ol.Collection in the order you want 
    * before creating your ol.Map instance.
    * デフォルトでマップに含まれるインターラクションのセット。
    * 具体的なインターラクションは、コンストラクタのオプションで
    * 適切なオプションを false に設定することで除外することがで
    * きますが、インターラクションの順番は固定されています。イン
    * ターラクションに対して別の順番を指定したい場合は、独自の
    * ol.interaction.Interaction インスタンスを作成し、
    * ol.Map インスタンスを作成する前に、望む順番で  
    * ol.Collection にそれらを挿入する必要があります。
    * (ol3 API)
  *(訳注:インターラクションの順番は、API を参照してください。)
  */
    new ol.interaction.DragRotateAndZoom()
    /** ol.interaction.DragRotateAndZoom 
     * Allows the user to zoom and rotate the map by 
     * clicking and dragging on the map. By default, 
     * this interaction is limited to when the shift 
     * key is held down.
     * This interaction is only supported for mouse 
     * devices.
     * And this interaction is not included in the 
     * default interactions.
    * マップ上をクリックとドラッグすることで、マップをズーム
    * し、回転することを許可します。デフォルトでは、このイン
    * ターラクションは、シフトキーを押しているときに制限され
    * ています。
    * このインターラクションは、マウスデバイスだけサポートし
    * ます。
    * そして、このインターラクションは、デフォルトのインター
    * ラクションに含まれません。(ol3 API)
    */
   ]),
   view: new ol.View({
    center: [0, 0],
    zoom: 4
   })
  });
  mapComponent = Ext.create('GeoExt.component.Map', {
  /** create( [name], [args] ) : Object
   * Instantiate a class by either full name, alias or 
   * alternate name.
   * If Ext.Loader is enabled and the class has not been 
   * defined yet, it will attempt to load the class via 
   * synchronous loading.
   * 完全な名前、別名または代替名のいずれかによってクラスを
   * インスタンス化します。
   * Ext.Loader が有効になっており、クラスがまだ定義されて
   * いない場合は、同期ロードを経由してクラスをロードしよう
   * とします。(GeoExt doc[w/ext)
   */
   map: olMap
   /** map : ol.Map
    * A configured map or a configuration object for the 
    * map constructor.
    * 設定されたマップまたは map(マップ)コンストラクタの
    * 設定オブジェクト。
    */
  });
  mapPanel = Ext.create('Ext.panel.Panel', {
  /** Ext.panel.Panel
   * Panel is a container that has specific functionality 
   * and structural components that make it the perfect 
   * building block for application-oriented user interfaces.
   * Panels are, by virtue of their inheritance from 
   * Ext.container.Container, capable of being configured 
   * with a layout, and containing child Components.
   * パネルは、特定の機能とそれアプリケーション指向のユーザ
   * インターフェイスに最適なビルディングブロックにする構造
   * 的要素を持っているコンテナです。パネルは、
   * Ext.container.Container からの継承のおかげで、layout 
   * で構成し、子コンポーネントを含むことができます。
   * (GeoExt doc[w/ext])
   */
   title: 'GeoExt.component.OverviewMap Example',
   /** title : String
    * The title text to be used to display in the Panel 
    * Header. Or a config object for a Panel Title.
    * Panel Header に表示するために使用される title テキ
    * スト。または Panel Title のための config オブジェ
    * クト。(GeoExt doc[w/ext)
    */
   region: 'center',
   /** region : "north"/"south"/"east"/"west"/"center"
    * Defines the region inside border layout.
    * ボーダレイアウトの内側の領域を定義します。
    * (GeoExt doc[w/ext)
    */
   layout: 'fit',
   /** layout : Ext.enums.Layout/Object
    * Important: In order for child items to be correctly 
    * sized and positioned, typically a layout manager must 
    * be specified through the layout configuration option.
    * The sizing and positioning of child items is the 
    * responsibility of the Container's layout manager 
    * which creates and manages the type of layout you have 
    * in mind. 
    * 重要:子アイテムが正しいサイズと配置されるためには、
    * 一般的にレイアウトマネージャは、layout configuration 
    * option(レイアウト設定オプション)を使用して指定する
    * 必要があります。
    * 子アイテムのサイズと位置は、レイアウトの種類を管理す
    * るContainer's layout manager(コンテナレイアウトマ
    * ネージャ)の役割です。 
    * (GeoExt doc[w/ext)
    */
   border: false,
   /** border : Boolean
    * Specify as false to render the Panel with zero width 
    * borders.
    * Leaving the value as true uses the selected theme's 
    * $panel-border-width.
    * Defaults to false when using or extending Neptune.
    * Defaults to: true.
    * ゼロ幅の border(境界線)でパネルを描画するため false 
    * を指定します。
    * true として値を残すためには、選択されたテーマ 
    * $panel-border-width を使用します。
    * ネプチューン(Neptune Theme)を使用するか拡張すると
    * き、デフォルトは false です。
    * デフォルトは:true。
    * (GeoExt doc[w/ext)
    */
   items: [mapComponent]
   /** items : Object/Object[]
    * A single item, or an array of child Components to be 
    * added to this container
    * Unless configured with a layout, a Container simply 
    * renders child Components serially into its 
    * encapsulating element and performs no sizing or 
    * positioning upon them.
    * 単一の item(アイテム)、または子 Compornents(コン
    * ポーネント)の配列は、このコンテナに追加します。
    * layout(レイアウト)で構成されていない限り、Container
    * (コンテナ)は単に、子 Compornents(コンポーネント)
    * をそのカプセル化要素に直列にレンダリングし、それらに
    * サイズや位置調整も実行しません。
    * (GeoExt doc[w/ext)
    */
  });
  overviewMap1 = Ext.create('GeoExt.component.OverviewMap', {
   parentMap: olMap
   /** parentMap : ol.Map
    * A configured map or a configuration object for the map 
    * constructor. This should be the map the overviewMap is 
    * bind to.
    * 設定されたマップまたは map(マップ)コンストラクタの設定オ
    * ブジェクト。これは overviewMap がバインドされたマップであ
    * る必要があります。(GeoExt doc[w/ext)
    */
  });
  overviewMap2 = Ext.create('GeoExt.component.OverviewMap', {
   parentMap: olMap,
   magnification: 12,
   /** magnification : Number
    * The magnification is the relationship in which the 
    * resolution of the overviewmaps view is bigger then 
    * resolution of the parentMaps view. Defaults to: 5
    * magnification(倍率)は overviewmaps ビューの解像度が 
    * parentMaps ビューの解像度よりどのくらい大きいかという関
    * 係です。デフォルトは:5(GeoExt doc[w/ext)
    */
   layers: [layer2],
   /** layers : ol.Collection
    * An ol.Collection of ol.layers.Base. If not defined on 
    * construction, the layers of the parentMap will be used.
    * Defaults to: []
    * ol.layers.Base の ol.Collection。構造上で定義されていな
    * い場合、parentMap のレイヤが使用されます。デフォルトは:[]
    * (GeoExt doc[w/ext)
    */
   anchorStyle: new ol.style.Style({
   /** anchorStyle
    * (GeoExt doc[w/ext)
    */
   /** ol.style.Style 
    * Base class for vector feature rendering styles. Any 
    * changes made to the style or its children through 
    * set*() methods will not take effect until the feature 
    * or layer that uses the style is re-rendered.
    * ベクタフィーチャがスタイルを描画するための基本クラス。
    * スタイルや set*() メソッドを通じてその子に加えられた変
    * 更は、スタイルを使用するフィーチャまたはレイヤが再レン
    * ダリングされるまで有効になりません。
    * (ol3 API[説明は Stable Only のチェックを外すと表示])
    */
    image: new ol.style.Circle({
    /** ol.style.Circle
     * Set circle style for vector features.
     * ベクタフィーチャの円のスタイルを設定。(ol3 API)
     */
     radius: 7,
     fill: new ol.style.Fill({
     /** ol.style.Fill 
      * Set fill style for vector features.
      * ベクタフィーチャの塗りつぶしスタイルを設定。(ol3 API)
      */
      color: 'rgb(255, 204, 51)'
     })
    })
   }),
   boxStyle: new ol.style.Style({
    stroke: new ol.style.Stroke({
   /** ol.style.Stroke 
    * Set stroke style for vector features. 
    * Note that the defaults given are the Canvas defaults, 
    * which will be used if option is not defined. 
    * The get functions return whatever was entered 
    * in the options;  they will not return the default.
    * ベクタフィーチャのためのストロークスタイルの設定。
    * デフォルトは、オプションが定義されていない場合に使用され
    * る Canvas のデフォルトを与えられることに注意してください。
    * GET関数は、オプションで入力されたものはすべて返します。
    * それらはデフォルトを返しません。(ol3 API)
    */
     color: 'rgb(255, 204, 51)',
     width: 3
    }),
    fill: new ol.style.Fill({
     color: 'rgba(255, 204, 51, 0.2)'
    })
   })
  });
  description = Ext.create('Ext.panel.Panel', {
   contentEl: 'description',
   /** contentEl : String
    * Specify an existing HTML element, or the id of an 
    * existing HTML element to use as the content for this 
    * component.
    * This config option is used to take an existing HTML 
    * element and place it in the layout element of a new 
    * component (it simply moves the specified DOM element 
    * after the Component is rendered to use as the content.
    * 既存のHTMLエレメントを指定するか、既存のHTMLエレメン
    * トの id は、このコンポーネントのコンテンツとして使用
    * します。
    * Component(コンポーネント)が 、content(コンテンツ)
    * として使用するためにレンダリングされた後に、この設定オ
    * プションは、既存のHTMLエレメントを取得し、新しい 
    * component(コンポーネント)の layout(レイアウト)エレ
    * メントでそれを配置するために使用されます(それは単に指定
    * された DOM エレメントを移動させます)。
    * (GeoExt doc[w/ext)
    */
   title: 'Description',
   flex: 1,
   /** flex : Number
    * Flex may be applied to child items of a box layout 
    * (vbox or hbox). Each child item with a flex property 
    * will fill space (horizontally in hbox, vertically in 
    * vbox) according to that item's relative flex value 
    * compared to the sum of all items with a flex value 
    * specified.
    * Any child items that have either a flex of 0 or 
    * undefined will not be 'flexed' (the initial size will 
    * not be changed).
    * flex(フレックス)は、ボックスレイアウト(vbox または 
    * hbox)の子 item(アイテム)に適用することができます。flex 
    * プロパティを持つそれぞれの子 item は、指定された flex 値
    * を持つすべての item の合計と比べ、その item の相対的な 
    * flex 値に応じて(vbox に垂直方向、hbox に水平方向)スペー
    * スを埋めます。
    * 0 flex または、未定義のいずれかを持っている任意の子 item 
    * は、「(ウィンドウに合わせて)伸縮」されることはありません
    * (初期サイズは変更されません)。
    * (GeoExt doc[w/ext)
    */
   border: false,
   bodyPadding: 5,
   /** bodyPadding : Number/String
    * A shortcut for setting a padding style on the body 
    * element. The value can either be a number to be 
    * applied to all sides, or a normal css string 
    * describing padding.
    * bodyエレメントにパディングスタイルを設定するための
    * ショートカット。値は、すべての側面に適用される数字、
    * または通常のCSSの文字列記述パディングのいずれかにで
    * きます。
    * (GeoExt doc[w/ext)
    */
   autoScroll: true
   /** autoScroll : Booleandeprecated
    * This cfg has been deprected since 5.1.0
    * Use scrollable instead
    */
  });
  ovMapPanel1 = Ext.create('Ext.panel.Panel', {
   title: 'OverviewMap (default)',
   flex: 1,
   layout: 'fit',
   items: overviewMap1
  });
  ovMapPanel2 = Ext.create('Ext.panel.Panel', {
   title: 'OverviewMap (configured)',
   flex: 1,
   layout: 'fit',
   items: overviewMap2
  });
  Ext.create('Ext.Viewport', {
  /** Ext.Viewport (Ext.container.Viewport)
   * A specialized container representing the viewable 
   * application area (the browser viewport).
   * The Viewport renders itself to the document body, 
   * and automatically sizes itself to the size of the 
   * browser viewport and manages window resizing. There 
   * may only be one Viewport created in a page.
   * 表示可能なアプリケーション領域(ブラウザのビューポート)
   * を表す特殊なコンテナ。
   * Viewport は、document body にそれ自身をレンダリングし、
   * 自動的に自身のサイズをブラウザのビューポートのサイズにし、
   * ウィンドウのサイズ変更を管理します。1ページに作成した
   * ビューポートは一つだけ設定できます。
   * (GeoExt doc[w/ext])
   */
   layout: "border",
   items: [
    mapPanel,
    {
     xtype: 'panel',
     /** xtype : Ext.enums.Widget
      * Note: Only applies to Ext.Component derived classes 
      * when used as a config in Ext.define.
      * This property provides a shorter alternative to 
      * creating objects than using a full class name. Using 
      * xtype is the most common way to define component 
      * instances, especially in a container.
      * 注:Ext.define で設定として使用された場合、派生クラスを 
      * Ext.Component にのみ適用されます。
      * このプロパティは、完全なクラス名を使用するよりも、オブ
      * ジェクトを作成する短い代替手段を提供します。 xtype を使
      * 用することは、特にコンテナで、コンポーネントのインスタン
      * スを定義する最も一般的な方法です。 
      * (GeoExt doc[w/ext])
      */
     region: 'east',
     width: 400,
     border: false,
     /** border : Boolean
      * Specify as false to render the Panel with zero width 
      * borders.
      * Leaving the value as true uses the selected theme's 
      * $panel-border-width.
      * Defaults to false when using or extending Neptune.
      * Defaults to: true.
      * Overrides: Ext.Component.border
      * ゼロ幅の border(境界線)でパネルを描画するため false 
      * を指定します。
      * true として値を残すためには、選択されたテーマ 
      * $panel-border-width を使用します。
      * ネプチューン(Neptune Theme)を使用するか拡張するとき、
      * デフォルトは false です。
      * デフォルトは:true。
      * 上書き:  Ext.Component.border
      * (GeoExt doc[w/ext])
      */
     layout: {
     /** layout [Specify as an Object]
      * type
      * The layout type to be used for this container. If 
      * not specified, a default Ext.layout.container.Auto 
      * will be created and used.
      * Valid layout type values are listed in 
      * Ext.enums.Layout. 
      * Layout specific configuration properties
      * Additional layout specific configuration properties 
      * may also be specified. For complete details 
      * regarding the valid config options for each layout 
      * type, see the layout class corresponding to the type 
      * specified.
      * type(タイプ)
      * layout type(レイアウトタイプ)は、この container(コン
      * テナ)に使用されます。
      * 指定しない場合、デフォルトの Ext.layout.container.Auto 
      * が作成および使用されます。
      * 有効な layout type の値は Ext.enums.Layout に記載され
      * ています。
      * layout(レイアウト)固有の設定プロパティー
      * 追加の layout 固有の構成プロパティを指定することもできま
      * す。各 layout type に有効な設定オプションに関する詳細に
      * ついては、指定された type に対応する layout クラスを参照
      * してください。(GeoExt doc[w/ext])
      */
      type: 'vbox',
      align: 'stretch'
     },
     items: [
      ovMapPanel1,
      description,
      ovMapPanel2
     ]
    }
   ]
  });
 }
});

0 件のコメント: