Skip to content

Commit

Permalink
Merge branch 'master' of github.com:openlayers/ol3 into vector
Browse files Browse the repository at this point in the history
  • Loading branch information
ahocevar committed Feb 13, 2013
2 parents e155f87 + 83a00c1 commit 6b43435
Show file tree
Hide file tree
Showing 30 changed files with 438 additions and 200 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -9,6 +9,8 @@
/build/ol.js
/build/ol-all.js
/build/src
/build/phantomjs-*-windows
/build/phantomjs-*-windows.zip
/examples/*.json
/examples/*.combined.js
/examples/example-list.js
Expand Down
2 changes: 2 additions & 0 deletions build.cmd
@@ -0,0 +1,2 @@
@echo off
%SystemDrive%\Python27\python.exe build.py %*
68 changes: 54 additions & 14 deletions build.py
@@ -1,10 +1,10 @@
#!/usr/bin/env python

from cStringIO import StringIO
import glob
import gzip
import json
import os
import os.path
import re
import shutil
import sys
Expand All @@ -13,19 +13,23 @@


if sys.platform == 'win32':
variables.GIT = 'C:/Program Files/Git/bin/git.exe'
variables.GJSLINT = 'gjslint' # FIXME
variables.JAVA = 'C:/Program Files/Java/jre7/bin/java.exe'
ProgramFiles = os.environ.get('ProgramFiles', 'C:\\Program Files')
ProgramFiles_X86 = os.environ.get('ProgramFiles(X86)', 'C:\\Program Files')
Python27 = os.environ.get('SystemDrive', 'C:') + '\\Python27'
variables.GIT = os.path.join(ProgramFiles_X86, 'Git', 'bin', 'git.exe')
variables.GJSLINT = os.path.join(Python27, 'Scripts', 'gjslint.exe')
variables.JAVA = os.path.join(ProgramFiles, 'Java', 'jre7', 'bin', 'java.exe')
variables.JSDOC = 'jsdoc' # FIXME
variables.PHANTOMJS = 'phantomjs' # FIXME
variables.PYTHON = 'C:/Python27/python.exe'
variables.PYTHON = os.path.join(Python27, 'python.exe')
PHANTOMJS_WINDOWS_ZIP = 'build/phantomjs-1.8.1-windows.zip'
PHANTOMJS = 'build/phantomjs-1.8.1-windows/phantomjs.exe'
else:
variables.GIT = 'git'
variables.GJSLINT = 'gjslint'
variables.JAVA = 'java'
variables.JSDOC = 'jsdoc'
variables.PHANTOMJS = 'phantomjs'
variables.PYTHON = 'python'
PHANTOMJS = 'phantomjs'

variables.BRANCH = output('%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip()

Expand All @@ -40,9 +44,14 @@
'build/src/external/src/types.js']

EXAMPLES = [path
for path in glob.glob('examples/*.html')
for path in ifind('examples')
if not path.startswith('examples/standalone/')
if path.endswith('.html')
if path != 'examples/example-list.html']

EXAMPLES_JSON = [example.replace('.html', '.json')
for example in EXAMPLES]

EXAMPLES_SRC = [path
for path in ifind('examples')
if path.endswith('.js')
Expand Down Expand Up @@ -76,7 +85,7 @@ def report_sizes(t):
t.info(' compressed: %d bytes', len(stringio.getvalue()))


virtual('all', 'build-all', 'build', 'examples')
virtual('all', 'build-all', 'build', 'examples', 'precommit')


virtual('precommit', 'lint', 'build-all', 'test', 'build', 'build-examples', 'doc')
Expand Down Expand Up @@ -152,7 +161,12 @@ def build_src_internal_types_js(t):
virtual('build-examples', 'examples', (path.replace('.html', '.combined.js') for path in EXAMPLES))


virtual('examples', 'examples/example-list.js', (path.replace('.html', '.json') for path in EXAMPLES))
virtual('examples', 'examples/example-list.xml', (path.replace('.html', '.json') for path in EXAMPLES))


@target('examples/example-list.xml', 'examples/example-list.js')
def examples_examples_list_xml(t):
t.touch() # already generated by bin/exampleparser.py


@target('examples/example-list.js', 'bin/exampleparser.py', EXAMPLES)
Expand Down Expand Up @@ -188,12 +202,12 @@ def action(t):

@target('serve', PLOVR_JAR, INTERNAL_SRC, 'test/requireall.js', 'examples')
def serve(t):
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve', glob.glob('build/*.json'), glob.glob('examples/*.json'), glob.glob('test/*.json'))
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve', 'build/ol.json', 'build/ol-all.json', EXAMPLES_JSON, 'test/test.json')


@target('serve-precommit', PLOVR_JAR, INTERNAL_SRC)
def serve_precommit(t):
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve', 'build/ol-all.json')
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve', 'build/ol-all.json', 'test/test.json')


virtual('lint', 'build/lint-src-timestamp', 'build/lint-spec-timestamp', 'build/check-requires-timestamp')
Expand Down Expand Up @@ -321,9 +335,23 @@ def hostexamples(t):
t.cp('examples/example-list.js', 'examples/example-list.xml', 'examples/Jugl.js', 'build/gh-pages/%(BRANCH)s/examples/')


@target('test', INTERNAL_SRC, 'test/requireall.js', phony=True)
@target('test', PHANTOMJS, INTERNAL_SRC, 'test/requireall.js', phony=True)
def test(t):
t.run('%(PHANTOMJS)s', 'test/phantom-jasmine/run_jasmine_test.coffee', 'test/ol.html')
t.run(PHANTOMJS, 'test/phantom-jasmine/run_jasmine_test.coffee', 'test/ol.html')


if sys.platform == 'win32':
@target(PHANTOMJS, PHANTOMJS_WINDOWS_ZIP, clean=False)
def phantom_js(t):
from zipfile import ZipFile
ZipFile(PHANTOMJS_WINDOWS_ZIP).extractall('build')

@target(PHANTOMJS_WINDOWS_ZIP, clean=False)
def phantomjs_windows_zip(t):
t.download('http://phantomjs.googlecode.com/files/' + os.path.basename(t.name))

else:
virtual(PHANTOMJS)


@target('fixme', phony=True)
Expand All @@ -348,5 +376,17 @@ def find_fixme(t):
print
print "A total number of", totalcount, "TODO/FIXME was found"


@target('reallyclean')
def reallyclean(t):
"""Removes untracked files and folders from previous builds."""
# -X => only clean up files that are usually ignored e.g.
# through .gitignore
# -d => also consider directories for deletion
# -f => if git configuration variable clean.requireForce != false,
# git clean will refuse to run unless given -f or -n.
t.run('%(GIT)s', 'clean', '-X', '-d', '-f', '.')


if __name__ == '__main__':
main()
7 changes: 7 additions & 0 deletions examples/full-screen.html
Expand Up @@ -21,6 +21,12 @@
padding: 0 0.5em 0.5em 0.5em;
border-radius: 4px;
}
#geolocation {
background-color: white;
border: 1px solid #222;
border-radius: 10px 10px 10px 0;
padding: 3px;
}
@media only screen and (max-width: 600px) {
#text {
display: none;
Expand All @@ -31,6 +37,7 @@
</head>
<body>
<div id="map">
<div id="geolocation" style="display: none">you are here</div>
<div id="text">
<h1 id="title">Full-screen example</h1>
<div id="shortdesc">Example of a full-screen map.</div>
Expand Down
14 changes: 14 additions & 0 deletions examples/full-screen.js
@@ -1,8 +1,11 @@
goog.require('goog.debug.Console');
goog.require('goog.debug.Logger');
goog.require('goog.debug.Logger.Level');
goog.require('goog.style');
goog.require('ol.AnchoredElement');
goog.require('ol.Collection');
goog.require('ol.Coordinate');
goog.require('ol.Geolocation');
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
Expand All @@ -28,3 +31,14 @@ var map = new ol.Map({
zoom: 0
})
});

var geolocation = new ol.Geolocation();
geolocation.bindTo('projection', map.getView());

var element = document.getElementById('geolocation');
var marker = new ol.AnchoredElement({
map: map,
element: element
});
marker.bindTo('position', geolocation);
goog.style.showElement(element, true);
73 changes: 38 additions & 35 deletions examples/side-by-side.js
Expand Up @@ -42,12 +42,13 @@ var domMap = new ol.Map({
view: view
});

domMap.getControls().push(new ol.control.MousePosition({
var domMousePosition = new ol.control.MousePosition({
coordinateFormat: ol.Coordinate.toStringHDMS,
projection: ol.Projection.getFromCode('EPSG:4326'),
target: document.getElementById('domMousePosition'),
undefinedHTML: '&nbsp;'
}));
});
domMousePosition.setMap(domMap);

var webglMap = new ol.Map({
renderer: ol.RendererHint.WEBGL,
Expand All @@ -58,12 +59,13 @@ if (webglMap !== null) {
webglMap.bindTo('view', domMap);
}

webglMap.getControls().push(new ol.control.MousePosition({
var webglMousePosition = new ol.control.MousePosition({
coordinateFormat: ol.Coordinate.toStringHDMS,
projection: ol.Projection.getFromCode('EPSG:4326'),
target: document.getElementById('webglMousePosition'),
undefinedHTML: '&nbsp;'
}));
});
webglMousePosition.setMap(webglMap);

var canvasMap = new ol.Map({
renderer: ol.RendererHint.CANVAS,
Expand All @@ -74,12 +76,13 @@ if (canvasMap !== null) {
canvasMap.bindTo('view', domMap);
}

canvasMap.getControls().push(new ol.control.MousePosition({
var canvasMousePosition = new ol.control.MousePosition({
coordinateFormat: ol.Coordinate.toStringHDMS,
projection: ol.Projection.getFromCode('EPSG:4326'),
target: document.getElementById('canvasMousePosition'),
undefinedHtml: '&nbsp;'
}));
});
canvasMousePosition.setMap(canvasMap);

var keyboardInteraction = new ol.interaction.Keyboard();
keyboardInteraction.addCallback('0', function() {
Expand Down Expand Up @@ -110,77 +113,77 @@ keyboardInteraction.addCallback('H', function() {
layer.setHue(layer.getHue() + (Math.PI / 5));
});
keyboardInteraction.addCallback('j', function() {
var bounce = ol.animation.createBounce({
var bounce = ol.animation.bounce({
resolution: 2 * view.getResolution()
});
domMap.addPreRenderFunction(bounce);
webglMap.addPreRenderFunction(bounce);
canvasMap.addPreRenderFunction(bounce);
});
keyboardInteraction.addCallback('l', function() {
var panFrom = ol.animation.createPanFrom({
var pan = ol.animation.pan({
source: view.getCenter(),
easing: ol.easing.elastic
});
domMap.addPreRenderFunction(panFrom);
webglMap.addPreRenderFunction(panFrom);
canvasMap.addPreRenderFunction(panFrom);
domMap.addPreRenderFunction(pan);
webglMap.addPreRenderFunction(pan);
canvasMap.addPreRenderFunction(pan);
view.setCenter(LONDON);
});
keyboardInteraction.addCallback('L', function() {
var start = goog.now();
var duration = 5000;
var bounce = ol.animation.createBounce({
var bounce = ol.animation.bounce({
resolution: 2 * view.getResolution(),
start: start,
duration: duration
});
var panFrom = ol.animation.createPanFrom({
var pan = ol.animation.pan({
source: view.getCenter(),
start: start,
duration: duration
});
var spin = ol.animation.createSpin({
turns: 2,
var rotate = ol.animation.rotate({
rotation: 4 * Math.PI,
start: start,
duration: duration
});
var preRenderFunctions = [bounce, panFrom, spin];
var preRenderFunctions = [bounce, pan, rotate];
domMap.addPreRenderFunctions(preRenderFunctions);
webglMap.addPreRenderFunctions(preRenderFunctions);
canvasMap.addPreRenderFunctions(preRenderFunctions);
view.setCenter(LONDON);
});
keyboardInteraction.addCallback('m', function() {
var panFrom = ol.animation.createPanFrom({
var pan = ol.animation.pan({
source: view.getCenter(),
duration: 1000,
easing: ol.easing.bounce
});
domMap.addPreRenderFunction(panFrom);
webglMap.addPreRenderFunction(panFrom);
canvasMap.addPreRenderFunction(panFrom);
domMap.addPreRenderFunction(pan);
webglMap.addPreRenderFunction(pan);
canvasMap.addPreRenderFunction(pan);
view.setCenter(MOSCOW);
});
keyboardInteraction.addCallback('M', function() {
var start = goog.now();
var duration = 5000;
var bounce = ol.animation.createBounce({
var bounce = ol.animation.bounce({
resolution: 2 * view.getResolution(),
start: start,
duration: duration
});
var panFrom = ol.animation.createPanFrom({
var pan = ol.animation.pan({
source: view.getCenter(),
start: start,
duration: duration
});
var spin = ol.animation.createSpin({
turns: -2,
var rotate = ol.animation.rotate({
rotation: -4 * Math.PI,
start: start,
duration: duration
});
var preRenderFunctions = [bounce, panFrom, spin];
var preRenderFunctions = [bounce, pan, rotate];
domMap.addPreRenderFunctions(preRenderFunctions);
webglMap.addPreRenderFunctions(preRenderFunctions);
canvasMap.addPreRenderFunctions(preRenderFunctions);
Expand All @@ -206,21 +209,21 @@ keyboardInteraction.addCallback('vV', function() {
layer.setVisible(!layer.getVisible());
});
keyboardInteraction.addCallback('x', function() {
var spin = ol.animation.createSpin({
turns: 2,
var rotate = ol.animation.rotate({
rotation: 4 * Math.PI,
duration: 2000
});
domMap.addPreRenderFunction(spin);
webglMap.addPreRenderFunction(spin);
canvasMap.addPreRenderFunction(spin);
domMap.addPreRenderFunction(rotate);
webglMap.addPreRenderFunction(rotate);
canvasMap.addPreRenderFunction(rotate);
});
keyboardInteraction.addCallback('X', function() {
var spin = ol.animation.createSpin({
turns: -2,
var rotate = ol.animation.rotate({
rotation: -4 * Math.PI,
duration: 2000
});
domMap.addPreRenderFunction(spin);
webglMap.addPreRenderFunction(spin);
canvasMap.addPreRenderFunction(spin);
domMap.addPreRenderFunction(rotate);
webglMap.addPreRenderFunction(rotate);
canvasMap.addPreRenderFunction(rotate);
});
domMap.getInteractions().push(keyboardInteraction);
5 changes: 4 additions & 1 deletion pake.py
Expand Up @@ -288,7 +288,10 @@ def ifind(*paths):
for path in paths:
for dirpath, dirnames, names in os.walk(path):
for name in names:
yield os.path.join(dirpath, name)
if sys.platform == 'win32':
yield '/'.join(dirpath.split('\\') + [name])
else:
yield os.path.join(dirpath, name)


def main(argv=sys.argv):
Expand Down

0 comments on commit 6b43435

Please sign in to comment.