「2130-ol3ex.js」
var stroke = new ol.style.Stroke({color: 'black', width: 1}); /** 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[説明は Stable Only のチェックを外すと表示]) */
var styles = {
'square': [new ol.style.Style({ /** ol.style.Style * Base class for vector feature rendering styles. * ベクタフィーチャがスタイルを描画するための基本クラス。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
image: new ol.style.RegularShape({ /** ol.style.RegularShape * Set regular shape style for vector features. The * resulting shape will be a regular polygon when * radius is provided, or a star when radius1 and * radius2 are provided. * ベクタフィーチャの規則的な形状のスタイルを設定します。生じた * 形状は、radius が提供されたとき正多角形になり、または、 * radius1 と radius2 が提供されたとき星形になります。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
fill: new ol.style.Fill({color: 'blue'}), /** ol.style.Fill * Set fill style for vector features. * ベクタフィーチャの塗りつぶしスタイルを設定。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
stroke: stroke, points: 4, radius: 80,
angle: Math.PI / 4 /** Math.PI() * 円周率。約 3.14159 です。 * (MDN[https://developer.mozilla.org/ja/docs/Web * /JavaScript/Reference/Global_Objects/Math/PI]) */
}) })], 'triangle': [new ol.style.Style({ image: new ol.style.RegularShape({ fill: new ol.style.Fill({color: 'red'}), stroke: stroke, points: 3, radius: 80, rotation: Math.PI / 4, angle: 0 }) })], 'star': [new ol.style.Style({ image: new ol.style.RegularShape({ fill: new ol.style.Fill({color: 'green'}), stroke: stroke, points: 5, radius: 80, radius2: 4, angle: 0 }) })] };
function createLayer(coordinates, styles, zIndex) {
var feature = new ol.Feature(new ol.geom.Point(coordinates)); /** ol.Feature * A vector object for geographic features with a geometry * and other attribute properties, similar to the features * in vector file formats like GeoJSON. * GeoJSONのようなベクトルファイル形式のフィーチャに類似した、 * ジオメトリとその他の属性プロパティを持つ地物フィーチャのため * のベクトルオブジェクト。(ol3 API) */
/** ol.geom.Point * Point geometry.(ol3 API) */
feature.setStyle(styles);
var source = new ol.source.Vector({ /** ol.source.Vector * Provides a source of features for vector layers. * ベクタレイヤのフィーチャのソースを用意します。(ol3 API) */
features: [feature] });
var vectorLayer = new ol.layer.Vector({ /** ol.layer.Vector * Vector data that is rendered client-side. * クライアント側で描画されたベクタデータ。(ol3 API) */
source: source });
vectorLayer.setZIndex(zIndex); /** setZIndex(zindex) * Set Z-index of the layer, which is used to order layers * before rendering. The default Z-index is 0. * 描画の前にレイヤを並べるために使用される、レイヤの Z-index を * 設定します。デフォルトの Z-index は、0 です。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
return vectorLayer; } var layer0 = createLayer([40, 40], styles['star'], 0); var layer1 = createLayer([0, 0], styles['square'], 1); var layer2 = createLayer([0, 40], styles['triangle'], 0); var layers = [];
layers.push(layer1); /** push(elem) * Insert the provided element at the end of the * collection. * コレクションの最後に供給されたエレメントに挿入します。 * Name: elem, Type: T, Description: Element * (ol3 API) */
layers.push(layer2); var map = new ol.Map({ layers: layers, target: 'map', view: new ol.View({ center: [0, 0], zoom: 18 }) });
layer0.setMap(map); /** setMap(map) * Sets the layer to be rendered on a map. The map will * not manage this layer in its layers collection, layer * filters in ol.Map#forEachLayerAtPixel will not filter * the layer, and it will be rendered on top. This is * useful for temporary layers. To remove an unmanaged * layer from the map, use #setMap(null). * To add the layer to a map and have it managed by * the map, use ol.Map#addLayer instead. * 地図上に描画するためにレイヤを設定します。マップは、このレ * イヤをレイヤコレクションで管理しません。そして、 * ol.Map#forEachLayerAtPixel のレイヤフィルタは、レイヤ * にフィルタを適用しません。そして、それは一番上にレンダリン * グされます。これは一時的なレイヤのために有用です。マップか * ら管理されていないレイヤを除去するには、#setMap(null)を * 使用します。 * マップにレイヤを追加し、それをマップによって管理させるため * には、代わりに ol.Map#addLayer を使用してください。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
function bindInputs(id, layer) { var idxInput = $('#idx' + id);
idxInput.on('input change', function() { /** .on() * Attach an event handler function for one or more events * to the selected elements. * イベントハンドラ関数を選択した要素(エレメント)に1つまたは * それ以上のイベントで取り付けます。 * (jQuery[http://api.jquery.com/on/]) */
layer.setZIndex(parseInt(this.value, 10) || 0); /** parseInt(string, radix) * str: 文字列, radix: 基数(進法) * 文字列の引数をパースし、指定された基数の整数を返します。 * (MDN[https://developer.mozilla.org/ja/docs/Web/ * JavaScript/Reference/Global_Objects/parseInt]) */
});
idxInput.val(String(layer.getZIndex())); /** .val() * Get the current value of the first element in the set * of matched elements or set the value of every matched * element. * マッチした要素のセットの最初の要素(エレメント)の現在の値を * 取得したり、すべての一致した要素の値を設定します。 * (jQuery[http://api.jquery.com/val/]) */
} bindInputs(1, layer1); bindInputs(2, layer2);
0 件のコメント:
コメントを投稿