correctly parse ScaleHint values from WMS GetCapabilities response, thanks elemoine for the testcase, r=elemoine (closes #2150)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@9571 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -184,10 +184,10 @@ OpenLayers.Format.WMSCapabilities.v1_1 = OpenLayers.Class(
|
|||||||
var rad2 = Math.pow(2, 0.5);
|
var rad2 = Math.pow(2, 0.5);
|
||||||
var ipm = OpenLayers.INCHES_PER_UNIT["m"];
|
var ipm = OpenLayers.INCHES_PER_UNIT["m"];
|
||||||
layer.maxScale = parseFloat(
|
layer.maxScale = parseFloat(
|
||||||
((rad2 * min) * ipm * OpenLayers.DOTS_PER_INCH).toPrecision(13)
|
((min / rad2) * ipm * OpenLayers.DOTS_PER_INCH).toPrecision(13)
|
||||||
);
|
);
|
||||||
layer.minScale = parseFloat(
|
layer.minScale = parseFloat(
|
||||||
((rad2 * max) * ipm * OpenLayers.DOTS_PER_INCH).toPrecision(13)
|
((max / rad2) * ipm * OpenLayers.DOTS_PER_INCH).toPrecision(13)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -311,4 +311,4 @@ OpenLayers.Format.WMSCapabilities.v1_1 = OpenLayers.Class(
|
|||||||
|
|
||||||
CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1"
|
CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1"
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -54,13 +54,25 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_ogc(t) {
|
function test_ogc(t) {
|
||||||
t.plan(12)
|
t.plan(14)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set up
|
||||||
|
*/
|
||||||
|
|
||||||
|
// needed for the minScale/maxScale test, see below
|
||||||
|
var dpi = OpenLayers.DOTS_PER_INCH;
|
||||||
|
OpenLayers.DOTS_PER_INCH = 90.71;
|
||||||
|
|
||||||
var xml = document.getElementById("ogcsample").firstChild.nodeValue;
|
var xml = document.getElementById("ogcsample").firstChild.nodeValue;
|
||||||
var doc = new OpenLayers.Format.XML().read(xml);
|
var doc = new OpenLayers.Format.XML().read(xml);
|
||||||
|
|
||||||
var obj = new OpenLayers.Format.WMSCapabilities().read(doc);
|
var obj = new OpenLayers.Format.WMSCapabilities().read(doc);
|
||||||
var capability = obj.capability;
|
var capability = obj.capability;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test
|
||||||
|
*/
|
||||||
|
|
||||||
var attribution = capability.layers[2].attribution;
|
var attribution = capability.layers[2].attribution;
|
||||||
t.eq(attribution.title, "State College University", "attribution title parsed correctly.");
|
t.eq(attribution.title, "State College University", "attribution title parsed correctly.");
|
||||||
@@ -79,6 +91,28 @@
|
|||||||
t.eq(metadataURLs[0].type, "FGDC", "type parsed correctly.");
|
t.eq(metadataURLs[0].type, "FGDC", "type parsed correctly.");
|
||||||
t.eq(metadataURLs[0].format, "text/plain", "format parsed correctly.");
|
t.eq(metadataURLs[0].format, "text/plain", "format parsed correctly.");
|
||||||
t.eq(metadataURLs[0].href, "http://www.university.edu/metadata/roads.txt", "href parsed correctly.");
|
t.eq(metadataURLs[0].href, "http://www.university.edu/metadata/roads.txt", "href parsed correctly.");
|
||||||
|
|
||||||
|
/*
|
||||||
|
Test minScale and maxScale
|
||||||
|
|
||||||
|
For Mapserver
|
||||||
|
|
||||||
|
<ScaleHint min="0.395998292216226" max="98.9995730540565" />
|
||||||
|
|
||||||
|
corresponds to (RESOLUTION keyword in MAP file has value of 90.71):
|
||||||
|
|
||||||
|
MAXSCALE 250000
|
||||||
|
MINSCALE 1000
|
||||||
|
|
||||||
|
*/
|
||||||
|
t.eq(capability.layers[0].minScale, 250000, "layer.minScale is correct");
|
||||||
|
t.eq(capability.layers[0].maxScale, 1000, "layer.maxScale is correct");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Tear down
|
||||||
|
*/
|
||||||
|
|
||||||
|
OpenLayers.DOTS_PER_INCH = dpi;
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@@ -310,6 +344,7 @@ Changes:
|
|||||||
</LegendURL>
|
</LegendURL>
|
||||||
|
|
||||||
</Style>
|
</Style>
|
||||||
|
<ScaleHint min="0.395998292216226" max="98.9995730540565" />
|
||||||
</Layer>
|
</Layer>
|
||||||
<Layer queryable="1">
|
<Layer queryable="1">
|
||||||
<Name>RIVERS_1M</Name>
|
<Name>RIVERS_1M</Name>
|
||||||
|
|||||||
Reference in New Issue
Block a user