Compare commits
125 Commits
v3.0.0-bet
...
v3.0.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12d4cb5752 | ||
|
|
193d5c9ac1 | ||
|
|
a083c6149a | ||
|
|
9b4f61be3e | ||
|
|
d552dfd96d | ||
|
|
ec6aa21912 | ||
|
|
d087fdbefd | ||
|
|
fd170eb295 | ||
|
|
3dd5fb88e5 | ||
|
|
fbdbbfb7a7 | ||
|
|
29b643c7b0 | ||
|
|
cdd1922350 | ||
|
|
c17ac0cae3 | ||
|
|
aaf6101d0f | ||
|
|
b758d92790 | ||
|
|
758eed357e | ||
|
|
a28db38eef | ||
|
|
b6277e0a01 | ||
|
|
88e41f25ea | ||
|
|
fe5d8712f2 | ||
|
|
7c68107b17 | ||
|
|
88d67b7370 | ||
|
|
1273c26f7a | ||
|
|
c692204ffd | ||
|
|
d3e477a8df | ||
|
|
e53fde402b | ||
|
|
11b49d6305 | ||
|
|
fb497f5288 | ||
|
|
457cfe851a | ||
|
|
9800b38250 | ||
|
|
debbd83d8b | ||
|
|
b64c63ea24 | ||
|
|
3742b3c816 | ||
|
|
3c308af91f | ||
|
|
2c7282d4e9 | ||
|
|
09621af085 | ||
|
|
b91d8871df | ||
|
|
1f3f1e1cc7 | ||
|
|
b41ee35422 | ||
|
|
90c0944617 | ||
|
|
a5620fa46a | ||
|
|
475be37ef4 | ||
|
|
77dfc29b5c | ||
|
|
d7296602fc | ||
|
|
2a45d3b41b | ||
|
|
35715da4e6 | ||
|
|
68773941d3 | ||
|
|
74d83f29d2 | ||
|
|
9c6987aa78 | ||
|
|
635dd5f380 | ||
|
|
928e3244cf | ||
|
|
0e6b72f94d | ||
|
|
f9c0f12f23 | ||
|
|
962ddff1c2 | ||
|
|
cd878e0ef8 | ||
|
|
d00e515412 | ||
|
|
a46f8647f9 | ||
|
|
16d7999deb | ||
|
|
1d688ad29d | ||
|
|
3ffed43834 | ||
|
|
05217496f7 | ||
|
|
f0d159d6ef | ||
|
|
fa1d79016d | ||
|
|
8c1c775f85 | ||
|
|
4e965123c8 | ||
|
|
551dd94494 | ||
|
|
53d3c695f4 | ||
|
|
663e7af0d2 | ||
|
|
a277cbf548 | ||
|
|
f59b3e968b | ||
|
|
cb1edd262d | ||
|
|
b5873ff866 | ||
|
|
251996f789 | ||
|
|
1da879ef06 | ||
|
|
4d548d99a7 | ||
|
|
38f8774cc4 | ||
|
|
2a0026bed3 | ||
|
|
ce2b52d4fc | ||
|
|
9b5512c065 | ||
|
|
738fe65268 | ||
|
|
ef27f14376 | ||
|
|
756f407ef4 | ||
|
|
60ab837025 | ||
|
|
5755ea3be2 | ||
|
|
df3319328d | ||
|
|
6826829786 | ||
|
|
12840aa49f | ||
|
|
050f0cede6 | ||
|
|
b80c6d5c61 | ||
|
|
e72b383976 | ||
|
|
5147a0b060 | ||
|
|
c2bd829a5f | ||
|
|
3946b92595 | ||
|
|
f9388749d4 | ||
|
|
42adc23e86 | ||
|
|
59c3857afd | ||
|
|
3c86dba3a8 | ||
|
|
00917b7262 | ||
|
|
7e604d6ed3 | ||
|
|
e03054f17f | ||
|
|
00bc424098 | ||
|
|
5248bb7a4b | ||
|
|
baca25ed95 | ||
|
|
ee1b4e08a1 | ||
|
|
e4c2cf0b63 | ||
|
|
21d9aa2115 | ||
|
|
6b1a4dc88b | ||
|
|
bbb3527ac7 | ||
|
|
98ec656981 | ||
|
|
3c92b693c5 | ||
|
|
04a33220a8 | ||
|
|
9e33672503 | ||
|
|
acb0fd8f06 | ||
|
|
03cc1c5a01 | ||
|
|
b4031efc71 | ||
|
|
6d3bbe61ce | ||
|
|
17ed43d230 | ||
|
|
aa6c188da6 | ||
|
|
ffb61b49d0 | ||
|
|
4561e0b901 | ||
|
|
ce0b1d2a47 | ||
|
|
eac9b71b95 | ||
|
|
de60b15e36 | ||
|
|
1da40b6d02 | ||
|
|
280e3e4ebf |
@@ -1,10 +1,5 @@
|
|||||||
before_install:
|
before_install:
|
||||||
- "sudo pip install -r requirements.txt"
|
- "sudo pip install -r requirements.txt"
|
||||||
- "git clone --depth=50 https://github.com/jsdoc3/jsdoc build/jsdoc"
|
|
||||||
- "cd build/jsdoc"
|
|
||||||
- "git fetch origin refs/tags/v3.2.2:refs/tags/v3.2.2"
|
|
||||||
- "git checkout tags/v3.2.2"
|
|
||||||
- "cd ../.."
|
|
||||||
- "npm install"
|
- "npm install"
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
@@ -13,4 +8,4 @@ before_script:
|
|||||||
- "rm src/ol/renderer/webgl/*shader.js"
|
- "rm src/ol/renderer/webgl/*shader.js"
|
||||||
- "sleep 3"
|
- "sleep 3"
|
||||||
|
|
||||||
script: "./build.py JSDOC=build/jsdoc/jsdoc integration-test"
|
script: "./build.py integration-test"
|
||||||
|
|||||||
@@ -13,16 +13,20 @@
|
|||||||
"src/googx/dom/fullscreen.js"
|
"src/googx/dom/fullscreen.js"
|
||||||
],
|
],
|
||||||
"include": [
|
"include": [
|
||||||
"src"
|
"src",
|
||||||
|
"externs/oli.js",
|
||||||
|
"externs/olx.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"plugins/markdown",
|
"node_modules/jsdoc/plugins/markdown",
|
||||||
"apidoc/plugins/inheritdoc",
|
"apidoc/plugins/inheritdoc",
|
||||||
"apidoc/plugins/exports",
|
"apidoc/plugins/interface",
|
||||||
|
"apidoc/plugins/typedefs",
|
||||||
|
"apidoc/plugins/inheritdoc",
|
||||||
|
"apidoc/plugins/api",
|
||||||
"apidoc/plugins/todo",
|
"apidoc/plugins/todo",
|
||||||
"apidoc/plugins/observable",
|
"apidoc/plugins/observable"
|
||||||
"apidoc/plugins/stability"
|
|
||||||
],
|
],
|
||||||
"markdown": {
|
"markdown": {
|
||||||
"parser": "gfm"
|
"parser": "gfm"
|
||||||
|
|||||||
77
apidoc/plugins/api.js
Normal file
77
apidoc/plugins/api.js
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
/**
|
||||||
|
* Define an @api tag
|
||||||
|
*/
|
||||||
|
var conf = env.conf.stability;
|
||||||
|
var defaultLevels = ["deprecated","experimental","unstable","stable","frozen","locked"];
|
||||||
|
var levels = conf.levels || defaultLevels;
|
||||||
|
var util = require('util');
|
||||||
|
exports.defineTags = function(dictionary) {
|
||||||
|
dictionary.defineTag('api', {
|
||||||
|
mustHaveValue: false,
|
||||||
|
canHaveType: false,
|
||||||
|
canHaveName: false,
|
||||||
|
onTagged: function(doclet, tag) {
|
||||||
|
var level = tag.text || "experimental";
|
||||||
|
if (levels.indexOf(level) >= 0) {
|
||||||
|
doclet.stability = level;
|
||||||
|
} else {
|
||||||
|
var errorText = util.format('Invalid stability level (%s) in %s line %s', tag.text, doclet.meta.filename, doclet.meta.lineno);
|
||||||
|
require('jsdoc/util/error').handle( new Error(errorText) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Based on @stability annotations, and assuming that items with no @stability
|
||||||
|
* annotation should not be documented, this plugin removes undocumented symbols
|
||||||
|
* from the documentation. Undocumented classes with documented members get a
|
||||||
|
* 'hideConstructur' property, which is read by the template so it can hide the
|
||||||
|
* constructor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function hasApiMembers(doclet) {
|
||||||
|
return doclet.longname.split('#')[0] == this.longname;
|
||||||
|
}
|
||||||
|
|
||||||
|
var api = [];
|
||||||
|
|
||||||
|
exports.handlers = {
|
||||||
|
|
||||||
|
newDoclet: function(e) {
|
||||||
|
var doclet = e.doclet;
|
||||||
|
// Keep track of api items - needed in parseComplete to determine classes
|
||||||
|
// with api members.
|
||||||
|
if (doclet.stability) {
|
||||||
|
api.push(doclet);
|
||||||
|
}
|
||||||
|
// Mark explicity defined namespaces - needed in parseComplete to keep
|
||||||
|
// namespaces that we need as containers for api items.
|
||||||
|
if (/.*\.jsdoc$/.test(doclet.meta.filename) && doclet.kind == 'namespace') {
|
||||||
|
doclet.namespace_ = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
parseComplete: function(e) {
|
||||||
|
var doclets = e.doclets;
|
||||||
|
for (var i = doclets.length - 1; i >= 0; --i) {
|
||||||
|
var doclet = doclets[i];
|
||||||
|
// Always document namespaces and items with stability annotation
|
||||||
|
if (doclet.stability || doclet.namespace_) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (doclet.kind == 'class' && api.some(hasApiMembers, doclet)) {
|
||||||
|
// Mark undocumented classes with documented members as unexported.
|
||||||
|
// This is used in ../template/tmpl/container.tmpl to hide the
|
||||||
|
// constructor from the docs.
|
||||||
|
doclet.hideConstructor = true;
|
||||||
|
} else {
|
||||||
|
// Remove all other undocumented symbols
|
||||||
|
doclets.splice(i, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
@@ -1,118 +0,0 @@
|
|||||||
/*
|
|
||||||
* This plugin parses externs/oli.js as well as goog.exportSymbol and
|
|
||||||
* goog.exportProperty calls to build a list of API symbols and properties.
|
|
||||||
* Unexported modules linked from @param or @fires will be marked unexported,
|
|
||||||
* and the documentation will not contain the constructor. Everything else is
|
|
||||||
* marked undocumented, which will remove it from the docs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var api = [];
|
|
||||||
var unexported = [];
|
|
||||||
|
|
||||||
function collectExports(source) {
|
|
||||||
var i, ii, symbol, property;
|
|
||||||
var syms = source.match(/goog\.exportSymbol\([^\)]*\)/g);
|
|
||||||
if (syms) {
|
|
||||||
i = 0; ii = syms.length;
|
|
||||||
for (; i < ii; ++i) {
|
|
||||||
symbol = syms[i].match(/'([^']*)'/)[1];
|
|
||||||
api.push(symbol);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var props = source.match(/goog\.exportProperty\([^\)]*\)/g);
|
|
||||||
if (props) {
|
|
||||||
i = 0; ii = props.length;
|
|
||||||
for (; i < ii; ++i) {
|
|
||||||
property = props[i].match(/[^,]*,[^,]*,\r?\n? *([^\)]*)\)/)[1]
|
|
||||||
.replace('.prototype.', '#');
|
|
||||||
api.push(property);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function collectOliExports(source) {
|
|
||||||
var oli = source.match(/[^\{]oli\.([^;^ ]*);? ?/g);
|
|
||||||
if (oli) {
|
|
||||||
i = 0; ii = oli.length;
|
|
||||||
for (; i < ii; ++i) {
|
|
||||||
property = 'ol.' + oli[i].match(/oli.([^;]*)/)[1]
|
|
||||||
.replace('.prototype.', '#');
|
|
||||||
unexported.push(property);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var encoding = env.conf.encoding || 'utf8';
|
|
||||||
var fs = require('jsdoc/fs');
|
|
||||||
collectExports(fs.readFileSync('build/src/external/src/exports.js', encoding));
|
|
||||||
collectOliExports(fs.readFileSync('externs/oli.js', encoding));
|
|
||||||
|
|
||||||
|
|
||||||
exports.handlers = {
|
|
||||||
|
|
||||||
beforeParse: function(e) {
|
|
||||||
if (/\.js$/.test(e.filename)) {
|
|
||||||
collectExports(e.source);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
newDoclet: function(e) {
|
|
||||||
var i, ii, j, jj;
|
|
||||||
if (e.doclet.meta.filename == "objectliterals.jsdoc" && e.doclet.properties) {
|
|
||||||
for (i = 0, ii = e.doclet.properties.length; i < ii; ++i) {
|
|
||||||
if (e.doclet.properties[i].type && e.doclet.properties[i].type.names) {
|
|
||||||
for (j = 0, jj = e.doclet.properties[i].type.names.length; j < jj; ++j) {
|
|
||||||
if (e.doclet.properties[i].type.names[j].indexOf('ol') == 0) {
|
|
||||||
if (api.indexOf(e.doclet.properties[i].type.names[j]) === -1) {
|
|
||||||
api.push(e.doclet.properties[i].type.names[j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (api.indexOf(e.doclet.longname) > -1) {
|
|
||||||
var names, name;
|
|
||||||
var params = e.doclet.params;
|
|
||||||
if (params) {
|
|
||||||
for (i = 0, ii = params.length; i < ii; ++i) {
|
|
||||||
names = params[i].type.names;
|
|
||||||
if (names) {
|
|
||||||
for (j = 0, jj=names.length; j < jj; ++j) {
|
|
||||||
name = names[j];
|
|
||||||
if (unexported.indexOf(name) === -1) {
|
|
||||||
unexported.push(name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var links = e.doclet.comment.match(/\{@link ([^\}]*)\}/g);
|
|
||||||
if (links) {
|
|
||||||
for (i=0, ii=links.length; i < ii; ++i) {
|
|
||||||
var link = links[i].match(/\{@link (.*)\}/)[1];
|
|
||||||
if (unexported.indexOf(link) === -1) {
|
|
||||||
unexported.push(link);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
parseComplete: function(e) {
|
|
||||||
for (var j = e.doclets.length - 1; j >= 0; --j) {
|
|
||||||
var doclet = e.doclets[j];
|
|
||||||
if (doclet.kind == 'namespace' || doclet.kind == 'event' || doclet.fires) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var fqn = doclet.longname;
|
|
||||||
if (fqn) {
|
|
||||||
doclet.unexported = (api.indexOf(fqn) === -1 && unexported.indexOf(fqn) !== -1);
|
|
||||||
if (api.indexOf(fqn) === -1 && unexported.indexOf(fqn) === -1) {
|
|
||||||
e.doclets.splice(j, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
@@ -5,11 +5,104 @@
|
|||||||
* TODO: Remove this hack when https://github.com/jsdoc3/jsdoc/issues/53
|
* TODO: Remove this hack when https://github.com/jsdoc3/jsdoc/issues/53
|
||||||
* is addressed.
|
* is addressed.
|
||||||
*/
|
*/
|
||||||
exports.nodeVisitor = {
|
|
||||||
|
|
||||||
visitNode: function(node, e, parser, currentSourceName) {
|
|
||||||
if (/@(inheritDoc)(\n|\r)/.test(e.comment)) {
|
exports.defineTags = function(dictionary) {
|
||||||
e.preventDefault = true;
|
dictionary.defineTag('inheritDoc', {
|
||||||
|
mustHaveValue: false,
|
||||||
|
canHaveType: false,
|
||||||
|
canHaveName: false,
|
||||||
|
onTagged: function(doclet, tag) {
|
||||||
|
doclet.inheritdoc = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var lookup = {};
|
||||||
|
var incompleteByClass = {};
|
||||||
|
var keepKeys = ['comment', 'meta', 'name', 'memberof', 'longname', 'augment',
|
||||||
|
'stability'];
|
||||||
|
|
||||||
|
exports.handlers = {
|
||||||
|
|
||||||
|
newDoclet: function(e) {
|
||||||
|
var doclet = e.doclet;
|
||||||
|
var incompletes;
|
||||||
|
if (!(doclet.longname in lookup)) {
|
||||||
|
lookup[doclet.longname] = [];
|
||||||
|
}
|
||||||
|
lookup[doclet.longname].push(doclet);
|
||||||
|
if (doclet.inheritdoc) {
|
||||||
|
if (!(doclet.memberof in incompleteByClass)) {
|
||||||
|
incompleteByClass[doclet.memberof] = [];
|
||||||
|
}
|
||||||
|
incompletes = incompleteByClass[doclet.memberof];
|
||||||
|
if (incompletes.indexOf(doclet.name) == -1) {
|
||||||
|
incompletes.push(doclet.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
parseComplete: function(e) {
|
||||||
|
var ancestors, candidate, candidates, doclet, i, j, k, l, key;
|
||||||
|
var incompleteDoclet, stability, incomplete, incompletes;
|
||||||
|
var doclets = e.doclets;
|
||||||
|
for (i = doclets.length - 1; i >= 0; --i) {
|
||||||
|
doclet = doclets[i];
|
||||||
|
if (doclet.augments) {
|
||||||
|
ancestors = [].concat(doclet.augments);
|
||||||
|
}
|
||||||
|
incompletes = incompleteByClass[doclet.longname];
|
||||||
|
if (ancestors && incompletes) {
|
||||||
|
// collect ancestors from the whole hierarchy
|
||||||
|
for (j = 0; j < ancestors.length; ++j) {
|
||||||
|
candidates = lookup[ancestors[j]];
|
||||||
|
if (candidates) {
|
||||||
|
for (k = candidates.length - 1; k >= 0; --k) {
|
||||||
|
candidate = candidates[k];
|
||||||
|
if (candidate.augments) {
|
||||||
|
ancestors = ancestors.concat(candidate.augments);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// walk through all inheritDoc members
|
||||||
|
for (j = incompletes.length - 1; j >= 0; --j) {
|
||||||
|
incomplete = incompletes[j];
|
||||||
|
candidates = lookup[doclet.longname + '#' + incomplete];
|
||||||
|
if (candidates) {
|
||||||
|
// get the incomplete doclet that needs to be augmented
|
||||||
|
for (k = candidates.length - 1; k >= 0; --k) {
|
||||||
|
incompleteDoclet = candidates[k];
|
||||||
|
if (incompleteDoclet.inheritdoc) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// find the documented ancestor
|
||||||
|
for (k = ancestors.length - 1; k >= 0; --k) {
|
||||||
|
candidates = lookup[ancestors[k] + '#' + incomplete];
|
||||||
|
if (candidates) {
|
||||||
|
for (l = candidates.length - 1; l >= 0; --l) {
|
||||||
|
candidate = candidates[l];
|
||||||
|
if (candidate && !candidate.inheritdoc) {
|
||||||
|
stability = candidate.stability || incompleteDoclet.stability
|
||||||
|
if (stability) {
|
||||||
|
incompleteDoclet.stability = stability;
|
||||||
|
for (key in candidate) {
|
||||||
|
if (candidate.hasOwnProperty(key) &&
|
||||||
|
keepKeys.indexOf(key) == -1) {
|
||||||
|
incompleteDoclet[key] = candidate[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
26
apidoc/plugins/interface.js
Normal file
26
apidoc/plugins/interface.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
var util = require('util');
|
||||||
|
exports.defineTags = function(dictionary) {
|
||||||
|
|
||||||
|
var classTag = dictionary.lookUp('class');
|
||||||
|
dictionary.defineTag('interface', {
|
||||||
|
mustHaveValue: false,
|
||||||
|
onTagged: function(doclet, tag) {
|
||||||
|
classTag.onTagged.apply(this, arguments);
|
||||||
|
doclet.interface = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var augmentsTag = dictionary.lookUp('augments');
|
||||||
|
dictionary.defineTag('implements', {
|
||||||
|
mustHaveValue: true,
|
||||||
|
onTagged: function(doclet, tag) {
|
||||||
|
tag.value = tag.value.match(/^\{?([^\}]*)\}?$/)[1];
|
||||||
|
augmentsTag.onTagged.apply(this, arguments);
|
||||||
|
if (!doclet.implements) {
|
||||||
|
doclet.implements = [];
|
||||||
|
}
|
||||||
|
doclet.implements.push(tag.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
var conf = env.conf.stability;
|
|
||||||
var defaultLevels = ["deprecated","experimental","unstable","stable","frozen","locked"];
|
|
||||||
var levels = conf.levels || defaultLevels;
|
|
||||||
var util = require('util');
|
|
||||||
exports.defineTags = function(dictionary) {
|
|
||||||
dictionary.defineTag('stability', {
|
|
||||||
mustHaveValue: true,
|
|
||||||
canHaveType: false,
|
|
||||||
canHaveName: true,
|
|
||||||
onTagged: function(doclet, tag) {
|
|
||||||
var level = tag.text;
|
|
||||||
if (levels.indexOf(level) >=0) {
|
|
||||||
doclet.stability = level;
|
|
||||||
} else {
|
|
||||||
var errorText = util.format('Invalid stability level (%s) in %s line %s', tag.text, doclet.meta.filename, doclet.meta.lineno);
|
|
||||||
require('jsdoc/util/error').handle( new Error(errorText) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
|
||||||
@@ -6,8 +6,8 @@ exports.defineTags = function(dictionary) {
|
|||||||
canHaveName: true,
|
canHaveName: true,
|
||||||
onTagged: function(doclet, tag) {
|
onTagged: function(doclet, tag) {
|
||||||
var parts = tag.text.split(' ');
|
var parts = tag.text.split(' ');
|
||||||
if (parts[0] === 'stability') {
|
if (parts[0] === 'api') {
|
||||||
doclet.stability = parts.slice(1).join(' ');
|
doclet.stability = parts.slice(1).join(' ') || 'experimental';
|
||||||
} else if (parts[0] === 'observable') {
|
} else if (parts[0] === 'observable') {
|
||||||
if (!doclet.observables) {
|
if (!doclet.observables) {
|
||||||
doclet.observables = [];
|
doclet.observables = [];
|
||||||
|
|||||||
61
apidoc/plugins/typedefs.js
Normal file
61
apidoc/plugins/typedefs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* Converts olx.js @type annotations into properties of the previous @typedef.
|
||||||
|
* Changes @enum annotations into @typedef.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var lastOlxTypedef = null;
|
||||||
|
var olxTypes = {};
|
||||||
|
|
||||||
|
function addSubparams(params) {
|
||||||
|
for (var j = 0, jj = params.length; j < jj; ++j) {
|
||||||
|
var param = params[j];
|
||||||
|
var types = param.type.names;
|
||||||
|
for (var k = 0, kk = types.length; k < kk; ++k) {
|
||||||
|
var name = types[k];
|
||||||
|
if (name in olxTypes) {
|
||||||
|
param.subparams = olxTypes[name];
|
||||||
|
// TODO Change template before recursing here, because the table gets
|
||||||
|
// too wide.
|
||||||
|
//addSubparams(param.subparams);
|
||||||
|
// TODO Do we need to support multiple object literal types per
|
||||||
|
// param?
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.handlers = {
|
||||||
|
|
||||||
|
newDoclet: function(e) {
|
||||||
|
var doclet = e.doclet;
|
||||||
|
if (doclet.meta.filename == 'olx.js') {
|
||||||
|
if (doclet.kind == 'typedef') {
|
||||||
|
lastOlxTypedef = doclet;
|
||||||
|
olxTypes[doclet.longname] = [];
|
||||||
|
doclet.properties = [];
|
||||||
|
} else if (lastOlxTypedef && doclet.memberof == lastOlxTypedef.longname) {
|
||||||
|
lastOlxTypedef.properties.push(doclet);
|
||||||
|
olxTypes[lastOlxTypedef.longname].push(doclet);
|
||||||
|
} else {
|
||||||
|
lastOlxTypedef = null;
|
||||||
|
}
|
||||||
|
} else if (doclet.isEnum) {
|
||||||
|
// We never export enums, so we document them like typedefs
|
||||||
|
doclet.kind = 'typedef';
|
||||||
|
delete doclet.isEnum;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
parseComplete: function(e) {
|
||||||
|
var doclets = e.doclets;
|
||||||
|
for (var i = doclets.length - 1; i >= 0; --i) {
|
||||||
|
var doclet = doclets[i];
|
||||||
|
var params = doclet.params;
|
||||||
|
if (params) {
|
||||||
|
addSubparams(params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
74
apidoc/readme.md
Normal file
74
apidoc/readme.md
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# API Documentation
|
||||||
|
|
||||||
|
This directory contains configuration (`conf.json`), static content (`index.md`), template (`template/`) and plugins (`plugins/`) for the [JSDoc3](http://usejsdoc.org/) API generator.
|
||||||
|
|
||||||
|
## Documenting the source code
|
||||||
|
|
||||||
|
JSDoc annotations are used for metadata used by the compiler, for defining the user facing API, and for user documentation.
|
||||||
|
|
||||||
|
In the simplest case, a JSDoc block can look like this:
|
||||||
|
```js
|
||||||
|
/**
|
||||||
|
* Add the given control to the map.
|
||||||
|
* @param {ol.control.Control} control Control.
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
|
ol.Map.prototype.addControl = function(control) {
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
```
|
||||||
|
The first line is text for the user documentation. This can be long, and it can
|
||||||
|
contain Markdown.
|
||||||
|
|
||||||
|
The second line tells the Closure compiler the type of the argument.
|
||||||
|
|
||||||
|
The third line (`@todo api`) marks the method as exportable. The stability can be added as value, e.g. `@todo api stable`. Once the documentation story is fully settled, we will remove the `todo ` and just write `@api` or `@api stable`. Without such an api note, the method will not be exported and not documented in the generated API documentation.
|
||||||
|
|
||||||
|
### Events
|
||||||
|
|
||||||
|
Events are documented using `@fires` and `@event` annotations:
|
||||||
|
```js
|
||||||
|
/**
|
||||||
|
* Constants for event names.
|
||||||
|
* @enum {string}
|
||||||
|
*/
|
||||||
|
ol.MapBrowserEvent.EventType = {
|
||||||
|
/**
|
||||||
|
* A true single click with no dragging and no double click. Note that this
|
||||||
|
* event is delayed by 250 ms to ensure that it is not a double click.
|
||||||
|
* @event ol.MapBrowserEvent#singleclick
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
|
SINGLECLICK: 'singleclick',
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
```
|
||||||
|
Note the value of the `@event` annotation. The text before the hash refers to the event class that the event belongs to, and the text after the hash is the type of the event.
|
||||||
|
|
||||||
|
To export event properties, they need to be defined in `externs/oli.js` (also see `readme.md` in `externs/`) and marked with an @api annotation:
|
||||||
|
```js
|
||||||
|
/** @interface */
|
||||||
|
oli.MapBrowserEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {ol.Coordinate}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
|
oli.MapBrowserEvent.prototype.coordinate;
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
};
|
||||||
|
```
|
||||||
|
To document which events are fired by a class or method, the `@fires` annotation is used:
|
||||||
|
```js
|
||||||
|
* @fires {@link ol.MapBrowserEvent} ol.MapBrowserEvent
|
||||||
|
* @fires {@link ol.MapEvent} ol.MapEvent
|
||||||
|
* @fires {@link ol.render.Event} ol.render.Event
|
||||||
|
* ...
|
||||||
|
*/
|
||||||
|
ol.Map = function(options) {
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
```
|
||||||
|
Again, note the syntax of the `@fires` annotation. The link is necessary to provide a link to the documentation of the event, and the name of the event class is necessary for JSDoc3 to know which event we are talking about.
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/*global env: true */
|
/*global env: true */
|
||||||
var template = require('jsdoc/template'),
|
var template = require('jsdoc/template'),
|
||||||
fs = require('fs'),
|
fs = require('jsdoc/fs'),
|
||||||
path = require('path'),
|
path = require('jsdoc/path'),
|
||||||
taffy = require('taffydb').taffy,
|
taffy = require('taffydb').taffy,
|
||||||
helper = require('jsdoc/util/templateHelper'),
|
helper = require('jsdoc/util/templateHelper'),
|
||||||
scopeToPunc = helper.scopeToPunc,
|
scopeToPunc = helper.scopeToPunc,
|
||||||
@@ -29,48 +29,48 @@ var htmlsafe = helper.htmlsafe;
|
|||||||
|
|
||||||
function hashToLink(doclet, hash) {
|
function hashToLink(doclet, hash) {
|
||||||
if ( !/^(#.+)/.test(hash) ) { return hash; }
|
if ( !/^(#.+)/.test(hash) ) { return hash; }
|
||||||
|
|
||||||
var url = helper.createLink(doclet);
|
var url = helper.createLink(doclet);
|
||||||
|
|
||||||
url = url.replace(/(#.+|$)/, hash);
|
url = url.replace(/(#.+|$)/, hash);
|
||||||
return '<a href="' + url + '">' + hash + '</a>';
|
return '<a href="' + url + '">' + hash + '</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function addSignatureParams(f) {
|
function addSignatureParams(f) {
|
||||||
var params = helper.getSignatureParams(f, 'optional');
|
var params = helper.getSignatureParams(f, 'optional');
|
||||||
|
|
||||||
f.signature = (f.signature || '') + '('+params.join(', ')+')';
|
f.signature = (f.signature || '') + '('+params.join(', ')+')';
|
||||||
}
|
}
|
||||||
|
|
||||||
function addSignatureReturns(f) {
|
function addSignatureReturns(f) {
|
||||||
var returnTypes = helper.getSignatureReturns(f);
|
var returnTypes = helper.getSignatureReturns(f);
|
||||||
|
|
||||||
f.signature = '<span class="signature">'+(f.signature || '') + '</span>' + '<span class="type-signature">'+(returnTypes.length? ' → {'+returnTypes.join('|')+'}' : '')+'</span>';
|
f.signature = '<span class="signature">'+(f.signature || '') + '</span>' + '<span class="type-signature">'+(returnTypes.length? ' → {'+returnTypes.join('|')+'}' : '')+'</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function addSignatureTypes(f) {
|
function addSignatureTypes(f) {
|
||||||
var types = helper.getSignatureTypes(f);
|
var types = helper.getSignatureTypes(f);
|
||||||
|
|
||||||
f.signature = (f.signature || '') + '<span class="type-signature">'+(types.length? ' :'+types.join('|') : '')+'</span>';
|
f.signature = (f.signature || '') + '<span class="type-signature">'+(types.length? ' :'+types.join('|') : '')+'</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function addAttribs(f) {
|
function addAttribs(f) {
|
||||||
var attribs = helper.getAttribs(f);
|
var attribs = helper.getAttribs(f);
|
||||||
|
|
||||||
f.attribs = '<span class="type-signature">'+htmlsafe(attribs.length? '<'+attribs.join(', ')+'> ' : '')+'</span>';
|
f.attribs = '<span class="type-signature">'+htmlsafe(attribs.length? '<'+attribs.join(', ')+'> ' : '')+'</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function generate(title, docs, filename) {
|
function generate(title, docs, filename) {
|
||||||
var docData = {
|
var docData = {
|
||||||
title: title,
|
title: title,
|
||||||
docs: docs
|
docs: docs
|
||||||
};
|
};
|
||||||
|
|
||||||
var outpath = path.join(outdir, filename),
|
var outpath = path.join(outdir, filename),
|
||||||
html = view.render('container.tmpl', docData);
|
html = view.render('container.tmpl', docData);
|
||||||
|
|
||||||
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
||||||
|
|
||||||
fs.writeFileSync(outpath, html, 'utf8');
|
fs.writeFileSync(outpath, html, 'utf8');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ function generate(title, docs, filename) {
|
|||||||
function buildNav(members) {
|
function buildNav(members) {
|
||||||
var nav = '<h2><a href="index.html">Index</a></h2>',
|
var nav = '<h2><a href="index.html">Index</a></h2>',
|
||||||
seen = {};
|
seen = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sorts elements by their qualified names (property longname).
|
* Sorts elements by their qualified names (property longname).
|
||||||
* See https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort
|
* See https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort
|
||||||
@@ -115,10 +115,10 @@ function buildNav(members) {
|
|||||||
}
|
}
|
||||||
seen[m.longname] = true;
|
seen[m.longname] = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
nav += '</ul>';
|
nav += '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (members.externals.length) {
|
if (members.externals.length) {
|
||||||
nav += '<h3>Externals</h3><ul>';
|
nav += '<h3>Externals</h3><ul>';
|
||||||
members.externals.sort(byLongName).forEach(function(e) {
|
members.externals.sort(byLongName).forEach(function(e) {
|
||||||
@@ -127,7 +127,7 @@ function buildNav(members) {
|
|||||||
}
|
}
|
||||||
seen[e.longname] = true;
|
seen[e.longname] = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
nav += '</ul>';
|
nav += '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,10 +149,10 @@ function buildNav(members) {
|
|||||||
}
|
}
|
||||||
seen[c.longname] = true;
|
seen[c.longname] = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
nav += '</ul>';
|
nav += '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (members.namespaces.length) {
|
if (members.namespaces.length) {
|
||||||
nav += '<h3>Namespaces</h3><ul>';
|
nav += '<h3>Namespaces</h3><ul>';
|
||||||
members.namespaces.sort(byLongName).forEach(function(n) {
|
members.namespaces.sort(byLongName).forEach(function(n) {
|
||||||
@@ -161,10 +161,10 @@ function buildNav(members) {
|
|||||||
}
|
}
|
||||||
seen[n.longname] = true;
|
seen[n.longname] = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
nav += '</ul>';
|
nav += '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (members.mixins.length) {
|
if (members.mixins.length) {
|
||||||
nav += '<h3>Mixins</h3><ul>';
|
nav += '<h3>Mixins</h3><ul>';
|
||||||
members.mixins.sort(byLongName).forEach(function(m) {
|
members.mixins.sort(byLongName).forEach(function(m) {
|
||||||
@@ -173,7 +173,7 @@ function buildNav(members) {
|
|||||||
}
|
}
|
||||||
seen[m.longname] = true;
|
seen[m.longname] = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
nav += '</ul>';
|
nav += '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,10 +182,10 @@ function buildNav(members) {
|
|||||||
members.tutorials.sort(byLongName).forEach(function(t) {
|
members.tutorials.sort(byLongName).forEach(function(t) {
|
||||||
nav += '<li>'+tutoriallink(t.name)+'</li>';
|
nav += '<li>'+tutoriallink(t.name)+'</li>';
|
||||||
});
|
});
|
||||||
|
|
||||||
nav += '</ul>';
|
nav += '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (members.globals.length) {
|
if (members.globals.length) {
|
||||||
nav += '<h3>Global</h3><ul>';
|
nav += '<h3>Global</h3><ul>';
|
||||||
members.globals.sort(byLongName).forEach(function(g) {
|
members.globals.sort(byLongName).forEach(function(g) {
|
||||||
@@ -194,7 +194,7 @@ function buildNav(members) {
|
|||||||
}
|
}
|
||||||
seen[g.longname] = true;
|
seen[g.longname] = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
nav += '</ul>';
|
nav += '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
|
|
||||||
var templatePath = opts.template;
|
var templatePath = opts.template;
|
||||||
view = new template.Template(templatePath + '/tmpl');
|
view = new template.Template(templatePath + '/tmpl');
|
||||||
|
|
||||||
// set up templating
|
// set up templating
|
||||||
view.layout = 'layout.tmpl';
|
view.layout = 'layout.tmpl';
|
||||||
|
|
||||||
@@ -224,16 +224,16 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
|
|
||||||
data().each(function(doclet) {
|
data().each(function(doclet) {
|
||||||
doclet.attribs = '';
|
doclet.attribs = '';
|
||||||
|
|
||||||
if (doclet.examples) {
|
if (doclet.examples) {
|
||||||
doclet.examples = doclet.examples.map(function(example) {
|
doclet.examples = doclet.examples.map(function(example) {
|
||||||
var caption, code;
|
var caption, code;
|
||||||
|
|
||||||
if (example.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) {
|
if (example.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) {
|
||||||
caption = RegExp.$1;
|
caption = RegExp.$1;
|
||||||
code = RegExp.$3;
|
code = RegExp.$3;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
caption: caption || '',
|
caption: caption || '',
|
||||||
code: code || example
|
code: code || example
|
||||||
@@ -246,7 +246,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// update outdir if necessary, then create outdir
|
// update outdir if necessary, then create outdir
|
||||||
var packageInfo = ( find({kind: 'package'}) || [] ) [0];
|
var packageInfo = ( find({kind: 'package'}) || [] ) [0];
|
||||||
if (packageInfo && packageInfo.name) {
|
if (packageInfo && packageInfo.name) {
|
||||||
@@ -257,18 +257,18 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
// copy static files to outdir
|
// copy static files to outdir
|
||||||
var fromDir = path.join(templatePath, 'static'),
|
var fromDir = path.join(templatePath, 'static'),
|
||||||
staticFiles = fs.ls(fromDir, 3);
|
staticFiles = fs.ls(fromDir, 3);
|
||||||
|
|
||||||
staticFiles.forEach(function(fileName) {
|
staticFiles.forEach(function(fileName) {
|
||||||
var toDir = fs.toDir( fileName.replace(fromDir, outdir) );
|
var toDir = fs.toDir( fileName.replace(fromDir, outdir) );
|
||||||
fs.mkPath(toDir);
|
fs.mkPath(toDir);
|
||||||
fs.copyFileSync(fileName, toDir);
|
fs.copyFileSync(fileName, toDir);
|
||||||
});
|
});
|
||||||
|
|
||||||
data().each(function(doclet) {
|
data().each(function(doclet) {
|
||||||
var url = helper.createLink(doclet);
|
var url = helper.createLink(doclet);
|
||||||
helper.registerLink(doclet.longname, url);
|
helper.registerLink(doclet.longname, url);
|
||||||
});
|
});
|
||||||
|
|
||||||
data().each(function(doclet) {
|
data().each(function(doclet) {
|
||||||
var url = helper.longnameToUrl[doclet.longname];
|
var url = helper.longnameToUrl[doclet.longname];
|
||||||
|
|
||||||
@@ -278,32 +278,32 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
else {
|
else {
|
||||||
doclet.id = doclet.name;
|
doclet.id = doclet.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (doclet.kind === 'function' || doclet.kind === 'class') {
|
if (doclet.kind === 'function' || doclet.kind === 'class') {
|
||||||
addSignatureParams(doclet);
|
addSignatureParams(doclet);
|
||||||
addSignatureReturns(doclet);
|
addSignatureReturns(doclet);
|
||||||
addAttribs(doclet);
|
addAttribs(doclet);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// do this after the urls have all been generated
|
// do this after the urls have all been generated
|
||||||
data().each(function(doclet) {
|
data().each(function(doclet) {
|
||||||
doclet.ancestors = getAncestorLinks(doclet);
|
doclet.ancestors = getAncestorLinks(doclet);
|
||||||
|
|
||||||
doclet.signature = '';
|
doclet.signature = '';
|
||||||
|
|
||||||
if (doclet.kind === 'member') {
|
if (doclet.kind === 'member') {
|
||||||
addSignatureTypes(doclet);
|
addSignatureTypes(doclet);
|
||||||
addAttribs(doclet);
|
addAttribs(doclet);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (doclet.kind === 'constant') {
|
if (doclet.kind === 'constant') {
|
||||||
addSignatureTypes(doclet);
|
addSignatureTypes(doclet);
|
||||||
addAttribs(doclet);
|
addAttribs(doclet);
|
||||||
doclet.kind = 'member';
|
doclet.kind = 'member';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var members = helper.getMembers(data);
|
var members = helper.getMembers(data);
|
||||||
members.tutorials = tutorials.children;
|
members.tutorials = tutorials.children;
|
||||||
|
|
||||||
@@ -324,25 +324,25 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
if (classes.length) {
|
if (classes.length) {
|
||||||
generate('Class: ' + classes[0].longname, classes, helper.longnameToUrl[longname]);
|
generate('Class: ' + classes[0].longname, classes, helper.longnameToUrl[longname]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var modules = taffy(members.modules);
|
var modules = taffy(members.modules);
|
||||||
modules = helper.find(modules, {longname: longname});
|
modules = helper.find(modules, {longname: longname});
|
||||||
if (modules.length) {
|
if (modules.length) {
|
||||||
generate('Module: ' + modules[0].longname, modules, helper.longnameToUrl[longname]);
|
generate('Module: ' + modules[0].longname, modules, helper.longnameToUrl[longname]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var namespaces = taffy(members.namespaces);
|
var namespaces = taffy(members.namespaces);
|
||||||
namespaces = helper.find(namespaces, {longname: longname});
|
namespaces = helper.find(namespaces, {longname: longname});
|
||||||
if (namespaces.length) {
|
if (namespaces.length) {
|
||||||
generate('Namespace: ' + namespaces[0].longname, namespaces, helper.longnameToUrl[longname]);
|
generate('Namespace: ' + namespaces[0].longname, namespaces, helper.longnameToUrl[longname]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var mixins = taffy(members.mixins);
|
var mixins = taffy(members.mixins);
|
||||||
mixins = helper.find(mixins, {longname: longname});
|
mixins = helper.find(mixins, {longname: longname});
|
||||||
if (mixins.length) {
|
if (mixins.length) {
|
||||||
generate('Mixin: ' + mixins[0].longname, mixins, helper.longnameToUrl[longname]);
|
generate('Mixin: ' + mixins[0].longname, mixins, helper.longnameToUrl[longname]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var externals = taffy(members.externals);
|
var externals = taffy(members.externals);
|
||||||
externals = helper.find(externals, {longname: longname});
|
externals = helper.find(externals, {longname: longname});
|
||||||
if (externals.length) {
|
if (externals.length) {
|
||||||
@@ -352,7 +352,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (members.globals.length) { generate('Global', members.globals, 'global.html'); }
|
if (members.globals.length) { generate('Global', members.globals, 'global.html'); }
|
||||||
|
|
||||||
// index page displays information from package.json and lists files
|
// index page displays information from package.json and lists files
|
||||||
var files = find({kind: 'file'}),
|
var files = find({kind: 'file'}),
|
||||||
packages = find({kind: 'package'});
|
packages = find({kind: 'package'});
|
||||||
@@ -362,7 +362,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}]
|
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}]
|
||||||
).concat(files),
|
).concat(files),
|
||||||
'index.html');
|
'index.html');
|
||||||
|
|
||||||
// TODO: move the tutorial functions to templateHelper.js
|
// TODO: move the tutorial functions to templateHelper.js
|
||||||
function generateTutorial(title, tutorial, filename) {
|
function generateTutorial(title, tutorial, filename) {
|
||||||
var tutorialData = {
|
var tutorialData = {
|
||||||
@@ -371,16 +371,16 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
content: tutorial.parse(),
|
content: tutorial.parse(),
|
||||||
children: tutorial.children
|
children: tutorial.children
|
||||||
};
|
};
|
||||||
|
|
||||||
var tutorialPath = path.join(outdir, filename),
|
var tutorialPath = path.join(outdir, filename),
|
||||||
html = view.render('tutorial.tmpl', tutorialData);
|
html = view.render('tutorial.tmpl', tutorialData);
|
||||||
|
|
||||||
// yes, you can use {@link} in tutorials too!
|
// yes, you can use {@link} in tutorials too!
|
||||||
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
||||||
|
|
||||||
fs.writeFileSync(tutorialPath, html, 'utf8');
|
fs.writeFileSync(tutorialPath, html, 'utf8');
|
||||||
}
|
}
|
||||||
|
|
||||||
// tutorials can have only one parent so there is no risk for loops
|
// tutorials can have only one parent so there is no risk for loops
|
||||||
function saveChildren(node) {
|
function saveChildren(node) {
|
||||||
node.children.forEach(function(child) {
|
node.children.forEach(function(child) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<?js if (doc.kind === 'module' && doc.module) { ?>
|
<?js if (doc.kind === 'module' && doc.module) { ?>
|
||||||
<?js= self.partial('method.tmpl', doc.module) ?>
|
<?js= self.partial('method.tmpl', doc.module) ?>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
<?js if (!doc.unexported && doc.kind === 'class') { ?>
|
<?js if (doc.kind === 'class' && !doc.hideConstructor && !doc.interface) { ?>
|
||||||
<?js= self.partial('method.tmpl', doc) ?>
|
<?js= self.partial('method.tmpl', doc) ?>
|
||||||
<?js } else { ?>
|
<?js } else { ?>
|
||||||
<?js if (doc.description) { ?>
|
<?js if (doc.description) { ?>
|
||||||
@@ -47,7 +47,8 @@
|
|||||||
<h3 class="subsection-title">Extends</h3>
|
<h3 class="subsection-title">Extends</h3>
|
||||||
|
|
||||||
<ul><?js doc.augments.forEach(function(a) { ?>
|
<ul><?js doc.augments.forEach(function(a) { ?>
|
||||||
<li><?js= self.linkto(a, a) ?></li>
|
<li><?js= self.linkto(a, a) ?>
|
||||||
|
<?js= (doc.implements&&doc.implements.indexOf(a)>-1?'(Interface)':'') ?></li>
|
||||||
<?js }); ?></ul>
|
<?js }); ?></ul>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
@@ -141,7 +142,7 @@
|
|||||||
<h3 class="subsection-title">TypeDefs</h3>
|
<h3 class="subsection-title">TypeDefs</h3>
|
||||||
|
|
||||||
<dl><?js typedefs.forEach(function(e) { ?>
|
<dl><?js typedefs.forEach(function(e) { ?>
|
||||||
<?js= self.partial('members.tmpl', e) ?>
|
<?js= self.partial(e.params ? 'method.tmpl' : 'members.tmpl', e) ?>
|
||||||
<?js }); ?></dl>
|
<?js }); ?></dl>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
|
|||||||
@@ -1,219 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
from operator import attrgetter
|
|
||||||
from optparse import OptionParser
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def simplerepr(obj):
|
|
||||||
keys = sorted(key for key in obj.__dict__.keys() if not key.startswith('_'))
|
|
||||||
attrs = ''.join(' %s=%r' % (key, obj.__dict__[key]) for key in keys)
|
|
||||||
return '<%s%s>' % (obj.__class__.__name__, attrs)
|
|
||||||
|
|
||||||
|
|
||||||
class Exportable(object):
|
|
||||||
|
|
||||||
def __init__(self, name):
|
|
||||||
self.name = name
|
|
||||||
|
|
||||||
__repr__ = simplerepr
|
|
||||||
|
|
||||||
def export(self):
|
|
||||||
return ''
|
|
||||||
|
|
||||||
def extern(self):
|
|
||||||
return ''
|
|
||||||
|
|
||||||
def typedef(self):
|
|
||||||
return ''
|
|
||||||
|
|
||||||
|
|
||||||
class ObjectLiteral(Exportable):
|
|
||||||
|
|
||||||
def __init__(self, name, objects):
|
|
||||||
Exportable.__init__(self, name)
|
|
||||||
self.prop_types = {}
|
|
||||||
self.objects = objects
|
|
||||||
|
|
||||||
__repr__ = simplerepr
|
|
||||||
|
|
||||||
def extern(self):
|
|
||||||
lines = []
|
|
||||||
lines.append('\n\n\n')
|
|
||||||
lines.append('/**\n')
|
|
||||||
lines.append(' * @interface\n')
|
|
||||||
lines.append(' */\n')
|
|
||||||
lines.append('%s = function() {};\n' % (self.extern_name(),))
|
|
||||||
for prop in sorted(self.prop_types.keys()):
|
|
||||||
lines.append('\n\n')
|
|
||||||
lines.append('/**\n')
|
|
||||||
prop_types = self.prop_types[prop].split('|')
|
|
||||||
for i, t in enumerate(prop_types):
|
|
||||||
if t in self.objects and isinstance(self.objects[t], ObjectLiteral):
|
|
||||||
prop_types[i] = self.objects[t].extern_name()
|
|
||||||
prop_types = '|'.join(prop_types)
|
|
||||||
lines.append(' * @type {%s}\n' % (prop_types,))
|
|
||||||
lines.append(' */\n')
|
|
||||||
lines.append('%s.prototype.%s;\n' % (self.extern_name(), prop))
|
|
||||||
return ''.join(lines)
|
|
||||||
|
|
||||||
def extern_name(self):
|
|
||||||
return re.sub(r'(olx\.\S+)', r'\1Extern', self.name)
|
|
||||||
|
|
||||||
def extern_namespace(self):
|
|
||||||
return '.'.join(self.extern_name().split('.')[:-1]) or None
|
|
||||||
|
|
||||||
def provide(self):
|
|
||||||
return 'goog.provide(\'%s\');\n' % (self.name,)
|
|
||||||
|
|
||||||
def typedef(self):
|
|
||||||
lines = []
|
|
||||||
lines.append('\n\n')
|
|
||||||
lines.append('/**\n')
|
|
||||||
for i, prop in enumerate(sorted(self.prop_types.keys())):
|
|
||||||
prefix = ' * @typedef {{' if i == 0 else ' * '
|
|
||||||
suffix = '}}' if i == len(self.prop_types) - 1 else ','
|
|
||||||
type = self.prop_types[prop]
|
|
||||||
if '|' in type:
|
|
||||||
type = '(%s)' % (type,)
|
|
||||||
lines.append('%s%s: %s%s\n' % (prefix, prop, type, suffix))
|
|
||||||
lines.append(' */\n')
|
|
||||||
lines.append('%s;\n' % (self.name,))
|
|
||||||
return ''.join(lines)
|
|
||||||
|
|
||||||
|
|
||||||
class Symbol(Exportable):
|
|
||||||
|
|
||||||
def __init__(self, name, export_symbol):
|
|
||||||
Exportable.__init__(self, name)
|
|
||||||
self.export_symbol = export_symbol
|
|
||||||
self.props = set()
|
|
||||||
|
|
||||||
__repr__ = simplerepr
|
|
||||||
|
|
||||||
def export(self):
|
|
||||||
lines = []
|
|
||||||
if self.export_symbol:
|
|
||||||
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.name))
|
|
||||||
lines.extend('goog.exportProperty(\n %s,\n \'%s\',\n %s.%s);\n' % (self.name, prop, self.name, prop) for prop in sorted(self.props))
|
|
||||||
return ''.join(lines)
|
|
||||||
|
|
||||||
|
|
||||||
def main(argv):
|
|
||||||
|
|
||||||
option_parser = OptionParser()
|
|
||||||
option_parser.add_option('--exports', action='store_true')
|
|
||||||
option_parser.add_option('--externs', action='store_true')
|
|
||||||
option_parser.add_option('--typedef', action='store_true')
|
|
||||||
options, args = option_parser.parse_args(argv[1:])
|
|
||||||
|
|
||||||
objects = {}
|
|
||||||
requires = set()
|
|
||||||
for arg in args:
|
|
||||||
in_comment = False
|
|
||||||
object_literal = None
|
|
||||||
for line in open(arg, 'rU'):
|
|
||||||
line = line.strip()
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
if line == '/**':
|
|
||||||
assert not in_comment
|
|
||||||
in_comment = True
|
|
||||||
continue
|
|
||||||
if line == '*/':
|
|
||||||
assert in_comment
|
|
||||||
in_comment = False
|
|
||||||
object_literal = None
|
|
||||||
continue
|
|
||||||
if in_comment:
|
|
||||||
if not line.startswith('*'):
|
|
||||||
raise RuntimeError(line) # malformed comment
|
|
||||||
m = re.match(r'\*\s*@typedef\s*\{Object\}\s*(?P<name>\S+)', line)
|
|
||||||
if m:
|
|
||||||
assert object_literal is None
|
|
||||||
name = m.group('name')
|
|
||||||
if name in objects:
|
|
||||||
raise RuntimeError(line) # Name already defined
|
|
||||||
object_literal = ObjectLiteral(name, objects)
|
|
||||||
objects[name] = object_literal
|
|
||||||
continue
|
|
||||||
m = re.match(r'\*\s*@property\s*{(?P<type>.*?)}\s*(?P<prop>\S+)', line)
|
|
||||||
if m:
|
|
||||||
assert object_literal is not None
|
|
||||||
prop = m.group('prop')
|
|
||||||
if prop in object_literal.prop_types:
|
|
||||||
raise RuntimeError(line) # Duplicate property
|
|
||||||
type = m.group('type')
|
|
||||||
object_literal.prop_types[prop] = type
|
|
||||||
continue
|
|
||||||
continue
|
|
||||||
m = re.match(r'@exportProperty\s+(?P<prop>\S+)\Z', line)
|
|
||||||
if m:
|
|
||||||
components = m.group('prop').split('.')
|
|
||||||
if components[-2] == 'prototype':
|
|
||||||
requires.add('.'.join(components[:-2]))
|
|
||||||
else:
|
|
||||||
requires.add('.'.join(components[:-1]))
|
|
||||||
name = '.'.join(components[:-1])
|
|
||||||
prop = components[-1]
|
|
||||||
if name in objects:
|
|
||||||
symbol = objects[name]
|
|
||||||
else:
|
|
||||||
symbol = Symbol(name, False)
|
|
||||||
objects[name] = symbol
|
|
||||||
symbol.props.add(prop)
|
|
||||||
continue
|
|
||||||
m = re.match(r'@exportSymbol\s+(?P<name>\S+)\Z', line)
|
|
||||||
if m:
|
|
||||||
name = m.group('name')
|
|
||||||
if name in objects:
|
|
||||||
raise RuntimeError(line) # Name already defined
|
|
||||||
symbol = Symbol(name, True)
|
|
||||||
objects[name] = symbol
|
|
||||||
components = m.group('name').split('.')
|
|
||||||
if re.match(r'[A-Z]', components[-1]):
|
|
||||||
requires.add(name)
|
|
||||||
else:
|
|
||||||
requires.add('.'.join(components[:-1]))
|
|
||||||
continue
|
|
||||||
raise RuntimeError(line)
|
|
||||||
|
|
||||||
objects = sorted(objects.values(), key=attrgetter('name'))
|
|
||||||
|
|
||||||
if options.exports:
|
|
||||||
if requires:
|
|
||||||
for require in sorted(requires):
|
|
||||||
sys.stdout.write('goog.require(\'%s\');\n' % (require,))
|
|
||||||
for obj in objects:
|
|
||||||
sys.stdout.write(obj.export())
|
|
||||||
|
|
||||||
if options.externs:
|
|
||||||
object_literals = [obj for obj in objects if isinstance(obj, ObjectLiteral)]
|
|
||||||
sys.stdout.write('/**\n')
|
|
||||||
sys.stdout.write(' * @externs\n')
|
|
||||||
sys.stdout.write(' */\n')
|
|
||||||
namespaces = sorted(set(filter(None, (object_literal.extern_namespace() for object_literal in object_literals))))
|
|
||||||
for namespace in namespaces:
|
|
||||||
sys.stdout.write('\n\n')
|
|
||||||
sys.stdout.write('/**\n')
|
|
||||||
sys.stdout.write(' * @type {Object}\n')
|
|
||||||
sys.stdout.write(' */\n')
|
|
||||||
if '.' in namespace:
|
|
||||||
sys.stdout.write('%s = {};\n' % (namespace,))
|
|
||||||
else:
|
|
||||||
sys.stdout.write('var %s;\n' % (namespace,))
|
|
||||||
for object_literal in object_literals:
|
|
||||||
sys.stdout.write(object_literal.typedef())
|
|
||||||
sys.stdout.write(object_literal.extern())
|
|
||||||
|
|
||||||
if options.typedef:
|
|
||||||
object_literals = [obj for obj in objects if isinstance(obj, ObjectLiteral)]
|
|
||||||
for object_literal in object_literals:
|
|
||||||
sys.stdout.write(object_literal.provide())
|
|
||||||
for object_literal in object_literals:
|
|
||||||
sys.stdout.write(object_literal.typedef())
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.exit(main(sys.argv))
|
|
||||||
134
build.py
134
build.py
@@ -20,7 +20,7 @@ if sys.platform == 'win32':
|
|||||||
'GJSLINT': 'gjslint.exe',
|
'GJSLINT': 'gjslint.exe',
|
||||||
'JAVA': 'java.exe',
|
'JAVA': 'java.exe',
|
||||||
'JAR': 'jar.exe',
|
'JAR': 'jar.exe',
|
||||||
'JSDOC': 'jsdoc.cmd',
|
'JSDOC': './node_modules/.bin/jsdoc',
|
||||||
'JSHINT': './node_modules/.bin/jshint',
|
'JSHINT': './node_modules/.bin/jshint',
|
||||||
'PYTHON': 'python.exe',
|
'PYTHON': 'python.exe',
|
||||||
'PHANTOMJS': 'phantomjs.cmd'
|
'PHANTOMJS': 'phantomjs.cmd'
|
||||||
@@ -75,7 +75,7 @@ else:
|
|||||||
variables.JSHINT = './node_modules/.bin/jshint'
|
variables.JSHINT = './node_modules/.bin/jshint'
|
||||||
variables.JAVA = 'java'
|
variables.JAVA = 'java'
|
||||||
variables.JAR = 'jar'
|
variables.JAR = 'jar'
|
||||||
variables.JSDOC = 'jsdoc'
|
variables.JSDOC = './node_modules/.bin/jsdoc'
|
||||||
variables.PYTHON = 'python'
|
variables.PYTHON = 'python'
|
||||||
variables.PHANTOMJS = 'phantomjs'
|
variables.PHANTOMJS = 'phantomjs'
|
||||||
|
|
||||||
@@ -86,13 +86,7 @@ EXECUTABLES = [variables.GIT, variables.GJSLINT, variables.JAVA, variables.JAR,
|
|||||||
variables.JSDOC, variables.JSHINT, variables.PYTHON,
|
variables.JSDOC, variables.JSHINT, variables.PYTHON,
|
||||||
variables.PHANTOMJS]
|
variables.PHANTOMJS]
|
||||||
|
|
||||||
EXPORTS = [path
|
EXPORTS = 'build/exports.js'
|
||||||
for path in ifind('src')
|
|
||||||
if path.endswith('.exports')]
|
|
||||||
|
|
||||||
EXTERNAL_SRC = [
|
|
||||||
'build/src/external/externs/types.js',
|
|
||||||
'build/src/external/src/exports.js']
|
|
||||||
|
|
||||||
EXAMPLES = [path
|
EXAMPLES = [path
|
||||||
for path in ifind('examples')
|
for path in ifind('examples')
|
||||||
@@ -115,10 +109,6 @@ EXAMPLES_JSON = ['build/' + example.replace('.html', '.json')
|
|||||||
EXAMPLES_COMBINED = ['build/' + example.replace('.html', '.combined.js')
|
EXAMPLES_COMBINED = ['build/' + example.replace('.html', '.combined.js')
|
||||||
for example in EXAMPLES]
|
for example in EXAMPLES]
|
||||||
|
|
||||||
INTERNAL_SRC = [
|
|
||||||
'build/src/internal/src/requireall.js',
|
|
||||||
'build/src/internal/src/types.js']
|
|
||||||
|
|
||||||
GLSL_SRC = [path
|
GLSL_SRC = [path
|
||||||
for path in ifind('src')
|
for path in ifind('src')
|
||||||
if path.endswith('.glsl')]
|
if path.endswith('.glsl')]
|
||||||
@@ -186,15 +176,15 @@ def build_ol_css(t):
|
|||||||
t.touch()
|
t.touch()
|
||||||
|
|
||||||
|
|
||||||
@target('build/ol.js', PLOVR_JAR, SRC, EXTERNAL_SRC, SHADER_SRC,
|
@target('build/ol.js', PLOVR_JAR, SRC, EXPORTS, SHADER_SRC, LIBTESS_JS_SRC,
|
||||||
LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json')
|
'buildcfg/base.json', 'buildcfg/ol.json')
|
||||||
def build_ol_js(t):
|
def build_ol_js(t):
|
||||||
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
||||||
PLOVR_JAR, 'build', 'buildcfg/ol.json')
|
PLOVR_JAR, 'build', 'buildcfg/ol.json')
|
||||||
report_sizes(t)
|
report_sizes(t)
|
||||||
|
|
||||||
|
|
||||||
@target('build/ol-simple.js', PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
|
@target('build/ol-simple.js', PLOVR_JAR, SRC, EXPORTS, SHADER_SRC,
|
||||||
LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json',
|
LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json',
|
||||||
'buildcfg/ol-simple.json')
|
'buildcfg/ol-simple.json')
|
||||||
def build_ol_simple_js(t):
|
def build_ol_simple_js(t):
|
||||||
@@ -203,8 +193,8 @@ def build_ol_simple_js(t):
|
|||||||
report_sizes(t)
|
report_sizes(t)
|
||||||
|
|
||||||
|
|
||||||
@target('build/ol-whitespace.js', PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
|
@target('build/ol-whitespace.js', PLOVR_JAR, SRC, EXPORTS,
|
||||||
LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json',
|
SHADER_SRC, LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json',
|
||||||
'buildcfg/ol-whitespace.json')
|
'buildcfg/ol-whitespace.json')
|
||||||
def build_ol_whitespace_js(t):
|
def build_ol_whitespace_js(t):
|
||||||
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
||||||
@@ -215,26 +205,16 @@ def build_ol_whitespace_js(t):
|
|||||||
virtual('build-all', 'build/ol-all.js')
|
virtual('build-all', 'build/ol-all.js')
|
||||||
|
|
||||||
|
|
||||||
@target('build/ol-all.js', PLOVR_JAR, SRC, EXTERNAL_SRC, INTERNAL_SRC,
|
@target('build/ol-all.js', PLOVR_JAR, SRC, EXPORTS, SHADER_SRC, LIBTESS_JS_SRC,
|
||||||
SHADER_SRC, LIBTESS_JS_SRC, 'buildcfg/base.json',
|
'buildcfg/base.json', 'buildcfg/ol-all.json')
|
||||||
'buildcfg/ol-all.json')
|
|
||||||
def build_ol_all_js(t):
|
def build_ol_all_js(t):
|
||||||
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
||||||
PLOVR_JAR, 'build', 'buildcfg/ol-all.json')
|
PLOVR_JAR, 'build', 'buildcfg/ol-all.json')
|
||||||
|
|
||||||
|
|
||||||
@target('build/src/external/externs/types.js', 'bin/generate-exports.py',
|
@target(EXPORTS, SRC)
|
||||||
'src/objectliterals.jsdoc')
|
def build_exports_js(t):
|
||||||
def build_src_external_externs_types_js(t):
|
t.run('node', 'tasks/generate-exports.js', EXPORTS)
|
||||||
t.output('%(PYTHON)s', 'bin/generate-exports.py',
|
|
||||||
'--externs', 'src/objectliterals.jsdoc')
|
|
||||||
|
|
||||||
|
|
||||||
@target('build/src/external/src/exports.js', 'bin/generate-exports.py',
|
|
||||||
'src/objectliterals.jsdoc', EXPORTS)
|
|
||||||
def build_src_external_src_exports_js(t):
|
|
||||||
t.output('%(PYTHON)s', 'bin/generate-exports.py',
|
|
||||||
'--exports', 'src/objectliterals.jsdoc', EXPORTS)
|
|
||||||
|
|
||||||
|
|
||||||
for glsl_src in GLSL_SRC:
|
for glsl_src in GLSL_SRC:
|
||||||
@@ -249,36 +229,19 @@ for glsl_src in GLSL_SRC:
|
|||||||
shader_src_helper(glsl_src)
|
shader_src_helper(glsl_src)
|
||||||
|
|
||||||
|
|
||||||
def _build_require_list(dependencies, output_file_name):
|
@target('build/test/requireall.js', SPEC)
|
||||||
|
def build_test_requireall_js(t):
|
||||||
requires = set()
|
requires = set()
|
||||||
for dependency in dependencies:
|
for dependency in t.dependencies:
|
||||||
for line in open(dependency, 'rU'):
|
for line in open(dependency, 'rU'):
|
||||||
match = re.match(r'goog\.provide\(\'(.*)\'\);', line)
|
match = re.match(r'goog\.provide\(\'(.*)\'\);', line)
|
||||||
if match:
|
if match:
|
||||||
requires.add(match.group(1))
|
requires.add(match.group(1))
|
||||||
with open(output_file_name, 'wb') as f:
|
with open(t.name, 'wb') as f:
|
||||||
for require in sorted(requires):
|
for require in sorted(requires):
|
||||||
f.write('goog.require(\'%s\');\n' % (require,))
|
f.write('goog.require(\'%s\');\n' % (require,))
|
||||||
|
|
||||||
|
|
||||||
@target('build/src/internal/src/requireall.js', SRC, SHADER_SRC,
|
|
||||||
LIBTESS_JS_SRC)
|
|
||||||
def build_src_internal_src_requireall_js(t):
|
|
||||||
_build_require_list(t.dependencies, t.name)
|
|
||||||
|
|
||||||
|
|
||||||
@target('build/test/requireall.js', SPEC)
|
|
||||||
def build_test_requireall_js(t):
|
|
||||||
_build_require_list(t.dependencies, t.name)
|
|
||||||
|
|
||||||
|
|
||||||
@target('build/src/internal/src/types.js', 'bin/generate-exports.py',
|
|
||||||
'src/objectliterals.jsdoc')
|
|
||||||
def build_src_internal_types_js(t):
|
|
||||||
t.output('%(PYTHON)s', 'bin/generate-exports.py',
|
|
||||||
'--typedef', 'src/objectliterals.jsdoc')
|
|
||||||
|
|
||||||
|
|
||||||
virtual('build-examples', 'examples', 'build/examples/all.combined.js',
|
virtual('build-examples', 'examples', 'build/examples/all.combined.js',
|
||||||
EXAMPLES_COMBINED)
|
EXAMPLES_COMBINED)
|
||||||
|
|
||||||
@@ -297,7 +260,7 @@ def examples_examples_list_js(t):
|
|||||||
|
|
||||||
|
|
||||||
@target('build/examples/all.combined.js', 'build/examples/all.js', PLOVR_JAR,
|
@target('build/examples/all.combined.js', 'build/examples/all.js', PLOVR_JAR,
|
||||||
SRC, INTERNAL_SRC, SHADER_SRC, LIBTESS_JS_SRC,
|
SRC, SHADER_SRC, LIBTESS_JS_SRC,
|
||||||
'buildcfg/base.json', 'build/examples/all.json')
|
'buildcfg/base.json', 'build/examples/all.json')
|
||||||
def build_examples_all_combined_js(t):
|
def build_examples_all_combined_js(t):
|
||||||
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
|
||||||
@@ -313,12 +276,16 @@ def build_examples_all_js(t):
|
|||||||
@rule(r'\Abuild/examples/(?P<id>.*).json\Z')
|
@rule(r'\Abuild/examples/(?P<id>.*).json\Z')
|
||||||
def examples_star_json(name, match):
|
def examples_star_json(name, match):
|
||||||
def action(t):
|
def action(t):
|
||||||
|
# It would make more sense to use olx.js as an input file here. We use
|
||||||
|
# it as an externs file instead to prevent "Cannot read property '*' of
|
||||||
|
# undefined" error when running examples in "raw" or "whitespace" mode.
|
||||||
|
# Note that we use the proper way in buildcfg/examples-all.json, which
|
||||||
|
# is only used to check the examples code using the compiler.
|
||||||
content = json.dumps({
|
content = json.dumps({
|
||||||
'id': match.group('id'),
|
'id': match.group('id'),
|
||||||
'inherits': '../../buildcfg/base.json',
|
'inherits': '../../buildcfg/base.json',
|
||||||
'inputs': [
|
'inputs': [
|
||||||
'../examples/%(id)s.js' % match.groupdict(),
|
'../examples/%(id)s.js' % match.groupdict()
|
||||||
'../build/src/internal/src/types.js',
|
|
||||||
],
|
],
|
||||||
'externs': [
|
'externs': [
|
||||||
'//jquery-1.7.js',
|
'//jquery-1.7.js',
|
||||||
@@ -328,6 +295,7 @@ def examples_star_json(name, match):
|
|||||||
'../externs/example.js',
|
'../externs/example.js',
|
||||||
'../externs/geojson.js',
|
'../externs/geojson.js',
|
||||||
'../externs/oli.js',
|
'../externs/oli.js',
|
||||||
|
'../externs/olx.js',
|
||||||
'../externs/proj4js.js',
|
'../externs/proj4js.js',
|
||||||
'../externs/tilejson.js',
|
'../externs/tilejson.js',
|
||||||
'../externs/topojson.js',
|
'../externs/topojson.js',
|
||||||
@@ -347,7 +315,7 @@ def examples_star_combined_js(name, match):
|
|||||||
PLOVR_JAR, 'build', 'build/examples/%(id)s.json' %
|
PLOVR_JAR, 'build', 'build/examples/%(id)s.json' %
|
||||||
match.groupdict())
|
match.groupdict())
|
||||||
report_sizes(t)
|
report_sizes(t)
|
||||||
dependencies = [PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC, LIBTESS_JS_SRC,
|
dependencies = [PLOVR_JAR, SRC, SHADER_SRC, LIBTESS_JS_SRC,
|
||||||
'buildcfg/base.json',
|
'buildcfg/base.json',
|
||||||
'examples/%(id)s.js' % match.groupdict(),
|
'examples/%(id)s.js' % match.groupdict(),
|
||||||
'build/examples/%(id)s.json' % match.groupdict()]
|
'build/examples/%(id)s.json' % match.groupdict()]
|
||||||
@@ -360,18 +328,17 @@ def serve(t):
|
|||||||
'buildcfg/ol-all.json', EXAMPLES_JSON, 'buildcfg/test.json')
|
'buildcfg/ol-all.json', EXAMPLES_JSON, 'buildcfg/test.json')
|
||||||
|
|
||||||
|
|
||||||
@target('serve-integration-test', PLOVR_JAR, INTERNAL_SRC)
|
@target('serve-integration-test', PLOVR_JAR)
|
||||||
def serve_precommit(t):
|
def serve_precommit(t):
|
||||||
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve',
|
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve',
|
||||||
'buildcfg/ol-all.json', 'buildcfg/test.json')
|
'buildcfg/ol-all.json', 'buildcfg/test.json')
|
||||||
|
|
||||||
|
|
||||||
virtual('lint', 'build/lint-timestamp', 'build/lint-generated-timestamp',
|
virtual('lint', 'build/lint-timestamp', 'build/lint-libtess.js-timestamp',
|
||||||
'build/lint-libtess.js-timestamp', 'build/check-requires-timestamp',
|
'build/check-requires-timestamp', 'build/check-whitespace-timestamp')
|
||||||
'build/check-whitespace-timestamp')
|
|
||||||
|
|
||||||
|
|
||||||
@target('build/lint-timestamp', SRC, EXAMPLES_SRC, SPEC, precious=True)
|
@target('build/lint-timestamp', SRC, EXPORTS, EXAMPLES_SRC, SPEC, precious=True)
|
||||||
def build_lint_src_timestamp(t):
|
def build_lint_src_timestamp(t):
|
||||||
t.run('%(GJSLINT)s',
|
t.run('%(GJSLINT)s',
|
||||||
'--jslint_error=all',
|
'--jslint_error=all',
|
||||||
@@ -381,26 +348,6 @@ def build_lint_src_timestamp(t):
|
|||||||
t.touch()
|
t.touch()
|
||||||
|
|
||||||
|
|
||||||
@target('build/lint-generated-timestamp', INTERNAL_SRC, EXTERNAL_SRC,
|
|
||||||
precious=True)
|
|
||||||
def build_lint_generated_timestamp(t):
|
|
||||||
limited_doc_files = [
|
|
||||||
path
|
|
||||||
for path in ifind('externs', 'build/src/external/externs')
|
|
||||||
if path.endswith('.js')]
|
|
||||||
t.run('%(GJSLINT)s',
|
|
||||||
'--jslint_error=all',
|
|
||||||
# ignore error for max line length (for these auto-generated sources)
|
|
||||||
'--disable=110',
|
|
||||||
'--custom_jsdoc_tags=todo',
|
|
||||||
# for a complete list of error codes to allow, see
|
|
||||||
# http://closure-linter.googlecode.com/svn/trunk/closure_linter/errors.py
|
|
||||||
'--limited_doc_files=%s' % (','.join(limited_doc_files),),
|
|
||||||
'--strict',
|
|
||||||
t.newer(t.dependencies))
|
|
||||||
t.touch()
|
|
||||||
|
|
||||||
|
|
||||||
@target('build/lint-libtess.js-timestamp', LIBTESS_JS_SRC, precious=True)
|
@target('build/lint-libtess.js-timestamp', LIBTESS_JS_SRC, precious=True)
|
||||||
def build_lint_libtess_js_timestamp(t):
|
def build_lint_libtess_js_timestamp(t):
|
||||||
t.run('%(GJSLINT)s',
|
t.run('%(GJSLINT)s',
|
||||||
@@ -413,8 +360,8 @@ def build_lint_libtess_js_timestamp(t):
|
|||||||
|
|
||||||
virtual('jshint', 'build/jshint-timestamp')
|
virtual('jshint', 'build/jshint-timestamp')
|
||||||
|
|
||||||
|
@target('build/jshint-timestamp', SRC, EXPORTS, EXAMPLES_SRC, SPEC,
|
||||||
@target('build/jshint-timestamp', SRC, EXAMPLES_SRC, SPEC, precious=True)
|
precious=True)
|
||||||
def build_jshint_timestamp(t):
|
def build_jshint_timestamp(t):
|
||||||
t.run(variables.JSHINT, '--verbose', t.newer(t.dependencies))
|
t.run(variables.JSHINT, '--verbose', t.newer(t.dependencies))
|
||||||
t.touch()
|
t.touch()
|
||||||
@@ -443,8 +390,8 @@ def _strip_comments(lines):
|
|||||||
yield lineno, line
|
yield lineno, line
|
||||||
|
|
||||||
|
|
||||||
@target('build/check-requires-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC,
|
@target('build/check-requires-timestamp', SRC, EXAMPLES_SRC,
|
||||||
EXAMPLES_SRC, SHADER_SRC, LIBTESS_JS_SRC, SPEC)
|
SHADER_SRC, LIBTESS_JS_SRC, SPEC)
|
||||||
def build_check_requires_timestamp(t):
|
def build_check_requires_timestamp(t):
|
||||||
from zipfile import ZipFile
|
from zipfile import ZipFile
|
||||||
unused_count = 0
|
unused_count = 0
|
||||||
@@ -463,8 +410,6 @@ def build_check_requires_timestamp(t):
|
|||||||
if m:
|
if m:
|
||||||
all_provides.add(m.group(1))
|
all_provides.add(m.group(1))
|
||||||
for filename in sorted(t.dependencies):
|
for filename in sorted(t.dependencies):
|
||||||
if filename == 'build/src/internal/src/requireall.js':
|
|
||||||
continue
|
|
||||||
require_linenos = {}
|
require_linenos = {}
|
||||||
uses = set()
|
uses = set()
|
||||||
lines = open(filename, 'rU').readlines()
|
lines = open(filename, 'rU').readlines()
|
||||||
@@ -544,8 +489,6 @@ def build_check_requires_timestamp(t):
|
|||||||
for key, child in root.children.iteritems()]
|
for key, child in root.children.iteritems()]
|
||||||
missing_count = 0
|
missing_count = 0
|
||||||
for filename in sorted(t.dependencies):
|
for filename in sorted(t.dependencies):
|
||||||
if filename in INTERNAL_SRC or filename in EXTERNAL_SRC:
|
|
||||||
continue
|
|
||||||
provides = set()
|
provides = set()
|
||||||
requires = set()
|
requires = set()
|
||||||
uses = set()
|
uses = set()
|
||||||
@@ -588,9 +531,8 @@ def build_check_requires_timestamp(t):
|
|||||||
t.touch()
|
t.touch()
|
||||||
|
|
||||||
|
|
||||||
@target('build/check-whitespace-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC,
|
@target('build/check-whitespace-timestamp', SRC, EXPORTS, EXAMPLES_SRC,
|
||||||
EXAMPLES_SRC, SPEC, EXPORTS, JSDOC_SRC, LIBTESS_JS_SRC,
|
SPEC, JSDOC_SRC, LIBTESS_JS_SRC, precious=True)
|
||||||
precious=True)
|
|
||||||
def build_check_whitespace_timestamp(t):
|
def build_check_whitespace_timestamp(t):
|
||||||
CR_RE = re.compile(r'\r')
|
CR_RE = re.compile(r'\r')
|
||||||
LEADING_WHITESPACE_RE = re.compile(r'\s+')
|
LEADING_WHITESPACE_RE = re.compile(r'\s+')
|
||||||
@@ -637,7 +579,7 @@ virtual('apidoc', 'build/jsdoc-%(BRANCH)s-timestamp' % vars(variables))
|
|||||||
|
|
||||||
|
|
||||||
@target('build/jsdoc-%(BRANCH)s-timestamp' % vars(variables), 'host-resources',
|
@target('build/jsdoc-%(BRANCH)s-timestamp' % vars(variables), 'host-resources',
|
||||||
'build/src/external/src/exports.js', SRC, SHADER_SRC,
|
EXPORTS, SRC, SHADER_SRC,
|
||||||
ifind('apidoc/template'))
|
ifind('apidoc/template'))
|
||||||
def jsdoc_BRANCH_timestamp(t):
|
def jsdoc_BRANCH_timestamp(t):
|
||||||
t.run('%(JSDOC)s', 'apidoc/index.md', '-c', 'apidoc/conf.json',
|
t.run('%(JSDOC)s', 'apidoc/index.md', '-c', 'apidoc/conf.json',
|
||||||
@@ -750,7 +692,7 @@ def proj4js_zip(t):
|
|||||||
t.info('downloaded %r', t.name)
|
t.info('downloaded %r', t.name)
|
||||||
|
|
||||||
|
|
||||||
virtual('test-deps', INTERNAL_SRC, PROJ4JS, 'build/test/requireall.js')
|
virtual('test-deps', PROJ4JS, 'build/test/requireall.js')
|
||||||
|
|
||||||
|
|
||||||
@target('test', 'test-deps', phony=True)
|
@target('test', 'test-deps', phony=True)
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
"../externs/closure-compiler.js",
|
"../externs/closure-compiler.js",
|
||||||
"../externs/geojson.js",
|
"../externs/geojson.js",
|
||||||
"../externs/oli.js",
|
"../externs/oli.js",
|
||||||
|
"../externs/olx.js",
|
||||||
"../externs/proj4js.js",
|
"../externs/proj4js.js",
|
||||||
"../externs/tilejson.js",
|
"../externs/tilejson.js",
|
||||||
"../externs/topojson.js",
|
"../externs/topojson.js",
|
||||||
@@ -67,7 +68,6 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"paths": [
|
"paths": [
|
||||||
"../build/src/internal/src",
|
|
||||||
"../src"
|
"../src"
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,6 @@
|
|||||||
"inherits": "base.json",
|
"inherits": "base.json",
|
||||||
"inputs": [
|
"inputs": [
|
||||||
"../build/examples/all.js",
|
"../build/examples/all.js",
|
||||||
"../build/src/internal/src/types.js"
|
"../externs/olx.js"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
15
buildcfg/jsdoc/symbols/conf.json
Normal file
15
buildcfg/jsdoc/symbols/conf.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"opts": {
|
||||||
|
"recurse": true,
|
||||||
|
"template": "buildcfg/jsdoc/symbols"
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"allowUnknownTags": true
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"includePattern": "\\.js$"
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"buildcfg/jsdoc/symbols/todo-plugin"
|
||||||
|
]
|
||||||
|
}
|
||||||
45
buildcfg/jsdoc/symbols/publish.js
Normal file
45
buildcfg/jsdoc/symbols/publish.js
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/**
|
||||||
|
* @fileoverview Generates JSON output based on doclets with the "api" tag.
|
||||||
|
*/
|
||||||
|
var assert = require('assert');
|
||||||
|
var fs = require('fs');
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Publish hook for the JSDoc template. Writes to JSON stdout.
|
||||||
|
* @param {function} data The root of the Taffy DB containing doclet records.
|
||||||
|
* @param {Object} opts Options.
|
||||||
|
*/
|
||||||
|
exports.publish = function(data, opts) {
|
||||||
|
var cwd = process.cwd();
|
||||||
|
|
||||||
|
// get all doclets with the "api" property, but no enums, typedefs and events.
|
||||||
|
var docs = data(
|
||||||
|
{api: {isString: true}},
|
||||||
|
{isEnum: {'!is': true}},
|
||||||
|
{kind: {'!is': 'typedef'}},
|
||||||
|
{kind: {'!is': 'event'}}
|
||||||
|
).get();
|
||||||
|
|
||||||
|
// get symbols data, filter out those that are members of private classes
|
||||||
|
var symbols = docs.filter(function(doc) {
|
||||||
|
var include = true;
|
||||||
|
var constructor = doc.memberof;
|
||||||
|
if (constructor && constructor.substr(-1) === '_') {
|
||||||
|
assert.strictEqual(doc.inherited, true,
|
||||||
|
'Unexpected export on private class: ' + doc.longname);
|
||||||
|
include = false;
|
||||||
|
}
|
||||||
|
return include;
|
||||||
|
}).map(function(doc) {
|
||||||
|
return {
|
||||||
|
name: doc.longname,
|
||||||
|
extends: doc.augments,
|
||||||
|
path: path.join(doc.meta.path, doc.meta.filename)
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
process.stdout.write(JSON.stringify({symbols: symbols}, null, 2));
|
||||||
|
|
||||||
|
};
|
||||||
26
buildcfg/jsdoc/symbols/todo-plugin.js
Normal file
26
buildcfg/jsdoc/symbols/todo-plugin.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* @fileoverview This plugin should go away when we get rid of Plovr and can
|
||||||
|
* use Closure Compiler's extra_annotation_name option. Until then, we hijack
|
||||||
|
* the todo tag to add doclet properties for other tags we eventually want to
|
||||||
|
* support. For example, the "todo api" tag can eventually be replaced with
|
||||||
|
* the "api" tag.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Our hook to define new tags.
|
||||||
|
* @param {Object} dictionary The tag dictionary.
|
||||||
|
*/
|
||||||
|
exports.defineTags = function(dictionary) {
|
||||||
|
|
||||||
|
dictionary.defineTag('todo', {
|
||||||
|
mustHaveValue: true,
|
||||||
|
onTagged: function(doclet, tag) {
|
||||||
|
var parts = tag.text.split(' ');
|
||||||
|
if (parts[0] === 'api') {
|
||||||
|
doclet.api = parts.slice(1).join(' ').trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
@@ -3,11 +3,11 @@
|
|||||||
"id": "ol-all",
|
"id": "ol-all",
|
||||||
|
|
||||||
"externs": [
|
"externs": [
|
||||||
"../build/src/external/externs/types.js",
|
|
||||||
"../externs/bingmaps.js",
|
"../externs/bingmaps.js",
|
||||||
"../externs/closure-compiler.js",
|
"../externs/closure-compiler.js",
|
||||||
"../externs/geojson.js",
|
"../externs/geojson.js",
|
||||||
"../externs/oli.js",
|
"../externs/oli.js",
|
||||||
|
"../externs/olx.js",
|
||||||
"../externs/proj4js.js",
|
"../externs/proj4js.js",
|
||||||
"../externs/tilejson.js",
|
"../externs/tilejson.js",
|
||||||
"../externs/topojson.js",
|
"../externs/topojson.js",
|
||||||
@@ -17,8 +17,7 @@
|
|||||||
"inherits": "base.json",
|
"inherits": "base.json",
|
||||||
|
|
||||||
"inputs": [
|
"inputs": [
|
||||||
"../build/src/internal/src/requireall.js",
|
"../build/exports.js"
|
||||||
"../build/src/external/src/exports.js"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,11 +13,11 @@
|
|||||||
"id": "ol-simple",
|
"id": "ol-simple",
|
||||||
|
|
||||||
"externs": [
|
"externs": [
|
||||||
"../build/src/external/externs/types.js",
|
|
||||||
"../externs/bingmaps.js",
|
"../externs/bingmaps.js",
|
||||||
"../externs/closure-compiler.js",
|
"../externs/closure-compiler.js",
|
||||||
"../externs/geojson.js",
|
"../externs/geojson.js",
|
||||||
"../externs/oli.js",
|
"../externs/oli.js",
|
||||||
|
"../externs/olx.js",
|
||||||
"../externs/proj4js.js",
|
"../externs/proj4js.js",
|
||||||
"../externs/tilejson.js",
|
"../externs/tilejson.js",
|
||||||
"../externs/topojson.js",
|
"../externs/topojson.js",
|
||||||
@@ -27,8 +27,7 @@
|
|||||||
"inherits": "ol.json",
|
"inherits": "ol.json",
|
||||||
|
|
||||||
"inputs": [
|
"inputs": [
|
||||||
"../build/src/internal/src/requireall.js",
|
"../build/exports.js"
|
||||||
"../build/src/external/src/exports.js"
|
|
||||||
],
|
],
|
||||||
|
|
||||||
"mode": "SIMPLE",
|
"mode": "SIMPLE",
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
"../externs/closure-compiler.js",
|
"../externs/closure-compiler.js",
|
||||||
"../externs/geojson.js",
|
"../externs/geojson.js",
|
||||||
"../externs/oli.js",
|
"../externs/oli.js",
|
||||||
|
"../externs/olx.js",
|
||||||
"../externs/proj4js.js",
|
"../externs/proj4js.js",
|
||||||
"../externs/tilejson.js",
|
"../externs/tilejson.js",
|
||||||
"../externs/topojson.js",
|
"../externs/topojson.js",
|
||||||
@@ -27,7 +28,7 @@
|
|||||||
"inherits": "ol.json",
|
"inherits": "ol.json",
|
||||||
|
|
||||||
"inputs": [
|
"inputs": [
|
||||||
"../build/src/internal/src/requireall.js"
|
"../build/exports.js"
|
||||||
],
|
],
|
||||||
|
|
||||||
"mode": "WHITESPACE",
|
"mode": "WHITESPACE",
|
||||||
|
|||||||
@@ -13,11 +13,11 @@
|
|||||||
"css-output-file": "../build/ol.css",
|
"css-output-file": "../build/ol.css",
|
||||||
|
|
||||||
"externs": [
|
"externs": [
|
||||||
"../build/src/external/externs/types.js",
|
|
||||||
"../externs/bingmaps.js",
|
"../externs/bingmaps.js",
|
||||||
"../externs/closure-compiler.js",
|
"../externs/closure-compiler.js",
|
||||||
"../externs/geojson.js",
|
"../externs/geojson.js",
|
||||||
"../externs/oli.js",
|
"../externs/oli.js",
|
||||||
|
"../externs/olx.js",
|
||||||
"../externs/proj4js.js",
|
"../externs/proj4js.js",
|
||||||
"../externs/tilejson.js",
|
"../externs/tilejson.js",
|
||||||
"../externs/topojson.js",
|
"../externs/topojson.js",
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"inherits": "base.json",
|
"inherits": "base.json",
|
||||||
|
|
||||||
"inputs": [
|
"inputs": [
|
||||||
"../build/src/external/src/exports.js"
|
"../build/exports.js"
|
||||||
],
|
],
|
||||||
|
|
||||||
"output-wrapper": "// OpenLayers 3. see http://ol3js.org/\n(function(){%output%})();",
|
"output-wrapper": "// OpenLayers 3. see http://ol3js.org/\n(function(){%output%})();",
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
<div class="span12">
|
<div class="span12">
|
||||||
<button id="rotate-left"><i class="icon-arrow-left"></i></button>
|
<button id="rotate-left"><i class="icon-arrow-left"></i></button>
|
||||||
<button id="rotate-right"><i class="icon-arrow-right"></i></button>
|
<button id="rotate-right"><i class="icon-arrow-right"></i></button>
|
||||||
|
<button id="rotate-around-rome">Rotate around Rome</button>
|
||||||
<button id="pan-to-london">Pan to London</button>
|
<button id="pan-to-london">Pan to London</button>
|
||||||
<button id="elastic-to-moscow">Elastic to Moscow</button>
|
<button id="elastic-to-moscow">Elastic to Moscow</button>
|
||||||
<button id="bounce-to-istanbul">Bounce to Istanbul</button>
|
<button id="bounce-to-istanbul">Bounce to Istanbul</button>
|
||||||
|
|||||||
@@ -49,6 +49,17 @@ rotateRight.addEventListener('click', function() {
|
|||||||
map.beforeRender(rotateRight);
|
map.beforeRender(rotateRight);
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
var rotateAroundRome = document.getElementById('rotate-around-rome');
|
||||||
|
rotateAroundRome.addEventListener('click', function() {
|
||||||
|
var currentRotation = view.getRotation();
|
||||||
|
var rotateAroundRome = ol.animation.rotate({
|
||||||
|
anchor: rome,
|
||||||
|
duration: 1000,
|
||||||
|
rotation: currentRotation
|
||||||
|
});
|
||||||
|
map.beforeRender(rotateAroundRome);
|
||||||
|
view.rotate(currentRotation + (Math.PI / 2), rome);
|
||||||
|
}, false);
|
||||||
|
|
||||||
var panToLondon = document.getElementById('pan-to-london');
|
var panToLondon = document.getElementById('pan-to-london');
|
||||||
panToLondon.addEventListener('click', function() {
|
panToLondon.addEventListener('click', function() {
|
||||||
|
|||||||
65
examples/measure.html
Normal file
65
examples/measure.html
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||||
|
<link rel="stylesheet" href="../css/ol.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
|
||||||
|
<title>Measure example</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="navbar navbar-inverse navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
|
<div id="map" class="map"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
|
||||||
|
<div class="span12">
|
||||||
|
<h4 id="title">Measure example</h4>
|
||||||
|
<p id="shortdesc">Example of using the
|
||||||
|
ol.interaction.Draw interaction for creating simple
|
||||||
|
measuring application. </p>
|
||||||
|
<form class="form-inline">
|
||||||
|
<label>Geometry type </label>
|
||||||
|
<select id="type">
|
||||||
|
<option value="length">Length</option>
|
||||||
|
<option value="area">Area</option>
|
||||||
|
</select>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ol id="measureOutput" reversed></ol>
|
||||||
|
|
||||||
|
<div id="docs">
|
||||||
|
<p><i>NOTE: Measure is done in simple way on projected plane. Earth
|
||||||
|
curvature is not taken into account</i></p>
|
||||||
|
<p>See the <a href="measure.js" target="_blank">measure.js source</a> to see how this is done.</p>
|
||||||
|
</div>
|
||||||
|
<div id="tags">draw, edit, measure, vector</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="jquery.min.js" type="text/javascript"></script>
|
||||||
|
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
|
||||||
|
<script src="loader.js?id=measure" type="text/javascript"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
167
examples/measure.js
Normal file
167
examples/measure.js
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View2D');
|
||||||
|
goog.require('ol.geom.LineString');
|
||||||
|
goog.require('ol.geom.Polygon');
|
||||||
|
goog.require('ol.interaction');
|
||||||
|
goog.require('ol.interaction.Draw');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.layer.Vector');
|
||||||
|
goog.require('ol.source.MapQuest');
|
||||||
|
goog.require('ol.source.Vector');
|
||||||
|
goog.require('ol.style.Circle');
|
||||||
|
goog.require('ol.style.Fill');
|
||||||
|
goog.require('ol.style.Stroke');
|
||||||
|
goog.require('ol.style.Style');
|
||||||
|
|
||||||
|
var raster = new ol.layer.Tile({
|
||||||
|
source: new ol.source.MapQuest({layer: 'sat'})
|
||||||
|
});
|
||||||
|
|
||||||
|
var source = new ol.source.Vector();
|
||||||
|
|
||||||
|
var vector = new ol.layer.Vector({
|
||||||
|
source: source,
|
||||||
|
style: new ol.style.Style({
|
||||||
|
fill: new ol.style.Fill({
|
||||||
|
color: 'rgba(255, 255, 255, 0.2)'
|
||||||
|
}),
|
||||||
|
stroke: new ol.style.Stroke({
|
||||||
|
color: '#ffcc33',
|
||||||
|
width: 2
|
||||||
|
}),
|
||||||
|
image: new ol.style.Circle({
|
||||||
|
radius: 7,
|
||||||
|
fill: new ol.style.Fill({
|
||||||
|
color: '#ffcc33'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently drawed feature
|
||||||
|
* @type {ol.Feature}
|
||||||
|
*/
|
||||||
|
var sketch;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Element for currently drawed feature
|
||||||
|
* @type {Element}
|
||||||
|
*/
|
||||||
|
var sketchElement;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* handle pointer move
|
||||||
|
* @param {Event} evt
|
||||||
|
*/
|
||||||
|
var mouseMoveHandler = function(evt) {
|
||||||
|
if (sketch) {
|
||||||
|
var output;
|
||||||
|
var geom = (sketch.getGeometry());
|
||||||
|
if (geom instanceof ol.geom.Polygon) {
|
||||||
|
output = formatArea(/** @type {ol.geom.Polygon} */ (geom));
|
||||||
|
|
||||||
|
} else if (geom instanceof ol.geom.LineString) {
|
||||||
|
output = formatLength( /** @type {ol.geom.LineString} */ (geom));
|
||||||
|
}
|
||||||
|
sketchElement.innerHTML = output;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
layers: [raster, vector],
|
||||||
|
target: 'map',
|
||||||
|
view: new ol.View2D({
|
||||||
|
center: [-11000000, 4600000],
|
||||||
|
zoom: 15
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
$(map.getViewport()).on('mousemove', mouseMoveHandler);
|
||||||
|
|
||||||
|
var typeSelect = document.getElementById('type');
|
||||||
|
|
||||||
|
var draw; // global so we can remove it later
|
||||||
|
function addInteraction() {
|
||||||
|
var type = (typeSelect.value == 'area' ? 'Polygon' : 'LineString');
|
||||||
|
draw = new ol.interaction.Draw({
|
||||||
|
source: source,
|
||||||
|
type: /** @type {ol.geom.GeometryType} */ (type)
|
||||||
|
});
|
||||||
|
map.addInteraction(draw);
|
||||||
|
|
||||||
|
draw.on('drawstart',
|
||||||
|
function(evt) {
|
||||||
|
// set sketch
|
||||||
|
sketch = evt.feature;
|
||||||
|
sketchElement = document.createElement('li');
|
||||||
|
var outputList = document.getElementById('measureOutput');
|
||||||
|
|
||||||
|
if (outputList.childNodes) {
|
||||||
|
outputList.insertBefore(sketchElement, outputList.firstChild);
|
||||||
|
} else {
|
||||||
|
outputList.appendChild(sketchElement);
|
||||||
|
}
|
||||||
|
}, this);
|
||||||
|
|
||||||
|
draw.on('drawend',
|
||||||
|
function(evt) {
|
||||||
|
// unset sketch
|
||||||
|
sketch = null;
|
||||||
|
sketchElement = null;
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let user change the geometry type.
|
||||||
|
* @param {Event} e Change event.
|
||||||
|
*/
|
||||||
|
typeSelect.onchange = function(e) {
|
||||||
|
map.removeInteraction(draw);
|
||||||
|
addInteraction();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* format length output
|
||||||
|
* @param {ol.geom.LineString} line
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
var formatLength = function(line) {
|
||||||
|
var length = Math.round(line.getLength() * 100) / 100;
|
||||||
|
var output;
|
||||||
|
if (length > 100) {
|
||||||
|
output = (Math.round(length / 1000 * 100) / 100) +
|
||||||
|
' ' + 'km';
|
||||||
|
} else {
|
||||||
|
output = (Math.round(length * 100) / 100) +
|
||||||
|
' ' + 'm';
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* format length output
|
||||||
|
* @param {ol.geom.Polygon} polygon
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
var formatArea = function(polygon) {
|
||||||
|
var area = polygon.getArea();
|
||||||
|
var output;
|
||||||
|
if (area > 10000) {
|
||||||
|
output = (Math.round(area / 1000000 * 100) / 100) +
|
||||||
|
' ' + 'km<sup>2</sup>';
|
||||||
|
} else {
|
||||||
|
output = (Math.round(area * 100) / 100) +
|
||||||
|
' ' + 'm<sup>2</sup>';
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
addInteraction();
|
||||||
51
examples/tissot.html
Normal file
51
examples/tissot.html
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||||
|
<link rel="stylesheet" href="../css/ol.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
|
||||||
|
<title>Tissot indicatrix example</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="navbar navbar-inverse navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
|
<div id="map" class="map"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
|
||||||
|
<div class="span12">
|
||||||
|
<h4 id="title">Tissot indicatrix example</h4>
|
||||||
|
<p id="shortdesc">Example of a <a href="http://en.wikipedia.org/wiki/Tissot's_indicatrix">Tissot indicatrix</a> map.</p>
|
||||||
|
<div id="docs">
|
||||||
|
<p>See the <a href="tissot.js" target="_blank">tissot.js source</a> to see how this is done.</p>
|
||||||
|
</div>
|
||||||
|
<div id="tags">tissot, circle</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="jquery.min.js" type="text/javascript"></script>
|
||||||
|
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
|
||||||
|
<script src="loader.js?id=tissot" type="text/javascript"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
44
examples/tissot.js
Normal file
44
examples/tissot.js
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
goog.require('ol.Feature');
|
||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View2D');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.layer.Vector');
|
||||||
|
goog.require('ol.source.TileWMS');
|
||||||
|
goog.require('ol.source.Vector');
|
||||||
|
goog.require('ol.sphere.WGS84');
|
||||||
|
|
||||||
|
var vectorSource = new ol.source.Vector();
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
layers: [
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.TileWMS({
|
||||||
|
url: 'http://vmap0.tiles.osgeo.org/wms/vmap0',
|
||||||
|
params: {
|
||||||
|
'VERSION': '1.1.1',
|
||||||
|
'LAYERS': 'basic',
|
||||||
|
'FORMAT': 'image/jpeg'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
new ol.layer.Vector({
|
||||||
|
source: vectorSource
|
||||||
|
})
|
||||||
|
],
|
||||||
|
renderer: 'canvas',
|
||||||
|
target: 'map',
|
||||||
|
view: new ol.View2D({
|
||||||
|
projection: 'EPSG:4326',
|
||||||
|
center: [0, 0],
|
||||||
|
zoom: 2
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var radius = 800000;
|
||||||
|
for (var x = -180; x < 180; x += 30) {
|
||||||
|
for (var y = -90; y < 90; y += 30) {
|
||||||
|
var geometry = ol.sphere.WGS84.circle([x, y], radius, 64);
|
||||||
|
vectorSource.addFeature(new ol.Feature(geometry));
|
||||||
|
}
|
||||||
|
}
|
||||||
56
examples/vector-wfs.html
Normal file
56
examples/vector-wfs.html
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||||
|
<link rel="stylesheet" href="../css/ol.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
|
||||||
|
<title>WFS example</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="navbar navbar-inverse navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
|
<div id="map" class="map"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
|
||||||
|
<div class="span4">
|
||||||
|
<h4 id="title">WFS example</h4>
|
||||||
|
<p id="shortdesc">Example of using WFS with a BBOX strategy.</p>
|
||||||
|
<div id="docs">
|
||||||
|
<p>See the <a href="vector-wfs.js" target="_blank">vector-wfs.js source</a> to see how this is done.</p>
|
||||||
|
</div>
|
||||||
|
<div id="tags">vector, WFS, bbox, loading, server</div>
|
||||||
|
</div>
|
||||||
|
<div class="span4 offset4">
|
||||||
|
<div id="info" class="alert alert-success">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="jquery.min.js" type="text/javascript"></script>
|
||||||
|
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
|
||||||
|
<script src="loader.js?id=vector-wfs" type="text/javascript"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
60
examples/vector-wfs.js
Normal file
60
examples/vector-wfs.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View2D');
|
||||||
|
goog.require('ol.format.GeoJSON');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.layer.Vector');
|
||||||
|
goog.require('ol.loadingstrategy');
|
||||||
|
goog.require('ol.source.BingMaps');
|
||||||
|
goog.require('ol.source.ServerVector');
|
||||||
|
goog.require('ol.style.Stroke');
|
||||||
|
goog.require('ol.style.Style');
|
||||||
|
goog.require('ol.tilegrid.XYZ');
|
||||||
|
|
||||||
|
var loadFeatures = function(response) {
|
||||||
|
vectorSource.addFeatures(vectorSource.readFeatures(response));
|
||||||
|
};
|
||||||
|
|
||||||
|
var vectorSource = new ol.source.ServerVector({
|
||||||
|
format: new ol.format.GeoJSON(),
|
||||||
|
loader: function(extent, resolution, projection) {
|
||||||
|
var url = 'http://demo.opengeo.org/geoserver/wfs?service=WFS&' +
|
||||||
|
'version=1.1.0&request=GetFeature&typename=osm:water_areas&' +
|
||||||
|
'outputFormat=text/javascript&format_options=callback:loadFeatures' +
|
||||||
|
'&srsname=EPSG:3857&bbox=' + extent.join(',') + ',EPSG:3857';
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
dataType: 'jsonp'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
strategy: ol.loadingstrategy.createTile(new ol.tilegrid.XYZ({
|
||||||
|
maxZoom: 19
|
||||||
|
})),
|
||||||
|
projection: 'EPSG:3857'
|
||||||
|
});
|
||||||
|
|
||||||
|
var vector = new ol.layer.Vector({
|
||||||
|
source: vectorSource,
|
||||||
|
style: new ol.style.Style({
|
||||||
|
stroke: new ol.style.Stroke({
|
||||||
|
color: 'rgba(0, 0, 255, 1.0)',
|
||||||
|
width: 2
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
var raster = new ol.layer.Tile({
|
||||||
|
source: new ol.source.BingMaps({
|
||||||
|
imagerySet: 'Aerial',
|
||||||
|
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
layers: [raster, vector],
|
||||||
|
target: document.getElementById('map'),
|
||||||
|
view: new ol.View2D({
|
||||||
|
center: [-8908887.277395891, 5381918.072437216],
|
||||||
|
maxZoom: 19,
|
||||||
|
zoom: 12
|
||||||
|
})
|
||||||
|
});
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
goog.require('ol.Attribution');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View2D');
|
goog.require('ol.View2D');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
@@ -8,17 +9,23 @@ goog.require('ol.source.WMTS');
|
|||||||
goog.require('ol.tilegrid.WMTS');
|
goog.require('ol.tilegrid.WMTS');
|
||||||
|
|
||||||
|
|
||||||
var projection = ol.proj.get('EPSG:900913');
|
var projection = ol.proj.get('EPSG:3857');
|
||||||
var projectionExtent = projection.getExtent();
|
var projectionExtent = projection.getExtent();
|
||||||
var size = ol.extent.getWidth(projectionExtent) / 256;
|
var size = ol.extent.getWidth(projectionExtent) / 256;
|
||||||
var resolutions = new Array(18);
|
var resolutions = new Array(14);
|
||||||
var matrixIds = new Array(18);
|
var matrixIds = new Array(14);
|
||||||
for (var z = 0; z < 18; ++z) {
|
for (var z = 0; z < 14; ++z) {
|
||||||
// generate resolutions and matrixIds arrays for this WMTS
|
// generate resolutions and matrixIds arrays for this WMTS
|
||||||
resolutions[z] = size / Math.pow(2, z);
|
resolutions[z] = size / Math.pow(2, z);
|
||||||
matrixIds[z] = z;
|
matrixIds[z] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var attribution = new ol.Attribution({
|
||||||
|
html: 'Tiles © <a href="http://services.arcgisonline.com/arcgis/rest/' +
|
||||||
|
'services/Demographics/USA_Population_Density/MapServer/">ArcGIS</a>'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
@@ -28,25 +35,26 @@ var map = new ol.Map({
|
|||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
opacity: 0.7,
|
opacity: 0.7,
|
||||||
source: new ol.source.WMTS({
|
source: new ol.source.WMTS({
|
||||||
url: 'http://demo-apollo.geospatial.intergraph.com/erdas-iws/ogc/wmts/',
|
attributions: [attribution],
|
||||||
layer: 'sampleiws_images_geodetic_worldgeodemo.ecw',
|
url: 'http://services.arcgisonline.com/arcgis/rest/' +
|
||||||
matrixSet: 'ogc:1.0:googlemapscompatible',
|
'services/Demographics/USA_Population_Density/MapServer/WMTS/',
|
||||||
format: 'image/jpeg',
|
layer: '0',
|
||||||
|
matrixSet: 'EPSG:3857',
|
||||||
|
format: 'image/png',
|
||||||
projection: projection,
|
projection: projection,
|
||||||
tileGrid: new ol.tilegrid.WMTS({
|
tileGrid: new ol.tilegrid.WMTS({
|
||||||
origin: ol.extent.getTopLeft(projectionExtent),
|
origin: ol.extent.getTopLeft(projectionExtent),
|
||||||
resolutions: resolutions,
|
resolutions: resolutions,
|
||||||
matrixIds: matrixIds
|
matrixIds: matrixIds
|
||||||
}),
|
}),
|
||||||
extent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34],
|
extent: projectionExtent,
|
||||||
style: 'default'
|
style: 'default'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
target: 'map',
|
target: 'map',
|
||||||
view: new ol.View2D({
|
view: new ol.View2D({
|
||||||
center: [0, 0],
|
center: [-11158582, 4813697],
|
||||||
zoom: 0,
|
zoom: 4
|
||||||
maxResolution: resolutions[1]
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|||||||
51
examples/xyz.html
Normal file
51
examples/xyz.html
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||||
|
<link rel="stylesheet" href="../css/ol.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
|
||||||
|
<title>XYZ example</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="navbar navbar-inverse navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
|
<div id="map" class="map"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
|
||||||
|
<div class="span12">
|
||||||
|
<h4 id="title">XYZ example</h4>
|
||||||
|
<p id="shortdesc">Example of a XYZ source.</p>
|
||||||
|
<div id="docs">
|
||||||
|
<p>See the <a href="xyz.js" target="_blank">xyz.js source</a> for details on how this is done.</p>
|
||||||
|
</div>
|
||||||
|
<div id="tags">xyz</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="jquery.min.js" type="text/javascript"></script>
|
||||||
|
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
|
||||||
|
<script src="loader.js?id=xyz" type="text/javascript"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
40
examples/xyz.js
Normal file
40
examples/xyz.js
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
goog.require('ol.Attribution');
|
||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View2D');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.source.OSM');
|
||||||
|
goog.require('ol.source.XYZ');
|
||||||
|
|
||||||
|
|
||||||
|
var attribution = new ol.Attribution({
|
||||||
|
html: 'Tiles © <a href="http://maps.nls.uk/townplans/glasgow_1.html">' +
|
||||||
|
'National Library of Scotland</a>'
|
||||||
|
});
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
target: 'map',
|
||||||
|
layers: [
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.OSM({
|
||||||
|
attributions: [
|
||||||
|
new ol.Attribution({
|
||||||
|
html: 'Tiles © <a href="http://www.opencyclemap.org/">' +
|
||||||
|
'OpenCycleMap</a>'
|
||||||
|
}),
|
||||||
|
ol.source.OSM.DATA_ATTRIBUTION
|
||||||
|
],
|
||||||
|
url: 'http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png'
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.XYZ({
|
||||||
|
attributions: [attribution],
|
||||||
|
url: 'http://geo.nls.uk/maps/towns/glasgow1857/{z}/{x}/{-y}.png'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
],
|
||||||
|
view: new ol.View2D({
|
||||||
|
center: [-472202, 7530279],
|
||||||
|
zoom: 12
|
||||||
|
})
|
||||||
|
});
|
||||||
@@ -14,7 +14,11 @@ var oli;
|
|||||||
oli.CollectionEvent;
|
oli.CollectionEvent;
|
||||||
|
|
||||||
|
|
||||||
/** @type {*} */
|
/**
|
||||||
|
* The element that is added to or removed from the collection.
|
||||||
|
* @type {*}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.CollectionEvent.prototype.element;
|
oli.CollectionEvent.prototype.element;
|
||||||
|
|
||||||
|
|
||||||
@@ -23,7 +27,10 @@ oli.CollectionEvent.prototype.element;
|
|||||||
oli.DragBoxEvent;
|
oli.DragBoxEvent;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.Coordinate} */
|
/**
|
||||||
|
* @type {ol.Coordinate}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.DragBoxEvent.prototype.coordinate;
|
oli.DragBoxEvent.prototype.coordinate;
|
||||||
|
|
||||||
|
|
||||||
@@ -32,7 +39,11 @@ oli.DragBoxEvent.prototype.coordinate;
|
|||||||
oli.DrawEvent;
|
oli.DrawEvent;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.Feature} */
|
/**
|
||||||
|
* The feature being drawn.
|
||||||
|
* @type {ol.Feature}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.DrawEvent.prototype.feature;
|
oli.DrawEvent.prototype.feature;
|
||||||
|
|
||||||
|
|
||||||
@@ -77,7 +88,10 @@ oli.FrameState.prototype.layerStatesArray;
|
|||||||
oli.FrameState.prototype.logos;
|
oli.FrameState.prototype.logos;
|
||||||
|
|
||||||
|
|
||||||
/** @type {number} */
|
/**
|
||||||
|
* @type {number}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.FrameState.prototype.pixelRatio;
|
oli.FrameState.prototype.pixelRatio;
|
||||||
|
|
||||||
|
|
||||||
@@ -101,7 +115,10 @@ oli.FrameState.prototype.skippedFeatureUids_;
|
|||||||
oli.FrameState.prototype.tileQueue;
|
oli.FrameState.prototype.tileQueue;
|
||||||
|
|
||||||
|
|
||||||
/** @type {number} */
|
/**
|
||||||
|
* @type {number}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.FrameState.prototype.time;
|
oli.FrameState.prototype.time;
|
||||||
|
|
||||||
|
|
||||||
@@ -109,7 +126,10 @@ oli.FrameState.prototype.time;
|
|||||||
oli.FrameState.prototype.usedTiles;
|
oli.FrameState.prototype.usedTiles;
|
||||||
|
|
||||||
|
|
||||||
/** @type {oli.View2DState} */
|
/**
|
||||||
|
* @type {oli.View2DState}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.FrameState.prototype.view2DState;
|
oli.FrameState.prototype.view2DState;
|
||||||
|
|
||||||
|
|
||||||
@@ -135,15 +155,24 @@ oli.ObjectEvent.prototype.key;
|
|||||||
oli.MapBrowserEvent;
|
oli.MapBrowserEvent;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.Coordinate} */
|
/**
|
||||||
|
* @type {ol.Coordinate}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.MapBrowserEvent.prototype.coordinate;
|
oli.MapBrowserEvent.prototype.coordinate;
|
||||||
|
|
||||||
|
|
||||||
/** @type {Event} */
|
/**
|
||||||
|
* @type {Event}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.MapBrowserEvent.prototype.originalEvent;
|
oli.MapBrowserEvent.prototype.originalEvent;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.Pixel} */
|
/**
|
||||||
|
* @type {ol.Pixel}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.MapBrowserEvent.prototype.pixel;
|
oli.MapBrowserEvent.prototype.pixel;
|
||||||
|
|
||||||
|
|
||||||
@@ -187,32 +216,60 @@ oli.control.Control.prototype.setMap = function(map) {};
|
|||||||
oli.interaction.DragAndDropEvent;
|
oli.interaction.DragAndDropEvent;
|
||||||
|
|
||||||
|
|
||||||
/** @type {Array.<ol.Feature>} */
|
/**
|
||||||
|
* @type {Array.<ol.Feature>|undefined}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.interaction.DragAndDropEvent.prototype.features;
|
oli.interaction.DragAndDropEvent.prototype.features;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.proj.Projection} */
|
/**
|
||||||
|
* @type {ol.proj.Projection|undefined}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.interaction.DragAndDropEvent.prototype.projection;
|
oli.interaction.DragAndDropEvent.prototype.projection;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {File}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
|
oli.interaction.DragAndDropEvent.prototype.file;
|
||||||
|
|
||||||
|
|
||||||
/** @interface */
|
/** @interface */
|
||||||
oli.render.Event;
|
oli.render.Event;
|
||||||
|
|
||||||
|
|
||||||
/** @type {CanvasRenderingContext2D|null|undefined} */
|
/**
|
||||||
|
* Canvas context. Only available when a Canvas renderer is used, null
|
||||||
|
* otherwise.
|
||||||
|
* @type {CanvasRenderingContext2D|null|undefined}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.render.Event.prototype.context;
|
oli.render.Event.prototype.context;
|
||||||
|
|
||||||
|
|
||||||
/** @type {oli.FrameState|undefined} */
|
/**
|
||||||
|
* @type {oli.FrameState|undefined}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.render.Event.prototype.frameState;
|
oli.render.Event.prototype.frameState;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.webgl.Context|null|undefined} */
|
/**
|
||||||
|
* WebGL context. Only available when a WebGL renderer is used, null otherwise.
|
||||||
|
* @type {ol.webgl.Context|null|undefined}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.render.Event.prototype.glContext;
|
oli.render.Event.prototype.glContext;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.render.IVectorContext|undefined} */
|
/**
|
||||||
|
* For canvas, this is an instance of {@link ol.render.canvas.Immediate}.
|
||||||
|
* @type {ol.render.IVectorContext|undefined}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.render.Event.prototype.vectorContext;
|
oli.render.Event.prototype.vectorContext;
|
||||||
|
|
||||||
|
|
||||||
@@ -221,5 +278,9 @@ oli.render.Event.prototype.vectorContext;
|
|||||||
oli.source.VectorEvent;
|
oli.source.VectorEvent;
|
||||||
|
|
||||||
|
|
||||||
/** @type {ol.Feature} */
|
/**
|
||||||
|
* The feature being added or removed.
|
||||||
|
* @type {ol.Feature}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
oli.source.VectorEvent.prototype.feature;
|
oli.source.VectorEvent.prototype.feature;
|
||||||
|
|||||||
4813
externs/olx.js
Normal file
4813
externs/olx.js
Normal file
File diff suppressed because it is too large
Load Diff
116
externs/readme.md
Normal file
116
externs/readme.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Externs
|
||||||
|
|
||||||
|
This directory contains externs files, which tell the Closure compiler about symbols and properties that it should not rename.
|
||||||
|
|
||||||
|
## oli.js and olx.js
|
||||||
|
|
||||||
|
These two files are special externs that belong to ol3, and this document explains their purpose and how they are used.
|
||||||
|
|
||||||
|
### Prevent class properties from being renamed
|
||||||
|
|
||||||
|
For events, we make properties available to the application. Other than methods, which can be made available by just marking them with the `@api` annotation, properties are exported using `oli.js`:
|
||||||
|
```js
|
||||||
|
/** @interface */
|
||||||
|
oli.MapBrowserEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {ol.Coordinate}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
|
oli.MapBrowserEvent.prototype.coordinate;
|
||||||
|
```
|
||||||
|
In the source file (`src/ol/MapBrowserEvent.js`), the class needs to implement this interface:
|
||||||
|
```js
|
||||||
|
/**
|
||||||
|
* ...
|
||||||
|
* @constructor
|
||||||
|
* @implements {oli.MapBrowserEvent}
|
||||||
|
*/
|
||||||
|
ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) {
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {ol.Coordinate}
|
||||||
|
*/
|
||||||
|
this.coordinate = map.getEventCoordinate(this.originalEvent);
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Override methods in custom classes
|
||||||
|
|
||||||
|
For custom subclasses in applications, which can be created using `ol.extends`, the API may want to make certain methods available to override. In addition to marking such methods as `@api`, they need also be added to an interface in `oli.js`:
|
||||||
|
```js
|
||||||
|
/**
|
||||||
|
* @interface
|
||||||
|
*/
|
||||||
|
oli.control.Control;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {ol.Map} map Map.
|
||||||
|
* @return {undefined} Undefined.
|
||||||
|
*/
|
||||||
|
oli.control.Control.prototype.setMap = function(map) {};
|
||||||
|
|
||||||
|
```
|
||||||
|
This interface must be implemented by the class in the source file (`src/ol/control/control.js`):
|
||||||
|
```js
|
||||||
|
/**
|
||||||
|
* ...
|
||||||
|
* @constructor
|
||||||
|
* @implements {oli.control.Control}
|
||||||
|
*/
|
||||||
|
ol.control.Control = function(options) {
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Application subclasses may override this.
|
||||||
|
* @param {ol.Map} map Map.
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
|
ol.control.Control.prototype.setMap = function(map) {
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Export object literals
|
||||||
|
|
||||||
|
Object literals cannot be exported like classes. To make sure that their properties do not get renamed, they go in `olx.js`:
|
||||||
|
```js
|
||||||
|
/**
|
||||||
|
* @typedef {{element: (Element|undefined),
|
||||||
|
* target: (Element|string|undefined)}}
|
||||||
|
* @todo api
|
||||||
|
*/
|
||||||
|
olx.control.ControlOptions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The element is the control's container element. This only needs to be
|
||||||
|
* specified if you're developing a custom control.
|
||||||
|
* @type {Element|undefined}
|
||||||
|
*/
|
||||||
|
olx.control.ControlOptions.prototype.element;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify a target if you want the control to be rendered outside of the map's
|
||||||
|
* viewport.
|
||||||
|
* @type {Element|string|undefined}
|
||||||
|
*/
|
||||||
|
olx.control.ControlOptions.prototype.target;
|
||||||
|
```
|
||||||
|
In the source code, the name used for the typedef is used as type whenever this object literal is expected:
|
||||||
|
```js
|
||||||
|
/**
|
||||||
|
* ...
|
||||||
|
* @param {olx.control.ControlOptions} options Control options.
|
||||||
|
*/
|
||||||
|
ol.control.Control = function(options) {
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
```
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.expr.parse
|
|
||||||
@exportSymbol ol.expr.register
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
@exportProperty ol.parser.ogc.Versioned.prototype.getParser
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.parser.ogc.WMTSCapabilities
|
|
||||||
@exportProperty ol.parser.ogc.WMTSCapabilities.prototype.read
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
@exportSymbol ol.parser.WKT
|
|
||||||
@exportProperty ol.parser.WKT.prototype.read
|
|
||||||
@exportProperty ol.parser.WKT.prototype.write
|
|
||||||
@exportProperty ol.parser.WKT.read
|
|
||||||
@exportProperty ol.parser.WKT.write
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
@exportSymbol ol.style.Fill
|
|
||||||
@exportSymbol ol.style.Icon
|
|
||||||
@exportSymbol ol.style.Rule
|
|
||||||
@exportSymbol ol.style.Shape
|
|
||||||
@exportSymbol ol.style.Stroke
|
|
||||||
@exportSymbol ol.style.Style
|
|
||||||
@exportSymbol ol.style.Text
|
|
||||||
@exportSymbol ol.style.ShapeType
|
|
||||||
@exportProperty ol.style.ShapeType.CIRCLE
|
|
||||||
@@ -15,9 +15,14 @@
|
|||||||
"url": "https://github.com/openlayers/ol3/issues"
|
"url": "https://github.com/openlayers/ol3/issues"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"closure-util": "~0.9.0",
|
"closure-util": "~0.11.0",
|
||||||
"async": "~0.2.10",
|
"async": "~0.2.10",
|
||||||
"htmlparser2": "~3.7.1",
|
"htmlparser2": "~3.7.1",
|
||||||
"jshint": "~2.4.4"
|
"jshint": "~2.4.4",
|
||||||
|
"jsdoc": "~3.3.0-alpha5",
|
||||||
|
"walk": "~2.3.1",
|
||||||
|
"fs-extra": "~0.8.1",
|
||||||
|
"nomnom": "~1.6.2",
|
||||||
|
"temp": "~0.7.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,6 +81,6 @@ exampleNS.getRendererFromQueryString = function() {
|
|||||||
} else if ('renderer' in obj) {
|
} else if ('renderer' in obj) {
|
||||||
return [obj['renderer']];
|
return [obj['renderer']];
|
||||||
} else {
|
} else {
|
||||||
return ['webgl', 'canvas', 'dom'];
|
return undefined;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
|||||||
@exportSymbol ol.animation.bounce
|
|
||||||
@exportSymbol ol.animation.pan
|
|
||||||
@exportSymbol ol.animation.rotate
|
|
||||||
@exportSymbol ol.animation.zoom
|
|
||||||
@@ -4,13 +4,14 @@ goog.provide('ol.animation');
|
|||||||
|
|
||||||
goog.require('ol.PreRenderFunction');
|
goog.require('ol.PreRenderFunction');
|
||||||
goog.require('ol.ViewHint');
|
goog.require('ol.ViewHint');
|
||||||
|
goog.require('ol.coordinate');
|
||||||
goog.require('ol.easing');
|
goog.require('ol.easing');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {olx.animation.BounceOptions} options Bounce options.
|
* @param {olx.animation.BounceOptions} options Bounce options.
|
||||||
* @return {ol.PreRenderFunction} Pre-render function.
|
* @return {ol.PreRenderFunction} Pre-render function.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.animation.bounce = function(options) {
|
ol.animation.bounce = function(options) {
|
||||||
var resolution = options.resolution;
|
var resolution = options.resolution;
|
||||||
@@ -45,7 +46,7 @@ ol.animation.bounce = function(options) {
|
|||||||
/**
|
/**
|
||||||
* @param {olx.animation.PanOptions} options Pan options.
|
* @param {olx.animation.PanOptions} options Pan options.
|
||||||
* @return {ol.PreRenderFunction} Pre-render function.
|
* @return {ol.PreRenderFunction} Pre-render function.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.animation.pan = function(options) {
|
ol.animation.pan = function(options) {
|
||||||
var source = options.source;
|
var source = options.source;
|
||||||
@@ -84,14 +85,16 @@ ol.animation.pan = function(options) {
|
|||||||
/**
|
/**
|
||||||
* @param {olx.animation.RotateOptions} options Rotate options.
|
* @param {olx.animation.RotateOptions} options Rotate options.
|
||||||
* @return {ol.PreRenderFunction} Pre-render function.
|
* @return {ol.PreRenderFunction} Pre-render function.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.animation.rotate = function(options) {
|
ol.animation.rotate = function(options) {
|
||||||
var sourceRotation = options.rotation;
|
var sourceRotation = goog.isDef(options.rotation) ? options.rotation : 0;
|
||||||
var start = goog.isDef(options.start) ? options.start : goog.now();
|
var start = goog.isDef(options.start) ? options.start : goog.now();
|
||||||
var duration = goog.isDef(options.duration) ? options.duration : 1000;
|
var duration = goog.isDef(options.duration) ? options.duration : 1000;
|
||||||
var easing = goog.isDef(options.easing) ?
|
var easing = goog.isDef(options.easing) ?
|
||||||
options.easing : ol.easing.inAndOut;
|
options.easing : ol.easing.inAndOut;
|
||||||
|
var anchor = goog.isDef(options.anchor) ?
|
||||||
|
options.anchor : null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
/**
|
/**
|
||||||
@@ -106,9 +109,15 @@ ol.animation.rotate = function(options) {
|
|||||||
} else if (frameState.time < start + duration) {
|
} else if (frameState.time < start + duration) {
|
||||||
var delta = 1 - easing((frameState.time - start) / duration);
|
var delta = 1 - easing((frameState.time - start) / duration);
|
||||||
var deltaRotation =
|
var deltaRotation =
|
||||||
sourceRotation - frameState.view2DState.rotation;
|
(sourceRotation - frameState.view2DState.rotation) * delta;
|
||||||
frameState.animate = true;
|
frameState.animate = true;
|
||||||
frameState.view2DState.rotation += delta * deltaRotation;
|
frameState.view2DState.rotation += deltaRotation;
|
||||||
|
if (!goog.isNull(anchor)) {
|
||||||
|
var center = frameState.view2DState.center;
|
||||||
|
ol.coordinate.sub(center, anchor);
|
||||||
|
ol.coordinate.rotate(center, deltaRotation);
|
||||||
|
ol.coordinate.add(center, anchor);
|
||||||
|
}
|
||||||
frameState.viewHints[ol.ViewHint.ANIMATING] += 1;
|
frameState.viewHints[ol.ViewHint.ANIMATING] += 1;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -121,7 +130,7 @@ ol.animation.rotate = function(options) {
|
|||||||
/**
|
/**
|
||||||
* @param {olx.animation.ZoomOptions} options Zoom options.
|
* @param {olx.animation.ZoomOptions} options Zoom options.
|
||||||
* @return {ol.PreRenderFunction} Pre-render function.
|
* @return {ol.PreRenderFunction} Pre-render function.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.animation.zoom = function(options) {
|
ol.animation.zoom = function(options) {
|
||||||
var sourceResolution = options.resolution;
|
var sourceResolution = options.resolution;
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
@exportSymbol ol.Attribution
|
|
||||||
@@ -22,7 +22,7 @@ goog.require('ol.TileRange');
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @param {olx.AttributionOptions} options Attribution options.
|
* @param {olx.AttributionOptions} options Attribution options.
|
||||||
* @struct
|
* @struct
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Attribution = function(options) {
|
ol.Attribution = function(options) {
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
@exportSymbol ol.BrowserFeature
|
|
||||||
@exportProperty ol.BrowserFeature.DEVICE_PIXEL_RATIO
|
|
||||||
@exportProperty ol.BrowserFeature.HAS_CANVAS
|
|
||||||
@exportProperty ol.BrowserFeature.HAS_DEVICE_ORIENTATION
|
|
||||||
@exportProperty ol.BrowserFeature.HAS_GEOLOCATION
|
|
||||||
@exportProperty ol.BrowserFeature.HAS_TOUCH
|
|
||||||
@exportProperty ol.BrowserFeature.HAS_WEBGL
|
|
||||||
@@ -77,7 +77,7 @@ ol.IS_LEGACY_IE = goog.userAgent.IE &&
|
|||||||
* (dips) on the device (`window.devicePixelRatio`).
|
* (dips) on the device (`window.devicePixelRatio`).
|
||||||
* @const
|
* @const
|
||||||
* @type {number}
|
* @type {number}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.DEVICE_PIXEL_RATIO = goog.global.devicePixelRatio || 1;
|
ol.BrowserFeature.DEVICE_PIXEL_RATIO = goog.global.devicePixelRatio || 1;
|
||||||
|
|
||||||
@@ -86,7 +86,6 @@ ol.BrowserFeature.DEVICE_PIXEL_RATIO = goog.global.devicePixelRatio || 1;
|
|||||||
* True if the browser supports ArrayBuffers.
|
* True if the browser supports ArrayBuffers.
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_ARRAY_BUFFER = 'ArrayBuffer' in goog.global;
|
ol.BrowserFeature.HAS_ARRAY_BUFFER = 'ArrayBuffer' in goog.global;
|
||||||
|
|
||||||
@@ -94,7 +93,6 @@ ol.BrowserFeature.HAS_ARRAY_BUFFER = 'ArrayBuffer' in goog.global;
|
|||||||
/**
|
/**
|
||||||
* True if the browser's Canvas implementation implements {get,set}LineDash.
|
* True if the browser's Canvas implementation implements {get,set}LineDash.
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_CANVAS_LINE_DASH = false;
|
ol.BrowserFeature.HAS_CANVAS_LINE_DASH = false;
|
||||||
|
|
||||||
@@ -103,7 +101,7 @@ ol.BrowserFeature.HAS_CANVAS_LINE_DASH = false;
|
|||||||
* True if browser supports Canvas.
|
* True if browser supports Canvas.
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_CANVAS = ol.ENABLE_CANVAS && (
|
ol.BrowserFeature.HAS_CANVAS = ol.ENABLE_CANVAS && (
|
||||||
/**
|
/**
|
||||||
@@ -133,7 +131,7 @@ ol.BrowserFeature.HAS_CANVAS = ol.ENABLE_CANVAS && (
|
|||||||
* Indicates if DeviceOrientation is supported in the user's browser.
|
* Indicates if DeviceOrientation is supported in the user's browser.
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_DEVICE_ORIENTATION =
|
ol.BrowserFeature.HAS_DEVICE_ORIENTATION =
|
||||||
'DeviceOrientationEvent' in goog.global;
|
'DeviceOrientationEvent' in goog.global;
|
||||||
@@ -143,7 +141,6 @@ ol.BrowserFeature.HAS_DEVICE_ORIENTATION =
|
|||||||
* True if browser supports DOM.
|
* True if browser supports DOM.
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_DOM = ol.ENABLE_DOM;
|
ol.BrowserFeature.HAS_DOM = ol.ENABLE_DOM;
|
||||||
|
|
||||||
@@ -152,7 +149,7 @@ ol.BrowserFeature.HAS_DOM = ol.ENABLE_DOM;
|
|||||||
* Is HTML5 geolocation supported in the current browser?
|
* Is HTML5 geolocation supported in the current browser?
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_GEOLOCATION = 'geolocation' in goog.global.navigator;
|
ol.BrowserFeature.HAS_GEOLOCATION = 'geolocation' in goog.global.navigator;
|
||||||
|
|
||||||
@@ -160,7 +157,6 @@ ol.BrowserFeature.HAS_GEOLOCATION = 'geolocation' in goog.global.navigator;
|
|||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_JSON_PARSE =
|
ol.BrowserFeature.HAS_JSON_PARSE =
|
||||||
'JSON' in goog.global && 'parse' in goog.global.JSON;
|
'JSON' in goog.global && 'parse' in goog.global.JSON;
|
||||||
@@ -170,7 +166,7 @@ ol.BrowserFeature.HAS_JSON_PARSE =
|
|||||||
* True if browser supports touch events.
|
* True if browser supports touch events.
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_TOUCH = ol.ASSUME_TOUCH || 'ontouchstart' in goog.global;
|
ol.BrowserFeature.HAS_TOUCH = ol.ASSUME_TOUCH || 'ontouchstart' in goog.global;
|
||||||
|
|
||||||
@@ -179,7 +175,6 @@ ol.BrowserFeature.HAS_TOUCH = ol.ASSUME_TOUCH || 'ontouchstart' in goog.global;
|
|||||||
* True if browser supports pointer events.
|
* True if browser supports pointer events.
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_POINTER = 'PointerEvent' in goog.global;
|
ol.BrowserFeature.HAS_POINTER = 'PointerEvent' in goog.global;
|
||||||
|
|
||||||
@@ -188,7 +183,6 @@ ol.BrowserFeature.HAS_POINTER = 'PointerEvent' in goog.global;
|
|||||||
* True if browser supports ms pointer events (IE 10).
|
* True if browser supports ms pointer events (IE 10).
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_MSPOINTER =
|
ol.BrowserFeature.HAS_MSPOINTER =
|
||||||
!!(goog.global.navigator.msPointerEnabled);
|
!!(goog.global.navigator.msPointerEnabled);
|
||||||
@@ -198,7 +192,6 @@ ol.BrowserFeature.HAS_MSPOINTER =
|
|||||||
* True if browser supports WebGL.
|
* True if browser supports WebGL.
|
||||||
* @const
|
* @const
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.BrowserFeature.HAS_WEBGL = ol.ENABLE_WEBGL && (
|
ol.BrowserFeature.HAS_WEBGL = ol.ENABLE_WEBGL && (
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -12,6 +12,6 @@ goog.provide('ol.CanvasFunctionType');
|
|||||||
*
|
*
|
||||||
* @typedef {function(this:ol.source.ImageCanvas, ol.Extent, number,
|
* @typedef {function(this:ol.source.ImageCanvas, ol.Extent, number,
|
||||||
* number, ol.Size, ol.proj.Projection): HTMLCanvasElement}
|
* number, ol.Size, ol.proj.Projection): HTMLCanvasElement}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.CanvasFunctionType;
|
ol.CanvasFunctionType;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ goog.require('goog.math');
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {function((ol.Coordinate|undefined)): (ol.Coordinate|undefined)}
|
* @typedef {function((ol.Coordinate|undefined)): (ol.Coordinate|undefined)}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.CenterConstraintType;
|
ol.CenterConstraintType;
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
@exportSymbol ol.Collection
|
|
||||||
@exportProperty ol.Collection.prototype.clear
|
|
||||||
@exportProperty ol.Collection.prototype.extend
|
|
||||||
@exportProperty ol.Collection.prototype.forEach
|
|
||||||
@exportProperty ol.Collection.prototype.getArray
|
|
||||||
@exportProperty ol.Collection.prototype.getAt
|
|
||||||
@exportProperty ol.Collection.prototype.getLength
|
|
||||||
@exportProperty ol.Collection.prototype.insertAt
|
|
||||||
@exportProperty ol.Collection.prototype.pop
|
|
||||||
@exportProperty ol.Collection.prototype.push
|
|
||||||
@exportProperty ol.Collection.prototype.remove
|
|
||||||
@exportProperty ol.Collection.prototype.removeAt
|
|
||||||
@exportProperty ol.Collection.prototype.setAt
|
|
||||||
@@ -19,13 +19,13 @@ ol.CollectionEventType = {
|
|||||||
/**
|
/**
|
||||||
* Triggered when an item is added to the collection.
|
* Triggered when an item is added to the collection.
|
||||||
* @event ol.CollectionEvent#add
|
* @event ol.CollectionEvent#add
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ADD: 'add',
|
ADD: 'add',
|
||||||
/**
|
/**
|
||||||
* Triggered when an item is removed from the collection.
|
* Triggered when an item is removed from the collection.
|
||||||
* @event ol.CollectionEvent#remove
|
* @event ol.CollectionEvent#remove
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
REMOVE: 'remove'
|
REMOVE: 'remove'
|
||||||
};
|
};
|
||||||
@@ -47,7 +47,6 @@ ol.CollectionEvent = function(type, opt_element, opt_target) {
|
|||||||
/**
|
/**
|
||||||
* The element that is added to or removed from the collection.
|
* The element that is added to or removed from the collection.
|
||||||
* @type {*}
|
* @type {*}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
this.element = opt_element;
|
this.element = opt_element;
|
||||||
|
|
||||||
@@ -70,8 +69,8 @@ ol.CollectionProperty = {
|
|||||||
* @extends {ol.Object}
|
* @extends {ol.Object}
|
||||||
* @fires {@link ol.CollectionEvent} ol.CollectionEvent
|
* @fires {@link ol.CollectionEvent} ol.CollectionEvent
|
||||||
* @param {Array=} opt_array Array.
|
* @param {Array=} opt_array Array.
|
||||||
* @todo stability experimental
|
|
||||||
* @todo observable length {number} readonly the length of the array
|
* @todo observable length {number} readonly the length of the array
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection = function(opt_array) {
|
ol.Collection = function(opt_array) {
|
||||||
|
|
||||||
@@ -91,7 +90,7 @@ goog.inherits(ol.Collection, ol.Object);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove all elements from the collection.
|
* Remove all elements from the collection.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.clear = function() {
|
ol.Collection.prototype.clear = function() {
|
||||||
while (this.getLength() > 0) {
|
while (this.getLength() > 0) {
|
||||||
@@ -103,7 +102,7 @@ ol.Collection.prototype.clear = function() {
|
|||||||
/**
|
/**
|
||||||
* @param {Array} arr Array.
|
* @param {Array} arr Array.
|
||||||
* @return {ol.Collection} This collection.
|
* @return {ol.Collection} This collection.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.extend = function(arr) {
|
ol.Collection.prototype.extend = function(arr) {
|
||||||
var i, ii;
|
var i, ii;
|
||||||
@@ -121,7 +120,7 @@ ol.Collection.prototype.extend = function(arr) {
|
|||||||
* index and the array). The return value is ignored.
|
* index and the array). The return value is ignored.
|
||||||
* @param {S=} opt_this The object to use as `this` in `f`.
|
* @param {S=} opt_this The object to use as `this` in `f`.
|
||||||
* @template T,S
|
* @template T,S
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.forEach = function(f, opt_this) {
|
ol.Collection.prototype.forEach = function(f, opt_this) {
|
||||||
goog.array.forEach(this.array_, f, opt_this);
|
goog.array.forEach(this.array_, f, opt_this);
|
||||||
@@ -134,7 +133,7 @@ ol.Collection.prototype.forEach = function(f, opt_this) {
|
|||||||
* collection's "length" property won't be in sync with the actual length
|
* collection's "length" property won't be in sync with the actual length
|
||||||
* of the array.
|
* of the array.
|
||||||
* @return {Array} Array.
|
* @return {Array} Array.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.getArray = function() {
|
ol.Collection.prototype.getArray = function() {
|
||||||
return this.array_;
|
return this.array_;
|
||||||
@@ -145,7 +144,7 @@ ol.Collection.prototype.getArray = function() {
|
|||||||
* Get the element at the provided index.
|
* Get the element at the provided index.
|
||||||
* @param {number} index Index.
|
* @param {number} index Index.
|
||||||
* @return {*} Element.
|
* @return {*} Element.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.getAt = function(index) {
|
ol.Collection.prototype.getAt = function(index) {
|
||||||
return this.array_[index];
|
return this.array_[index];
|
||||||
@@ -155,7 +154,7 @@ ol.Collection.prototype.getAt = function(index) {
|
|||||||
/**
|
/**
|
||||||
* Get the length of this collection.
|
* Get the length of this collection.
|
||||||
* @return {number} Length.
|
* @return {number} Length.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.getLength = function() {
|
ol.Collection.prototype.getLength = function() {
|
||||||
return /** @type {number} */ (this.get(ol.CollectionProperty.LENGTH));
|
return /** @type {number} */ (this.get(ol.CollectionProperty.LENGTH));
|
||||||
@@ -166,7 +165,7 @@ ol.Collection.prototype.getLength = function() {
|
|||||||
* Insert an element at the provided index.
|
* Insert an element at the provided index.
|
||||||
* @param {number} index Index.
|
* @param {number} index Index.
|
||||||
* @param {*} elem Element.
|
* @param {*} elem Element.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.insertAt = function(index, elem) {
|
ol.Collection.prototype.insertAt = function(index, elem) {
|
||||||
goog.array.insertAt(this.array_, elem, index);
|
goog.array.insertAt(this.array_, elem, index);
|
||||||
@@ -179,7 +178,7 @@ ol.Collection.prototype.insertAt = function(index, elem) {
|
|||||||
/**
|
/**
|
||||||
* Remove the last element of the collection.
|
* Remove the last element of the collection.
|
||||||
* @return {*} Element.
|
* @return {*} Element.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.pop = function() {
|
ol.Collection.prototype.pop = function() {
|
||||||
return this.removeAt(this.getLength() - 1);
|
return this.removeAt(this.getLength() - 1);
|
||||||
@@ -190,7 +189,7 @@ ol.Collection.prototype.pop = function() {
|
|||||||
* Insert the provided element at the end of the collection.
|
* Insert the provided element at the end of the collection.
|
||||||
* @param {*} elem Element.
|
* @param {*} elem Element.
|
||||||
* @return {number} Length.
|
* @return {number} Length.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.push = function(elem) {
|
ol.Collection.prototype.push = function(elem) {
|
||||||
var n = this.array_.length;
|
var n = this.array_.length;
|
||||||
@@ -203,7 +202,7 @@ ol.Collection.prototype.push = function(elem) {
|
|||||||
* Removes the first occurence of elem from the collection.
|
* Removes the first occurence of elem from the collection.
|
||||||
* @param {*} elem Element.
|
* @param {*} elem Element.
|
||||||
* @return {*} The removed element or undefined if elem was not found.
|
* @return {*} The removed element or undefined if elem was not found.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.remove = function(elem) {
|
ol.Collection.prototype.remove = function(elem) {
|
||||||
var arr = this.array_;
|
var arr = this.array_;
|
||||||
@@ -221,7 +220,7 @@ ol.Collection.prototype.remove = function(elem) {
|
|||||||
* Remove the element at the provided index.
|
* Remove the element at the provided index.
|
||||||
* @param {number} index Index.
|
* @param {number} index Index.
|
||||||
* @return {*} Value.
|
* @return {*} Value.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.removeAt = function(index) {
|
ol.Collection.prototype.removeAt = function(index) {
|
||||||
var prev = this.array_[index];
|
var prev = this.array_[index];
|
||||||
@@ -237,7 +236,7 @@ ol.Collection.prototype.removeAt = function(index) {
|
|||||||
* Set the element at the provided index.
|
* Set the element at the provided index.
|
||||||
* @param {number} index Index.
|
* @param {number} index Index.
|
||||||
* @param {*} elem Element.
|
* @param {*} elem Element.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Collection.prototype.setAt = function(index, elem) {
|
ol.Collection.prototype.setAt = function(index, elem) {
|
||||||
var n = this.getLength();
|
var n = this.getLength();
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.color.asArray
|
|
||||||
@exportSymbol ol.color.asString
|
|
||||||
@@ -103,6 +103,7 @@ ol.color.blend = function(dst, src, opt_color) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Color|string} color Color.
|
* @param {ol.Color|string} color Color.
|
||||||
* @return {ol.Color} Color.
|
* @return {ol.Color} Color.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.color.asArray = function(color) {
|
ol.color.asArray = function(color) {
|
||||||
if (goog.isArray(color)) {
|
if (goog.isArray(color)) {
|
||||||
@@ -117,6 +118,7 @@ ol.color.asArray = function(color) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Color|string} color Color.
|
* @param {ol.Color|string} color Color.
|
||||||
* @return {string} String.
|
* @return {string} String.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.color.asString = function(color) {
|
ol.color.asString = function(color) {
|
||||||
if (goog.isString(color)) {
|
if (goog.isString(color)) {
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.control.Attribution
|
|
||||||
@exportProperty ol.control.Attribution.prototype.setMap
|
|
||||||
@@ -21,7 +21,7 @@ goog.require('ol.css');
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.AttributionOptions=} opt_options Attribution options.
|
* @param {olx.control.AttributionOptions=} opt_options Attribution options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.Attribution = function(opt_options) {
|
ol.control.Attribution = function(opt_options) {
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
@exportSymbol ol.control.Control
|
|
||||||
@exportProperty ol.control.Control.prototype.getMap
|
|
||||||
@exportProperty ol.control.Control.prototype.setMap
|
|
||||||
@@ -16,7 +16,7 @@ goog.require('ol.Object');
|
|||||||
* @extends {ol.Object}
|
* @extends {ol.Object}
|
||||||
* @implements {oli.control.Control}
|
* @implements {oli.control.Control}
|
||||||
* @param {olx.control.ControlOptions} options Control options.
|
* @param {olx.control.ControlOptions} options Control options.
|
||||||
* @todo stability stable
|
* @todo api stable
|
||||||
*/
|
*/
|
||||||
ol.control.Control = function(options) {
|
ol.control.Control = function(options) {
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ ol.control.Control.prototype.disposeInternal = function() {
|
|||||||
/**
|
/**
|
||||||
* Get the map associated with this control.
|
* Get the map associated with this control.
|
||||||
* @return {ol.Map} Map.
|
* @return {ol.Map} Map.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.Control.prototype.getMap = function() {
|
ol.control.Control.prototype.getMap = function() {
|
||||||
return this.map_;
|
return this.map_;
|
||||||
@@ -84,7 +84,7 @@ ol.control.Control.prototype.handleMapPostrender = goog.nullFunction;
|
|||||||
* Subclasses may set up event handlers to get notified about changes to
|
* Subclasses may set up event handlers to get notified about changes to
|
||||||
* the map here.
|
* the map here.
|
||||||
* @param {ol.Map} map Map.
|
* @param {ol.Map} map Map.
|
||||||
* @todo stability stable
|
* @todo api stable
|
||||||
*/
|
*/
|
||||||
ol.control.Control.prototype.setMap = function(map) {
|
ol.control.Control.prototype.setMap = function(map) {
|
||||||
if (!goog.isNull(this.map_)) {
|
if (!goog.isNull(this.map_)) {
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
@exportSymbol ol.control.defaults
|
|
||||||
@@ -9,7 +9,7 @@ goog.require('ol.control.Zoom');
|
|||||||
/**
|
/**
|
||||||
* @param {olx.control.DefaultsOptions=} opt_options Defaults options.
|
* @param {olx.control.DefaultsOptions=} opt_options Defaults options.
|
||||||
* @return {ol.Collection} Controls.
|
* @return {ol.Collection} Controls.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.defaults = function(opt_options) {
|
ol.control.defaults = function(opt_options) {
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
@exportSymbol ol.control.FullScreen
|
|
||||||
@@ -24,7 +24,7 @@ goog.require('ol.pointer.PointerEventHandler');
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.FullScreenOptions=} opt_options Options.
|
* @param {olx.control.FullScreenOptions=} opt_options Options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.FullScreen = function(opt_options) {
|
ol.control.FullScreen = function(opt_options) {
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.control.Logo
|
|
||||||
@exportProperty ol.control.Logo.prototype.setMap
|
|
||||||
@@ -17,7 +17,7 @@ goog.require('ol.css');
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.LogoOptions=} opt_options Logo options.
|
* @param {olx.control.LogoOptions=} opt_options Logo options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.Logo = function(opt_options) {
|
ol.control.Logo = function(opt_options) {
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.control.MousePosition
|
|
||||||
@exportProperty ol.control.MousePosition.prototype.setMap
|
|
||||||
@@ -38,11 +38,11 @@ ol.control.MousePositionProperty = {
|
|||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.MousePositionOptions=} opt_options Mouse position
|
* @param {olx.control.MousePositionOptions=} opt_options Mouse position
|
||||||
* options.
|
* options.
|
||||||
* @todo stability experimental
|
|
||||||
* @todo observable projection {ol.proj.Projection} the projection to report
|
* @todo observable projection {ol.proj.Projection} the projection to report
|
||||||
* mouse position in
|
* mouse position in
|
||||||
* @todo observable coordinateFormat {ol.CoordinateFormatType} the format to
|
* @todo observable coordinateFormat {ol.CoordinateFormatType} the format to
|
||||||
* render the current position in
|
* render the current position in
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition = function(opt_options) {
|
ol.control.MousePosition = function(opt_options) {
|
||||||
|
|
||||||
@@ -132,8 +132,8 @@ ol.control.MousePosition.prototype.handleProjectionChanged_ = function() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.CoordinateFormatType|undefined} projection.
|
* @return {ol.CoordinateFormatType|undefined} Coordinate format.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition.prototype.getCoordinateFormat = function() {
|
ol.control.MousePosition.prototype.getCoordinateFormat = function() {
|
||||||
return /** @type {ol.CoordinateFormatType|undefined} */ (
|
return /** @type {ol.CoordinateFormatType|undefined} */ (
|
||||||
@@ -146,8 +146,8 @@ goog.exportProperty(
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.proj.Projection|undefined} projection.
|
* @return {ol.proj.Projection|undefined} Projection.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition.prototype.getProjection = function() {
|
ol.control.MousePosition.prototype.getProjection = function() {
|
||||||
return /** @type {ol.proj.Projection|undefined} */ (
|
return /** @type {ol.proj.Projection|undefined} */ (
|
||||||
@@ -184,6 +184,7 @@ ol.control.MousePosition.prototype.handleMouseOut = function(browserEvent) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition.prototype.setMap = function(map) {
|
ol.control.MousePosition.prototype.setMap = function(map) {
|
||||||
goog.base(this, 'setMap', map);
|
goog.base(this, 'setMap', map);
|
||||||
@@ -201,7 +202,7 @@ ol.control.MousePosition.prototype.setMap = function(map) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.CoordinateFormatType} format Coordinate format.
|
* @param {ol.CoordinateFormatType} format Coordinate format.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition.prototype.setCoordinateFormat = function(format) {
|
ol.control.MousePosition.prototype.setCoordinateFormat = function(format) {
|
||||||
this.set(ol.control.MousePositionProperty.COORDINATE_FORMAT, format);
|
this.set(ol.control.MousePositionProperty.COORDINATE_FORMAT, format);
|
||||||
@@ -214,7 +215,7 @@ goog.exportProperty(
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.proj.Projection} projection Projection.
|
* @param {ol.proj.Projection} projection Projection.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition.prototype.setProjection = function(projection) {
|
ol.control.MousePosition.prototype.setProjection = function(projection) {
|
||||||
this.set(ol.control.MousePositionProperty.PROJECTION, projection);
|
this.set(ol.control.MousePositionProperty.PROJECTION, projection);
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.control.ScaleLine
|
|
||||||
@exportProperty ol.control.ScaleLine.prototype.setMap
|
|
||||||
@@ -20,7 +20,6 @@ goog.require('ol.sphere.NORMAL');
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @enum {string}
|
* @enum {string}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.control.ScaleLineProperty = {
|
ol.control.ScaleLineProperty = {
|
||||||
UNITS: 'units'
|
UNITS: 'units'
|
||||||
@@ -28,8 +27,10 @@ ol.control.ScaleLineProperty = {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Units for the scale line. Supported values are `'degrees'`, `'imperial'`,
|
||||||
|
* `'nautical'`, `'metric'`, `'us'`.
|
||||||
* @enum {string}
|
* @enum {string}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.ScaleLineUnits = {
|
ol.control.ScaleLineUnits = {
|
||||||
DEGREES: 'degrees',
|
DEGREES: 'degrees',
|
||||||
@@ -49,13 +50,13 @@ ol.control.ScaleLineUnits = {
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.ScaleLineOptions=} opt_options Scale line options.
|
* @param {olx.control.ScaleLineOptions=} opt_options Scale line options.
|
||||||
* @todo stability experimental
|
|
||||||
* @todo observable units {ol.control.ScaleLineUnits} the units to use in the
|
* @todo observable units {ol.control.ScaleLineUnits} the units to use in the
|
||||||
* scale line
|
* scale line
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.ScaleLine = function(opt_options) {
|
ol.control.ScaleLine = function(opt_options) {
|
||||||
|
|
||||||
var options = opt_options || {};
|
var options = goog.isDef(opt_options) ? opt_options : {};
|
||||||
|
|
||||||
var className = goog.isDef(options.className) ?
|
var className = goog.isDef(options.className) ?
|
||||||
options.className : 'ol-scale-line';
|
options.className : 'ol-scale-line';
|
||||||
@@ -131,14 +132,13 @@ goog.inherits(ol.control.ScaleLine, ol.control.Control);
|
|||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {Array.<number>}
|
* @type {Array.<number>}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.control.ScaleLine.LEADING_DIGITS = [1, 2, 5];
|
ol.control.ScaleLine.LEADING_DIGITS = [1, 2, 5];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.control.ScaleLineUnits|undefined} units.
|
* @return {ol.control.ScaleLineUnits|undefined} units.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.ScaleLine.prototype.getUnits = function() {
|
ol.control.ScaleLine.prototype.getUnits = function() {
|
||||||
return /** @type {ol.control.ScaleLineUnits|undefined} */ (
|
return /** @type {ol.control.ScaleLineUnits|undefined} */ (
|
||||||
@@ -174,7 +174,7 @@ ol.control.ScaleLine.prototype.handleUnitsChanged_ = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.control.ScaleLineUnits} units Units.
|
* @param {ol.control.ScaleLineUnits} units Units.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.ScaleLine.prototype.setUnits = function(units) {
|
ol.control.ScaleLine.prototype.setUnits = function(units) {
|
||||||
this.set(ol.control.ScaleLineProperty.UNITS, units);
|
this.set(ol.control.ScaleLineProperty.UNITS, units);
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.control.Zoom
|
|
||||||
@exportProperty ol.control.Zoom.prototype.setMap
|
|
||||||
@@ -23,7 +23,7 @@ goog.require('ol.pointer.PointerEventHandler');
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.ZoomOptions=} opt_options Zoom options.
|
* @param {olx.control.ZoomOptions=} opt_options Zoom options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.Zoom = function(opt_options) {
|
ol.control.Zoom = function(opt_options) {
|
||||||
|
|
||||||
@@ -48,7 +48,6 @@ ol.control.Zoom = function(opt_options) {
|
|||||||
}, zoomInTipLabel);
|
}, zoomInTipLabel);
|
||||||
var inElement = goog.dom.createDom(goog.dom.TagName.BUTTON, {
|
var inElement = goog.dom.createDom(goog.dom.TagName.BUTTON, {
|
||||||
'class': className + '-in ol-has-tooltip',
|
'class': className + '-in ol-has-tooltip',
|
||||||
'name' : 'ZoomIn',
|
|
||||||
'type' : 'button'
|
'type' : 'button'
|
||||||
}, tTipZoomIn, zoomInLabel);
|
}, tTipZoomIn, zoomInLabel);
|
||||||
|
|
||||||
@@ -66,12 +65,11 @@ ol.control.Zoom = function(opt_options) {
|
|||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
var tTipsZoomOut = goog.dom.createDom(goog.dom.TagName.SPAN, {
|
var tTipsZoomOut = goog.dom.createDom(goog.dom.TagName.SPAN, {
|
||||||
'role' : 'tooltip',
|
'role' : 'tooltip'
|
||||||
'type' : 'button'
|
|
||||||
}, zoomOutTipLabel);
|
}, zoomOutTipLabel);
|
||||||
var outElement = goog.dom.createDom(goog.dom.TagName.BUTTON, {
|
var outElement = goog.dom.createDom(goog.dom.TagName.BUTTON, {
|
||||||
'class': className + '-out ol-has-tooltip',
|
'class': className + '-out ol-has-tooltip',
|
||||||
'name' : 'ZoomOut'
|
'type' : 'button'
|
||||||
}, tTipsZoomOut, zoomOutLabel);
|
}, tTipsZoomOut, zoomOutLabel);
|
||||||
|
|
||||||
var outElementHandler = new ol.pointer.PointerEventHandler(outElement);
|
var outElementHandler = new ol.pointer.PointerEventHandler(outElement);
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
@exportSymbol ol.control.ZoomSlider
|
|
||||||
@@ -38,7 +38,7 @@ ol.control.ZOOMSLIDER_ANIMATION_DURATION = 200;
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.ZoomSliderOptions=} opt_options Zoom slider options.
|
* @param {olx.control.ZoomSliderOptions=} opt_options Zoom slider options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomSlider = function(opt_options) {
|
ol.control.ZoomSlider = function(opt_options) {
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
@exportSymbol ol.control.ZoomToExtent
|
|
||||||
@@ -20,7 +20,7 @@ goog.require('ol.pointer.PointerEventHandler');
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.control.Control}
|
* @extends {ol.control.Control}
|
||||||
* @param {olx.control.ZoomToExtentOptions=} opt_options Options.
|
* @param {olx.control.ZoomToExtentOptions=} opt_options Options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomToExtent = function(opt_options) {
|
ol.control.ZoomToExtent = function(opt_options) {
|
||||||
var options = goog.isDef(opt_options) ? opt_options : {};
|
var options = goog.isDef(opt_options) ? opt_options : {};
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
@exportSymbol ol.coordinate.add
|
|
||||||
@exportSymbol ol.coordinate.createStringXY
|
|
||||||
@exportSymbol ol.coordinate.format
|
|
||||||
@exportSymbol ol.coordinate.fromProjectedArray
|
|
||||||
@exportSymbol ol.coordinate.rotate
|
|
||||||
@exportSymbol ol.coordinate.toStringHDMS
|
|
||||||
@exportSymbol ol.coordinate.toStringXY
|
|
||||||
@@ -11,7 +11,7 @@ goog.require('goog.math');
|
|||||||
* `{string}`.
|
* `{string}`.
|
||||||
*
|
*
|
||||||
* @typedef {function((ol.Coordinate|undefined)): string}
|
* @typedef {function((ol.Coordinate|undefined)): string}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.CoordinateFormatType;
|
ol.CoordinateFormatType;
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ ol.CoordinateFormatType;
|
|||||||
/**
|
/**
|
||||||
* An array of numbers representing a coordinate.
|
* An array of numbers representing a coordinate.
|
||||||
* @typedef {Array.<number>} ol.Coordinate
|
* @typedef {Array.<number>} ol.Coordinate
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Coordinate;
|
ol.Coordinate;
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ ol.Coordinate;
|
|||||||
/**
|
/**
|
||||||
* An array of coordinate arrays.
|
* An array of coordinate arrays.
|
||||||
* @typedef {Array.<ol.Coordinate>}
|
* @typedef {Array.<ol.Coordinate>}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.CoordinateArray;
|
ol.CoordinateArray;
|
||||||
|
|
||||||
@@ -36,6 +36,7 @@ ol.CoordinateArray;
|
|||||||
* @param {ol.Coordinate} coordinate Coordinate.
|
* @param {ol.Coordinate} coordinate Coordinate.
|
||||||
* @param {ol.Coordinate} delta Delta.
|
* @param {ol.Coordinate} delta Delta.
|
||||||
* @return {ol.Coordinate} Coordinate.
|
* @return {ol.Coordinate} Coordinate.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.coordinate.add = function(coordinate, delta) {
|
ol.coordinate.add = function(coordinate, delta) {
|
||||||
coordinate[0] += delta[0];
|
coordinate[0] += delta[0];
|
||||||
@@ -87,7 +88,7 @@ ol.coordinate.closestOnSegment = function(coordinate, segment) {
|
|||||||
* @param {number=} opt_fractionDigits The number of digits to include
|
* @param {number=} opt_fractionDigits The number of digits to include
|
||||||
* after the decimal point. Default is `0`.
|
* after the decimal point. Default is `0`.
|
||||||
* @return {ol.CoordinateFormatType} Coordinate format.
|
* @return {ol.CoordinateFormatType} Coordinate format.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.coordinate.createStringXY = function(opt_fractionDigits) {
|
ol.coordinate.createStringXY = function(opt_fractionDigits) {
|
||||||
return (
|
return (
|
||||||
@@ -124,7 +125,7 @@ ol.coordinate.degreesToStringHDMS_ = function(degrees, hemispheres) {
|
|||||||
* @param {number=} opt_fractionDigits The number of digits to include
|
* @param {number=} opt_fractionDigits The number of digits to include
|
||||||
* after the decimal point. Default is `0`.
|
* after the decimal point. Default is `0`.
|
||||||
* @return {string} Formated coordinate.
|
* @return {string} Formated coordinate.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.coordinate.format = function(coordinate, template, opt_fractionDigits) {
|
ol.coordinate.format = function(coordinate, template, opt_fractionDigits) {
|
||||||
if (goog.isDef(coordinate)) {
|
if (goog.isDef(coordinate)) {
|
||||||
@@ -158,6 +159,7 @@ ol.coordinate.equals = function(coordinate1, coordinate2) {
|
|||||||
* @param {ol.Coordinate} coordinate Coordinate.
|
* @param {ol.Coordinate} coordinate Coordinate.
|
||||||
* @param {number} angle Angle.
|
* @param {number} angle Angle.
|
||||||
* @return {ol.Coordinate} Coordinate.
|
* @return {ol.Coordinate} Coordinate.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.coordinate.rotate = function(coordinate, angle) {
|
ol.coordinate.rotate = function(coordinate, angle) {
|
||||||
var cosAngle = Math.cos(angle);
|
var cosAngle = Math.cos(angle);
|
||||||
@@ -182,6 +184,18 @@ ol.coordinate.scale = function(coordinate, s) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {ol.Coordinate} coordinate Coordinate.
|
||||||
|
* @param {ol.Coordinate} delta Delta.
|
||||||
|
* @return {ol.Coordinate} Coordinate.
|
||||||
|
*/
|
||||||
|
ol.coordinate.sub = function(coordinate, delta) {
|
||||||
|
coordinate[0] -= delta[0];
|
||||||
|
coordinate[1] -= delta[1];
|
||||||
|
return coordinate;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.Coordinate} coord1 First coordinate.
|
* @param {ol.Coordinate} coord1 First coordinate.
|
||||||
* @param {ol.Coordinate} coord2 Second coordinate.
|
* @param {ol.Coordinate} coord2 Second coordinate.
|
||||||
@@ -210,7 +224,7 @@ ol.coordinate.squaredDistanceToSegment = function(coordinate, segment) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Coordinate|undefined} coordinate Coordinate.
|
* @param {ol.Coordinate|undefined} coordinate Coordinate.
|
||||||
* @return {string} Hemisphere, degrees, minutes and seconds.
|
* @return {string} Hemisphere, degrees, minutes and seconds.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.coordinate.toStringHDMS = function(coordinate) {
|
ol.coordinate.toStringHDMS = function(coordinate) {
|
||||||
if (goog.isDef(coordinate)) {
|
if (goog.isDef(coordinate)) {
|
||||||
@@ -227,7 +241,7 @@ ol.coordinate.toStringHDMS = function(coordinate) {
|
|||||||
* @param {number=} opt_fractionDigits The number of digits to include
|
* @param {number=} opt_fractionDigits The number of digits to include
|
||||||
* after the decimal point. Default is `0`.
|
* after the decimal point. Default is `0`.
|
||||||
* @return {string} XY.
|
* @return {string} XY.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.coordinate.toStringXY = function(coordinate, opt_fractionDigits) {
|
ol.coordinate.toStringXY = function(coordinate, opt_fractionDigits) {
|
||||||
return ol.coordinate.format(coordinate, '{x}, {y}', opt_fractionDigits);
|
return ol.coordinate.format(coordinate, '{x}, {y}', opt_fractionDigits);
|
||||||
@@ -239,7 +253,7 @@ ol.coordinate.toStringXY = function(coordinate, opt_fractionDigits) {
|
|||||||
* @param {Array} array The array with coordinates.
|
* @param {Array} array The array with coordinates.
|
||||||
* @param {string} axis the axis info.
|
* @param {string} axis the axis info.
|
||||||
* @return {ol.Coordinate} The coordinate created.
|
* @return {ol.Coordinate} The coordinate created.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.coordinate.fromProjectedArray = function(array, axis) {
|
ol.coordinate.fromProjectedArray = function(array, axis) {
|
||||||
var firstAxis = axis.charAt(0);
|
var firstAxis = axis.charAt(0);
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
@exportSymbol ol.DeviceOrientation
|
|
||||||
@@ -69,7 +69,6 @@ ol.DeviceOrientationProperty = {
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.Object}
|
* @extends {ol.Object}
|
||||||
* @param {olx.DeviceOrientationOptions=} opt_options Options.
|
* @param {olx.DeviceOrientationOptions=} opt_options Options.
|
||||||
* @todo stability experimental
|
|
||||||
* @todo observable alpha {number} readonly the euler angle in radians of the
|
* @todo observable alpha {number} readonly the euler angle in radians of the
|
||||||
* device from the standard X axis
|
* device from the standard X axis
|
||||||
* @todo observable beta {number} readonly the euler angle in radians of the
|
* @todo observable beta {number} readonly the euler angle in radians of the
|
||||||
@@ -80,6 +79,7 @@ ol.DeviceOrientationProperty = {
|
|||||||
* device from the planar Y axis
|
* device from the planar Y axis
|
||||||
* @todo observable tracking {boolean} the status of tracking changes to alpha,
|
* @todo observable tracking {boolean} the status of tracking changes to alpha,
|
||||||
* beta and gamma. If true, changes are tracked and reported immediately.
|
* beta and gamma. If true, changes are tracked and reported immediately.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation = function(opt_options) {
|
ol.DeviceOrientation = function(opt_options) {
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ ol.DeviceOrientation.prototype.orientationChange_ = function(browserEvent) {
|
|||||||
/**
|
/**
|
||||||
* @return {number|undefined} The alpha value of the DeviceOrientation,
|
* @return {number|undefined} The alpha value of the DeviceOrientation,
|
||||||
* in radians.
|
* in radians.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation.prototype.getAlpha = function() {
|
ol.DeviceOrientation.prototype.getAlpha = function() {
|
||||||
return /** @type {number|undefined} */ (
|
return /** @type {number|undefined} */ (
|
||||||
@@ -162,7 +162,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* @return {number|undefined} The beta value of the DeviceOrientation,
|
* @return {number|undefined} The beta value of the DeviceOrientation,
|
||||||
* in radians.
|
* in radians.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation.prototype.getBeta = function() {
|
ol.DeviceOrientation.prototype.getBeta = function() {
|
||||||
return /** @type {number|undefined} */ (
|
return /** @type {number|undefined} */ (
|
||||||
@@ -177,7 +177,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* @return {number|undefined} The gamma value of the DeviceOrientation,
|
* @return {number|undefined} The gamma value of the DeviceOrientation,
|
||||||
* in radians.
|
* in radians.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation.prototype.getGamma = function() {
|
ol.DeviceOrientation.prototype.getGamma = function() {
|
||||||
return /** @type {number|undefined} */ (
|
return /** @type {number|undefined} */ (
|
||||||
@@ -192,7 +192,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* @return {number|undefined} The heading of the device relative to
|
* @return {number|undefined} The heading of the device relative to
|
||||||
* north, in radians, normalizing for different browser behavior.
|
* north, in radians, normalizing for different browser behavior.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation.prototype.getHeading = function() {
|
ol.DeviceOrientation.prototype.getHeading = function() {
|
||||||
return /** @type {number|undefined} */ (
|
return /** @type {number|undefined} */ (
|
||||||
@@ -207,7 +207,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* Are we tracking the device's orientation?
|
* Are we tracking the device's orientation?
|
||||||
* @return {boolean} The current tracking state, true if tracking is on.
|
* @return {boolean} The current tracking state, true if tracking is on.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation.prototype.getTracking = function() {
|
ol.DeviceOrientation.prototype.getTracking = function() {
|
||||||
return /** @type {boolean} */ (
|
return /** @type {boolean} */ (
|
||||||
@@ -239,7 +239,7 @@ ol.DeviceOrientation.prototype.handleTrackingChanged_ = function() {
|
|||||||
/**
|
/**
|
||||||
* Enable or disable tracking of DeviceOrientation events.
|
* Enable or disable tracking of DeviceOrientation events.
|
||||||
* @param {boolean} tracking True to enable and false to disable tracking.
|
* @param {boolean} tracking True to enable and false to disable tracking.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation.prototype.setTracking = function(tracking) {
|
ol.DeviceOrientation.prototype.setTracking = function(tracking) {
|
||||||
this.set(ol.DeviceOrientationProperty.TRACKING, tracking);
|
this.set(ol.DeviceOrientationProperty.TRACKING, tracking);
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
@exportSymbol ol.dom.Input
|
|
||||||
@@ -29,9 +29,9 @@ ol.dom.InputProperty = {
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.Object}
|
* @extends {ol.Object}
|
||||||
* @param {Element} target Target element.
|
* @param {Element} target Target element.
|
||||||
* @todo stability experimental
|
|
||||||
* @todo observable value {string} the value of the Input
|
* @todo observable value {string} the value of the Input
|
||||||
* @todo observable checked {boolean} the checked state of the Input
|
* @todo observable checked {boolean} the checked state of the Input
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.dom.Input = function(target) {
|
ol.dom.Input = function(target) {
|
||||||
goog.base(this);
|
goog.base(this);
|
||||||
@@ -59,7 +59,7 @@ goog.inherits(ol.dom.Input, ol.Object);
|
|||||||
/**
|
/**
|
||||||
* If the input is a checkbox, return whether or not the checbox is checked.
|
* If the input is a checkbox, return whether or not the checbox is checked.
|
||||||
* @return {boolean|undefined} checked.
|
* @return {boolean|undefined} checked.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.dom.Input.prototype.getChecked = function() {
|
ol.dom.Input.prototype.getChecked = function() {
|
||||||
return /** @type {boolean} */ (this.get(ol.dom.InputProperty.CHECKED));
|
return /** @type {boolean} */ (this.get(ol.dom.InputProperty.CHECKED));
|
||||||
@@ -73,7 +73,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* Get the value of the input.
|
* Get the value of the input.
|
||||||
* @return {string|undefined} input value.
|
* @return {string|undefined} input value.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.dom.Input.prototype.getValue = function() {
|
ol.dom.Input.prototype.getValue = function() {
|
||||||
return /** @type {string} */ (this.get(ol.dom.InputProperty.VALUE));
|
return /** @type {string} */ (this.get(ol.dom.InputProperty.VALUE));
|
||||||
@@ -87,7 +87,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* Sets the value of the input.
|
* Sets the value of the input.
|
||||||
* @param {string} value Value.
|
* @param {string} value Value.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.dom.Input.prototype.setValue = function(value) {
|
ol.dom.Input.prototype.setValue = function(value) {
|
||||||
this.set(ol.dom.InputProperty.VALUE, value);
|
this.set(ol.dom.InputProperty.VALUE, value);
|
||||||
@@ -101,7 +101,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* Set whether or not a checkbox is checked.
|
* Set whether or not a checkbox is checked.
|
||||||
* @param {boolean} checked Checked.
|
* @param {boolean} checked Checked.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.dom.Input.prototype.setChecked = function(checked) {
|
ol.dom.Input.prototype.setChecked = function(checked) {
|
||||||
this.set(ol.dom.InputProperty.CHECKED, checked);
|
this.set(ol.dom.InputProperty.CHECKED, checked);
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
@exportSymbol ol.easing.bounce
|
|
||||||
@exportSymbol ol.easing.easeIn
|
|
||||||
@exportSymbol ol.easing.easeOut
|
|
||||||
@exportSymbol ol.easing.elastic
|
|
||||||
@exportSymbol ol.easing.inAndOut
|
|
||||||
@exportSymbol ol.easing.linear
|
|
||||||
@exportSymbol ol.easing.upAndDown
|
|
||||||
@@ -7,6 +7,7 @@ goog.require('goog.fx.easing');
|
|||||||
* from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js
|
* from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js
|
||||||
* @param {number} t Input between 0 and 1.
|
* @param {number} t Input between 0 and 1.
|
||||||
* @return {number} Output between 0 and 1.
|
* @return {number} Output between 0 and 1.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.easing.bounce = function(t) {
|
ol.easing.bounce = function(t) {
|
||||||
var s = 7.5625, p = 2.75, l;
|
var s = 7.5625, p = 2.75, l;
|
||||||
@@ -33,6 +34,7 @@ ol.easing.bounce = function(t) {
|
|||||||
/**
|
/**
|
||||||
* @param {number} t Input between 0 and 1.
|
* @param {number} t Input between 0 and 1.
|
||||||
* @return {number} Output between 0 and 1.
|
* @return {number} Output between 0 and 1.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.easing.easeIn = goog.fx.easing.easeIn;
|
ol.easing.easeIn = goog.fx.easing.easeIn;
|
||||||
|
|
||||||
@@ -40,6 +42,7 @@ ol.easing.easeIn = goog.fx.easing.easeIn;
|
|||||||
/**
|
/**
|
||||||
* @param {number} t Input between 0 and 1.
|
* @param {number} t Input between 0 and 1.
|
||||||
* @return {number} Output between 0 and 1.
|
* @return {number} Output between 0 and 1.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.easing.easeOut = goog.fx.easing.easeOut;
|
ol.easing.easeOut = goog.fx.easing.easeOut;
|
||||||
|
|
||||||
@@ -48,6 +51,7 @@ ol.easing.easeOut = goog.fx.easing.easeOut;
|
|||||||
* from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js
|
* from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js
|
||||||
* @param {number} t Input between 0 and 1.
|
* @param {number} t Input between 0 and 1.
|
||||||
* @return {number} Output between 0 and 1.
|
* @return {number} Output between 0 and 1.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.easing.elastic = function(t) {
|
ol.easing.elastic = function(t) {
|
||||||
return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1;
|
return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1;
|
||||||
@@ -57,6 +61,7 @@ ol.easing.elastic = function(t) {
|
|||||||
/**
|
/**
|
||||||
* @param {number} t Input between 0 and 1.
|
* @param {number} t Input between 0 and 1.
|
||||||
* @return {number} Output between 0 and 1.
|
* @return {number} Output between 0 and 1.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.easing.inAndOut = goog.fx.easing.inAndOut;
|
ol.easing.inAndOut = goog.fx.easing.inAndOut;
|
||||||
|
|
||||||
@@ -64,6 +69,7 @@ ol.easing.inAndOut = goog.fx.easing.inAndOut;
|
|||||||
/**
|
/**
|
||||||
* @param {number} t Input between 0 and 1.
|
* @param {number} t Input between 0 and 1.
|
||||||
* @return {number} Output between 0 and 1.
|
* @return {number} Output between 0 and 1.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.easing.linear = function(t) {
|
ol.easing.linear = function(t) {
|
||||||
return t;
|
return t;
|
||||||
@@ -73,6 +79,7 @@ ol.easing.linear = function(t) {
|
|||||||
/**
|
/**
|
||||||
* @param {number} t Input between 0 and 1.
|
* @param {number} t Input between 0 and 1.
|
||||||
* @return {number} Output between 0 and 1.
|
* @return {number} Output between 0 and 1.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.easing.upAndDown = function(t) {
|
ol.easing.upAndDown = function(t) {
|
||||||
if (t < 0.5) {
|
if (t < 0.5) {
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
@exportSymbol ol.events.condition.altKeyOnly
|
|
||||||
@exportSymbol ol.events.condition.altShiftKeysOnly
|
|
||||||
@exportSymbol ol.events.condition.always
|
|
||||||
@exportSymbol ol.events.condition.never
|
|
||||||
@exportSymbol ol.events.condition.noModifierKeys
|
|
||||||
@exportSymbol ol.events.condition.platformModifierKeyOnly
|
|
||||||
@exportSymbol ol.events.condition.shiftKeyOnly
|
|
||||||
@exportSymbol ol.events.condition.targetNotEditable
|
|
||||||
@@ -13,7 +13,7 @@ goog.require('ol.MapBrowserPointerEvent');
|
|||||||
* `{boolean}`. If the condition is met, true should be returned.
|
* `{boolean}`. If the condition is met, true should be returned.
|
||||||
*
|
*
|
||||||
* @typedef {function(ol.MapBrowserEvent): boolean}
|
* @typedef {function(ol.MapBrowserEvent): boolean}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.ConditionType;
|
ol.events.ConditionType;
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ ol.events.ConditionType;
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True if only the alt key is pressed.
|
* @return {boolean} True if only the alt key is pressed.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
|
ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var browserEvent = mapBrowserEvent.browserEvent;
|
||||||
@@ -35,7 +35,7 @@ ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True if only the alt and shift keys are pressed.
|
* @return {boolean} True if only the alt and shift keys are pressed.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.altShiftKeysOnly = function(mapBrowserEvent) {
|
ol.events.condition.altShiftKeysOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var browserEvent = mapBrowserEvent.browserEvent;
|
||||||
@@ -50,7 +50,7 @@ ol.events.condition.altShiftKeysOnly = function(mapBrowserEvent) {
|
|||||||
* Always true.
|
* Always true.
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True.
|
* @return {boolean} True.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.always = goog.functions.TRUE;
|
ol.events.condition.always = goog.functions.TRUE;
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ ol.events.condition.always = goog.functions.TRUE;
|
|||||||
* Always false.
|
* Always false.
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} False.
|
* @return {boolean} False.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.never = goog.functions.FALSE;
|
ol.events.condition.never = goog.functions.FALSE;
|
||||||
|
|
||||||
@@ -67,7 +67,6 @@ ol.events.condition.never = goog.functions.FALSE;
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True if the event is a `singleclick` event.
|
* @return {boolean} True if the event is a `singleclick` event.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.events.condition.singleClick = function(mapBrowserEvent) {
|
ol.events.condition.singleClick = function(mapBrowserEvent) {
|
||||||
return mapBrowserEvent.type == ol.MapBrowserEvent.EventType.SINGLECLICK;
|
return mapBrowserEvent.type == ol.MapBrowserEvent.EventType.SINGLECLICK;
|
||||||
@@ -77,7 +76,7 @@ ol.events.condition.singleClick = function(mapBrowserEvent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True only if there no modifier keys are pressed.
|
* @return {boolean} True only if there no modifier keys are pressed.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
|
ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var browserEvent = mapBrowserEvent.browserEvent;
|
||||||
@@ -91,7 +90,7 @@ ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True if only the platform modifier key is pressed.
|
* @return {boolean} True if only the platform modifier key is pressed.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
|
ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var browserEvent = mapBrowserEvent.browserEvent;
|
||||||
@@ -105,7 +104,7 @@ ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True if only the shift key is pressed.
|
* @return {boolean} True if only the shift key is pressed.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) {
|
ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var browserEvent = mapBrowserEvent.browserEvent;
|
||||||
@@ -119,7 +118,7 @@ ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True only if the target element is not editable.
|
* @return {boolean} True only if the target element is not editable.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.targetNotEditable = function(mapBrowserEvent) {
|
ol.events.condition.targetNotEditable = function(mapBrowserEvent) {
|
||||||
var target = mapBrowserEvent.browserEvent.target;
|
var target = mapBrowserEvent.browserEvent.target;
|
||||||
@@ -135,7 +134,6 @@ ol.events.condition.targetNotEditable = function(mapBrowserEvent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
* @return {boolean} True if the event originates from a mouse device.
|
* @return {boolean} True if the event originates from a mouse device.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.events.condition.mouseOnly = function(mapBrowserEvent) {
|
ol.events.condition.mouseOnly = function(mapBrowserEvent) {
|
||||||
goog.asserts.assertInstanceof(mapBrowserEvent, ol.MapBrowserPointerEvent);
|
goog.asserts.assertInstanceof(mapBrowserEvent, ol.MapBrowserPointerEvent);
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
@exportSymbol ol.extent.boundingExtent
|
|
||||||
@exportSymbol ol.extent.buffer
|
|
||||||
@exportSymbol ol.extent.containsCoordinate
|
|
||||||
@exportSymbol ol.extent.containsExtent
|
|
||||||
@exportSymbol ol.extent.createEmpty
|
|
||||||
@exportSymbol ol.extent.equals
|
|
||||||
@exportSymbol ol.extent.extend
|
|
||||||
@exportSymbol ol.extent.getBottomLeft
|
|
||||||
@exportSymbol ol.extent.getBottomRight
|
|
||||||
@exportSymbol ol.extent.getCenter
|
|
||||||
@exportSymbol ol.extent.getHeight
|
|
||||||
@exportSymbol ol.extent.getSize
|
|
||||||
@exportSymbol ol.extent.getTopLeft
|
|
||||||
@exportSymbol ol.extent.getTopRight
|
|
||||||
@exportSymbol ol.extent.getWidth
|
|
||||||
@exportSymbol ol.extent.intersects
|
|
||||||
@exportSymbol ol.extent.isEmpty
|
|
||||||
@exportSymbol ol.extent.transform
|
|
||||||
@@ -12,7 +12,7 @@ goog.require('ol.TransformFunction');
|
|||||||
/**
|
/**
|
||||||
* An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.
|
* An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.
|
||||||
* @typedef {Array.<number>}
|
* @typedef {Array.<number>}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Extent;
|
ol.Extent;
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ ol.extent.Relationship = {
|
|||||||
*
|
*
|
||||||
* @param {Array.<ol.Coordinate>} coordinates Coordinates.
|
* @param {Array.<ol.Coordinate>} coordinates Coordinates.
|
||||||
* @return {ol.Extent} Bounding extent.
|
* @return {ol.Extent} Bounding extent.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.boundingExtent = function(coordinates) {
|
ol.extent.boundingExtent = function(coordinates) {
|
||||||
var extent = ol.extent.createEmpty();
|
var extent = ol.extent.createEmpty();
|
||||||
@@ -53,7 +53,6 @@ ol.extent.boundingExtent = function(coordinates) {
|
|||||||
* @param {ol.Extent=} opt_extent Destination extent.
|
* @param {ol.Extent=} opt_extent Destination extent.
|
||||||
* @private
|
* @private
|
||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) {
|
ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) {
|
||||||
goog.asserts.assert(xs.length > 0);
|
goog.asserts.assert(xs.length > 0);
|
||||||
@@ -72,6 +71,7 @@ ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) {
|
|||||||
* @param {number} value The amount by wich the extent should be buffered.
|
* @param {number} value The amount by wich the extent should be buffered.
|
||||||
* @param {ol.Extent=} opt_extent Extent.
|
* @param {ol.Extent=} opt_extent Extent.
|
||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.buffer = function(extent, value, opt_extent) {
|
ol.extent.buffer = function(extent, value, opt_extent) {
|
||||||
if (goog.isDef(opt_extent)) {
|
if (goog.isDef(opt_extent)) {
|
||||||
@@ -97,7 +97,6 @@ ol.extent.buffer = function(extent, value, opt_extent) {
|
|||||||
* @param {ol.Extent} extent Extent to clone.
|
* @param {ol.Extent} extent Extent to clone.
|
||||||
* @param {ol.Extent=} opt_extent Extent.
|
* @param {ol.Extent=} opt_extent Extent.
|
||||||
* @return {ol.Extent} The clone.
|
* @return {ol.Extent} The clone.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.clone = function(extent, opt_extent) {
|
ol.extent.clone = function(extent, opt_extent) {
|
||||||
if (goog.isDef(opt_extent)) {
|
if (goog.isDef(opt_extent)) {
|
||||||
@@ -144,7 +143,7 @@ ol.extent.closestSquaredDistanceXY = function(extent, x, y) {
|
|||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @param {ol.Coordinate} coordinate Coordinate.
|
* @param {ol.Coordinate} coordinate Coordinate.
|
||||||
* @return {boolean} Contains.
|
* @return {boolean} Contains.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.containsCoordinate = function(extent, coordinate) {
|
ol.extent.containsCoordinate = function(extent, coordinate) {
|
||||||
return extent[0] <= coordinate[0] && coordinate[0] <= extent[2] &&
|
return extent[0] <= coordinate[0] && coordinate[0] <= extent[2] &&
|
||||||
@@ -158,7 +157,7 @@ ol.extent.containsCoordinate = function(extent, coordinate) {
|
|||||||
* @param {ol.Extent} extent1 Extent 1.
|
* @param {ol.Extent} extent1 Extent 1.
|
||||||
* @param {ol.Extent} extent2 Extent 2.
|
* @param {ol.Extent} extent2 Extent 2.
|
||||||
* @return {boolean} Contains.
|
* @return {boolean} Contains.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.containsExtent = function(extent1, extent2) {
|
ol.extent.containsExtent = function(extent1, extent2) {
|
||||||
return extent1[0] <= extent2[0] && extent2[2] <= extent1[2] &&
|
return extent1[0] <= extent2[0] && extent2[2] <= extent1[2] &&
|
||||||
@@ -200,7 +199,7 @@ ol.extent.coordinateRelationship = function(extent, coordinate) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.Extent} Empty extent.
|
* @return {ol.Extent} Empty extent.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.createEmpty = function() {
|
ol.extent.createEmpty = function() {
|
||||||
return [Infinity, Infinity, -Infinity, -Infinity];
|
return [Infinity, Infinity, -Infinity, -Infinity];
|
||||||
@@ -214,7 +213,6 @@ ol.extent.createEmpty = function() {
|
|||||||
* @param {number} maxY Maximum Y.
|
* @param {number} maxY Maximum Y.
|
||||||
* @param {ol.Extent=} opt_extent Destination extent.
|
* @param {ol.Extent=} opt_extent Destination extent.
|
||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.createOrUpdate = function(minX, minY, maxX, maxY, opt_extent) {
|
ol.extent.createOrUpdate = function(minX, minY, maxX, maxY, opt_extent) {
|
||||||
if (goog.isDef(opt_extent)) {
|
if (goog.isDef(opt_extent)) {
|
||||||
@@ -293,7 +291,6 @@ ol.extent.createOrUpdateFromRings = function(rings, opt_extent) {
|
|||||||
* Empties extent in place.
|
* Empties extent in place.
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.empty = function(extent) {
|
ol.extent.empty = function(extent) {
|
||||||
extent[0] = extent[1] = Infinity;
|
extent[0] = extent[1] = Infinity;
|
||||||
@@ -306,7 +303,7 @@ ol.extent.empty = function(extent) {
|
|||||||
* @param {ol.Extent} extent1 Extent 1.
|
* @param {ol.Extent} extent1 Extent 1.
|
||||||
* @param {ol.Extent} extent2 Extent 2.
|
* @param {ol.Extent} extent2 Extent 2.
|
||||||
* @return {boolean} Equals.
|
* @return {boolean} Equals.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.equals = function(extent1, extent2) {
|
ol.extent.equals = function(extent1, extent2) {
|
||||||
return extent1[0] == extent2[0] && extent1[2] == extent2[2] &&
|
return extent1[0] == extent2[0] && extent1[2] == extent2[2] &&
|
||||||
@@ -318,7 +315,7 @@ ol.extent.equals = function(extent1, extent2) {
|
|||||||
* @param {ol.Extent} extent1 Extent 1.
|
* @param {ol.Extent} extent1 Extent 1.
|
||||||
* @param {ol.Extent} extent2 Extent 2.
|
* @param {ol.Extent} extent2 Extent 2.
|
||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.extend = function(extent1, extent2) {
|
ol.extent.extend = function(extent1, extent2) {
|
||||||
if (extent2[0] < extent1[0]) {
|
if (extent2[0] < extent1[0]) {
|
||||||
@@ -340,7 +337,6 @@ ol.extent.extend = function(extent1, extent2) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @param {ol.Coordinate} coordinate Coordinate.
|
* @param {ol.Coordinate} coordinate Coordinate.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.extendCoordinate = function(extent, coordinate) {
|
ol.extent.extendCoordinate = function(extent, coordinate) {
|
||||||
if (coordinate[0] < extent[0]) {
|
if (coordinate[0] < extent[0]) {
|
||||||
@@ -429,7 +425,7 @@ ol.extent.getArea = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {ol.Coordinate} Bottom left coordinate.
|
* @return {ol.Coordinate} Bottom left coordinate.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getBottomLeft = function(extent) {
|
ol.extent.getBottomLeft = function(extent) {
|
||||||
return [extent[0], extent[1]];
|
return [extent[0], extent[1]];
|
||||||
@@ -439,7 +435,7 @@ ol.extent.getBottomLeft = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {ol.Coordinate} Bottom right coordinate.
|
* @return {ol.Coordinate} Bottom right coordinate.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getBottomRight = function(extent) {
|
ol.extent.getBottomRight = function(extent) {
|
||||||
return [extent[2], extent[1]];
|
return [extent[2], extent[1]];
|
||||||
@@ -449,7 +445,7 @@ ol.extent.getBottomRight = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {ol.Coordinate} Center.
|
* @return {ol.Coordinate} Center.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getCenter = function(extent) {
|
ol.extent.getCenter = function(extent) {
|
||||||
return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];
|
return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];
|
||||||
@@ -477,7 +473,6 @@ ol.extent.getEnlargedArea = function(extent1, extent2) {
|
|||||||
* @param {ol.Size} size Size.
|
* @param {ol.Size} size Size.
|
||||||
* @param {ol.Extent=} opt_extent Destination extent.
|
* @param {ol.Extent=} opt_extent Destination extent.
|
||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.getForView2DAndSize =
|
ol.extent.getForView2DAndSize =
|
||||||
function(center, resolution, rotation, size, opt_extent) {
|
function(center, resolution, rotation, size, opt_extent) {
|
||||||
@@ -503,7 +498,7 @@ ol.extent.getForView2DAndSize =
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {number} Height.
|
* @return {number} Height.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getHeight = function(extent) {
|
ol.extent.getHeight = function(extent) {
|
||||||
return extent[3] - extent[1];
|
return extent[3] - extent[1];
|
||||||
@@ -536,7 +531,7 @@ ol.extent.getMargin = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {ol.Size} Size.
|
* @return {ol.Size} Size.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getSize = function(extent) {
|
ol.extent.getSize = function(extent) {
|
||||||
return [extent[2] - extent[0], extent[3] - extent[1]];
|
return [extent[2] - extent[0], extent[3] - extent[1]];
|
||||||
@@ -546,7 +541,7 @@ ol.extent.getSize = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {ol.Coordinate} Top left coordinate.
|
* @return {ol.Coordinate} Top left coordinate.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getTopLeft = function(extent) {
|
ol.extent.getTopLeft = function(extent) {
|
||||||
return [extent[0], extent[3]];
|
return [extent[0], extent[3]];
|
||||||
@@ -556,7 +551,7 @@ ol.extent.getTopLeft = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {ol.Coordinate} Top right coordinate.
|
* @return {ol.Coordinate} Top right coordinate.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getTopRight = function(extent) {
|
ol.extent.getTopRight = function(extent) {
|
||||||
return [extent[2], extent[3]];
|
return [extent[2], extent[3]];
|
||||||
@@ -566,7 +561,7 @@ ol.extent.getTopRight = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {number} Width.
|
* @return {number} Width.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.getWidth = function(extent) {
|
ol.extent.getWidth = function(extent) {
|
||||||
return extent[2] - extent[0];
|
return extent[2] - extent[0];
|
||||||
@@ -577,7 +572,7 @@ ol.extent.getWidth = function(extent) {
|
|||||||
* @param {ol.Extent} extent1 Extent 1.
|
* @param {ol.Extent} extent1 Extent 1.
|
||||||
* @param {ol.Extent} extent2 Extent.
|
* @param {ol.Extent} extent2 Extent.
|
||||||
* @return {boolean} Intersects.
|
* @return {boolean} Intersects.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.intersects = function(extent1, extent2) {
|
ol.extent.intersects = function(extent1, extent2) {
|
||||||
return extent1[0] <= extent2[2] &&
|
return extent1[0] <= extent2[2] &&
|
||||||
@@ -590,7 +585,7 @@ ol.extent.intersects = function(extent1, extent2) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {boolean} Is empty.
|
* @return {boolean} Is empty.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.isEmpty = function(extent) {
|
ol.extent.isEmpty = function(extent) {
|
||||||
return extent[2] < extent[0] || extent[3] < extent[1];
|
return extent[2] < extent[0] || extent[3] < extent[1];
|
||||||
@@ -600,7 +595,6 @@ ol.extent.isEmpty = function(extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @return {boolean} Is infinite.
|
* @return {boolean} Is infinite.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.isInfinite = function(extent) {
|
ol.extent.isInfinite = function(extent) {
|
||||||
return extent[0] == -Infinity || extent[1] == -Infinity ||
|
return extent[0] == -Infinity || extent[1] == -Infinity ||
|
||||||
@@ -612,7 +606,6 @@ ol.extent.isInfinite = function(extent) {
|
|||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @param {ol.Coordinate} coordinate Coordinate.
|
* @param {ol.Coordinate} coordinate Coordinate.
|
||||||
* @return {ol.Coordinate} Coordinate.
|
* @return {ol.Coordinate} Coordinate.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.normalize = function(extent, coordinate) {
|
ol.extent.normalize = function(extent, coordinate) {
|
||||||
return [
|
return [
|
||||||
@@ -643,7 +636,6 @@ ol.extent.returnOrUpdate = function(extent, opt_extent) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @param {number} value Value.
|
* @param {number} value Value.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.scaleFromCenter = function(extent, value) {
|
ol.extent.scaleFromCenter = function(extent, value) {
|
||||||
var deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);
|
var deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);
|
||||||
@@ -712,7 +704,6 @@ ol.extent.segmentIntersects = function(extent, start, end) {
|
|||||||
* @param {ol.Extent} extent1 Extent 1.
|
* @param {ol.Extent} extent1 Extent 1.
|
||||||
* @param {ol.Extent} extent2 Extent 2.
|
* @param {ol.Extent} extent2 Extent 2.
|
||||||
* @return {boolean} Touches.
|
* @return {boolean} Touches.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.extent.touches = function(extent1, extent2) {
|
ol.extent.touches = function(extent1, extent2) {
|
||||||
var intersects = ol.extent.intersects(extent1, extent2);
|
var intersects = ol.extent.intersects(extent1, extent2);
|
||||||
@@ -727,7 +718,7 @@ ol.extent.touches = function(extent1, extent2) {
|
|||||||
* @param {ol.TransformFunction} transformFn Transform function.
|
* @param {ol.TransformFunction} transformFn Transform function.
|
||||||
* @param {ol.Extent=} opt_extent Destination extent.
|
* @param {ol.Extent=} opt_extent Destination extent.
|
||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.extent.transform = function(extent, transformFn, opt_extent) {
|
ol.extent.transform = function(extent, transformFn, opt_extent) {
|
||||||
var coordinates = [
|
var coordinates = [
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
@exportSymbol ol.Feature
|
|
||||||
@exportProperty ol.Feature.prototype.getGeometryName
|
|
||||||
@exportProperty ol.Feature.prototype.getId
|
|
||||||
@exportProperty ol.Feature.prototype.getStyle
|
|
||||||
@exportProperty ol.Feature.prototype.getStyleFunction
|
|
||||||
@exportProperty ol.Feature.prototype.setGeometryName
|
|
||||||
@exportProperty ol.Feature.prototype.setId
|
|
||||||
@exportProperty ol.Feature.prototype.setStyle
|
|
||||||
@@ -20,7 +20,7 @@ goog.require('ol.style.Style');
|
|||||||
* @extends {ol.Object}
|
* @extends {ol.Object}
|
||||||
* @param {ol.geom.Geometry|Object.<string, *>=} opt_geometryOrValues
|
* @param {ol.geom.Geometry|Object.<string, *>=} opt_geometryOrValues
|
||||||
* Values or geometry.
|
* Values or geometry.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature = function(opt_geometryOrValues) {
|
ol.Feature = function(opt_geometryOrValues) {
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ goog.inherits(ol.Feature, ol.Object);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.geom.Geometry|undefined} Geometry.
|
* @return {ol.geom.Geometry|undefined} Geometry.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.getGeometry = function() {
|
ol.Feature.prototype.getGeometry = function() {
|
||||||
return /** @type {ol.geom.Geometry|undefined} */ (
|
return /** @type {ol.geom.Geometry|undefined} */ (
|
||||||
@@ -94,7 +94,7 @@ goog.exportProperty(
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {number|string|undefined} Id.
|
* @return {number|string|undefined} Id.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.getId = function() {
|
ol.Feature.prototype.getId = function() {
|
||||||
return this.id_;
|
return this.id_;
|
||||||
@@ -103,7 +103,7 @@ ol.Feature.prototype.getId = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {string} Geometry property name.
|
* @return {string} Geometry property name.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.getGeometryName = function() {
|
ol.Feature.prototype.getGeometryName = function() {
|
||||||
return this.geometryName_;
|
return this.geometryName_;
|
||||||
@@ -113,7 +113,7 @@ ol.Feature.prototype.getGeometryName = function() {
|
|||||||
/**
|
/**
|
||||||
* @return {ol.style.Style|Array.<ol.style.Style>|
|
* @return {ol.style.Style|Array.<ol.style.Style>|
|
||||||
* ol.feature.FeatureStyleFunction} User provided style.
|
* ol.feature.FeatureStyleFunction} User provided style.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.getStyle = function() {
|
ol.Feature.prototype.getStyle = function() {
|
||||||
return this.style_;
|
return this.style_;
|
||||||
@@ -122,7 +122,7 @@ ol.Feature.prototype.getStyle = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.feature.FeatureStyleFunction|undefined} Style function.
|
* @return {ol.feature.FeatureStyleFunction|undefined} Style function.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.getStyleFunction = function() {
|
ol.Feature.prototype.getStyleFunction = function() {
|
||||||
return this.styleFunction_;
|
return this.styleFunction_;
|
||||||
@@ -149,13 +149,14 @@ ol.Feature.prototype.handleGeometryChanged_ = function() {
|
|||||||
if (goog.isDefAndNotNull(geometry)) {
|
if (goog.isDefAndNotNull(geometry)) {
|
||||||
this.geometryChangeKey_ = goog.events.listen(geometry,
|
this.geometryChangeKey_ = goog.events.listen(geometry,
|
||||||
goog.events.EventType.CHANGE, this.handleGeometryChange_, false, this);
|
goog.events.EventType.CHANGE, this.handleGeometryChange_, false, this);
|
||||||
|
this.dispatchChangeEvent();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Geometry|undefined} geometry Geometry.
|
* @param {ol.geom.Geometry|undefined} geometry Geometry.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.setGeometry = function(geometry) {
|
ol.Feature.prototype.setGeometry = function(geometry) {
|
||||||
this.set(this.geometryName_, geometry);
|
this.set(this.geometryName_, geometry);
|
||||||
@@ -169,7 +170,7 @@ goog.exportProperty(
|
|||||||
/**
|
/**
|
||||||
* @param {ol.style.Style|Array.<ol.style.Style>|
|
* @param {ol.style.Style|Array.<ol.style.Style>|
|
||||||
* ol.feature.FeatureStyleFunction} style Feature style.
|
* ol.feature.FeatureStyleFunction} style Feature style.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.setStyle = function(style) {
|
ol.Feature.prototype.setStyle = function(style) {
|
||||||
this.style_ = style;
|
this.style_ = style;
|
||||||
@@ -180,7 +181,7 @@ ol.Feature.prototype.setStyle = function(style) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {number|string|undefined} id Id.
|
* @param {number|string|undefined} id Id.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.setId = function(id) {
|
ol.Feature.prototype.setId = function(id) {
|
||||||
this.id_ = id;
|
this.id_ = id;
|
||||||
@@ -189,7 +190,7 @@ ol.Feature.prototype.setId = function(id) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name Geometry property name.
|
* @param {string} name Geometry property name.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.setGeometryName = function(name) {
|
ol.Feature.prototype.setGeometryName = function(name) {
|
||||||
goog.events.unlisten(
|
goog.events.unlisten(
|
||||||
@@ -210,7 +211,7 @@ ol.Feature.prototype.setGeometryName = function(name) {
|
|||||||
* {@link ol.Feature} to be styled.
|
* {@link ol.Feature} to be styled.
|
||||||
*
|
*
|
||||||
* @typedef {function(this: ol.Feature, number): Array.<ol.style.Style>}
|
* @typedef {function(this: ol.Feature, number): Array.<ol.style.Style>}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.feature.FeatureStyleFunction;
|
ol.feature.FeatureStyleFunction;
|
||||||
|
|
||||||
@@ -220,7 +221,6 @@ ol.feature.FeatureStyleFunction;
|
|||||||
* @param {number} resolution Resolution.
|
* @param {number} resolution Resolution.
|
||||||
* @return {Array.<ol.style.Style>} Style.
|
* @return {Array.<ol.style.Style>} Style.
|
||||||
* @this {ol.Feature}
|
* @this {ol.Feature}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.feature.defaultFeatureStyleFunction = function(resolution) {
|
ol.feature.defaultFeatureStyleFunction = function(resolution) {
|
||||||
var fill = new ol.style.Fill({
|
var fill = new ol.style.Fill({
|
||||||
@@ -260,7 +260,7 @@ ol.feature.defaultFeatureStyleFunction = function(resolution) {
|
|||||||
* {@link ol.style.Style}. This way e.g. a vector layer can be styled.
|
* {@link ol.style.Style}. This way e.g. a vector layer can be styled.
|
||||||
*
|
*
|
||||||
* @typedef {function(ol.Feature, number): Array.<ol.style.Style>}
|
* @typedef {function(ol.Feature, number): Array.<ol.style.Style>}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.feature.StyleFunction;
|
ol.feature.StyleFunction;
|
||||||
|
|
||||||
@@ -269,7 +269,6 @@ ol.feature.StyleFunction;
|
|||||||
* @param {ol.Feature} feature Feature.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {number} resolution Resolution.
|
* @param {number} resolution Resolution.
|
||||||
* @return {Array.<ol.style.Style>} Style.
|
* @return {Array.<ol.style.Style>} Style.
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.feature.defaultStyleFunction = function(feature, resolution) {
|
ol.feature.defaultStyleFunction = function(feature, resolution) {
|
||||||
var featureStyleFunction = feature.getStyleFunction();
|
var featureStyleFunction = feature.getStyleFunction();
|
||||||
@@ -350,7 +349,6 @@ ol.feature.createStyleFunction = function(obj) {
|
|||||||
/**
|
/**
|
||||||
* Default styles for editing features.
|
* Default styles for editing features.
|
||||||
* @return {Object.<ol.geom.GeometryType, Array.<ol.style.Style>>} Styles
|
* @return {Object.<ol.geom.GeometryType, Array.<ol.style.Style>>} Styles
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.feature.createDefaultEditingStyles = function() {
|
ol.feature.createDefaultEditingStyles = function() {
|
||||||
/** @type {Object.<ol.geom.GeometryType, Array.<ol.style.Style>>} */
|
/** @type {Object.<ol.geom.GeometryType, Array.<ol.style.Style>>} */
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
@exportSymbol ol.FeatureOverlay
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.addFeature
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.getFeatures
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.getStyle
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.getStyleFunction
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.removeFeature
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.setFeatures
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.setMap
|
|
||||||
@exportProperty ol.FeatureOverlay.prototype.setStyle
|
|
||||||
@@ -16,7 +16,7 @@ goog.require('ol.render.EventType');
|
|||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param {olx.FeatureOverlayOptions=} opt_options Options.
|
* @param {olx.FeatureOverlayOptions=} opt_options Options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay = function(opt_options) {
|
ol.FeatureOverlay = function(opt_options) {
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ ol.FeatureOverlay = function(opt_options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.Feature} feature Feature.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.addFeature = function(feature) {
|
ol.FeatureOverlay.prototype.addFeature = function(feature) {
|
||||||
this.features_.push(feature);
|
this.features_.push(feature);
|
||||||
@@ -94,7 +94,7 @@ ol.FeatureOverlay.prototype.addFeature = function(feature) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.Collection} Features collection.
|
* @return {ol.Collection} Features collection.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.getFeatures = function() {
|
ol.FeatureOverlay.prototype.getFeatures = function() {
|
||||||
return this.features_;
|
return this.features_;
|
||||||
@@ -113,8 +113,7 @@ ol.FeatureOverlay.prototype.handleFeatureChange_ = function() {
|
|||||||
* @private
|
* @private
|
||||||
* @param {ol.CollectionEvent} collectionEvent Collection event.
|
* @param {ol.CollectionEvent} collectionEvent Collection event.
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.handleFeaturesAdd_ =
|
ol.FeatureOverlay.prototype.handleFeaturesAdd_ = function(collectionEvent) {
|
||||||
function(collectionEvent) {
|
|
||||||
goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_));
|
goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_));
|
||||||
var feature = /** @type {ol.Feature} */ (collectionEvent.element);
|
var feature = /** @type {ol.Feature} */ (collectionEvent.element);
|
||||||
this.featureChangeListenerKeys_[goog.getUid(feature).toString()] =
|
this.featureChangeListenerKeys_[goog.getUid(feature).toString()] =
|
||||||
@@ -128,8 +127,7 @@ ol.FeatureOverlay.prototype.handleFeaturesAdd_ =
|
|||||||
* @private
|
* @private
|
||||||
* @param {ol.CollectionEvent} collectionEvent Collection event.
|
* @param {ol.CollectionEvent} collectionEvent Collection event.
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.handleFeaturesRemove_ =
|
ol.FeatureOverlay.prototype.handleFeaturesRemove_ = function(collectionEvent) {
|
||||||
function(collectionEvent) {
|
|
||||||
goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_));
|
goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_));
|
||||||
var feature = /** @type {ol.Feature} */ (collectionEvent.element);
|
var feature = /** @type {ol.Feature} */ (collectionEvent.element);
|
||||||
var key = goog.getUid(feature).toString();
|
var key = goog.getUid(feature).toString();
|
||||||
@@ -153,7 +151,7 @@ ol.FeatureOverlay.prototype.handleMapPostCompose_ = function(event) {
|
|||||||
}
|
}
|
||||||
var resolution = event.frameState.view2DState.resolution;
|
var resolution = event.frameState.view2DState.resolution;
|
||||||
var vectorContext = event.vectorContext;
|
var vectorContext = event.vectorContext;
|
||||||
var i, ii, feature, styles;
|
var i, ii, styles;
|
||||||
this.features_.forEach(function(feature) {
|
this.features_.forEach(function(feature) {
|
||||||
styles = styleFunction(feature, resolution);
|
styles = styleFunction(feature, resolution);
|
||||||
if (!goog.isDefAndNotNull(styles)) {
|
if (!goog.isDefAndNotNull(styles)) {
|
||||||
@@ -163,13 +161,13 @@ ol.FeatureOverlay.prototype.handleMapPostCompose_ = function(event) {
|
|||||||
for (i = 0; i < ii; ++i) {
|
for (i = 0; i < ii; ++i) {
|
||||||
vectorContext.drawFeature(feature, styles[i]);
|
vectorContext.drawFeature(feature, styles[i]);
|
||||||
}
|
}
|
||||||
}, this);
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.Feature} feature Feature.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.removeFeature = function(feature) {
|
ol.FeatureOverlay.prototype.removeFeature = function(feature) {
|
||||||
this.features_.remove(feature);
|
this.features_.remove(feature);
|
||||||
@@ -188,7 +186,7 @@ ol.FeatureOverlay.prototype.render_ = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.Collection} features Features collection.
|
* @param {ol.Collection} features Features collection.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.setFeatures = function(features) {
|
ol.FeatureOverlay.prototype.setFeatures = function(features) {
|
||||||
if (!goog.isNull(this.featuresListenerKeys_)) {
|
if (!goog.isNull(this.featuresListenerKeys_)) {
|
||||||
@@ -210,15 +208,11 @@ ol.FeatureOverlay.prototype.setFeatures = function(features) {
|
|||||||
this.handleFeaturesRemove_, false, this)
|
this.handleFeaturesRemove_, false, this)
|
||||||
];
|
];
|
||||||
this.featureChangeListenerKeys_ = {};
|
this.featureChangeListenerKeys_ = {};
|
||||||
var featuresArray = features.getArray();
|
features.forEach(function(feature) {
|
||||||
var i, ii = featuresArray.length;
|
|
||||||
var feature;
|
|
||||||
for (i = 0; i < ii; ++i) {
|
|
||||||
feature = featuresArray[i];
|
|
||||||
this.featureChangeListenerKeys_[goog.getUid(feature).toString()] =
|
this.featureChangeListenerKeys_[goog.getUid(feature).toString()] =
|
||||||
goog.events.listen(feature, goog.events.EventType.CHANGE,
|
goog.events.listen(feature, goog.events.EventType.CHANGE,
|
||||||
this.handleFeatureChange_, false, this);
|
this.handleFeatureChange_, false, this);
|
||||||
}
|
}, this);
|
||||||
}
|
}
|
||||||
this.render_();
|
this.render_();
|
||||||
};
|
};
|
||||||
@@ -226,7 +220,7 @@ ol.FeatureOverlay.prototype.setFeatures = function(features) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.Map} map Map.
|
* @param {ol.Map} map Map.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.setMap = function(map) {
|
ol.FeatureOverlay.prototype.setMap = function(map) {
|
||||||
if (!goog.isNull(this.postComposeListenerKey_)) {
|
if (!goog.isNull(this.postComposeListenerKey_)) {
|
||||||
@@ -250,7 +244,7 @@ ol.FeatureOverlay.prototype.setMap = function(map) {
|
|||||||
* an array of styles.
|
* an array of styles.
|
||||||
* @param {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction} style
|
* @param {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction} style
|
||||||
* Overlay style.
|
* Overlay style.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.setStyle = function(style) {
|
ol.FeatureOverlay.prototype.setStyle = function(style) {
|
||||||
this.style_ = style;
|
this.style_ = style;
|
||||||
@@ -264,6 +258,7 @@ ol.FeatureOverlay.prototype.setStyle = function(style) {
|
|||||||
* option at construction or to the `setStyle` method.
|
* option at construction or to the `setStyle` method.
|
||||||
* @return {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction}
|
* @return {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction}
|
||||||
* Overlay style.
|
* Overlay style.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.getStyle = function() {
|
ol.FeatureOverlay.prototype.getStyle = function() {
|
||||||
return this.style_;
|
return this.style_;
|
||||||
@@ -273,6 +268,7 @@ ol.FeatureOverlay.prototype.getStyle = function() {
|
|||||||
/**
|
/**
|
||||||
* Get the style function.
|
* Get the style function.
|
||||||
* @return {ol.feature.StyleFunction|undefined} Style function.
|
* @return {ol.feature.StyleFunction|undefined} Style function.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.FeatureOverlay.prototype.getStyleFunction = function() {
|
ol.FeatureOverlay.prototype.getStyleFunction = function() {
|
||||||
return this.styleFunction_;
|
return this.styleFunction_;
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
@exportSymbol ol.format.GeoJSON
|
|
||||||
@exportProperty ol.format.GeoJSON.prototype.readFeature
|
|
||||||
@exportProperty ol.format.GeoJSON.prototype.readFeatures
|
|
||||||
@exportProperty ol.format.GeoJSON.prototype.readGeometry
|
|
||||||
@exportProperty ol.format.GeoJSON.prototype.readProjection
|
|
||||||
@exportProperty ol.format.GeoJSON.prototype.writeFeature
|
|
||||||
@exportProperty ol.format.GeoJSON.prototype.writeFeatures
|
|
||||||
@exportProperty ol.format.GeoJSON.prototype.writeGeometry
|
|
||||||
@@ -26,7 +26,7 @@ goog.require('ol.proj');
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.format.JSONFeature}
|
* @extends {ol.format.JSONFeature}
|
||||||
* @param {olx.format.GeoJSONOptions=} opt_options Options.
|
* @param {olx.format.GeoJSONOptions=} opt_options Options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GeoJSON = function(opt_options) {
|
ol.format.GeoJSON = function(opt_options) {
|
||||||
|
|
||||||
@@ -322,6 +322,7 @@ ol.format.GeoJSON.prototype.getExtensions = function() {
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {ol.Feature} Feature.
|
* @return {ol.Feature} Feature.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GeoJSON.prototype.readFeature;
|
ol.format.GeoJSON.prototype.readFeature;
|
||||||
|
|
||||||
@@ -333,6 +334,7 @@ ol.format.GeoJSON.prototype.readFeature;
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {Array.<ol.Feature>} Features.
|
* @return {Array.<ol.Feature>} Features.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GeoJSON.prototype.readFeatures;
|
ol.format.GeoJSON.prototype.readFeatures;
|
||||||
|
|
||||||
@@ -386,6 +388,7 @@ ol.format.GeoJSON.prototype.readFeaturesFromObject = function(object) {
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {ol.geom.Geometry} Geometry.
|
* @return {ol.geom.Geometry} Geometry.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GeoJSON.prototype.readGeometry;
|
ol.format.GeoJSON.prototype.readGeometry;
|
||||||
|
|
||||||
@@ -404,6 +407,7 @@ ol.format.GeoJSON.prototype.readGeometryFromObject = function(object) {
|
|||||||
*
|
*
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} object Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} object Source.
|
||||||
* @return {ol.proj.Projection} Projection.
|
* @return {ol.proj.Projection} Projection.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GeoJSON.prototype.readProjection = function(object) {
|
ol.format.GeoJSON.prototype.readProjection = function(object) {
|
||||||
var geoJSONObject = /** @type {GeoJSONObject} */ (object);
|
var geoJSONObject = /** @type {GeoJSONObject} */ (object);
|
||||||
@@ -433,6 +437,7 @@ ol.format.GeoJSON.prototype.readProjection = function(object) {
|
|||||||
* @function
|
* @function
|
||||||
* @param {ol.Feature} feature Feature.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @return {ArrayBuffer|Node|Object|string} Result.
|
* @return {ArrayBuffer|Node|Object|string} Result.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GeoJSON.prototype.writeFeature;
|
ol.format.GeoJSON.prototype.writeFeature;
|
||||||
|
|
||||||
@@ -468,6 +473,7 @@ ol.format.GeoJSON.prototype.writeFeatureObject = function(feature) {
|
|||||||
* @function
|
* @function
|
||||||
* @param {Array.<ol.Feature>} features Features.
|
* @param {Array.<ol.Feature>} features Features.
|
||||||
* @return {ArrayBuffer|Node|Object|string} Result.
|
* @return {ArrayBuffer|Node|Object|string} Result.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GeoJSON.prototype.writeFeatures;
|
ol.format.GeoJSON.prototype.writeFeatures;
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ goog.require('ol.xml');
|
|||||||
* @param {olx.format.GMLOptions=} opt_options
|
* @param {olx.format.GMLOptions=} opt_options
|
||||||
* Optional configuration object.
|
* Optional configuration object.
|
||||||
* @extends {ol.format.XMLFeature}
|
* @extends {ol.format.XMLFeature}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.format.GML = function(opt_options) {
|
ol.format.GML = function(opt_options) {
|
||||||
var options = /** @type {olx.format.GMLOptions} */
|
var options = /** @type {olx.format.GMLOptions} */
|
||||||
@@ -119,10 +118,12 @@ ol.format.GML.readFeatures_ = function(node, objectStack) {
|
|||||||
if (localName == 'FeatureCollection') {
|
if (localName == 'FeatureCollection') {
|
||||||
features = ol.xml.pushParseAndPop(null,
|
features = ol.xml.pushParseAndPop(null,
|
||||||
ol.format.GML.FEATURE_COLLECTION_PARSERS, node, objectStack);
|
ol.format.GML.FEATURE_COLLECTION_PARSERS, node, objectStack);
|
||||||
} else if (localName == 'featureMembers') {
|
} else if (localName == 'featureMembers' || localName == 'featureMember') {
|
||||||
var parsers = {};
|
var parsers = {};
|
||||||
var parsersNS = {};
|
var parsersNS = {};
|
||||||
parsers[featureType] = ol.xml.makeArrayPusher(ol.format.GML.readFeature_);
|
parsers[featureType] = (localName == 'featureMembers') ?
|
||||||
|
ol.xml.makeArrayPusher(ol.format.GML.readFeature_) :
|
||||||
|
ol.xml.makeReplacer(ol.format.GML.readFeature_);
|
||||||
parsersNS[goog.object.get(context, 'featureNS')] = parsers;
|
parsersNS[goog.object.get(context, 'featureNS')] = parsers;
|
||||||
features = ol.xml.pushParseAndPop([], parsersNS, node, objectStack);
|
features = ol.xml.pushParseAndPop([], parsersNS, node, objectStack);
|
||||||
}
|
}
|
||||||
@@ -138,6 +139,7 @@ ol.format.GML.readFeatures_ = function(node, objectStack) {
|
|||||||
*/
|
*/
|
||||||
ol.format.GML.FEATURE_COLLECTION_PARSERS = {
|
ol.format.GML.FEATURE_COLLECTION_PARSERS = {
|
||||||
'http://www.opengis.net/gml': {
|
'http://www.opengis.net/gml': {
|
||||||
|
'featureMember': ol.xml.makeArrayPusher(ol.format.GML.readFeatures_),
|
||||||
'featureMembers': ol.xml.makeReplacer(ol.format.GML.readFeatures_)
|
'featureMembers': ol.xml.makeReplacer(ol.format.GML.readFeatures_)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
@exportSymbol ol.format.GPX
|
|
||||||
@exportProperty ol.format.GPX.prototype.readFeature
|
|
||||||
@exportProperty ol.format.GPX.prototype.readFeatures
|
|
||||||
@exportProperty ol.format.GPX.prototype.readProjection
|
|
||||||
@exportProperty ol.format.GPX.prototype.writeFeatures
|
|
||||||
@@ -19,7 +19,7 @@ goog.require('ol.xml');
|
|||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.format.XMLFeature}
|
* @extends {ol.format.XMLFeature}
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GPX = function() {
|
ol.format.GPX = function() {
|
||||||
goog.base(this);
|
goog.base(this);
|
||||||
@@ -369,6 +369,7 @@ ol.format.GPX.WPT_PARSERS_ = ol.xml.makeParsersNS(
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {ol.Feature} Feature.
|
* @return {ol.Feature} Feature.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GPX.prototype.readFeature;
|
ol.format.GPX.prototype.readFeature;
|
||||||
|
|
||||||
@@ -378,8 +379,7 @@ ol.format.GPX.prototype.readFeature;
|
|||||||
*/
|
*/
|
||||||
ol.format.GPX.prototype.readFeatureFromNode = function(node) {
|
ol.format.GPX.prototype.readFeatureFromNode = function(node) {
|
||||||
goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT);
|
goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT);
|
||||||
if (goog.array.indexOf(ol.format.GPX.NAMESPACE_URIS_, node.namespaceURI) ==
|
if (!goog.array.contains(ol.format.GPX.NAMESPACE_URIS_, node.namespaceURI)) {
|
||||||
-1) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var featureReader = ol.format.GPX.FEATURE_READER_[node.localName];
|
var featureReader = ol.format.GPX.FEATURE_READER_[node.localName];
|
||||||
@@ -400,6 +400,7 @@ ol.format.GPX.prototype.readFeatureFromNode = function(node) {
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {Array.<ol.Feature>} Features.
|
* @return {Array.<ol.Feature>} Features.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GPX.prototype.readFeatures;
|
ol.format.GPX.prototype.readFeatures;
|
||||||
|
|
||||||
@@ -409,8 +410,7 @@ ol.format.GPX.prototype.readFeatures;
|
|||||||
*/
|
*/
|
||||||
ol.format.GPX.prototype.readFeaturesFromNode = function(node) {
|
ol.format.GPX.prototype.readFeaturesFromNode = function(node) {
|
||||||
goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT);
|
goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT);
|
||||||
if (goog.array.indexOf(ol.format.GPX.NAMESPACE_URIS_, node.namespaceURI) ==
|
if (!goog.array.contains(ol.format.GPX.NAMESPACE_URIS_, node.namespaceURI)) {
|
||||||
-1) {
|
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
if (node.localName == 'gpx') {
|
if (node.localName == 'gpx') {
|
||||||
@@ -432,6 +432,7 @@ ol.format.GPX.prototype.readFeaturesFromNode = function(node) {
|
|||||||
*
|
*
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {ol.proj.Projection} Projection.
|
* @return {ol.proj.Projection} Projection.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GPX.prototype.readProjection;
|
ol.format.GPX.prototype.readProjection;
|
||||||
|
|
||||||
@@ -793,7 +794,6 @@ ol.format.GPX.GPX_SERIALIZERS_ = ol.xml.makeStructureNS(
|
|||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.format.GPX}
|
* @extends {ol.format.GPX}
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
*/
|
||||||
ol.format.GPX.V1_1 = function() {
|
ol.format.GPX.V1_1 = function() {
|
||||||
goog.base(this);
|
goog.base(this);
|
||||||
@@ -807,6 +807,7 @@ goog.inherits(ol.format.GPX.V1_1, ol.format.GPX);
|
|||||||
* @function
|
* @function
|
||||||
* @param {Array.<ol.Feature>} features Features.
|
* @param {Array.<ol.Feature>} features Features.
|
||||||
* @return {ArrayBuffer|Node|Object|string} Result.
|
* @return {ArrayBuffer|Node|Object|string} Result.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.GPX.prototype.writeFeatures;
|
ol.format.GPX.prototype.writeFeatures;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
@exportSymbol ol.format.IGC
|
|
||||||
@exportProperty ol.format.IGC.prototype.readFeature
|
|
||||||
@exportProperty ol.format.IGC.prototype.readFeatures
|
|
||||||
@exportProperty ol.format.IGC.prototype.readProjection
|
|
||||||
@@ -25,7 +25,7 @@ ol.format.IGCZ = {
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.format.TextFeature}
|
* @extends {ol.format.TextFeature}
|
||||||
* @param {olx.format.IGCOptions=} opt_options Options.
|
* @param {olx.format.IGCOptions=} opt_options Options.
|
||||||
* @todo stability experimental
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.IGC = function(opt_options) {
|
ol.format.IGC = function(opt_options) {
|
||||||
|
|
||||||
@@ -91,6 +91,7 @@ ol.format.IGC.prototype.getExtensions = function() {
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {ol.Feature} Feature.
|
* @return {ol.Feature} Feature.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.IGC.prototype.readFeature;
|
ol.format.IGC.prototype.readFeature;
|
||||||
|
|
||||||
@@ -156,6 +157,9 @@ ol.format.IGC.prototype.readFeatureFromText = function(text) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (flatCoordinates.length === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
var lineString = new ol.geom.LineString(null);
|
var lineString = new ol.geom.LineString(null);
|
||||||
var layout = altitudeMode == ol.format.IGCZ.NONE ?
|
var layout = altitudeMode == ol.format.IGCZ.NONE ?
|
||||||
ol.geom.GeometryLayout.XYM : ol.geom.GeometryLayout.XYZM;
|
ol.geom.GeometryLayout.XYM : ol.geom.GeometryLayout.XYZM;
|
||||||
@@ -173,6 +177,7 @@ ol.format.IGC.prototype.readFeatureFromText = function(text) {
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {Array.<ol.Feature>} Features.
|
* @return {Array.<ol.Feature>} Features.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.IGC.prototype.readFeatures;
|
ol.format.IGC.prototype.readFeatures;
|
||||||
|
|
||||||
@@ -196,6 +201,7 @@ ol.format.IGC.prototype.readFeaturesFromText = function(text) {
|
|||||||
* @function
|
* @function
|
||||||
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
* @param {ArrayBuffer|Document|Node|Object|string} source Source.
|
||||||
* @return {ol.proj.Projection} Projection.
|
* @return {ol.proj.Projection} Projection.
|
||||||
|
* @todo api
|
||||||
*/
|
*/
|
||||||
ol.format.IGC.prototype.readProjection;
|
ol.format.IGC.prototype.readProjection;
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user