[Mapbender-commits] r1376 - branches/mapbender_sld/http/javascripts
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Wed May 30 03:34:35 EDT 2007
Author: uli
Date: 2007-05-30 03:34:35 -0400 (Wed, 30 May 2007)
New Revision: 1376
Modified:
branches/mapbender_sld/http/javascripts/map_obj.js
Log:
new layer-method checkScale
Modified: branches/mapbender_sld/http/javascripts/map_obj.js
===================================================================
--- branches/mapbender_sld/http/javascripts/map_obj.js 2007-05-29 14:33:18 UTC (rev 1375)
+++ branches/mapbender_sld/http/javascripts/map_obj.js 2007-05-30 07:34:35 UTC (rev 1376)
@@ -92,6 +92,44 @@
}
/**
+ * rephrases the mapRequest
+ *
+ * @member wms_const
+ * @param Object mapObj the mapbender mapObject of the wms
+ * @return mapRequest, onlineresource + params
+ * @type string
+ */
+wms_const.prototype.getMapRequest = function(mapObj){
+ console.log()
+ //check visible layers first
+ var layers = this.getLayers(mapObj);
+ if(!layers){
+ return false;
+ }
+
+ var rq = this.wms_getmap;
+ rq += mb_getConjunctionCharacter(this.wms_getmap);
+ if(this.wms_version === "1.0.0"){
+ rq += "WMTVER=" + this.wms_version + "&REQUEST=map";
+ }
+ else{
+ rq += "VERSION=" + this.wms_version + "&REQUEST=getMap&SERVICE=WMS";
+ }
+
+ rq += "&LAYERS=" + layers.join(",");
+ rq += "&WIDTH=" + mapObj.getWidth();
+ rq += "&HEIGHT=" + mapObj.getHeight();
+ rq += "&SRS=" + mapObj.getSRS();
+ rq += "&BBOX=" + mapObj.getExtent();
+ rq += "&STYLES=" + this.getLayerstyles(mapObj).join(",");
+ rq += "&FORMAT=" + this.gui_wms_mapformat;
+ rq += "&EXCEPTIONS=";
+ console.log(rq);
+ return rq;
+};
+
+
+/**
* rephrases the featureInfoRequest
*
* @member wms_const
@@ -103,7 +141,7 @@
wms_const.prototype.getFeatureInfoRequest = function(mapObj, clickPoint){
//check layers and querylayers first
- var layers = this.getLayers();
+ var layers = this.getLayers(mapObj);
var querylayers = this.getQuerylayers();
if(!layers || !querylayers){
@@ -141,18 +179,20 @@
* @return array of layernames
* @type string[]
*/
-wms_const.prototype.getLayers = function(){
+wms_const.prototype.getLayers = function(mapObj){
//visibility of the wms
var wmsIsVisible = (this.gui_wms_visible > 0);
if(!wmsIsVisible){
return false;
}
- //TODO: consider scalehints
visibleLayers = [];
for(var i=0; i< this.objLayer.length; i++){
- if(this.objLayer[i].gui_layer_visible === 1 && this.objLayer[i].layer_parent !== null ){
- visibleLayers.push(this.objLayer[i].layer_name);
+ if(this.objLayer[i].gui_layer_visible === 1 && this.objLayer[i].layer_parent !== ''){
+ if(this.objLayer[i].checkScale(mapObj)){
+ //console.log("checkLayer: " + this.objLayer[i].layer_name);
+ visibleLayers.push(this.objLayer[i].layer_name);
+ }
}
}
if(visibleLayers.length === 0){
@@ -161,6 +201,7 @@
return visibleLayers;
};
+
/**
* get the actual style of all visible layers
*
@@ -168,8 +209,8 @@
* @return commaseparated list of actual layerstyles
* @type string
*/
-wms_const.prototype.getLayerstyles = function(){
- var layers = this.getLayers();
+wms_const.prototype.getLayerstyles = function(mapObj){
+ var layers = this.getLayers(mapObj);
var layerstyles = '';
var styles = [];
if(layers){
@@ -207,7 +248,7 @@
wms_const.prototype.getQuerylayers = function(){
queryLayers = [];
for(var i=0; i< this.objLayer.length; i++){
- if(this.objLayer[i].gui_layer_querylayer === 1 && this.objLayer[i].layer_parent !== null ){
+ if(this.objLayer[i].gui_layer_querylayer === 1 && this.objLayer[i].layer_parent !== '' ){
queryLayers.push(this.objLayer[i].layer_name);
}
}
@@ -286,8 +327,8 @@
parseInt(gui_layer_visible),
parseInt(gui_layer_queryable),
parseInt(gui_layer_querylayer),
- gui_layer_minscale,
- gui_layer_maxscale,
+ parseInt(gui_layer_minscale),
+ parseInt(gui_layer_maxscale),
gui_layer_wfs_featuretype );
}
function layer_addEpsg(epsg,minx,miny,maxx,maxy){
@@ -345,4 +386,24 @@
this.gui_layer_style;
this.layer_style = [];
wms_layer_count++;
-}
\ No newline at end of file
+}
+/**
+ * check the scale of the layer
+ *
+ * @member wms_layer
+ * @param Object mapObj the mapbender mapObject of the layer
+ * @return boolean if the layer is in scale or not
+ * @type boolean
+ */
+wms_layer.prototype.checkScale = function(mapObj){
+ var minScale = this.gui_layer_minscale;
+ var maxScale = this.gui_layer_maxscale;
+ var currentScale = mapObj.getScale();
+ if(minScale === 0 && maxScale === 0){
+ return true;
+ }
+ if(minScale < currentScale || maxScale > currentScale){
+ return false;
+ }
+ return true;
+};
\ No newline at end of file
More information about the Mapbender_commits
mailing list