Merge branch '2.12'

This commit is contained in:
Éric Lemoine
2012-03-19 10:32:28 +01:00
11 changed files with 76 additions and 478 deletions

View File

@@ -13,7 +13,7 @@ OpenLayers/Layer/WMS.js
OpenLayers/Layer/Google/v3.js
OpenLayers/Popup/FramedCloud.js
OpenLayers/Control/Navigation.js
OpenLayers/Control/ZoomPanel.js
OpenLayers/Control/Zoom.js
OpenLayers/Control/Attribution.js
OpenLayers/Control/SelectFeature.js
OpenLayers/Control/Panel.js

View File

@@ -11,7 +11,7 @@ OpenLayers/Layer/Bing.js
OpenLayers/Layer/WMS.js
OpenLayers/Control/TouchNavigation.js
OpenLayers/Control/Geolocate.js
OpenLayers/Control/ZoomPanel.js
OpenLayers/Control/Zoom.js
OpenLayers/Control/Attribution.js
OpenLayers/Control/SelectFeature.js
OpenLayers/Control/DrawFeature.js

View File

@@ -35,36 +35,6 @@
padding : 2px 4px;
border-radius : 5px 0 0 0;
}
div.olControlZoomPanel .olControlZoomInItemInactive,
div.olControlZoomPanel .olControlZoomOutItemInactive {
background: rgba(0,0,0,0.2);
position: absolute;
}
div.olControlZoomPanel .olControlZoomInItemInactive {
border-radius: 5px 5px 0 0;
}
div.olControlZoomPanel .olControlZoomOutItemInactive {
border-radius: 0 0 5px 5px ;
top: 37px;
}
div.olControlZoomPanel .olControlZoomOutItemInactive:after ,
div.olControlZoomPanel .olControlZoomInItemInactive:after{
font-weight: bold;
content : '+';
font-size : 36px;
padding: 7px;
z-index: 2000;
color : #fff;
line-height: 1em;
}
div.olControlZoomPanel .olControlZoomOutItemInactive:after{
content: '';
line-height: 0.9em;
padding: 0 8px;
}
div.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
display: none;
}
#title, #tags, #shortdesc {
display: none;
}

View File

@@ -26,7 +26,7 @@ var init = function () {
enableKinetic: true
}
}),
new OpenLayers.Control.ZoomPanel()
new OpenLayers.Control.Zoom()
],
layers: [
new OpenLayers.Layer.OSM("OpenStreetMap", null, {

View File

@@ -1,31 +1,42 @@
div.olControlZoomPanel {
height: 108px;
width: 36px;
div.olControlZoom {
position: absolute;
top: 20px;
left: 20px;
top: 8px;
left: 8px;
}
div.olControlZoomPanel div {
width: 36px;
height: 36px;
background-image: url(img/mobile-zoombar.png);
left: 0;
* {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
div.olControlZoomPanel .olControlZoomInItemInactive {
top: 0;
background-position: 0 0;
div.olControlZoom a {
display: block;
margin: 1px;
padding: 0;
color: white;
font-size: 28px;
font-family: sans-serif;
font-weight: bold;
text-decoration: none;
text-align: center;
height: 32px;
width: 32px;
line-height: 28px;
text-shadow: 0 0 3px rgba(0,0,0,0.8);
background: #666666; /* fallback for IE - IE6 requires background shorthand*/
background: rgba(0, 0, 0, 0.3);
filter: alpha(opacity=60);
}
div.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
top: 36px;
background-position: 0 -36px;
a.olControlZoomIn {
border-radius: 4px 4px 0 0;
}
div.olControlZoomPanel .olControlZoomOutItemInactive {
top: 72px;
background-position: 0 -72px;
a.olControlZoomOut {
border-radius: 0 0 4px 4px;
}
.olTileImage {
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
div.olControlZoom a:hover {
background: #444444; /* fallback for IE */
background: rgba(0, 0, 0, 0.5);
filter: alpha(opacity=80);
}
@media only screen and (max-width: 600px) {
div.olControlZoom a:hover {
background: rgba(0, 0, 0, 0.3);
}
}

View File

@@ -195,7 +195,7 @@ OpenLayers.Map = OpenLayers.Class({
* If not provided in the map options at construction, the map will
* by default be given the following controls if present in the build:
* - <OpenLayers.Control.Navigation> or <OpenLayers.Control.TouchNavigation>
* - <OpenLayers.Control.PanZoom>
* - <OpenLayers.Control.Zoom> or <OpenLayers.Control.PanZoom>
* - <OpenLayers.Control.ArgParser>
* - <OpenLayers.Control.Attribution>
*/
@@ -622,9 +622,12 @@ OpenLayers.Map = OpenLayers.Class({
} else if (OpenLayers.Control.TouchNavigation) {
this.controls.push(new OpenLayers.Control.TouchNavigation());
}
if (OpenLayers.Control.PanZoom) {
if (OpenLayers.Control.Zoom) {
this.controls.push(new OpenLayers.Control.Zoom());
} else if (OpenLayers.Control.PanZoom) {
this.controls.push(new OpenLayers.Control.PanZoom());
}
if (OpenLayers.Control.ArgParser) {
this.controls.push(new OpenLayers.Control.ArgParser());
}

View File

@@ -2930,282 +2930,6 @@ OpenLayers.Layer.WFS = OpenLayers.Class(
CLASS_NAME: "OpenLayers.Layer.WFS"
});
/**
* Class: OpenLayers.Layer.MultiMap
* Note that MultiMap does not fully support the sphericalMercator
* option. See Ticket #953 for more details.
* *Deprecated*. Use OpenLayers.Layer.Bing instead. See #3063
*
* Inherits from:
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
*/
OpenLayers.Layer.MultiMap = OpenLayers.Class(
OpenLayers.Layer.EventPane, OpenLayers.Layer.FixedZoomLevels, {
/**
* Constant: MIN_ZOOM_LEVEL
* {Integer} 1
*/
MIN_ZOOM_LEVEL: 1,
/**
* Constant: MAX_ZOOM_LEVEL
* {Integer} 17
*/
MAX_ZOOM_LEVEL: 17,
/**
* Constant: RESOLUTIONS
* {Array(Float)} Hardcode these resolutions so that they are more closely
* tied with the standard wms projection
*/
RESOLUTIONS: [
9,
1.40625,
0.703125,
0.3515625,
0.17578125,
0.087890625,
0.0439453125,
0.02197265625,
0.010986328125,
0.0054931640625,
0.00274658203125,
0.001373291015625,
0.0006866455078125,
0.00034332275390625,
0.000171661376953125,
0.0000858306884765625,
0.00004291534423828125
],
/**
* APIProperty: type
* {?}
*/
type: null,
/**
* Constructor: OpenLayers.Layer.MultiMap
*
* Parameters:
* name - {String}
* options - {Object}
*/
initialize: function(name, options) {
OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments);
OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
arguments);
if (this.sphericalMercator) {
OpenLayers.Util.extend(this, OpenLayers.Layer.SphericalMercator);
this.initMercatorParameters();
this.RESOLUTIONS.unshift(10);
}
},
/**
* Method: loadMapObject
*/
loadMapObject:function() {
try { //crash proofing
this.mapObject = new MultimapViewer(this.div);
} catch (e) { }
},
/**
* APIMethod: getWarningHTML
*
* Returns:
* {String} String with information on why layer is broken, how to get
* it working.
*/
getWarningHTML:function() {
return OpenLayers.i18n(
"getLayerWarning", {'layerType':"MM", 'layerLib':"MultiMap"}
);
},
/************************************
* *
* MapObject Interface Controls *
* *
************************************/
// Get&Set Center, Zoom
/**
* APIMethod: setMapObjectCenter
* Set the mapObject to the specified center and zoom
*
* Parameters:
* center - {Object} MapObject LonLat format
* zoom - {int} MapObject zoom format
*/
setMapObjectCenter: function(center, zoom) {
this.mapObject.goToPosition(center, zoom);
},
/**
* APIMethod: getMapObjectCenter
*
* Returns:
* {Object} The mapObject's current center in Map Object format
*/
getMapObjectCenter: function() {
return this.mapObject.getCurrentPosition();
},
/**
* APIMethod: getMapObjectZoom
*
* Returns:
* {Integer} The mapObject's current zoom, in Map Object format
*/
getMapObjectZoom: function() {
return this.mapObject.getZoomFactor();
},
// LonLat - Pixel Translation
/**
* APIMethod: getMapObjectLonLatFromMapObjectPixel
*
* Parameters:
* moPixel - {Object} MapObject Pixel format
*
* Returns:
* {Object} MapObject LonLat translated from MapObject Pixel
*/
getMapObjectLonLatFromMapObjectPixel: function(moPixel) {
moPixel.x = moPixel.x - (this.map.getSize().w/2);
moPixel.y = moPixel.y - (this.map.getSize().h/2);
return this.mapObject.getMapPositionAt(moPixel);
},
/**
* APIMethod: getMapObjectPixelFromMapObjectLonLat
*
* Parameters:
* moLonLat - {Object} MapObject LonLat format
*
* Returns:
* {Object} MapObject Pixel transtlated from MapObject LonLat
*/
getMapObjectPixelFromMapObjectLonLat: function(moLonLat) {
return this.mapObject.geoPosToContainerPixels(moLonLat);
},
/************************************
* *
* MapObject Primitives *
* *
************************************/
// LonLat
/**
* APIMethod: getLongitudeFromMapObjectLonLat
*
* Parameters:
* moLonLat - {Object} MapObject LonLat format
*
* Returns:
* {Float} Longitude of the given MapObject LonLat
*/
getLongitudeFromMapObjectLonLat: function(moLonLat) {
return this.sphericalMercator ?
this.forwardMercator(moLonLat.lon, moLonLat.lat).lon :
moLonLat.lon;
},
/**
* APIMethod: getLatitudeFromMapObjectLonLat
*
* Parameters:
* moLonLat - {Object} MapObject LonLat format
*
* Returns:
* {Float} Latitude of the given MapObject LonLat
*/
getLatitudeFromMapObjectLonLat: function(moLonLat) {
return this.sphericalMercator ?
this.forwardMercator(moLonLat.lon, moLonLat.lat).lat :
moLonLat.lat;
},
/**
* APIMethod: getMapObjectLonLatFromLonLat
*
* Parameters:
* lon - {Float}
* lat - {Float}
*
* Returns:
* {Object} MapObject LonLat built from lon and lat params
*/
getMapObjectLonLatFromLonLat: function(lon, lat) {
var mmLatLon;
if(this.sphericalMercator) {
var lonlat = this.inverseMercator(lon, lat);
mmLatLon = new MMLatLon(lonlat.lat, lonlat.lon);
} else {
mmLatLon = new MMLatLon(lat, lon);
}
return mmLatLon;
},
// Pixel
/**
* APIMethod: getXFromMapObjectPixel
*
* Parameters:
* moPixel - {Object} MapObject Pixel format
*
* Returns:
* {Integer} X value of the MapObject Pixel
*/
getXFromMapObjectPixel: function(moPixel) {
return moPixel.x;
},
/**
* APIMethod: getYFromMapObjectPixel
*
* Parameters:
* moPixel - {Object} MapObject Pixel format
*
* Returns:
* {Integer} Y value of the MapObject Pixel
*/
getYFromMapObjectPixel: function(moPixel) {
return moPixel.y;
},
/**
* APIMethod: getMapObjectPixelFromXY
*
* Parameters:
* x - {Integer}
* y - {Integer}
*
* Returns:
* {Object} MapObject Pixel from x and y parameters
*/
getMapObjectPixelFromXY: function(x, y) {
return new MMPoint(x, y);
},
CLASS_NAME: "OpenLayers.Layer.MultiMap"
});
/**
* Class: OpenLayers.Layer.VirtualEarth
* *Deprecated*. Use <OpenLayers.Layer.Bing> instead.

View File

@@ -138,6 +138,14 @@ Corresponding issues/pull requests:
# Behavior Changes from Past Releases
## MultiMap Layer Removal
The `OpenLayers.Layer.MultiMap` class has been removed entirely, as the MultiMap service was discontinued.
Corresponding issues/pull requests:
* https://github.com/openlayers/openlayers/pull/328
## GPX API change
The `gpxns` API property has been removed. The GPX namespace is now defined in the `namespaces` property but is not intended to be overriden.
@@ -321,7 +329,6 @@ A number of properties, methods, and constructors have been marked as deprecated
* OpenLayers.Tile.WFS
* OpenLayers.Feature.WFS
* OpenLayers.Layer.WFS
* OpenLayers.Layer.MultiMap
* OpenLayers.Layer.VirtualEarth
* OpenLayers.Protocol.SQL
* OpenLayers.Protocol.SQL.Gears

View File

@@ -1,122 +0,0 @@
<html>
<head>
<!-- multimap api key for http://(www.)openlayers.org -->
<script type="text/javascript" src="http://developer.multimap.com/API/maps/1.2/OA10072915821139765"></script>
<script src="../../OLLoader.js"></script>
<script src="../../../lib/deprecated.js"></script>
<script type="text/javascript">
var doTest = true;
function test_Layer_MultiMap_constructor (t) {
// WebKit browsers fail when the API key is for a different url, so we
// do not test in this case.
try {
var map = new OpenLayers.Map("map");
var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
map.addLayer(layer);
}
catch(e) {
doTest = false;
}
if (!doTest) { t.plan(0); return; }
t.plan( 4 );
var map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
map.addLayer(layer);
t.ok( layer instanceof OpenLayers.Layer.MultiMap, "new OpenLayers.Layer.MultiMap returns object" );
t.eq( layer.CLASS_NAME, "OpenLayers.Layer.MultiMap", "CLASS_NAME variable set correctly");
t.eq( layer.name, "MultiMap Layer", "layer.name is correct" );
t.ok ( layer.mapObject != null, "MultiMap Object correctly loaded");
}
function test_Layer_MultiMap_isBaseLayer (t) {
if (!doTest) { t.plan(0); return; }
t.plan(1);
var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
t.ok(layer.isBaseLayer, "a default load of multimap layer responds as a base layer");
}
function test_Layer_MultiMap_Translation_lonlat (t) {
if (!doTest) { t.plan(0); return; }
t.plan( 4 );
var map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
map.addLayer(layer);
// these two lines specify an appropriate translation.
// the code afterwards works by itself to test that translation
// works correctly both ways.
var gLatLng = new MMLatLon(50,100);
var correspondingOLLonLat = new OpenLayers.LonLat(100,50);
olLonLat = layer.getOLLonLatFromMapObjectLonLat(gLatLng);
t.ok(olLonLat.equals(correspondingOLLonLat), "Translation from GLatLng to OpenLayers.LonLat works");
var transGLatLng = layer.getMapObjectLonLatFromOLLonLat(olLonLat);
t.ok( (transGLatLng.lat == gLatLng.lat) && (transGLatLng.lon == transGLatLng.lon), "Translation from OpenLayers.LonLat to GLatLng works");
t.ok( layer.getMapObjectLonLatFromOLLonLat(null) == null, "getGLatLngFromOLLonLat(null) returns null");
t.ok( layer.getOLLonLatFromMapObjectLonLat(null) == null, "getOLLonLatFromGLatLng(null) returns null");
}
function test_Layer_MultiMap_Translation_pixel (t) {
if (!doTest) { t.plan(0); return; }
t.plan( 4 );
var map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.MultiMap('MultiMap Layer');
map.addLayer(layer);
// these two lines specify an appropriate translation.
// the code afterwards works by itself to test that translation
// works correctly both ways.
var gPoint = new MMPoint(50,100);
var correspondingOLPixel = new OpenLayers.Pixel(50, 100);
olPixel = layer.getOLPixelFromMapObjectPixel(gPoint);
t.ok( olPixel.equals(correspondingOLPixel), "Translation from GPoint to OpenLayers.Pixel works");
var transGPoint = layer.getMapObjectPixelFromOLPixel(olPixel);
t.ok( ((transGPoint.x == transGPoint.x) && (transGPoint.y == transGPoint.y)), "Translation from OpenLayers.Pixel to GPoint works");
t.ok( layer.getMapObjectPixelFromOLPixel(null) == null, "getGPointFromOLPixel(null) returns null");
t.ok( layer.getOLPixelFromMapObjectPixel(null) == null, "getOLPixelFromGPoint(null) returns null");
}
function test_Layer_destroy (t) {
if (!doTest) { t.plan(0); return; }
t.plan( 5 );
var map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.MultiMap('Test Layer');
map.addLayer(layer);
layer.destroy();
t.eq( layer.name, null, "layer.name is null after destroy" );
t.eq( layer.div, null, "layer.div is null after destroy" );
t.eq( layer.map, null, "layer.map is null after destroy" );
t.eq( layer.options, null, "layer.options is null after destroy" );
t.eq( layer.multimap, null, "layer.gmap is null after destroy" );
}
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>

View File

@@ -238,7 +238,6 @@
<li>deprecated/Layer/GML.html</li>
<li>deprecated/Layer/MapServer.html</li>
<li>deprecated/Layer/MapServer/Untiled.html</li>
<li>deprecated/Layer/MultiMap.html</li>
<li>deprecated/Layer/WFS.html</li>
<li>deprecated/Layer/WMS.html</li>
<li>deprecated/Layer/WMS/Post.html</li>

View File

@@ -23,16 +23,16 @@ div.olLayerDiv {
}
.olLayerGooglePoweredBy {
left: 2px;
bottom: 15px;
bottom: 15px;
}
.olLayerGoogleV3.olLayerGooglePoweredBy {
bottom: 15px !important;
}
.olControlAttribution {
font-size: smaller;
right: 3px;
bottom: 4.5em;
position: absolute;
font-size: smaller;
right: 3px;
bottom: 4.5em;
position: absolute;
display: block;
}
.olControlScale {
@@ -67,7 +67,7 @@ div.olLayerDiv {
display: block;
position: absolute;
font-size: smaller;
}
}
div.olControlMousePosition {
bottom: 0;
@@ -133,7 +133,7 @@ div.olControlMousePosition {
.olPopupContent {
padding:5px;
overflow: auto;
}
}
.olControlNavigationHistory {
background-image: url("img/navigation_history.png");
@@ -142,25 +142,25 @@ div.olControlMousePosition {
height: 24px;
}
.olControlNavigationHistoryPreviousItemActive {
.olControlNavigationHistoryPreviousItemActive {
background-position: 0 0;
}
.olControlNavigationHistoryPreviousItemInactive {
.olControlNavigationHistoryPreviousItemInactive {
background-position: 0 -24px;
}
.olControlNavigationHistoryNextItemActive {
.olControlNavigationHistoryNextItemActive {
background-position: -24px 0;
}
.olControlNavigationHistoryNextItemInactive {
.olControlNavigationHistoryNextItemInactive {
background-position: -24px -24px;
}
div.olControlSaveFeaturesItemActive {
div.olControlSaveFeaturesItemActive {
background-image: url(img/save_features_on.png);
background-repeat: no-repeat;
background-position: 0 1px;
}
div.olControlSaveFeaturesItemInactive {
div.olControlSaveFeaturesItemInactive {
background-image: url(img/save_features_off.png);
background-repeat: no-repeat;
background-position: 0 1px;
@@ -181,12 +181,12 @@ div.olControlSaveFeaturesItemInactive {
opacity: 0.50;
font-size: 1px;
filter: alpha(opacity=50);
}
}
.olControlPanPanel {
top: 10px;
left: 5px;
}
}
.olControlPanPanel div {
background-image: url(img/pan-panel.png);
@@ -221,7 +221,7 @@ div.olControlSaveFeaturesItemInactive {
.olControlZoomPanel {
top: 71px;
left: 14px;
}
}
.olControlZoomPanel div {
background-image: url(img/zoom-panel.png);
@@ -249,9 +249,9 @@ div.olControlSaveFeaturesItemInactive {
background-position: 0 18px;
}
/*
/*
* When a potential text is bigger than the image it move the image
* with some headers (closes #3154)
* with some headers (closes #3154)
*/
.olControlPanZoomBar div {
font-size: 1px;
@@ -440,13 +440,14 @@ div.olControlZoom a {
padding: 0;
color: white;
font-size: 18px;
font-family: 'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
font-family: 'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
font-weight: bold;
text-decoration: none;
text-align: center;
height: 22px;
width:22px;
line-height: 19px;
text-shadow: 0 0 3px rgba(0,0,0,0.8);
background: #666666; /* fallback for IE - IE6 requires background shorthand*/
background: rgba(0, 0, 0, 0.3);
filter: alpha(opacity=60);
@@ -456,6 +457,11 @@ div.olControlZoom a:hover {
background: rgba(0, 0, 0, 0.5);
filter: alpha(opacity=80);
}
@media only screen and (max-width: 600px) {
div.olControlZoom a:hover {
background: rgba(0, 0, 0, 0.3);
}
}
a.olControlZoomIn {
border-radius: 4px 4px 0 0;
}