Merge pull request #52 from fredj/deprecated.js
Move deprecated code into deprecated.js, r=ahocevar
This commit is contained in:
@@ -1,68 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>MultiMap</title>
|
||||
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<style type="text/css">
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 512px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- 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="../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
var lon = 5;
|
||||
var lat = 40;
|
||||
var zoom = 5;
|
||||
var map, mmlayer, layer;
|
||||
|
||||
function init(){
|
||||
map = new OpenLayers.Map( 'map' ,
|
||||
{controls:[new OpenLayers.Control.MouseDefaults()]});
|
||||
|
||||
mmlayer = new OpenLayers.Layer.MultiMap( "MultiMap");
|
||||
map.addLayer(mmlayer);
|
||||
|
||||
markers = new OpenLayers.Layer.Markers("markers");
|
||||
map.addLayer(markers);
|
||||
|
||||
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
|
||||
map.addControl( new OpenLayers.Control.LayerSwitcher() );
|
||||
map.addControl( new OpenLayers.Control.PanZoomBar() );
|
||||
}
|
||||
|
||||
function add() {
|
||||
|
||||
marker = new OpenLayers.Marker(new OpenLayers.LonLat(2, 41));
|
||||
markers.addMarker(marker);
|
||||
}
|
||||
|
||||
function remove() {
|
||||
markers.removeMarker(marker);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<h1 id="title">MultiMap Example</h1>
|
||||
<div id="tags">
|
||||
MultiMap, basic, cleanup
|
||||
</div>
|
||||
<p id="shortdesc">
|
||||
An example of using the Layer.MultiMap class.
|
||||
</p>
|
||||
<div id="map" class="smallmap"></div>
|
||||
<div style="background-color:green" onclick="add()"> click to add the marker to the map</div>
|
||||
<div style="background-color:red" onclick="remove()"> click to remove the marker from the map</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,74 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>MultiMap SphericalMercator</title>
|
||||
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
|
||||
<!--[if lte IE 6]>
|
||||
<link rel="stylesheet" href="../theme/default/ie6-style.css" type="text/css" />
|
||||
<![endif]-->
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<style type="text/css">
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 512px;
|
||||
border: 1px solid gray;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- 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="../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var map, ve, merc, vector;
|
||||
|
||||
function init(){
|
||||
var options = {
|
||||
projection: "EPSG:900913",
|
||||
units: "m",
|
||||
maxResolution: 156543.0339,
|
||||
maxExtent: new OpenLayers.Bounds(-20037508, -20037508,
|
||||
20037508, 20037508)
|
||||
};
|
||||
map = new OpenLayers.Map('map', options);
|
||||
|
||||
ve = new OpenLayers.Layer.MultiMap(
|
||||
"multimap",
|
||||
{'sphericalMercator': true}
|
||||
);
|
||||
merc = new OpenLayers.Layer.WMS("World Map",
|
||||
"http://maps.opengeo.org/geowebcache/service/wms",
|
||||
{'layers': 'bluemarble'},
|
||||
{'opacity': 0.4,
|
||||
'isBaseLayer': false,
|
||||
'wrapDateLine': true});
|
||||
|
||||
// create a vector layer for drawing
|
||||
vector = new OpenLayers.Layer.Vector("Editable Vectors");
|
||||
|
||||
map.addLayers([ve, merc, vector]);
|
||||
map.addControl(new OpenLayers.Control.LayerSwitcher());
|
||||
map.addControl(new OpenLayers.Control.EditingToolbar(vector));
|
||||
map.zoomToMaxExtent()
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<h1 id="title">MultiMap Mercator Example</h1>
|
||||
<div id="tags">
|
||||
MultiMap, basic, cleanup
|
||||
</div>
|
||||
<p id="shortdesc">
|
||||
This sphericalMercator example using multimap demonstrates that the
|
||||
multimap layer does not fully support the sphericalMercator projection at
|
||||
this time.
|
||||
</p>
|
||||
<div id="map" class="smallmap"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,68 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>OpenLayers Virtual Earth Example</title>
|
||||
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script src='http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1'></script>
|
||||
|
||||
<script src="../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var map, velayer, layer;
|
||||
|
||||
function init(){
|
||||
map = new OpenLayers.Map('map', {
|
||||
controls: [new OpenLayers.Control.Navigation()],
|
||||
panMethod: OpenLayers.Easing.Linear.easeOut,
|
||||
panDuration: 10
|
||||
});
|
||||
|
||||
velayer = new OpenLayers.Layer.VirtualEarth("VE", {
|
||||
minZoomLevel: 2,
|
||||
maxZoomLevel: 6,
|
||||
type: VEMapStyle.Road
|
||||
});
|
||||
map.addLayer(velayer);
|
||||
|
||||
map.setCenter(new OpenLayers.LonLat(25, 25), 0);
|
||||
|
||||
map.addControl( new OpenLayers.Control.PanZoomBar() );
|
||||
|
||||
markers = new OpenLayers.Layer.Markers("markers");
|
||||
map.addLayer(markers);
|
||||
|
||||
for(var i=0;i<100;i++){
|
||||
var lat= Math.floor(Math.random()*50);
|
||||
var lon= Math.floor(Math.random()*50);
|
||||
var lonLat=new OpenLayers.LonLat(lon,lat);
|
||||
var marker=new OpenLayers.Marker(lonLat);
|
||||
markers.addMarker(marker);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<h1 id="title">Virtual Earth Example</h1>
|
||||
|
||||
<div id="tags">
|
||||
panning, virtual earth, panzoom, panmethod, panduration
|
||||
</div>
|
||||
|
||||
<p id="shortdesc">
|
||||
When using the PanZoom buttons with VirtualEarth, some 'drift' is
|
||||
possible in markers. This page demonstrates how to use the
|
||||
panMethod and panDuration properties to change the OpenLayers
|
||||
settings to match VirtualEarth.
|
||||
</p>
|
||||
|
||||
<div id="map" class="smallmap"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>OpenLayers Virtual Earth Example</title>
|
||||
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script src='http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1'></script>
|
||||
|
||||
<script src="../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var lon = 12;
|
||||
var lat = 41;
|
||||
var zoom = 15;
|
||||
var map, velayer, layer, marker;
|
||||
|
||||
function init(){
|
||||
map = new OpenLayers.Map( 'map' ,
|
||||
{controls:[new OpenLayers.Control.MouseDefaults()]});
|
||||
|
||||
velayer = new OpenLayers.Layer.VirtualEarth( "VE", {
|
||||
// turn off animated zooming
|
||||
animationEnabled: false,
|
||||
minZoomLevel: 4,
|
||||
maxZoomLevel: 6,
|
||||
'type': VEMapStyle.Aerial
|
||||
});
|
||||
map.addLayer(velayer);
|
||||
|
||||
markers = new OpenLayers.Layer.Markers("markers");
|
||||
map.addLayer(markers);
|
||||
|
||||
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
|
||||
map.addControl( new OpenLayers.Control.LayerSwitcher() );
|
||||
map.addControl( new OpenLayers.Control.PanZoomBar() );
|
||||
}
|
||||
|
||||
function add() {
|
||||
if(!marker) {
|
||||
marker = new OpenLayers.Marker(new OpenLayers.LonLat(15, 47));
|
||||
markers.addMarker(marker);
|
||||
}
|
||||
}
|
||||
|
||||
function remove() {
|
||||
if(marker) {
|
||||
markers.removeMarker(marker);
|
||||
marker = null;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<h1 id="title">Virtual Earth Example</h1>
|
||||
|
||||
<div id="tags">
|
||||
virtual earth, marker
|
||||
</div>
|
||||
|
||||
<p id="shortdesc">
|
||||
Demonstrates the use of a Virtual Earth base layer.
|
||||
</p>
|
||||
|
||||
<div id="map" class="smallmap"></div>
|
||||
<input type="button" onClick="javascript:add()"value="Add the marker to the map">
|
||||
<input type="button" onClick="javascript:remove()" value="Remove the marker from the map">
|
||||
<div id="docs">This example demonstrates the ability to add VirtualEarth and the and remove markers.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -122,14 +122,12 @@
|
||||
"OpenLayers/Tile.js",
|
||||
"OpenLayers/Tile/Image.js",
|
||||
"OpenLayers/Tile/Image/IFrame.js",
|
||||
"OpenLayers/Tile/WFS.js",
|
||||
"OpenLayers/Layer/Image.js",
|
||||
"OpenLayers/Layer/SphericalMercator.js",
|
||||
"OpenLayers/Layer/EventPane.js",
|
||||
"OpenLayers/Layer/FixedZoomLevels.js",
|
||||
"OpenLayers/Layer/Google.js",
|
||||
"OpenLayers/Layer/Google/v3.js",
|
||||
"OpenLayers/Layer/VirtualEarth.js",
|
||||
"OpenLayers/Layer/Yahoo.js",
|
||||
"OpenLayers/Layer/HTTPRequest.js",
|
||||
"OpenLayers/Layer/Grid.js",
|
||||
@@ -137,7 +135,6 @@
|
||||
"OpenLayers/Layer/MapServer.js",
|
||||
"OpenLayers/Layer/KaMap.js",
|
||||
"OpenLayers/Layer/KaMapCache.js",
|
||||
"OpenLayers/Layer/MultiMap.js",
|
||||
"OpenLayers/Layer/Markers.js",
|
||||
"OpenLayers/Layer/Text.js",
|
||||
"OpenLayers/Layer/WorldWind.js",
|
||||
@@ -159,7 +156,6 @@
|
||||
"OpenLayers/Popup/FramedCloud.js",
|
||||
"OpenLayers/Feature.js",
|
||||
"OpenLayers/Feature/Vector.js",
|
||||
"OpenLayers/Feature/WFS.js",
|
||||
"OpenLayers/Handler.js",
|
||||
"OpenLayers/Handler/Click.js",
|
||||
"OpenLayers/Handler/Hover.js",
|
||||
@@ -337,7 +333,6 @@
|
||||
"OpenLayers/Format/XLS/v1.js",
|
||||
"OpenLayers/Format/XLS/v1_1_0.js",
|
||||
"OpenLayers/Format/OGCExceptionReport.js",
|
||||
"OpenLayers/Layer/WFS.js",
|
||||
"OpenLayers/Control/GetFeature.js",
|
||||
"OpenLayers/Control/NavToolbar.js",
|
||||
"OpenLayers/Control/PanPanel.js",
|
||||
|
||||
@@ -3,11 +3,6 @@
|
||||
* See http://svn.openlayers.org/trunk/openlayers/license.txt for the
|
||||
* full text of the license. */
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Lang.js
|
||||
* @requires OpenLayers/Console.js
|
||||
*/
|
||||
|
||||
/**
|
||||
* Header: OpenLayers Base Types
|
||||
* OpenLayers custom string, number and function functions are described here.
|
||||
|
||||
@@ -376,14 +376,6 @@ OpenLayers.Event = {
|
||||
/* prevent memory leaks in IE */
|
||||
OpenLayers.Event.observe(window, 'unload', OpenLayers.Event.unloadCache, false);
|
||||
|
||||
// FIXME: Remove this in 3.0. In 3.0, Event.stop will no longer be provided
|
||||
// by OpenLayers.
|
||||
if (window.Event) {
|
||||
OpenLayers.Util.applyDefaults(window.Event, OpenLayers.Event);
|
||||
} else {
|
||||
var Event = OpenLayers.Event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class: OpenLayers.Events
|
||||
*/
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
|
||||
* full list of contributors). Published under the Clear BSD license.
|
||||
* See http://svn.openlayers.org/trunk/openlayers/license.txt for the
|
||||
* full text of the license. */
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Feature.js
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class: OpenLayers.Feature.WFS
|
||||
* WFS handling class, for use as a featureClass on the WFS layer for handling
|
||||
* 'point' WFS types. Good for subclassing when creating a custom WFS like
|
||||
* XML application.
|
||||
*
|
||||
* Inherits from:
|
||||
* - <OpenLayers.Feature>
|
||||
*/
|
||||
OpenLayers.Feature.WFS = OpenLayers.Class(OpenLayers.Feature, {
|
||||
|
||||
/**
|
||||
* Constructor: OpenLayers.Feature.WFS
|
||||
* Create a WFS feature.
|
||||
*
|
||||
* Parameters:
|
||||
* layer - {<OpenLayers.Layer>}
|
||||
* xmlNode - {XMLNode}
|
||||
*/
|
||||
initialize: function(layer, xmlNode) {
|
||||
var newArguments = arguments;
|
||||
var data = this.processXMLNode(xmlNode);
|
||||
newArguments = new Array(layer, data.lonlat, data);
|
||||
OpenLayers.Feature.prototype.initialize.apply(this, newArguments);
|
||||
this.createMarker();
|
||||
this.layer.addMarker(this.marker);
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: destroy
|
||||
* nullify references to prevent circular references and memory leaks
|
||||
*/
|
||||
destroy: function() {
|
||||
if (this.marker != null) {
|
||||
this.layer.removeMarker(this.marker);
|
||||
}
|
||||
OpenLayers.Feature.prototype.destroy.apply(this, arguments);
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: processXMLNode
|
||||
* When passed an xmlNode, parses it for a GML point, and passes
|
||||
* back an object describing that point.
|
||||
*
|
||||
* For subclasses of Feature.WFS, this is the feature to change.
|
||||
*
|
||||
* Parameters:
|
||||
* xmlNode - {XMLNode}
|
||||
*
|
||||
* Returns:
|
||||
* {Object} Data Object with 'id', 'lonlat', and private properties set
|
||||
*/
|
||||
processXMLNode: function(xmlNode) {
|
||||
//this should be overridden by subclasses
|
||||
// must return an Object with 'id' and 'lonlat' values set
|
||||
var point = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, "http://www.opengis.net/gml", "gml", "Point");
|
||||
var text = OpenLayers.Util.getXmlNodeValue(OpenLayers.Ajax.getElementsByTagNameNS(point[0], "http://www.opengis.net/gml","gml", "coordinates")[0]);
|
||||
var floats = text.split(",");
|
||||
return {lonlat: new OpenLayers.LonLat(parseFloat(floats[0]),
|
||||
parseFloat(floats[1])),
|
||||
id: null};
|
||||
|
||||
},
|
||||
|
||||
CLASS_NAME: "OpenLayers.Feature.WFS"
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Layer/HTTPRequest.js
|
||||
* @requires OpenLayers/Console.js
|
||||
* @requires OpenLayers/Tile/Image.js
|
||||
*/
|
||||
|
||||
@@ -559,23 +558,6 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
|
||||
}
|
||||
OpenLayers.Layer.HTTPRequest.prototype.setTileSize.apply(this, [size]);
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: getGridBounds
|
||||
* Deprecated. This function will be removed in 3.0. Please use
|
||||
* getTilesBounds() instead.
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Bounds>} A Bounds object representing the bounds of all the
|
||||
* currently loaded tiles (including those partially or not at all seen
|
||||
* onscreen)
|
||||
*/
|
||||
getGridBounds: function() {
|
||||
var msg = "The getGridBounds() function is deprecated. It will be " +
|
||||
"removed in 3.0. Please use getTilesBounds() instead.";
|
||||
OpenLayers.Console.warn(msg);
|
||||
return this.getTilesBounds();
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getTilesBounds
|
||||
|
||||
@@ -1,286 +0,0 @@
|
||||
/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
|
||||
* full list of contributors). Published under the Clear BSD license.
|
||||
* See http://svn.openlayers.org/trunk/openlayers/license.txt for the
|
||||
* full text of the license. */
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Layer/EventPane.js
|
||||
* @requires OpenLayers/Layer/FixedZoomLevels.js
|
||||
* @requires OpenLayers/Lang.js
|
||||
*/
|
||||
|
||||
/**
|
||||
* 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"
|
||||
});
|
||||
@@ -1,391 +0,0 @@
|
||||
/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
|
||||
* full list of contributors). Published under the Clear BSD license.
|
||||
* See http://svn.openlayers.org/trunk/openlayers/license.txt for the
|
||||
* full text of the license. */
|
||||
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Layer/SphericalMercator.js
|
||||
* @requires OpenLayers/Layer/EventPane.js
|
||||
* @requires OpenLayers/Layer/FixedZoomLevels.js
|
||||
* @requires OpenLayers/Lang.js
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class: OpenLayers.Layer.VirtualEarth
|
||||
* *Deprecated*. Use <OpenLayers.Layer.Bing> instead.
|
||||
*
|
||||
* Instances of OpenLayers.Layer.VirtualEarth are used to display the data from
|
||||
* the Bing Maps AJAX Control (see e.g.
|
||||
* http://msdn.microsoft.com/library/bb429619.aspx). Create a VirtualEarth
|
||||
* layer with the <OpenLayers.Layer.VirtualEarth> constructor.
|
||||
*
|
||||
* Inherits from:
|
||||
* - <OpenLayers.Layer.EventPane>
|
||||
* - <OpenLayers.Layer.FixedZoomLevels>
|
||||
*/
|
||||
OpenLayers.Layer.VirtualEarth = OpenLayers.Class(
|
||||
OpenLayers.Layer.EventPane,
|
||||
OpenLayers.Layer.FixedZoomLevels, {
|
||||
|
||||
/**
|
||||
* Constant: MIN_ZOOM_LEVEL
|
||||
* {Integer} 1
|
||||
*/
|
||||
MIN_ZOOM_LEVEL: 1,
|
||||
|
||||
/**
|
||||
* Constant: MAX_ZOOM_LEVEL
|
||||
* {Integer} 19
|
||||
*/
|
||||
MAX_ZOOM_LEVEL: 19,
|
||||
|
||||
/**
|
||||
* Constant: RESOLUTIONS
|
||||
* {Array(Float)} Hardcode these resolutions so that they are more closely
|
||||
* tied with the standard wms projection
|
||||
*/
|
||||
RESOLUTIONS: [
|
||||
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,
|
||||
0.00002145767211914062,
|
||||
0.00001072883605957031,
|
||||
0.00000536441802978515
|
||||
],
|
||||
|
||||
/**
|
||||
* APIProperty: type
|
||||
* {VEMapType}
|
||||
*/
|
||||
type: null,
|
||||
|
||||
/**
|
||||
* APIProperty: wrapDateLine
|
||||
* {Boolean} Allow user to pan forever east/west. Default is true.
|
||||
* Setting this to false only restricts panning if
|
||||
* <sphericalMercator> is true.
|
||||
*/
|
||||
wrapDateLine: true,
|
||||
|
||||
/**
|
||||
* APIProperty: sphericalMercator
|
||||
* {Boolean} Should the map act as a mercator-projected map? This will
|
||||
* cause all interactions with the map to be in the actual map
|
||||
* projection, which allows support for vector drawing, overlaying
|
||||
* other maps, etc.
|
||||
*/
|
||||
sphericalMercator: false,
|
||||
|
||||
/**
|
||||
* APIProperty: animationEnabled
|
||||
* {Boolean} If set to true, the transition between zoom levels will be
|
||||
* animated. Set to false to match the zooming experience of other
|
||||
* layer types. Default is true.
|
||||
*/
|
||||
animationEnabled: true,
|
||||
|
||||
/**
|
||||
* Constructor: OpenLayers.Layer.VirtualEarth
|
||||
* Creates a new instance of a OpenLayers.Layer.VirtualEarth. If you use an
|
||||
* instance of OpenLayers.Layer.VirtualEarth in you map, you should set
|
||||
* the <OpenLayers.Map> option restrictedExtent to a meaningful value,
|
||||
* e.g.:
|
||||
* (code)
|
||||
* var map = new OpenLayers.Map( 'map', {
|
||||
* // other map options
|
||||
* restrictedExtent : OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
|
||||
* } );
|
||||
*
|
||||
* var veLayer = new OpenLayers.Layer.VirtualEarth (
|
||||
* "Virtual Earth Layer"
|
||||
* );
|
||||
*
|
||||
* map.addLayer( veLayer );
|
||||
* (end)
|
||||
*
|
||||
* 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();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: loadMapObject
|
||||
*/
|
||||
loadMapObject:function() {
|
||||
|
||||
// create div and set to same size as map
|
||||
var veDiv = OpenLayers.Util.createDiv(this.name);
|
||||
var sz = this.map.getSize();
|
||||
veDiv.style.width = sz.w + "px";
|
||||
veDiv.style.height = sz.h + "px";
|
||||
this.div.appendChild(veDiv);
|
||||
|
||||
try { // crash prevention
|
||||
this.mapObject = new VEMap(this.name);
|
||||
} catch (e) { }
|
||||
|
||||
if (this.mapObject != null) {
|
||||
try { // this is to catch a Mozilla bug without falling apart
|
||||
|
||||
// The fourth argument is whether the map is 'fixed' -- not
|
||||
// draggable. See:
|
||||
// http://blogs.msdn.com/virtualearth/archive/2007/09/28/locking-a-virtual-earth-map.aspx
|
||||
//
|
||||
this.mapObject.LoadMap(null, null, this.type, true);
|
||||
this.mapObject.AttachEvent("onmousedown", OpenLayers.Function.True);
|
||||
|
||||
} catch (e) { }
|
||||
this.mapObject.HideDashboard();
|
||||
if(typeof this.mapObject.SetAnimationEnabled == "function") {
|
||||
this.mapObject.SetAnimationEnabled(this.animationEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
//can we do smooth panning? this is an unpublished method, so we need
|
||||
// to be careful
|
||||
if ( !this.mapObject ||
|
||||
!this.mapObject.vemapcontrol ||
|
||||
!this.mapObject.vemapcontrol.PanMap ||
|
||||
(typeof this.mapObject.vemapcontrol.PanMap != "function")) {
|
||||
|
||||
this.dragPanMapObject = null;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: onMapResize
|
||||
*/
|
||||
onMapResize: function() {
|
||||
this.mapObject.Resize(this.map.size.w, this.map.size.h);
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getWarningHTML
|
||||
*
|
||||
* Returns:
|
||||
* {String} String with information on why layer is broken, how to get
|
||||
* it working.
|
||||
*/
|
||||
getWarningHTML:function() {
|
||||
return OpenLayers.i18n(
|
||||
"getLayerWarning", {'layerType':'VE', 'layerLib':'VirtualEarth'}
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
|
||||
/************************************
|
||||
* *
|
||||
* 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.SetCenterAndZoom(center, zoom);
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getMapObjectCenter
|
||||
*
|
||||
* Returns:
|
||||
* {Object} The mapObject's current center in Map Object format
|
||||
*/
|
||||
getMapObjectCenter: function() {
|
||||
return this.mapObject.GetCenter();
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: dragPanMapObject
|
||||
*
|
||||
* Parameters:
|
||||
* dX - {Integer}
|
||||
* dY - {Integer}
|
||||
*/
|
||||
dragPanMapObject: function(dX, dY) {
|
||||
this.mapObject.vemapcontrol.PanMap(dX, -dY);
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getMapObjectZoom
|
||||
*
|
||||
* Returns:
|
||||
* {Integer} The mapObject's current zoom, in Map Object format
|
||||
*/
|
||||
getMapObjectZoom: function() {
|
||||
return this.mapObject.GetZoomLevel();
|
||||
},
|
||||
|
||||
|
||||
// LonLat - Pixel Translation
|
||||
|
||||
/**
|
||||
* APIMethod: getMapObjectLonLatFromMapObjectPixel
|
||||
*
|
||||
* Parameters:
|
||||
* moPixel - {Object} MapObject Pixel format
|
||||
*
|
||||
* Returns:
|
||||
* {Object} MapObject LonLat translated from MapObject Pixel
|
||||
*/
|
||||
getMapObjectLonLatFromMapObjectPixel: function(moPixel) {
|
||||
//the conditional here is to test if we are running the v6 of VE
|
||||
return (typeof VEPixel != 'undefined')
|
||||
? this.mapObject.PixelToLatLong(moPixel)
|
||||
: this.mapObject.PixelToLatLong(moPixel.x, moPixel.y);
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getMapObjectPixelFromMapObjectLonLat
|
||||
*
|
||||
* Parameters:
|
||||
* moLonLat - {Object} MapObject LonLat format
|
||||
*
|
||||
* Returns:
|
||||
* {Object} MapObject Pixel transtlated from MapObject LonLat
|
||||
*/
|
||||
getMapObjectPixelFromMapObjectLonLat: function(moLonLat) {
|
||||
return this.mapObject.LatLongToPixel(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.Longitude, moLonLat.Latitude).lon :
|
||||
moLonLat.Longitude;
|
||||
},
|
||||
|
||||
/**
|
||||
* 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.Longitude, moLonLat.Latitude).lat :
|
||||
moLonLat.Latitude;
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getMapObjectLonLatFromLonLat
|
||||
*
|
||||
* Parameters:
|
||||
* lon - {Float}
|
||||
* lat - {Float}
|
||||
*
|
||||
* Returns:
|
||||
* {Object} MapObject LonLat built from lon and lat params
|
||||
*/
|
||||
getMapObjectLonLatFromLonLat: function(lon, lat) {
|
||||
var veLatLong;
|
||||
if(this.sphericalMercator) {
|
||||
var lonlat = this.inverseMercator(lon, lat);
|
||||
veLatLong = new VELatLong(lonlat.lat, lonlat.lon);
|
||||
} else {
|
||||
veLatLong = new VELatLong(lat, lon);
|
||||
}
|
||||
return veLatLong;
|
||||
},
|
||||
|
||||
// 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) {
|
||||
//the conditional here is to test if we are running the v6 of VE
|
||||
return (typeof VEPixel != 'undefined') ? new VEPixel(x, y)
|
||||
: new Msn.VE.Pixel(x, y);
|
||||
},
|
||||
|
||||
CLASS_NAME: "OpenLayers.Layer.VirtualEarth"
|
||||
});
|
||||
@@ -1,610 +0,0 @@
|
||||
/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
|
||||
* full list of contributors). Published under the Clear BSD license.
|
||||
* See http://svn.openlayers.org/trunk/openlayers/license.txt for the
|
||||
* full text of the license. */
|
||||
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Tile/WFS.js
|
||||
* @requires OpenLayers/Layer/Vector.js
|
||||
* @requires OpenLayers/Layer/Markers.js
|
||||
* @requires OpenLayers/Console.js
|
||||
* @requires OpenLayers/Lang.js
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class: OpenLayers.Layer.WFS
|
||||
* *Deprecated*. To be removed in 3.0. Instead use OpenLayers.Layer.Vector
|
||||
* with a Protocol.WFS and one or more Strategies.
|
||||
*
|
||||
* Inherits from:
|
||||
* - <OpenLayers.Layer.Vector>
|
||||
* - <OpenLayers.Layer.Markers>
|
||||
*/
|
||||
OpenLayers.Layer.WFS = OpenLayers.Class(
|
||||
OpenLayers.Layer.Vector, OpenLayers.Layer.Markers, {
|
||||
|
||||
/**
|
||||
* APIProperty: isBaseLayer
|
||||
* {Boolean} WFS layer is not a base layer by default.
|
||||
*/
|
||||
isBaseLayer: false,
|
||||
|
||||
/**
|
||||
* Property: tile
|
||||
* {<OpenLayers.Tile.WFS>}
|
||||
*/
|
||||
tile: null,
|
||||
|
||||
/**
|
||||
* APIProperty: ratio
|
||||
* {Float} The ratio property determines the size of the serverside query
|
||||
* relative to the map viewport size. By default, we load an area twice
|
||||
* as big as the map, to allow for panning without immediately reload.
|
||||
* Setting this to 1 will cause the area of the WFS request to match
|
||||
* the map area exactly. It is recommended to set this to some number
|
||||
* at least slightly larger than 1, otherwise accidental clicks can
|
||||
* cause a data reload, by moving the map only 1 pixel.
|
||||
*/
|
||||
ratio: 2,
|
||||
|
||||
/**
|
||||
* Property: DEFAULT_PARAMS
|
||||
* {Object} Hashtable of default key/value parameters
|
||||
*/
|
||||
DEFAULT_PARAMS: { service: "WFS",
|
||||
version: "1.0.0",
|
||||
request: "GetFeature"
|
||||
},
|
||||
|
||||
/**
|
||||
* APIProperty: featureClass
|
||||
* {<OpenLayers.Feature>} If featureClass is defined, an old-style markers
|
||||
* based WFS layer is created instead of a new-style vector layer. If
|
||||
* sent, this should be a subclass of OpenLayers.Feature
|
||||
*/
|
||||
featureClass: null,
|
||||
|
||||
/**
|
||||
* APIProperty: format
|
||||
* {<OpenLayers.Format>} The format you want the data to be parsed with.
|
||||
* Must be passed in the constructor. Should be a class, not an instance.
|
||||
* This option can only be used if no featureClass is passed / vectorMode
|
||||
* is false: if a featureClass is passed, then this parameter is ignored.
|
||||
*/
|
||||
format: null,
|
||||
|
||||
/**
|
||||
* Property: formatObject
|
||||
* {<OpenLayers.Format>} Internally created/managed format object, used by
|
||||
* the Tile to parse data.
|
||||
*/
|
||||
formatObject: null,
|
||||
|
||||
/**
|
||||
* APIProperty: formatOptions
|
||||
* {Object} Hash of options which should be passed to the format when it is
|
||||
* created. Must be passed in the constructor.
|
||||
*/
|
||||
formatOptions: null,
|
||||
|
||||
/**
|
||||
* Property: vectorMode
|
||||
* {Boolean} Should be calculated automatically. Determines whether the
|
||||
* layer is in vector mode or marker mode.
|
||||
*/
|
||||
vectorMode: true,
|
||||
|
||||
/**
|
||||
* APIProperty: encodeBBOX
|
||||
* {Boolean} Should the BBOX commas be encoded? The WMS spec says 'no',
|
||||
* but some services want it that way. Default false.
|
||||
*/
|
||||
encodeBBOX: false,
|
||||
|
||||
/**
|
||||
* APIProperty: extractAttributes
|
||||
* {Boolean} Should the WFS layer parse attributes from the retrieved
|
||||
* GML? Defaults to false. If enabled, parsing is slower, but
|
||||
* attributes are available in the attributes property of
|
||||
* layer features.
|
||||
*/
|
||||
extractAttributes: false,
|
||||
|
||||
/**
|
||||
* Constructor: OpenLayers.Layer.WFS
|
||||
*
|
||||
* Parameters:
|
||||
* name - {String}
|
||||
* url - {String}
|
||||
* params - {Object}
|
||||
* options - {Object} Hashtable of extra options to tag onto the layer
|
||||
*/
|
||||
initialize: function(name, url, params, options) {
|
||||
if (options == undefined) { options = {}; }
|
||||
|
||||
if (options.featureClass ||
|
||||
!OpenLayers.Layer.Vector ||
|
||||
!OpenLayers.Feature.Vector) {
|
||||
this.vectorMode = false;
|
||||
}
|
||||
|
||||
// Uppercase params
|
||||
params = OpenLayers.Util.upperCaseObject(params);
|
||||
|
||||
// Turn off error reporting, browsers like Safari may work
|
||||
// depending on the setup, and we don't want an unneccesary alert.
|
||||
OpenLayers.Util.extend(options, {'reportError': false});
|
||||
var newArguments = [];
|
||||
newArguments.push(name, options);
|
||||
OpenLayers.Layer.Vector.prototype.initialize.apply(this, newArguments);
|
||||
if (!this.renderer || !this.vectorMode) {
|
||||
this.vectorMode = false;
|
||||
if (!options.featureClass) {
|
||||
options.featureClass = OpenLayers.Feature.WFS;
|
||||
}
|
||||
OpenLayers.Layer.Markers.prototype.initialize.apply(this,
|
||||
newArguments);
|
||||
}
|
||||
|
||||
if (this.params && this.params.typename && !this.options.typename) {
|
||||
this.options.typename = this.params.typename;
|
||||
}
|
||||
|
||||
if (!this.options.geometry_column) {
|
||||
this.options.geometry_column = "the_geom";
|
||||
}
|
||||
|
||||
this.params = OpenLayers.Util.applyDefaults(
|
||||
params,
|
||||
OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS)
|
||||
);
|
||||
this.url = url;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* APIMethod: destroy
|
||||
*/
|
||||
destroy: function() {
|
||||
if (this.vectorMode) {
|
||||
OpenLayers.Layer.Vector.prototype.destroy.apply(this, arguments);
|
||||
} else {
|
||||
OpenLayers.Layer.Markers.prototype.destroy.apply(this, arguments);
|
||||
}
|
||||
if (this.tile) {
|
||||
this.tile.destroy();
|
||||
}
|
||||
this.tile = null;
|
||||
|
||||
this.ratio = null;
|
||||
this.featureClass = null;
|
||||
this.format = null;
|
||||
|
||||
if (this.formatObject && this.formatObject.destroy) {
|
||||
this.formatObject.destroy();
|
||||
}
|
||||
this.formatObject = null;
|
||||
|
||||
this.formatOptions = null;
|
||||
this.vectorMode = null;
|
||||
this.encodeBBOX = null;
|
||||
this.extractAttributes = null;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: setMap
|
||||
*
|
||||
* Parameters:
|
||||
* map - {<OpenLayers.Map>}
|
||||
*/
|
||||
setMap: function(map) {
|
||||
if (this.vectorMode) {
|
||||
OpenLayers.Layer.Vector.prototype.setMap.apply(this, arguments);
|
||||
|
||||
var options = {
|
||||
'extractAttributes': this.extractAttributes
|
||||
};
|
||||
|
||||
OpenLayers.Util.extend(options, this.formatOptions);
|
||||
if (this.map && !this.projection.equals(this.map.getProjectionObject())) {
|
||||
options.externalProjection = this.projection;
|
||||
options.internalProjection = this.map.getProjectionObject();
|
||||
}
|
||||
|
||||
this.formatObject = this.format ? new this.format(options) : new OpenLayers.Format.GML(options);
|
||||
} else {
|
||||
OpenLayers.Layer.Markers.prototype.setMap.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: moveTo
|
||||
*
|
||||
* Parameters:
|
||||
* bounds - {<OpenLayers.Bounds>}
|
||||
* zoomChanged - {Boolean}
|
||||
* dragging - {Boolean}
|
||||
*/
|
||||
moveTo:function(bounds, zoomChanged, dragging) {
|
||||
if (this.vectorMode) {
|
||||
OpenLayers.Layer.Vector.prototype.moveTo.apply(this, arguments);
|
||||
} else {
|
||||
OpenLayers.Layer.Markers.prototype.moveTo.apply(this, arguments);
|
||||
}
|
||||
|
||||
// don't load wfs features while dragging, wait for drag end
|
||||
if (dragging) {
|
||||
// TBD try to hide the vector layer while dragging
|
||||
// this.setVisibility(false);
|
||||
// this will probably help for panning performances
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( zoomChanged ) {
|
||||
if (this.vectorMode) {
|
||||
this.renderer.clear();
|
||||
}
|
||||
}
|
||||
|
||||
//DEPRECATED - REMOVE IN 3.0
|
||||
// don't load data if current zoom level doesn't match
|
||||
if (this.options.minZoomLevel) {
|
||||
OpenLayers.Console.warn(OpenLayers.i18n('minZoomLevelError'));
|
||||
|
||||
if (this.map.getZoom() < this.options.minZoomLevel) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (bounds == null) {
|
||||
bounds = this.map.getExtent();
|
||||
}
|
||||
|
||||
var firstRendering = (this.tile == null);
|
||||
|
||||
//does the new bounds to which we need to move fall outside of the
|
||||
// current tile's bounds?
|
||||
var outOfBounds = (!firstRendering &&
|
||||
!this.tile.bounds.containsBounds(bounds));
|
||||
|
||||
if (zoomChanged || firstRendering || (!dragging && outOfBounds)) {
|
||||
//determine new tile bounds
|
||||
var center = bounds.getCenterLonLat();
|
||||
var tileWidth = bounds.getWidth() * this.ratio;
|
||||
var tileHeight = bounds.getHeight() * this.ratio;
|
||||
var tileBounds =
|
||||
new OpenLayers.Bounds(center.lon - (tileWidth / 2),
|
||||
center.lat - (tileHeight / 2),
|
||||
center.lon + (tileWidth / 2),
|
||||
center.lat + (tileHeight / 2));
|
||||
|
||||
//determine new tile size
|
||||
var tileSize = this.map.getSize();
|
||||
tileSize.w = tileSize.w * this.ratio;
|
||||
tileSize.h = tileSize.h * this.ratio;
|
||||
|
||||
//determine new position (upper left corner of new bounds)
|
||||
var ul = new OpenLayers.LonLat(tileBounds.left, tileBounds.top);
|
||||
var pos = this.map.getLayerPxFromLonLat(ul);
|
||||
|
||||
//formulate request url string
|
||||
var url = this.getFullRequestString();
|
||||
|
||||
var params = null;
|
||||
|
||||
// Cant combine "filter" and "BBOX". This is a cheap hack to help
|
||||
// people out who can't migrate to the WFS protocol immediately.
|
||||
var filter = this.params.filter || this.params.FILTER;
|
||||
if (filter) {
|
||||
params = {FILTER: filter};
|
||||
}
|
||||
else {
|
||||
params = {BBOX: this.encodeBBOX ? tileBounds.toBBOX()
|
||||
: tileBounds.toArray()};
|
||||
}
|
||||
|
||||
if (this.map && !this.projection.equals(this.map.getProjectionObject())) {
|
||||
var projectedBounds = tileBounds.clone();
|
||||
projectedBounds.transform(this.map.getProjectionObject(),
|
||||
this.projection);
|
||||
if (!filter){
|
||||
params.BBOX = this.encodeBBOX ? projectedBounds.toBBOX()
|
||||
: projectedBounds.toArray();
|
||||
}
|
||||
}
|
||||
|
||||
url += "&" + OpenLayers.Util.getParameterString(params);
|
||||
|
||||
if (!this.tile) {
|
||||
this.tile = new OpenLayers.Tile.WFS(this, pos, tileBounds,
|
||||
url, tileSize);
|
||||
this.addTileMonitoringHooks(this.tile);
|
||||
this.tile.draw();
|
||||
} else {
|
||||
if (this.vectorMode) {
|
||||
this.destroyFeatures();
|
||||
this.renderer.clear();
|
||||
} else {
|
||||
this.clearMarkers();
|
||||
}
|
||||
this.removeTileMonitoringHooks(this.tile);
|
||||
this.tile.destroy();
|
||||
|
||||
this.tile = null;
|
||||
this.tile = new OpenLayers.Tile.WFS(this, pos, tileBounds,
|
||||
url, tileSize);
|
||||
this.addTileMonitoringHooks(this.tile);
|
||||
this.tile.draw();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: addTileMonitoringHooks
|
||||
* This function takes a tile as input and adds the appropriate hooks to
|
||||
* the tile so that the layer can keep track of the loading tile
|
||||
* (making sure to check that the tile is always the layer's current
|
||||
* tile before taking any action).
|
||||
*
|
||||
* Parameters:
|
||||
* tile - {<OpenLayers.Tile>}
|
||||
*/
|
||||
addTileMonitoringHooks: function(tile) {
|
||||
tile.onLoadStart = function() {
|
||||
//if this is the the layer's current tile, then trigger
|
||||
// a 'loadstart'
|
||||
if (this == this.layer.tile) {
|
||||
this.layer.events.triggerEvent("loadstart");
|
||||
}
|
||||
};
|
||||
tile.events.register("loadstart", tile, tile.onLoadStart);
|
||||
|
||||
tile.onLoadEnd = function() {
|
||||
//if this is the the layer's current tile, then trigger
|
||||
// a 'tileloaded' and 'loadend'
|
||||
if (this == this.layer.tile) {
|
||||
this.layer.events.triggerEvent("tileloaded");
|
||||
this.layer.events.triggerEvent("loadend");
|
||||
}
|
||||
};
|
||||
tile.events.register("loadend", tile, tile.onLoadEnd);
|
||||
tile.events.register("unload", tile, tile.onLoadEnd);
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: removeTileMonitoringHooks
|
||||
* This function takes a tile as input and removes the tile hooks
|
||||
* that were added in addTileMonitoringHooks()
|
||||
*
|
||||
* Parameters:
|
||||
* tile - {<OpenLayers.Tile>}
|
||||
*/
|
||||
removeTileMonitoringHooks: function(tile) {
|
||||
tile.unload();
|
||||
tile.events.un({
|
||||
"loadstart": tile.onLoadStart,
|
||||
"loadend": tile.onLoadEnd,
|
||||
"unload": tile.onLoadEnd,
|
||||
scope: tile
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: onMapResize
|
||||
* Call the onMapResize method of the appropriate parent class.
|
||||
*/
|
||||
onMapResize: function() {
|
||||
if(this.vectorMode) {
|
||||
OpenLayers.Layer.Vector.prototype.onMapResize.apply(this,
|
||||
arguments);
|
||||
} else {
|
||||
OpenLayers.Layer.Markers.prototype.onMapResize.apply(this,
|
||||
arguments);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: display
|
||||
* Call the display method of the appropriate parent class.
|
||||
*/
|
||||
display: function() {
|
||||
if(this.vectorMode) {
|
||||
OpenLayers.Layer.Vector.prototype.display.apply(this,
|
||||
arguments);
|
||||
} else {
|
||||
OpenLayers.Layer.Markers.prototype.display.apply(this,
|
||||
arguments);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: mergeNewParams
|
||||
* Modify parameters for the layer and redraw.
|
||||
*
|
||||
* Parameters:
|
||||
* newParams - {Object}
|
||||
*/
|
||||
mergeNewParams:function(newParams) {
|
||||
var upperParams = OpenLayers.Util.upperCaseObject(newParams);
|
||||
var newArguments = [upperParams];
|
||||
return OpenLayers.Layer.HTTPRequest.prototype.mergeNewParams.apply(this,
|
||||
newArguments);
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: clone
|
||||
*
|
||||
* Parameters:
|
||||
* obj - {Object}
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Layer.WFS>} An exact clone of this OpenLayers.Layer.WFS
|
||||
*/
|
||||
clone: function (obj) {
|
||||
|
||||
if (obj == null) {
|
||||
obj = new OpenLayers.Layer.WFS(this.name,
|
||||
this.url,
|
||||
this.params,
|
||||
this.getOptions());
|
||||
}
|
||||
|
||||
//get all additions from superclasses
|
||||
if (this.vectorMode) {
|
||||
obj = OpenLayers.Layer.Vector.prototype.clone.apply(this, [obj]);
|
||||
} else {
|
||||
obj = OpenLayers.Layer.Markers.prototype.clone.apply(this, [obj]);
|
||||
}
|
||||
|
||||
// copy/set any non-init, non-simple values here
|
||||
|
||||
return obj;
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getFullRequestString
|
||||
* combine the layer's url with its params and these newParams.
|
||||
*
|
||||
* Add the SRS parameter from 'projection' -- this is probably
|
||||
* more eloquently done via a setProjection() method, but this
|
||||
* works for now and always.
|
||||
*
|
||||
* Parameters:
|
||||
* newParams - {Object}
|
||||
* altUrl - {String} Use this as the url instead of the layer's url
|
||||
*/
|
||||
getFullRequestString:function(newParams, altUrl) {
|
||||
var projectionCode = this.projection.getCode() || this.map.getProjection();
|
||||
this.params.SRS = (projectionCode == "none") ? null : projectionCode;
|
||||
|
||||
return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(
|
||||
this, arguments);
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: commit
|
||||
* Write out the data to a WFS server.
|
||||
*/
|
||||
commit: function() {
|
||||
if (!this.writer) {
|
||||
var options = {};
|
||||
if (this.map && !this.projection.equals(this.map.getProjectionObject())) {
|
||||
options.externalProjection = this.projection;
|
||||
options.internalProjection = this.map.getProjectionObject();
|
||||
}
|
||||
|
||||
this.writer = new OpenLayers.Format.WFS(options,this);
|
||||
}
|
||||
|
||||
var data = this.writer.write(this.features);
|
||||
|
||||
OpenLayers.Request.POST({
|
||||
url: this.url,
|
||||
data: data,
|
||||
success: this.commitSuccess,
|
||||
failure: this.commitFailure,
|
||||
scope: this
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: commitSuccess
|
||||
* Called when the Ajax request returns a response
|
||||
*
|
||||
* Parameters:
|
||||
* response - {XmlNode} from server
|
||||
*/
|
||||
commitSuccess: function(request) {
|
||||
var response = request.responseText;
|
||||
if (response.indexOf('SUCCESS') != -1) {
|
||||
this.commitReport(OpenLayers.i18n("commitSuccess", {'response':response}));
|
||||
|
||||
for(var i = 0; i < this.features.length; i++) {
|
||||
this.features[i].state = null;
|
||||
}
|
||||
// TBD redraw the layer or reset the state of features
|
||||
// foreach features: set state to null
|
||||
} else if (response.indexOf('FAILED') != -1 ||
|
||||
response.indexOf('Exception') != -1) {
|
||||
this.commitReport(OpenLayers.i18n("commitFailed", {'response':response}));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: commitFailure
|
||||
* Called when the Ajax request fails
|
||||
*
|
||||
* Parameters:
|
||||
* response - {XmlNode} from server
|
||||
*/
|
||||
commitFailure: function(request) {},
|
||||
|
||||
/**
|
||||
* APIMethod: commitReport
|
||||
* Called with a 'success' message if the commit succeeded, otherwise
|
||||
* a failure message, and the full request text as a second parameter.
|
||||
* Override this function to provide custom transaction reporting.
|
||||
*
|
||||
* string - {String} reporting string
|
||||
* response - {String} full XML response
|
||||
*/
|
||||
commitReport: function(string, response) {
|
||||
OpenLayers.Console.userError(string);
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* APIMethod: refresh
|
||||
* Refreshes all the features of the layer
|
||||
*/
|
||||
refresh: function() {
|
||||
if (this.tile) {
|
||||
if (this.vectorMode) {
|
||||
this.renderer.clear();
|
||||
this.features.length = 0;
|
||||
} else {
|
||||
this.clearMarkers();
|
||||
this.markers.length = 0;
|
||||
}
|
||||
this.tile.draw();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: getDataExtent
|
||||
* Calculates the max extent which includes all of the layer data.
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Bounds>}
|
||||
*/
|
||||
getDataExtent: function () {
|
||||
var extent;
|
||||
//get all additions from superclasses
|
||||
if (this.vectorMode) {
|
||||
extent = OpenLayers.Layer.Vector.prototype.getDataExtent.apply(this);
|
||||
} else {
|
||||
extent = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(this);
|
||||
}
|
||||
|
||||
return extent;
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: setOpacity
|
||||
* Call the setOpacity method of the appropriate parent class to set the
|
||||
* opacity.
|
||||
*
|
||||
* Parameter:
|
||||
* opacity - {Float}
|
||||
*/
|
||||
setOpacity: function (opacity) {
|
||||
if (this.vectorMode) {
|
||||
OpenLayers.Layer.Vector.prototype.setOpacity.apply(this, [opacity]);
|
||||
} else {
|
||||
OpenLayers.Layer.Markers.prototype.setOpacity.apply(this, [opacity]);
|
||||
}
|
||||
},
|
||||
|
||||
CLASS_NAME: "OpenLayers.Layer.WFS"
|
||||
});
|
||||
@@ -1,192 +0,0 @@
|
||||
/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for
|
||||
* full list of contributors). Published under the Clear BSD license.
|
||||
* See http://svn.openlayers.org/trunk/openlayers/license.txt for the
|
||||
* full text of the license. */
|
||||
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Tile.js
|
||||
* @requires OpenLayers/Request/XMLHttpRequest.js
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class: OpenLayers.Tile.WFS
|
||||
* Instances of OpenLayers.Tile.WFS are used to manage the image tiles
|
||||
* used by various layers. Create a new image tile with the
|
||||
* <OpenLayers.Tile.WFS> constructor.
|
||||
*
|
||||
* Inherits from:
|
||||
* - <OpenLayers.Tile>
|
||||
*/
|
||||
OpenLayers.Tile.WFS = OpenLayers.Class(OpenLayers.Tile, {
|
||||
|
||||
/**
|
||||
* Property: features
|
||||
* {Array(<OpenLayers.Feature>)} list of features in this tile
|
||||
*/
|
||||
features: null,
|
||||
|
||||
/**
|
||||
* Property: url
|
||||
* {String}
|
||||
*/
|
||||
url: null,
|
||||
|
||||
/**
|
||||
* Property: request
|
||||
* {<OpenLayers.Request.XMLHttpRequest>}
|
||||
*/
|
||||
request: null,
|
||||
|
||||
/** TBD 3.0 - reorder the parameters to the init function to put URL
|
||||
* as last, so we can continue to call tile.initialize()
|
||||
* without changing the arguments.
|
||||
*
|
||||
* Constructor: OpenLayers.Tile.WFS
|
||||
* Constructor for a new <OpenLayers.Tile.WFS> instance.
|
||||
*
|
||||
* Parameters:
|
||||
* layer - {<OpenLayers.Layer>} layer that the tile will go in.
|
||||
* position - {<OpenLayers.Pixel>}
|
||||
* bounds - {<OpenLayers.Bounds>}
|
||||
* url - {<String>}
|
||||
* size - {<OpenLayers.Size>}
|
||||
*/
|
||||
initialize: function(layer, position, bounds, url, size) {
|
||||
OpenLayers.Tile.prototype.initialize.apply(this, arguments);
|
||||
this.url = url;
|
||||
this.features = [];
|
||||
},
|
||||
|
||||
/**
|
||||
* APIMethod: destroy
|
||||
* nullify references to prevent circular references and memory leaks
|
||||
*/
|
||||
destroy: function() {
|
||||
OpenLayers.Tile.prototype.destroy.apply(this, arguments);
|
||||
this.destroyAllFeatures();
|
||||
this.features = null;
|
||||
this.url = null;
|
||||
if(this.request) {
|
||||
this.request.abort();
|
||||
//this.request.destroy();
|
||||
this.request = null;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: clear
|
||||
* Clear the tile of any bounds/position-related data so that it can
|
||||
* be reused in a new location.
|
||||
*/
|
||||
clear: function() {
|
||||
this.destroyAllFeatures();
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: draw
|
||||
* Check that a tile should be drawn, and load features for it.
|
||||
*/
|
||||
draw:function() {
|
||||
if (OpenLayers.Tile.prototype.draw.apply(this, arguments)) {
|
||||
if (this.isLoading) {
|
||||
//if already loading, send 'reload' instead of 'loadstart'.
|
||||
this.events.triggerEvent("reload");
|
||||
} else {
|
||||
this.isLoading = true;
|
||||
this.events.triggerEvent("loadstart");
|
||||
}
|
||||
this.loadFeaturesForRegion(this.requestSuccess);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: loadFeaturesForRegion
|
||||
* Abort any pending requests and issue another request for data.
|
||||
*
|
||||
* Input are function pointers for what to do on success and failure.
|
||||
*
|
||||
* Parameters:
|
||||
* success - {function}
|
||||
* failure - {function}
|
||||
*/
|
||||
loadFeaturesForRegion:function(success, failure) {
|
||||
if(this.request) {
|
||||
this.request.abort();
|
||||
}
|
||||
this.request = OpenLayers.Request.GET({
|
||||
url: this.url,
|
||||
success: success,
|
||||
failure: failure,
|
||||
scope: this
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: requestSuccess
|
||||
* Called on return from request succcess. Adds results via
|
||||
* layer.addFeatures in vector mode, addResults otherwise.
|
||||
*
|
||||
* Parameters:
|
||||
* request - {<OpenLayers.Request.XMLHttpRequest>}
|
||||
*/
|
||||
requestSuccess:function(request) {
|
||||
if (this.features) {
|
||||
var doc = request.responseXML;
|
||||
if (!doc || !doc.documentElement) {
|
||||
doc = request.responseText;
|
||||
}
|
||||
if (this.layer.vectorMode) {
|
||||
this.layer.addFeatures(this.layer.formatObject.read(doc));
|
||||
} else {
|
||||
var xml = new OpenLayers.Format.XML();
|
||||
if (typeof doc == "string") {
|
||||
doc = xml.read(doc);
|
||||
}
|
||||
var resultFeatures = xml.getElementsByTagNameNS(
|
||||
doc, "http://www.opengis.net/gml", "featureMember"
|
||||
);
|
||||
this.addResults(resultFeatures);
|
||||
}
|
||||
}
|
||||
if (this.events) {
|
||||
this.events.triggerEvent("loadend");
|
||||
}
|
||||
|
||||
//request produced with success, we can delete the request object.
|
||||
//this.request.destroy();
|
||||
this.request = null;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: addResults
|
||||
* Construct new feature via layer featureClass constructor, and add to
|
||||
* this.features.
|
||||
*
|
||||
* Parameters:
|
||||
* results - {Object}
|
||||
*/
|
||||
addResults: function(results) {
|
||||
for (var i=0; i < results.length; i++) {
|
||||
var feature = new this.layer.featureClass(this.layer,
|
||||
results[i]);
|
||||
this.features.push(feature);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Method: destroyAllFeatures
|
||||
* Iterate through and call destroy() on each feature, removing it from
|
||||
* the local array
|
||||
*/
|
||||
destroyAllFeatures: function() {
|
||||
while(this.features.length > 0) {
|
||||
var feature = this.features.shift();
|
||||
feature.destroy();
|
||||
}
|
||||
},
|
||||
|
||||
CLASS_NAME: "OpenLayers.Tile.WFS"
|
||||
}
|
||||
);
|
||||
@@ -10,7 +10,6 @@
|
||||
* @requires OpenLayers/BaseTypes/LonLat.js
|
||||
* @requires OpenLayers/BaseTypes/Pixel.js
|
||||
* @requires OpenLayers/BaseTypes/Size.js
|
||||
* @requires OpenLayers/Console.js
|
||||
* @requires OpenLayers/Lang.js
|
||||
*/
|
||||
|
||||
@@ -103,23 +102,6 @@ OpenLayers.Util.removeItem = function(array, item) {
|
||||
return array;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: clearArray
|
||||
* *Deprecated*. This function will disappear in 3.0.
|
||||
* Please use "array.length = 0" instead.
|
||||
*
|
||||
* Parameters:
|
||||
* array - {Array}
|
||||
*/
|
||||
OpenLayers.Util.clearArray = function(array) {
|
||||
OpenLayers.Console.warn(
|
||||
OpenLayers.i18n(
|
||||
"methodDeprecated", {'newMethod': 'array = []'}
|
||||
)
|
||||
);
|
||||
array.length = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: indexOf
|
||||
* Seems to exist already in FF, but not in MOZ.
|
||||
@@ -299,27 +281,6 @@ OpenLayers.Util.createImage = function(id, px, sz, imgURL, position, border,
|
||||
return image;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: setOpacity
|
||||
* *Deprecated*. This function has been deprecated. Instead, please use
|
||||
* <OpenLayers.Util.modifyDOMElement>
|
||||
* or
|
||||
* <OpenLayers.Util.modifyAlphaImageDiv>
|
||||
*
|
||||
* Set the opacity of a DOM Element
|
||||
* Note that for this function to work in IE, elements must "have layout"
|
||||
* according to:
|
||||
* http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/haslayout.asp
|
||||
*
|
||||
* Parameters:
|
||||
* element - {DOMElement} Set the opacity on this DOM element
|
||||
* opacity - {Float} Opacity value (0.0 - 1.0)
|
||||
*/
|
||||
OpenLayers.Util.setOpacity = function(element, opacity) {
|
||||
OpenLayers.Util.modifyDOMElement(element, null, null, null,
|
||||
null, null, null, opacity);
|
||||
};
|
||||
|
||||
/**
|
||||
* Property: IMAGE_RELOAD_ATTEMPTS
|
||||
* {Integer} How many times should we try to reload an image before giving up?
|
||||
@@ -930,27 +891,6 @@ OpenLayers.Util.getParameters = function(url) {
|
||||
return parameters;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getArgs
|
||||
* *Deprecated*. Will be removed in 3.0. Please use instead
|
||||
* <OpenLayers.Util.getParameters>
|
||||
*
|
||||
* Parameters:
|
||||
* url - {String} Optional url used to extract the query string.
|
||||
* If null, query string is taken from page location.
|
||||
*
|
||||
* Returns:
|
||||
* {Object} An object of key/value pairs from the query string.
|
||||
*/
|
||||
OpenLayers.Util.getArgs = function(url) {
|
||||
OpenLayers.Console.warn(
|
||||
OpenLayers.i18n(
|
||||
"methodDeprecated", {'newMethod': 'OpenLayers.Util.getParameters'}
|
||||
)
|
||||
);
|
||||
return OpenLayers.Util.getParameters(url);
|
||||
};
|
||||
|
||||
/**
|
||||
* Property: lastSeqID
|
||||
* {Integer} The ever-incrementing count variable.
|
||||
@@ -1155,22 +1095,6 @@ OpenLayers.Util.getScaleFromResolution = function (resolution, units) {
|
||||
return scale;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: safeStopPropagation
|
||||
* *Deprecated*. This function has been deprecated. Please use directly
|
||||
* <OpenLayers.Event.stop> passing 'true' as the 2nd
|
||||
* argument (preventDefault)
|
||||
*
|
||||
* Safely stop the propagation of an event *without* preventing
|
||||
* the default browser action from occurring.
|
||||
*
|
||||
* Parameter:
|
||||
* evt - {Event}
|
||||
*/
|
||||
OpenLayers.Util.safeStopPropagation = function(evt) {
|
||||
OpenLayers.Event.stop(evt, true);
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: pagePosition
|
||||
* Calculates the position of an element on the page (see
|
||||
|
||||
1634
lib/deprecated.js
1634
lib/deprecated.js
File diff suppressed because it is too large
Load Diff
@@ -409,13 +409,6 @@
|
||||
|
||||
}
|
||||
|
||||
/** HACK HACK HACK Deprecated This test should be removed in 3.0 **/
|
||||
function test_Events_globalEventObject(t) {
|
||||
t.plan(1);
|
||||
t.ok(Event.stop, "a stop() function exists on the global JS Event object, if indeed it exists. This is legacy deprecated and will be gone in 3.0");
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
|
||||
function test_Layer_Grid_getTilesBounds(t) {
|
||||
t.plan( 4 );
|
||||
t.plan(3);
|
||||
|
||||
layer = new OpenLayers.Layer.WMS(name, url, params);
|
||||
|
||||
@@ -110,10 +110,6 @@
|
||||
|
||||
t.ok( bounds.equals(testBounds), "getTilesBounds() returns correct bounds");
|
||||
|
||||
var bounds = layer.getGridBounds();
|
||||
|
||||
t.ok( bounds.equals(testBounds), "getGridBounds() wrapper works the same as getTilesBounds.");
|
||||
|
||||
//no tiles
|
||||
layer.grid = [];
|
||||
bounds = layer.getTilesBounds();
|
||||
|
||||
@@ -1019,33 +1019,6 @@
|
||||
|
||||
}
|
||||
|
||||
function test_Util_getArgs(t) {
|
||||
//DEPRECATED -- to be removed in 3.0
|
||||
t.plan(3);
|
||||
|
||||
OpenLayers.Lang.setCode(OpenLayers.Lang.defaultCode);
|
||||
|
||||
var temp = OpenLayers.Console.warn;
|
||||
OpenLayers.Console.warn = function(err) {
|
||||
t.ok(err != null, "warning is fired on use of getArgs()");
|
||||
}
|
||||
|
||||
var temp2 = OpenLayers.Util.getParameters;
|
||||
OpenLayers.Util.getParameters = function(url) {
|
||||
t.eq(url, g_Url, "correct url passed to getParameters()");
|
||||
return g_Params;
|
||||
}
|
||||
|
||||
g_Params = {};
|
||||
g_Url = {};
|
||||
|
||||
var ret = OpenLayers.Util.getArgs(g_Url);
|
||||
t.ok( ret == g_Params, "correctly returns value from getParameters");
|
||||
|
||||
OpenLayers.Console.warn = temp;
|
||||
OpenLayers.Util.getParameters = temp2;
|
||||
}
|
||||
|
||||
function tests_Util_extend(t) {
|
||||
t.plan(7);
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
<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="../../OLLoader.js"></script>
|
||||
<script src="../../../lib/deprecated.js"></script>
|
||||
<script type="text/javascript">
|
||||
var doTest = true;
|
||||
function test_Layer_MultiMap_constructor (t) {
|
||||
@@ -1,6 +1,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../OLLoader.js"></script>
|
||||
<script src="../../OLLoader.js"></script>
|
||||
<script src="../../../lib/deprecated.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var name = "Vector Layer";
|
||||
@@ -1,6 +1,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../OLLoader.js"></script>
|
||||
<script src="../../OLLoader.js"></script>
|
||||
<script src="../../../lib/deprecated.js"></script>
|
||||
<script type="text/javascript">
|
||||
var tile;
|
||||
|
||||
@@ -158,7 +158,6 @@
|
||||
<li>Layer/MapGuide.html</li>
|
||||
<li>Layer/MapServer.html</li>
|
||||
<li>Layer/Markers.html</li>
|
||||
<li>Layer/MultiMap.html</li>
|
||||
<li>Layer/PointGrid.html</li>
|
||||
<li>Layer/PointTrack.html</li>
|
||||
<li>Layer/SphericalMercator.html</li>
|
||||
@@ -167,7 +166,6 @@
|
||||
<li>Layer/TMS.html</li>
|
||||
<li>Layer/Vector.html</li>
|
||||
<li>Layer/Vector/RootContainer.html</li>
|
||||
<li>Layer/WFS.html</li>
|
||||
<li>Layer/WMS.html</li>
|
||||
<li>Layer/WMTS.html</li>
|
||||
<li>Layer/WrapDateLine.html</li>
|
||||
@@ -222,7 +220,6 @@
|
||||
<li>Tile.html</li>
|
||||
<li>Tile/Image.html</li>
|
||||
<li>Tile/Image/IFrame.html</li>
|
||||
<li>Tile/WFS.html</li>
|
||||
<li>Tween.html</li>
|
||||
<li>Kinetic.html</li>
|
||||
<li>Util.html</li>
|
||||
@@ -231,5 +228,8 @@
|
||||
<li>deprecated/BaseTypes/Element.html</li>
|
||||
<li>deprecated/Control/MouseToolbar.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/Post.html</li>
|
||||
<li>deprecated/Tile/WFS.html</li>
|
||||
</ul>
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<style type="text/css">
|
||||
#map {
|
||||
width: 512px;
|
||||
height: 512px;
|
||||
border: 1px solid gray;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1"></script>
|
||||
|
||||
<script src="../../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
// make map available for easy debugging
|
||||
var map;
|
||||
|
||||
// increase reload attempts
|
||||
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
|
||||
|
||||
function init(){
|
||||
var options = {
|
||||
projection: "EPSG:900913",
|
||||
units: "m",
|
||||
maxResolution: 156543.0339,
|
||||
maxExtent: new OpenLayers.Bounds(-20037508, -20037508,
|
||||
20037508, 20037508.34)
|
||||
};
|
||||
map = new OpenLayers.Map('map', options);
|
||||
|
||||
// create Virtual Earth layers
|
||||
var veroad = new OpenLayers.Layer.VirtualEarth(
|
||||
"Virtual Earth Raods",
|
||||
{'type': VEMapStyle.Road, 'sphericalMercator': true}
|
||||
);
|
||||
|
||||
// create WMS layer
|
||||
var wms = new OpenLayers.Layer.WMS(
|
||||
"World Map",
|
||||
"http://world.freemap.in/tiles/",
|
||||
{'layers': 'factbook-overlay', 'format':'png'},
|
||||
{
|
||||
'opacity': 0.4,
|
||||
'isBaseLayer': false,'wrapDateLine': true
|
||||
}
|
||||
);
|
||||
|
||||
map.addLayers([veroad, wms]);
|
||||
map.zoomToMaxExtent()
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<h3>VE Opacity</h3>
|
||||
<p>The overlay should have an opacity of 40%.</p>
|
||||
<div id="map"></div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user