「2141-ol3ex.js」
var format = new ol.format.TopoJSON(); /** ol.format.TopoJSON * Feature format for reading and writing data * in the TopoJSON format. * TopoJSON フォーマットでデータを読み書きするためのフィー * チャのフォーマット。(ol3 API) */
var tileGrid = ol.tilegrid.createXYZ({ maxZoom: 19 }); /** ol.tilegrid.createXYZ(opt_options) * Creates a tile grid with a standard XYZ tiling * scheme. * 標準のXYZタイルスキーマを持つタイルグリッドを作成します。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
/** maxZoom: * Maximum zoom. The default is ol.DEFAULT_MAX_ZOOM. * This determines the number of levels in the grid * set. For example, a maxZoom of 21 means there are * 22 levels in the grid set. * 最大ズーム。デフォルトはol.DEFAULT_MAX_ZOOMです。これは、 * グリッドのセット内のレベルの数を決定します。たとえば、21 * のmaxZoom は、グリッドセット内に 22 のレベルがあることを * 意味します。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
var roadStyleCache = {}; var roadColor = { 'major_road': '#776', 'minor_road': '#ccb', 'highway': '#f39' }; var landuseStyleCache = {};
var buildingStyle = new ol.style.Style({ /** ol.style.Style * Container 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 のチェックを外すと表示]) */
fill: new ol.style.Fill({ /** ol.style.Fill * Set fill style for vector features. * ベクタフィーチャの塗りつぶしスタイルを設定。(ol3 API) */
color: '#666', opacity: 0.4 }),
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[説明は Stable Only のチェックを外すと表示]) */
color: '#444', /** color: * Color. See ol.color for possible formats. Default * null; if null, the Canvas/renderer default black * will be used. * 色。可能なフォーマットについては ol.color を参照してくださ * い。デフォルトは null; null の場合、Canvas/renderer デ * フォルトの黒が使用されます。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
width: 1 }) });
var map = new ol.Map({ layers: [ new ol.layer.VectorTile({ /** ol.layer.VectorTile * Layer for vector tile data that is rendered client-side. * クライアント側でレンダリングされるベクタタイルデータのレイ * ヤ。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
source: new ol.source.VectorTile({ /** ol.source.VectorTile * Class for layer sources providing vector data * divided into a tile grid, to be used with * ol.layer.VectorTile. Although this source receives * tiles with vector features from the server, it is * not meant for feature editing. Features are optimized * for rendering, their geometries are clipped at or * near tile boundaries and simplified for a view * resolution. See ol.source.Vector for vector sources * that are suitable for feature editing. * ol.layer.VectorTile を使用するために、タイルのグリッドに * 分割されたベクタデータを提供するレイヤソースのクラス。この * ソースは、サーバからのベクタフィーチャと共にタイルを受信し * ますが、それはフィーチャ編集のためのものではありません。 * フィーチャは、レンダリングのために最適化され、そのジオメト * リはタイルに、または、その境界付近にクリップされ、ビューの * 解像度のために簡略化されます。フィーチャの編集に適したベク * タソースための ol.source.Vector を参照してください。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
format: format, /** format: * Feature format for tiles. Used and required by the * default tileLoadFunction. * タイルのフィーチャフォーマット。デフォルトの * tileLoadFunction によって使用され必要とされます。 * (ol3 API[説明は Stable Only のチェックを外すと表示]) */
tileGrid: tileGrid, url: 'http://{a-c}.tile.openstreetmap.us/' + 'vectiles-water-areas/{z}/{x}/{y}.topojson' }), style: new ol.style.Style({ fill: new ol.style.Fill({ color: '#9db9e8' }) }) }), new ol.layer.VectorTile({ source: new ol.source.VectorTile({ format: format, tileGrid: tileGrid, url: 'http://{a-c}.tile.openstreetmap.us/' + 'vectiles-highroad/{z}/{x}/{y}.topojson' }),
style: function(feature, resolution) { /** style: * Layer style. See ol.style for default style which * will be used if this is not defined. * レイヤースタイル。これが定義されていない場合に使用される * デフォルトスタイルの ol.style を参照してください。 * (ol3 API) */
var kind = feature.get('kind'); /** get(key) * Gets a value.Gets a value.(ol3 API) */
var railway = feature.get('railway'); var sort_key = feature.get('sort_key'); var styleKey = kind + '/' + railway + '/' + sort_key; var style = roadStyleCache[styleKey]; if (!style) { var color, width; if (railway) { color = '#7de'; width = 1; } else { color = roadColor[kind];
width = kind == 'highway' ? 1.5 : 1; /** 条件演算子 condition ? expr1 : expr2 * condition: true か false かを評価する条件文です。 * expr1, expr2: 各々の値の場合に実行する式です。 * condition が true の場合、演算子は expr1 の値を * 選択します。そうでない場合は expr2 の値を選択します。 * (MDN[https://developer.mozilla.org/ja/docs/Web/ * JavaScript/Guide/Expressions_and_Operators]) */
} style = new ol.style.Style({ stroke: new ol.style.Stroke({ color: color, width: width }), zIndex: sort_key }); roadStyleCache[styleKey] = style; } return style; } }), new ol.layer.VectorTile({ source: new ol.source.VectorTile({ format: format, tileGrid: tileGrid, url: 'http://{a-c}.tile.openstreetmap.us/' + 'vectiles-buildings/{z}/{x}/{y}.topojson' }), style: function(f, resolution) { return (resolution < 10) ? buildingStyle : null; } }), new ol.layer.VectorTile({ source: new ol.source.VectorTile({ format: format, tileGrid: tileGrid, url: 'http://{a-c}.tile.openstreetmap.us/' + 'vectiles-land-usages/{z}/{x}/{y}.topojson' }),
visible: false, /** visible: * Visibility. Default is true (visible). * (ol3 API) */
style: function(feature, resolution) { var kind = feature.get('kind'); var styleKey = kind; var style = landuseStyleCache[styleKey]; if (!style) { var color, width; color = { 'parking': '#ddd', 'industrial': '#aaa', 'urban area': '#aaa', 'park': '#76C759', 'school': '#DA10E7', 'garden': '#76C759', 'pitch': '#D58F8D', 'scrub': '#3E7D28', 'residential': '#4C9ED9' }[kind]; width = kind == 'highway' ? 1.5 : 1; style = new ol.style.Style({ stroke: new ol.style.Stroke({ color: color, width: width }), fill: new ol.style.Fill({ color: color, opacity: 0.5 }) }); landuseStyleCache[styleKey] = style; } return style; } }) ], target: 'map', view: new ol.View({
center: ol.proj.fromLonLat([-74.0064, 40.7142]), /** ol.proj.fromLonLat(coordinate, opt_projection) * Transforms a coordinate from longitude/latitude to a * different projection. * 緯度/経度座標から異なる投影に変換します。(ol3 API) */
maxZoom: 19, zoom: 15 }) });
0 件のコメント:
コメントを投稿