Refactor exports and externs
This commit is contained in:
27
Makefile
27
Makefile
@@ -4,8 +4,13 @@ PHANTOMJS = phantomjs
|
|||||||
PLOVR_JAR = bin/plovr-b254c26318c5.jar
|
PLOVR_JAR = bin/plovr-b254c26318c5.jar
|
||||||
SPEC = $(shell find test/spec -name \*.js)
|
SPEC = $(shell find test/spec -name \*.js)
|
||||||
SRC = $(shell find externs src/ol -name \*.js)
|
SRC = $(shell find externs src/ol -name \*.js)
|
||||||
INTERNAL_SRC = build/src/internal/src/requireall.js build/src/internal/src/types.js
|
INTERNAL_SRC = \
|
||||||
EXTERNAL_SRC = build/src/external/externs/types.js build/src/external/src/exports.js
|
build/src/internal/src/requireall.js \
|
||||||
|
build/src/internal/src/types.js
|
||||||
|
EXTERNAL_SRC = \
|
||||||
|
build/src/external/externs/types.js \
|
||||||
|
build/src/external/src/exports.js \
|
||||||
|
build/src/external/src/types.js
|
||||||
EXAMPLES = $(shell find examples -maxdepth 1 -name \*.html)
|
EXAMPLES = $(shell find examples -maxdepth 1 -name \*.html)
|
||||||
comma := ,
|
comma := ,
|
||||||
empty :=
|
empty :=
|
||||||
@@ -34,21 +39,25 @@ build-all: build/ol-all.js
|
|||||||
build/ol-all.js: $(PLOVR_JAR) $(SRC) $(INTERNAL_SRC) base.json build/ol-all.json
|
build/ol-all.js: $(PLOVR_JAR) $(SRC) $(INTERNAL_SRC) base.json build/ol-all.json
|
||||||
java -jar $(PLOVR_JAR) build build/ol-all.json >$@ || ( rm -f $@ ; false )
|
java -jar $(PLOVR_JAR) build build/ol-all.json >$@ || ( rm -f $@ ; false )
|
||||||
|
|
||||||
build/src/external/externs/types.js: bin/generate-types src/ol/types.txt
|
build/src/external/externs/types.js: bin/generate-exports src/ol/exports.txt
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
bin/generate-types --externs src/ol/types.txt >$@
|
bin/generate-exports --externs src/ol/exports.txt >$@ || ( rm -f $@ ; false )
|
||||||
|
|
||||||
build/src/external/src/exports.js: bin/generate-exports src/ol/exports.txt
|
build/src/external/src/exports.js: bin/generate-exports src/ol/exports.txt
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
bin/generate-exports src/ol/exports.txt >$@
|
bin/generate-exports --exports src/ol/exports.txt >$@ || ( rm -f $@ ; false )
|
||||||
|
|
||||||
|
build/src/external/src/types.js: bin/generate-exports src/ol/exports.txt
|
||||||
|
mkdir -p $(dir $@)
|
||||||
|
bin/generate-exports --typedef src/ol/exports.txt >$@ || ( rm -f $@ ; false )
|
||||||
|
|
||||||
build/src/internal/src/requireall.js: bin/generate-requireall $(SRC)
|
build/src/internal/src/requireall.js: bin/generate-requireall $(SRC)
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
bin/generate-requireall --require=goog.dom src/ol >$@
|
bin/generate-requireall --require=goog.dom src/ol >$@ || ( rm -f $@ ; false )
|
||||||
|
|
||||||
build/src/internal/src/types.js: bin/generate-types src/ol/types.txt
|
build/src/internal/src/types.js: bin/generate-exports src/ol/exports.txt
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
bin/generate-types --typedef src/ol/types.txt >$@
|
bin/generate-exports --typedef src/ol/exports.txt >$@ || ( rm -f $@ ; false )
|
||||||
|
|
||||||
.PHONY: build-examples
|
.PHONY: build-examples
|
||||||
build-examples: examples $(subst .html,.combined.js,$(EXAMPLES))
|
build-examples: examples $(subst .html,.combined.js,$(EXAMPLES))
|
||||||
@@ -70,7 +79,7 @@ serve: $(PLOVR_JAR) $(INTERNAL_SRC) examples
|
|||||||
|
|
||||||
.PHONY: serve-precommit
|
.PHONY: serve-precommit
|
||||||
serve-precommit: $(PLOVR_JAR) $(INTERNAL_SRC)
|
serve-precommit: $(PLOVR_JAR) $(INTERNAL_SRC)
|
||||||
java -jar $(PLOVR_JAR) serve build/ol.json
|
java -jar $(PLOVR_JAR) serve build/ol-all.json
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: build/lint-src-timestamp build/lint-spec-timestamp
|
lint: build/lint-src-timestamp build/lint-spec-timestamp
|
||||||
|
|||||||
@@ -1,91 +1,243 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
from itertools import ifilter
|
||||||
|
from operator import attrgetter
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
class Type(object):
|
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)
|
||||||
|
|
||||||
def __init__(self, name, members=None):
|
|
||||||
|
class Exportable(object):
|
||||||
|
|
||||||
|
def __init__(self, name):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.namespace = '.'.join(self.name.split('.')[:-1]) or None
|
|
||||||
self.members = members or {}
|
__repr__ = simplerepr
|
||||||
|
|
||||||
|
def export(self):
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def extern(self):
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def typedef(self):
|
||||||
|
return ''
|
||||||
|
|
||||||
|
|
||||||
|
class Class(Exportable):
|
||||||
|
|
||||||
|
def __init__(self, name, object_literal):
|
||||||
|
Exportable.__init__(self, name)
|
||||||
|
self.object_literal = object_literal
|
||||||
|
self.props = set()
|
||||||
|
|
||||||
|
__repr__ = simplerepr
|
||||||
|
|
||||||
|
def export(self):
|
||||||
|
lines = []
|
||||||
|
if self.object_literal is None:
|
||||||
|
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.name))
|
||||||
|
else:
|
||||||
|
lines.append('\n\n\n')
|
||||||
|
lines.append('/**\n')
|
||||||
|
lines.append(' * @constructor\n')
|
||||||
|
lines.append(' * @extends {%s}\n' % (self.name,))
|
||||||
|
lines.append(' * @param {%s} options Options.\n' % (self.object_literal.extern_name(),))
|
||||||
|
lines.append(' */\n')
|
||||||
|
lines.append('%sExport = function(options) {\n' % (self.name,))
|
||||||
|
lines.append(' goog.base(this, {')
|
||||||
|
lines.extend(','.join('\n %s: options.%s' % (key, key) for key in sorted(self.object_literal.prop_types.keys())))
|
||||||
|
lines.append('\n });\n')
|
||||||
|
lines.append('};\n')
|
||||||
|
lines.append('goog.inherits(%sExport, %s);\n' % (self.name, self.name))
|
||||||
|
lines.append('goog.exportSymbol(\n')
|
||||||
|
lines.append(' \'%s\',\n' % (self.name,))
|
||||||
|
lines.append(' %sExport);\n' % (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)
|
||||||
|
|
||||||
|
|
||||||
|
class ObjectLiteral(Exportable):
|
||||||
|
|
||||||
|
def __init__(self, name):
|
||||||
|
Exportable.__init__(self, name)
|
||||||
|
self.prop_types = {}
|
||||||
|
|
||||||
|
__repr__ = simplerepr
|
||||||
|
|
||||||
def extern(self):
|
def extern(self):
|
||||||
lines = []
|
lines = []
|
||||||
|
lines.append('\n\n\n')
|
||||||
lines.append('/**\n')
|
lines.append('/**\n')
|
||||||
lines.append(' * @interface\n')
|
lines.append(' * @interface\n')
|
||||||
lines.append(' */\n')
|
lines.append(' */\n')
|
||||||
lines.append('%s = function() {};\n' % (self.name,))
|
lines.append('%s = function() {};\n' % (self.extern_name(),))
|
||||||
for key in sorted(self.members.keys()):
|
for prop in sorted(self.prop_types.keys()):
|
||||||
lines.append('\n')
|
lines.append('\n\n')
|
||||||
lines.append('\n')
|
|
||||||
lines.append('/**\n')
|
lines.append('/**\n')
|
||||||
lines.append(' * @type {%s}\n' % (self.members[key],))
|
lines.append(' * @type {%s}\n' % (self.prop_types[prop],))
|
||||||
lines.append(' */\n')
|
lines.append(' */\n')
|
||||||
lines.append('%s.prototype.%s;\n' % (self.name, key))
|
lines.append('%s.prototype.%s;\n' % (self.extern_name(), prop))
|
||||||
return ''.join(lines)
|
return ''.join(lines)
|
||||||
|
|
||||||
|
def extern_name(self):
|
||||||
|
return re.sub(r'ol\.(\S+)', r'olx.\1Extern', self.name)
|
||||||
|
|
||||||
|
def extern_namespace(self):
|
||||||
|
return '.'.join(self.extern_name().split('.')[:-1]) or None
|
||||||
|
|
||||||
def provide(self):
|
def provide(self):
|
||||||
return 'goog.provide(\'%sType\');\n' % (self.name,)
|
return 'goog.provide(\'%sType\');\n' % (self.name,)
|
||||||
|
|
||||||
def typedef(self):
|
def typedef(self):
|
||||||
lines = []
|
lines = []
|
||||||
|
lines.append('\n\n')
|
||||||
lines.append('/**\n')
|
lines.append('/**\n')
|
||||||
for i, key in enumerate(sorted(self.members.keys())):
|
for i, prop in enumerate(sorted(self.prop_types.keys())):
|
||||||
prefix = ' * @typedef {{' if i == 0 else ' * '
|
prefix = ' * @typedef {{' if i == 0 else ' * '
|
||||||
suffix = '}}' if i == len(self.members) - 1 else ','
|
suffix = '}}' if i == len(self.prop_types) - 1 else ','
|
||||||
type = self.members[key]
|
type = self.prop_types[prop]
|
||||||
if '|' in type:
|
if '|' in type:
|
||||||
type = '(%s)' % (type,)
|
type = '(%s)' % (type,)
|
||||||
lines.append('%s%s: %s%s\n' % (prefix, key, type, suffix))
|
lines.append('%s%s: %s%s\n' % (prefix, prop, type, suffix))
|
||||||
lines.append(' */\n')
|
lines.append(' */\n')
|
||||||
lines.append('%s;\n' % (self.name,))
|
lines.append('%s;\n' % (self.name,))
|
||||||
return ''.join(lines)
|
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):
|
def main(argv):
|
||||||
|
|
||||||
option_parser = OptionParser()
|
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:])
|
options, args = option_parser.parse_args(argv[1:])
|
||||||
|
|
||||||
|
objects = {}
|
||||||
requires = set()
|
requires = set()
|
||||||
symbols = set()
|
|
||||||
properties = defaultdict(set)
|
|
||||||
for arg in args:
|
for arg in args:
|
||||||
for line in open(arg):
|
for line in open(arg):
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
if not line:
|
if not line:
|
||||||
continue
|
continue
|
||||||
m = re.match('@exportSymbol\s*(?P<symbol>\S+)\Z', line)
|
m = re.match(r'@exportClass\s+(?P<name>\S+)(?:\s+(?P<object_literal_name>\S+))?\Z', line)
|
||||||
if m:
|
if m:
|
||||||
requires.add(m.group('symbol'))
|
name = m.group('name')
|
||||||
symbols.add(m.group('symbol'))
|
if name in objects:
|
||||||
|
raise RuntimeError(line) # Name already defined
|
||||||
|
object_literal_name = m.group('object_literal_name')
|
||||||
|
object_literal = objects[object_literal_name]
|
||||||
|
if not isinstance(object_literal, ObjectLiteral):
|
||||||
|
raise RuntimeError(line) # Undefined object literal
|
||||||
|
klass = Class(name, object_literal)
|
||||||
|
objects[name] = klass
|
||||||
continue
|
continue
|
||||||
m = re.match('@exportProperty\s*(?P<property>\S+)\Z', line)
|
m = re.match(r'@exportObjectLiteral\s+(?P<name>\S+)\Z', line)
|
||||||
if m:
|
if m:
|
||||||
components = m.group('property').split('.')
|
name = m.group('name')
|
||||||
|
if name in objects:
|
||||||
|
raise RuntimeError(line) # Name already defined
|
||||||
|
object_literal = ObjectLiteral(name)
|
||||||
|
objects[name] = object_literal
|
||||||
|
continue
|
||||||
|
m = re.match(r'@exportObjectLiteralProperty\s+(?P<prop>\S+)\s+(?P<type>\S+)\Z', line)
|
||||||
|
if m:
|
||||||
|
components = m.group('prop').split('.')
|
||||||
|
name = '.'.join(components[:-1])
|
||||||
|
if not name in objects:
|
||||||
|
raise RuntimeError(line) # Undefined object literal
|
||||||
|
object_literal = objects[name]
|
||||||
|
prop = components[-1]
|
||||||
|
if prop in object_literal.prop_types:
|
||||||
|
raise RuntimeError(line) # Duplicate property
|
||||||
|
type = m.group('type')
|
||||||
|
object_literal.prop_types[prop] = type
|
||||||
|
continue
|
||||||
|
m = re.match(r'@exportProperty\s+(?P<prop>\S+)\Z', line)
|
||||||
|
if m:
|
||||||
|
components = m.group('prop').split('.')
|
||||||
if components[-2] == 'prototype':
|
if components[-2] == 'prototype':
|
||||||
requires.add('.'.join(components[:-2]))
|
requires.add('.'.join(components[:-2]))
|
||||||
else:
|
else:
|
||||||
requires.add('.'.join(components[:-1]))
|
requires.add('.'.join(components[:-1]))
|
||||||
properties['.'.join(components[:-1])].add(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
|
||||||
|
requires.add(name)
|
||||||
continue
|
continue
|
||||||
raise RuntimeError(line)
|
raise RuntimeError(line)
|
||||||
|
|
||||||
if requires:
|
objects = sorted(objects.values(), key=attrgetter('name'))
|
||||||
for require in sorted(requires):
|
|
||||||
sys.stdout.write('goog.require(\'%s\');\n' % (require,))
|
if options.exports:
|
||||||
sys.stdout.write('\n\n')
|
requires.update(obj.name for obj in objects if isinstance(obj, Class))
|
||||||
for i, obj in enumerate(sorted(symbols | set(properties.keys()))):
|
if requires:
|
||||||
if i:
|
for require in sorted(requires):
|
||||||
sys.stdout.write('\n')
|
sys.stdout.write('goog.require(\'%s\');\n' % (require,))
|
||||||
if obj in symbols:
|
for obj in objects:
|
||||||
sys.stdout.write('goog.exportSymbol(\n \'%s\',\n %s);\n' % (obj, obj))
|
sys.stdout.write(obj.export())
|
||||||
for prop in properties[obj]:
|
|
||||||
sys.stdout.write('goog.exportProperty(\n %s,\n \'%s\',\n %s.%s);\n' % (obj, prop, obj, prop))
|
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.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__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -1,102 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import fileinput
|
|
||||||
from operator import attrgetter
|
|
||||||
from optparse import OptionParser
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
class Type(object):
|
|
||||||
|
|
||||||
def __init__(self, name, members=None):
|
|
||||||
self.name = name
|
|
||||||
self.namespace = '.'.join(self.name.split('.')[:-1]) or None
|
|
||||||
self.members = members or {}
|
|
||||||
|
|
||||||
def extern(self):
|
|
||||||
lines = []
|
|
||||||
lines.append('/**\n')
|
|
||||||
lines.append(' * @interface\n')
|
|
||||||
lines.append(' */\n')
|
|
||||||
lines.append('%s = function() {};\n' % (self.name,))
|
|
||||||
for key in sorted(self.members.keys()):
|
|
||||||
lines.append('\n')
|
|
||||||
lines.append('\n')
|
|
||||||
lines.append('/**\n')
|
|
||||||
lines.append(' * @type {%s}\n' % (self.members[key],))
|
|
||||||
lines.append(' */\n')
|
|
||||||
lines.append('%s.prototype.%s;\n' % (self.name, key))
|
|
||||||
return ''.join(lines)
|
|
||||||
|
|
||||||
def provide(self):
|
|
||||||
return 'goog.provide(\'%s\');\n' % (self.name,)
|
|
||||||
|
|
||||||
def typedef(self):
|
|
||||||
lines = []
|
|
||||||
lines.append('/**\n')
|
|
||||||
for i, key in enumerate(sorted(self.members.keys())):
|
|
||||||
prefix = ' * @typedef {{' if i == 0 else ' * '
|
|
||||||
suffix = '}}' if i == len(self.members) - 1 else ','
|
|
||||||
type = self.members[key]
|
|
||||||
if '|' in type:
|
|
||||||
type = '(%s)' % (type,)
|
|
||||||
lines.append('%s%s: %s%s\n' % (prefix, key, type, suffix))
|
|
||||||
lines.append(' */\n')
|
|
||||||
lines.append('%s;\n' % (self.name,))
|
|
||||||
return ''.join(lines)
|
|
||||||
|
|
||||||
|
|
||||||
def main(argv):
|
|
||||||
|
|
||||||
option_parser = OptionParser()
|
|
||||||
option_parser.add_option('--externs', action='store_true')
|
|
||||||
option_parser.add_option('--typedef', action='store_true')
|
|
||||||
options, args = option_parser.parse_args(argv[1:])
|
|
||||||
|
|
||||||
types = []
|
|
||||||
for arg in args:
|
|
||||||
for line in open(arg):
|
|
||||||
line = line.strip()
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
m = re.match('@exportType\s*(?P<name>\S+)\Z', line)
|
|
||||||
if m:
|
|
||||||
type = Type(m.group('name'))
|
|
||||||
types.append(type)
|
|
||||||
continue
|
|
||||||
m = re.match('(?P<key>\S+):\s+(?P<value>\S+)', line)
|
|
||||||
if m:
|
|
||||||
type.members[m.group('key')] = m.group('value')
|
|
||||||
continue
|
|
||||||
raise RuntimeError(line)
|
|
||||||
types = sorted(types, key=attrgetter('name'))
|
|
||||||
|
|
||||||
if options.externs:
|
|
||||||
sys.stdout.write('/**\n')
|
|
||||||
sys.stdout.write(' * @externs\n')
|
|
||||||
sys.stdout.write(' */\n')
|
|
||||||
namespaces = sorted(set(filter(None, (type.namespace for type in types))))
|
|
||||||
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 type in types:
|
|
||||||
sys.stdout.write('\n\n\n')
|
|
||||||
sys.stdout.write(type.extern())
|
|
||||||
|
|
||||||
if options.typedef:
|
|
||||||
for type in types:
|
|
||||||
sys.stdout.write(type.provide())
|
|
||||||
for type in types:
|
|
||||||
sys.stdout.write('\n\n')
|
|
||||||
sys.stdout.write(type.typedef())
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.exit(main(sys.argv))
|
|
||||||
@@ -22,7 +22,8 @@
|
|||||||
"inherits": "../base.json",
|
"inherits": "../base.json",
|
||||||
|
|
||||||
"inputs": [
|
"inputs": [
|
||||||
"build/src/external/src/exports.js"
|
"build/src/external/src/exports.js",
|
||||||
|
"build/src/external/src/types.js"
|
||||||
],
|
],
|
||||||
|
|
||||||
"output-wrapper": "(function(){%output%})();",
|
"output-wrapper": "(function(){%output%})();",
|
||||||
|
|||||||
35
examples/standalone/full-screen-standalone.html
Normal file
35
examples/standalone/full-screen-standalone.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||||
|
<link rel="stylesheet" href="../style.css" type="text/css">
|
||||||
|
<style type="text/css">
|
||||||
|
html, body, #map {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="../../css/ol.css" type="text/css">
|
||||||
|
<title>ol3 full-screen demo</title>
|
||||||
|
<script src="../../build/ol.js" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="map"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var layer = new ol.layer.TileLayer({
|
||||||
|
source: new ol.source.MapQuestOpenAerial()
|
||||||
|
});
|
||||||
|
var map = new ol.Map({
|
||||||
|
center: new ol.Coordinate(0, 0),
|
||||||
|
layers: new ol.Collection([layer]),
|
||||||
|
target: 'map',
|
||||||
|
zoom: 2
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
116
examples/standalone/overlay-and-popup-standalone.html
Normal file
116
examples/standalone/overlay-and-popup-standalone.html
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||||
|
<link rel="stylesheet" href="../style.css" type="text/css">
|
||||||
|
<style type="text/css">
|
||||||
|
html, body, #map {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.overlay {
|
||||||
|
display: none;
|
||||||
|
font-size: 10pt;
|
||||||
|
}
|
||||||
|
.ol-overlaycontainer .overlay {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#vienna {
|
||||||
|
text-decoration: none;
|
||||||
|
color: white;
|
||||||
|
font-size: 11pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-shadow: black 0.1em 0.1em 0.2em;
|
||||||
|
}
|
||||||
|
#popup {
|
||||||
|
width: 200px;
|
||||||
|
margin-left: -107px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Popup CSS generated with http://cssarrowplease.com/ */
|
||||||
|
|
||||||
|
.arrow_box {
|
||||||
|
position: relative;
|
||||||
|
background: #88b7d5;
|
||||||
|
border: 2px solid #c2e1f5;
|
||||||
|
}
|
||||||
|
.arrow_box:after, .arrow_box:before {
|
||||||
|
top: 100%;
|
||||||
|
border: solid transparent;
|
||||||
|
content: " ";
|
||||||
|
height: 0;
|
||||||
|
width: 0;
|
||||||
|
position: absolute;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.arrow_box:after {
|
||||||
|
border-color: rgba(136, 183, 213, 0);
|
||||||
|
border-top-color: #88b7d5;
|
||||||
|
border-width: 10px;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -10px;
|
||||||
|
}
|
||||||
|
.arrow_box:before {
|
||||||
|
border-color: rgba(194, 225, 245, 0);
|
||||||
|
border-top-color: #c2e1f5;
|
||||||
|
border-width: 13px;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -13px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="../../css/ol.css" type="text/css">
|
||||||
|
<title>ol3 overlay-and-popup demo</title>
|
||||||
|
<script src="../../build/ol.js" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="map">
|
||||||
|
<!-- Clickable label for Vienna -->
|
||||||
|
<a class="overlay" id="vienna" target="_blank" href="http://en.wikipedia.org/wiki/Vienna">Vienna</a>
|
||||||
|
<!-- Popup -->
|
||||||
|
<div class="overlay arrow_box" id="popup"></div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var layer = new ol.layer.TileLayer({
|
||||||
|
source: new ol.source.MapQuestOpenAerial()
|
||||||
|
});
|
||||||
|
var map = new ol.Map({
|
||||||
|
center: new ol.Coordinate(0, 0),
|
||||||
|
layers: new ol.Collection([layer]),
|
||||||
|
target: 'map',
|
||||||
|
zoom: 2
|
||||||
|
});
|
||||||
|
|
||||||
|
// Vienna label
|
||||||
|
var vienna = new ol.overlay.Overlay({
|
||||||
|
map: map,
|
||||||
|
coordinate: ol.Projection.transformWithCodes(
|
||||||
|
new ol.Coordinate(16.3725, 48.208889), 'EPSG:4326', 'EPSG:3857'),
|
||||||
|
element: document.getElementById('vienna')
|
||||||
|
});
|
||||||
|
|
||||||
|
// Popup showing the position the user clicked
|
||||||
|
var popup = new ol.overlay.Overlay({
|
||||||
|
element: document.getElementById('popup')
|
||||||
|
});
|
||||||
|
map.addEventListener('click', function(evt) {
|
||||||
|
var coordinate = evt.getCoordinate();
|
||||||
|
popup.getElement().innerHTML =
|
||||||
|
'Welcome to ol3. The location you clicked was<br>' +
|
||||||
|
ol.CoordinateFormat.hdms(ol.Projection.transformWithCodes(
|
||||||
|
coordinate, 'EPSG:3857', 'EPSG:4326'));
|
||||||
|
popup.setMap(evt.map);
|
||||||
|
popup.setCoordinate(evt.getCoordinate());
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
157
examples/standalone/side-by-side-standalone.html
Normal file
157
examples/standalone/side-by-side-standalone.html
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link rel="stylesheet" href="../../css/ol.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="../style.css" type="text/css">
|
||||||
|
<style type="text/css">
|
||||||
|
.map {
|
||||||
|
width: 400px;
|
||||||
|
height: 400px;
|
||||||
|
border: thin solid #cccccc;
|
||||||
|
margin: 1em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<title>ol3 side-by-side demo</title>
|
||||||
|
<script src="../../build/ol.js" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>ol3 side-by-side demo</h1>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>DOM</th>
|
||||||
|
<th>WebGL</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="domMap" class="map"></div></td>
|
||||||
|
<td><div id="webglMap" class="map"></div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="domMousePosition" class="mouseposition"></div></td>
|
||||||
|
<td><div id="webglMousePosition" class="mouseposition"></div></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>Pan:</td>
|
||||||
|
<td>drag, arrow keys</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Zoom:</td>
|
||||||
|
<td>double-click, <code>Shift</code>+double-click, mouse wheel, <code>+</code>/<code>-</code> keys; <code>Shift</code>+drag</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Rotate:</td>
|
||||||
|
<td><code>Alt</code>+drag, <code>r</code> to reset</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Brightness/contrast:</td>
|
||||||
|
<td><code>b</code>/<code>B</code>/<code>c</code>/<code>C</code> keys (WebGL only)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Hue/saturation:</td>
|
||||||
|
<td><code>h</code>/<code>H</code>/<code>s</code>/<code>S</code> keys (WebGL only)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Opacity:</td>
|
||||||
|
<td><code>o</code>/<code>O</code> keys</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Visibility:</td>
|
||||||
|
<td><code>v</code>/<code>V</code> keys</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Reset</td>
|
||||||
|
<td><code>0</code> key</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<p><b>Notes:</b> The two maps share the same center, resolution, rotation and layers.</p>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var layer = new ol.layer.TileLayer({
|
||||||
|
source: new ol.source.MapQuestOpenAerial()
|
||||||
|
});
|
||||||
|
|
||||||
|
var domMap = new ol.Map({
|
||||||
|
center: new ol.Coordinate(0, 0),
|
||||||
|
layers: new ol.Collection([layer]),
|
||||||
|
renderer: ol.RendererHint.DOM,
|
||||||
|
target: 'domMap',
|
||||||
|
zoom: 1
|
||||||
|
});
|
||||||
|
|
||||||
|
domMap.getControls().push(new ol.control.MousePosition({
|
||||||
|
coordinateFormat: ol.CoordinateFormat.hdms,
|
||||||
|
projection: ol.Projection.getFromCode('EPSG:4326'),
|
||||||
|
target: document.getElementById('domMousePosition'),
|
||||||
|
undefinedHtml: ' '
|
||||||
|
}));
|
||||||
|
|
||||||
|
var webglMap = new ol.Map({
|
||||||
|
renderer: ol.RendererHint.WEBGL,
|
||||||
|
target: 'webglMap'
|
||||||
|
});
|
||||||
|
if (webglMap) {
|
||||||
|
webglMap.bindTo('center', domMap);
|
||||||
|
webglMap.bindTo('layers', domMap);
|
||||||
|
webglMap.bindTo('resolution', domMap);
|
||||||
|
webglMap.bindTo('rotation', domMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
webglMap.getControls().push(new ol.control.MousePosition({
|
||||||
|
coordinateFormat: ol.CoordinateFormat.hdms,
|
||||||
|
projection: ol.Projection.getFromCode('EPSG:4326'),
|
||||||
|
target: document.getElementById('webglMousePosition'),
|
||||||
|
undefinedHtml: ' '
|
||||||
|
}));
|
||||||
|
|
||||||
|
var keyboardInteraction = new ol.interaction.Keyboard();
|
||||||
|
keyboardInteraction.addCallback('0', function() {
|
||||||
|
layer.setBrightness(0);
|
||||||
|
layer.setContrast(0);
|
||||||
|
layer.setHue(0);
|
||||||
|
layer.setSaturation(0);
|
||||||
|
layer.setOpacity(1);
|
||||||
|
layer.setVisible(true);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('b', function() {
|
||||||
|
layer.setBrightness(layer.getBrightness() - 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('B', function() {
|
||||||
|
layer.setBrightness(layer.getBrightness() + 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('c', function() {
|
||||||
|
layer.setContrast(layer.getContrast() - 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('C', function() {
|
||||||
|
layer.setContrast(layer.getContrast() + 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('h', function() {
|
||||||
|
layer.setHue(layer.getHue() - 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('H', function() {
|
||||||
|
layer.setHue(layer.getHue() + 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('o', function() {
|
||||||
|
layer.setOpacity(layer.getOpacity() - 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('O', function() {
|
||||||
|
layer.setOpacity(layer.getOpacity() + 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('r', function() {
|
||||||
|
webglMap.setRotation(0);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('s', function() {
|
||||||
|
layer.setSaturation(layer.getSaturation() - 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('S', function() {
|
||||||
|
layer.setSaturation(layer.getSaturation() + 0.1);
|
||||||
|
});
|
||||||
|
keyboardInteraction.addCallback('vV', function() {
|
||||||
|
layer.setVisible(!layer.getVisible());
|
||||||
|
});
|
||||||
|
domMap.getInteractions().push(keyboardInteraction);
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
// FIXME check clean-up code
|
// FIXME check clean-up code
|
||||||
|
|
||||||
goog.provide('ol.control.Attribution');
|
goog.provide('ol.control.Attribution');
|
||||||
goog.provide('ol.control.AttributionOptions');
|
|
||||||
|
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.TagName');
|
goog.require('goog.dom.TagName');
|
||||||
@@ -19,13 +18,6 @@ goog.require('ol.control.Control');
|
|||||||
goog.require('ol.layer.Layer');
|
goog.require('ol.layer.Layer');
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {{map: (ol.Map|undefined),
|
|
||||||
* target: (Element|undefined)}}
|
|
||||||
*/
|
|
||||||
ol.control.AttributionOptions;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
// FIXME should listen on appropriate pane, once it is defined
|
// FIXME should listen on appropriate pane, once it is defined
|
||||||
|
|
||||||
goog.provide('ol.control.MousePosition');
|
goog.provide('ol.control.MousePosition');
|
||||||
goog.provide('ol.control.MousePositionOptions');
|
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('goog.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('goog.events.EventType');
|
||||||
@@ -13,16 +12,6 @@ goog.require('ol.TransformFunction');
|
|||||||
goog.require('ol.control.Control');
|
goog.require('ol.control.Control');
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {{coordinateFormat: (ol.CoordinateFormatType|undefined),
|
|
||||||
* map: (ol.Map|undefined),
|
|
||||||
* projection: (ol.Projection|undefined),
|
|
||||||
* target: (Element|undefined),
|
|
||||||
* undefinedHtml: (string|undefined)}}
|
|
||||||
*/
|
|
||||||
ol.control.MousePositionOptions;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
goog.provide('ol.control.Zoom');
|
goog.provide('ol.control.Zoom');
|
||||||
goog.provide('ol.control.ZoomOptions');
|
|
||||||
|
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.TagName');
|
goog.require('goog.dom.TagName');
|
||||||
@@ -10,14 +9,6 @@ goog.require('ol.Projection');
|
|||||||
goog.require('ol.control.Control');
|
goog.require('ol.control.Control');
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {{delta: (number|undefined),
|
|
||||||
* map: (ol.Map|undefined),
|
|
||||||
* target: (Element|undefined)}}
|
|
||||||
*/
|
|
||||||
ol.control.ZoomOptions;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
@exportProperty ol.MapBrowserEvent.prototype.getCoordinate
|
||||||
|
|
||||||
@exportSymbol ol.Collection
|
@exportSymbol ol.Collection
|
||||||
@exportProperty ol.Collection.prototype.clear
|
@exportProperty ol.Collection.prototype.clear
|
||||||
@exportProperty ol.Collection.prototype.forEach
|
@exportProperty ol.Collection.prototype.forEach
|
||||||
@@ -12,9 +14,40 @@
|
|||||||
|
|
||||||
@exportSymbol ol.Coordinate
|
@exportSymbol ol.Coordinate
|
||||||
|
|
||||||
|
@exportSymbol ol.CoordinateFormat
|
||||||
|
@exportProperty ol.CoordinateFormat.hdms
|
||||||
|
|
||||||
@exportSymbol ol.Extent
|
@exportSymbol ol.Extent
|
||||||
|
|
||||||
@exportSymbol ol.Map
|
@exportObjectLiteral ol.MapOptions
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.center ol.Coordinate|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.controls ol.Collection|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.doubleClickZoom boolean|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.dragPan boolean|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.interactions ol.Collection|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.keyboard boolean|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.keyboardPanOffset number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.layers ol.Collection|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.maxResolution number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.mouseWheelZoom boolean|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.mouseWheelZoomDelta number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.numZoomLevels number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.projection ol.Projection|string|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.renderer ol.RendererHint|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.renderers Array.<ol.RendererHint>|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.resolution number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.resolutions Array.<number>|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.rotate boolean|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.shiftDragZoom boolean|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.target Element|string
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.userProjection ol.Projection|string|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.zoom number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.zoomDelta number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.MapOptions.zoomFactor number|undefined
|
||||||
|
|
||||||
|
@exportClass ol.Map ol.MapOptions
|
||||||
|
@exportProperty ol.Map.prototype.getControls
|
||||||
|
@exportProperty ol.Map.prototype.getInteractions
|
||||||
|
|
||||||
@exportSymbol ol.Object
|
@exportSymbol ol.Object
|
||||||
@exportProperty ol.Object.prototype.bindTo
|
@exportProperty ol.Object.prototype.bindTo
|
||||||
@@ -32,13 +65,61 @@
|
|||||||
@exportProperty ol.Projection.getTransform
|
@exportProperty ol.Projection.getTransform
|
||||||
@exportProperty ol.Projection.getTransformFromCodes
|
@exportProperty ol.Projection.getTransformFromCodes
|
||||||
@exportProperty ol.Projection.transform
|
@exportProperty ol.Projection.transform
|
||||||
|
@exportProperty ol.Projection.transformWithCodes
|
||||||
@exportProperty ol.Projection.prototype.getCode
|
@exportProperty ol.Projection.prototype.getCode
|
||||||
@exportProperty ol.Projection.prototype.getExtent
|
@exportProperty ol.Projection.prototype.getExtent
|
||||||
@exportProperty ol.Projection.prototype.getUnits
|
@exportProperty ol.Projection.prototype.getUnits
|
||||||
|
|
||||||
@exportSymbol ol.layer.TileLayer
|
@exportSymbol ol.RendererHint
|
||||||
|
@exportProperty ol.RendererHint.DOM
|
||||||
|
@exportProperty ol.RendererHint.WEBGL
|
||||||
|
|
||||||
@exportSymbol ol.overlay.Overlay
|
@exportObjectLiteral ol.control.AttributionOptions
|
||||||
|
@exportObjectLiteralProperty ol.control.AttributionOptions.map ol.Map|undefined
|
||||||
|
@exportObjectLiteralProperty ol.control.AttributionOptions.target Element|undefined
|
||||||
|
|
||||||
|
@exportClass ol.control.Attribution ol.control.AttributionOptions
|
||||||
|
|
||||||
|
@exportObjectLiteral ol.control.MousePositionOptions
|
||||||
|
@exportObjectLiteralProperty ol.control.MousePositionOptions.coordinateFormat ol.CoordinateFormatType|undefined
|
||||||
|
@exportObjectLiteralProperty ol.control.MousePositionOptions.map ol.Map|undefined
|
||||||
|
@exportObjectLiteralProperty ol.control.MousePositionOptions.projection ol.Projection|undefined
|
||||||
|
@exportObjectLiteralProperty ol.control.MousePositionOptions.target Element|undefined
|
||||||
|
@exportObjectLiteralProperty ol.control.MousePositionOptions.undefinedHtml string|undefined
|
||||||
|
|
||||||
|
@exportClass ol.control.MousePosition ol.control.MousePositionOptions
|
||||||
|
|
||||||
|
@exportObjectLiteral ol.control.ZoomOptions
|
||||||
|
@exportObjectLiteralProperty ol.control.ZoomOptions.delta number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.control.ZoomOptions.map ol.Map|undefined
|
||||||
|
@exportObjectLiteralProperty ol.control.ZoomOptions.target Element|undefined
|
||||||
|
|
||||||
|
@exportClass ol.control.Zoom ol.control.ZoomOptions
|
||||||
|
|
||||||
|
@exportObjectLiteral ol.layer.LayerOptions
|
||||||
|
@exportObjectLiteralProperty ol.layer.LayerOptions.brightness number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.layer.LayerOptions.contrast number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.layer.LayerOptions.hue number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.layer.LayerOptions.opacity number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.layer.LayerOptions.saturation number|undefined
|
||||||
|
@exportObjectLiteralProperty ol.layer.LayerOptions.source ol.source.Source
|
||||||
|
@exportObjectLiteralProperty ol.layer.LayerOptions.visible boolean|undefined
|
||||||
|
|
||||||
|
@exportSymbol ol.interaction.Keyboard
|
||||||
|
@exportProperty ol.interaction.Keyboard.prototype.addCallback
|
||||||
|
|
||||||
|
@exportClass ol.layer.TileLayer ol.layer.LayerOptions
|
||||||
|
|
||||||
|
@exportObjectLiteral ol.overlay.OverlayOptions
|
||||||
|
@exportObjectLiteralProperty ol.overlay.OverlayOptions.coordinate ol.Coordinate|undefined
|
||||||
|
@exportObjectLiteralProperty ol.overlay.OverlayOptions.element Element|undefined
|
||||||
|
@exportObjectLiteralProperty ol.overlay.OverlayOptions.map ol.Map|undefined
|
||||||
|
@exportObjectLiteralProperty ol.overlay.OverlayOptions.positioning Array.<string>|undefined
|
||||||
|
|
||||||
|
@exportClass ol.overlay.Overlay ol.overlay.OverlayOptions
|
||||||
|
@exportProperty ol.overlay.Overlay.prototype.getElement
|
||||||
|
@exportProperty ol.overlay.Overlay.prototype.setCoordinate
|
||||||
|
@exportProperty ol.overlay.Overlay.prototype.setMap
|
||||||
|
|
||||||
@exportSymbol ol.source.BingMaps
|
@exportSymbol ol.source.BingMaps
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ ol.layer.LayerProperty = {
|
|||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.Object}
|
* @extends {ol.Object}
|
||||||
* @param {olx.layer.LayerOptions} layerOptions LayerOptions.
|
* @param {ol.layer.LayerOptions} layerOptions LayerOptions.
|
||||||
*/
|
*/
|
||||||
ol.layer.Layer = function(layerOptions) {
|
ol.layer.Layer = function(layerOptions) {
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ goog.require('ol.source.TileSource');
|
|||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.layer.Layer}
|
* @extends {ol.layer.Layer}
|
||||||
* @param {olx.layer.LayerOptions} layerOptions Layer options.
|
* @param {ol.layer.LayerOptions} layerOptions Layer options.
|
||||||
*/
|
*/
|
||||||
ol.layer.TileLayer = function(layerOptions) {
|
ol.layer.TileLayer = function(layerOptions) {
|
||||||
goog.base(this, layerOptions);
|
goog.base(this, layerOptions);
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ ol.MapProperty = {
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.Object}
|
* @extends {ol.Object}
|
||||||
* @implements {goog.fx.anim.Animated}
|
* @implements {goog.fx.anim.Animated}
|
||||||
* @param {olx.MapOptions} mapOptions Map options.
|
* @param {ol.MapOptions} mapOptions Map options.
|
||||||
*/
|
*/
|
||||||
ol.Map = function(mapOptions) {
|
ol.Map = function(mapOptions) {
|
||||||
|
|
||||||
@@ -956,7 +956,7 @@ ol.MapOptionsInternal;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {olx.MapOptions} mapOptions Map options.
|
* @param {ol.MapOptions} mapOptions Map options.
|
||||||
* @return {ol.MapOptionsInternal} Map options.
|
* @return {ol.MapOptionsInternal} Map options.
|
||||||
*/
|
*/
|
||||||
ol.Map.createOptionsInternal = function(mapOptions) {
|
ol.Map.createOptionsInternal = function(mapOptions) {
|
||||||
@@ -1063,7 +1063,7 @@ ol.Map.createOptionsInternal = function(mapOptions) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {olx.MapOptions} mapOptions Map options.
|
* @param {ol.MapOptions} mapOptions Map options.
|
||||||
* @return {ol.Constraints} Map constraints.
|
* @return {ol.Constraints} Map constraints.
|
||||||
*/
|
*/
|
||||||
ol.Map.createConstraints_ = function(mapOptions) {
|
ol.Map.createConstraints_ = function(mapOptions) {
|
||||||
@@ -1097,7 +1097,7 @@ ol.Map.createConstraints_ = function(mapOptions) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {olx.MapOptions} mapOptions Map options.
|
* @param {ol.MapOptions} mapOptions Map options.
|
||||||
* @return {ol.Collection} Controls.
|
* @return {ol.Collection} Controls.
|
||||||
*/
|
*/
|
||||||
ol.Map.createControls_ = function(mapOptions) {
|
ol.Map.createControls_ = function(mapOptions) {
|
||||||
@@ -1119,7 +1119,7 @@ ol.Map.createControls_ = function(mapOptions) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {olx.MapOptions} mapOptions Map options.
|
* @param {ol.MapOptions} mapOptions Map options.
|
||||||
* @return {ol.Collection} Interactions.
|
* @return {ol.Collection} Interactions.
|
||||||
*/
|
*/
|
||||||
ol.Map.createInteractions_ = function(mapOptions) {
|
ol.Map.createInteractions_ = function(mapOptions) {
|
||||||
|
|||||||
@@ -1,20 +1,10 @@
|
|||||||
goog.provide('ol.overlay.Overlay');
|
goog.provide('ol.overlay.Overlay');
|
||||||
goog.provide('ol.overlay.OverlayOptions');
|
|
||||||
goog.provide('ol.overlay.OverlayPositioning');
|
goog.provide('ol.overlay.OverlayPositioning');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('goog.events');
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {{coordinate: (ol.Coordinate|undefined),
|
|
||||||
* element: (Element|undefined),
|
|
||||||
* map: (ol.Map|undefined),
|
|
||||||
* positioning: (Array.<string>|undefined)}}
|
|
||||||
*/
|
|
||||||
ol.overlay.OverlayOptions;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
@exportType olx.MapOptions
|
|
||||||
center: ol.Coordinate|undefined
|
|
||||||
controls: ol.Collection|undefined
|
|
||||||
doubleClickZoom: boolean|undefined
|
|
||||||
dragPan: boolean|undefined
|
|
||||||
interactions: ol.Collection|undefined
|
|
||||||
keyboard: boolean|undefined
|
|
||||||
keyboardPanOffset: number|undefined
|
|
||||||
layers: ol.Collection|undefined
|
|
||||||
maxResolution: number|undefined
|
|
||||||
mouseWheelZoom: boolean|undefined
|
|
||||||
mouseWheelZoomDelta: number|undefined
|
|
||||||
numZoomLevels: number|undefined
|
|
||||||
projection: ol.Projection|string|undefined
|
|
||||||
renderer: ol.RendererHint|undefined
|
|
||||||
renderers: Array.<ol.RendererHint>|undefined
|
|
||||||
resolution: number|undefined
|
|
||||||
resolutions: Array.<number>|undefined
|
|
||||||
rotate: boolean|undefined
|
|
||||||
shiftDragZoom: boolean|undefined
|
|
||||||
target: Element|string
|
|
||||||
userProjection: ol.Projection|string|undefined
|
|
||||||
zoom: number|undefined
|
|
||||||
zoomDelta: number|undefined
|
|
||||||
zoomFactor: number|undefined
|
|
||||||
|
|
||||||
@exportType olx.layer.LayerOptions
|
|
||||||
brightness: number|undefined
|
|
||||||
contrast: number|undefined
|
|
||||||
hue: number|undefined
|
|
||||||
opacity: number|undefined
|
|
||||||
saturation: number|undefined
|
|
||||||
source: ol.source.Source
|
|
||||||
visible: boolean|undefined
|
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
// Create the script tag which includes the derived variables from above
|
// Create the script tag which includes the derived variables from above
|
||||||
var script = '<sc' + 'ript type="text/javascript" '
|
var script = '<sc' + 'ript type="text/javascript" '
|
||||||
+ 'src="http://' + plovrHost + '/compile?id=ol&mode=RAW">'
|
+ 'src="http://' + plovrHost + '/compile?id=ol-all&mode=RAW">'
|
||||||
+ '</scr' + 'ipt>';
|
+ '</scr' + 'ipt>';
|
||||||
|
|
||||||
// this function will fix the links of the result to also include
|
// this function will fix the links of the result to also include
|
||||||
|
|||||||
Reference in New Issue
Block a user