Merge changes from trunk to 2.4:
svn merge trunk/openlayers/@3088 trunk/openlayers/@HEAD branches/openlayers/2.4/ Changes include: * Improved GML parsing to catch fid better * Letting panels pass mouseup through * Fixing small bug in panel example * Display of markers/layers when out of range on startup. * Fix to aspect ratio of Overview Map. git-svn-id: http://svn.openlayers.org/branches/openlayers/2.4@3112 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -520,8 +520,8 @@ OpenLayers.Control.OverviewMap.prototype =
|
||||
this.ovmap.size.w - this.wComp);
|
||||
this.extentRectangle.style.top = parseInt(top) + 'px';
|
||||
this.extentRectangle.style.left = parseInt(left) + 'px';
|
||||
this.extentRectangle.style.height = parseInt(bottom - top)+ 'px';
|
||||
this.extentRectangle.style.width = parseInt(right - left) + 'px';
|
||||
this.extentRectangle.style.height = parseInt(Math.max(bottom - top, 0))+ 'px';
|
||||
this.extentRectangle.style.width = parseInt(Math.max(right - left, 0)) + 'px';
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -129,6 +129,8 @@ OpenLayers.Control.Panel.prototype =
|
||||
// Give each control a panel_div which will be used later.
|
||||
// Access to this div is via the panel_div attribute of the
|
||||
// control added to the panel.
|
||||
// Also, stop mousedowns and clicks, but don't stop mouseup,
|
||||
// since they need to pass through.
|
||||
for (var i = 0; i < controls.length; i++) {
|
||||
var element = document.createElement("div");
|
||||
var textNode = document.createTextNode(" ");
|
||||
@@ -137,8 +139,6 @@ OpenLayers.Control.Panel.prototype =
|
||||
this.onClick.bind(this, controls[i]));
|
||||
OpenLayers.Event.observe(controls[i].panel_div, "mousedown",
|
||||
OpenLayers.Event.stop.bindAsEventListener());
|
||||
OpenLayers.Event.observe(controls[i].panel_div, "mouseup",
|
||||
OpenLayers.Event.stop.bindAsEventListener());
|
||||
}
|
||||
|
||||
if (this.map) { // map.addControl() has already been called on the panel
|
||||
|
||||
@@ -84,13 +84,11 @@ OpenLayers.Format.GML.prototype =
|
||||
|
||||
var feature = new OpenLayers.Feature.Vector();
|
||||
|
||||
if (xmlNode.firstChild.attributes && xmlNode.firstChild.attributes['fid']) {
|
||||
feature.fid = xmlNode.firstChild.attributes['fid'].nodeValue;
|
||||
}
|
||||
|
||||
// match MultiPolygon
|
||||
if (OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, this.gmlns, "gml", "MultiPolygon").length != 0) {
|
||||
var multipolygon = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, this.gmlns, "gml", "MultiPolygon")[0];
|
||||
feature.fid = multipolygon.parentNode.parentNode.getAttribute('fid');
|
||||
|
||||
geom = new OpenLayers.Geometry.MultiPolygon();
|
||||
var polygons = OpenLayers.Ajax.getElementsByTagNameNS(multipolygon,
|
||||
this.gmlns, "gml", "Polygon");
|
||||
@@ -104,6 +102,7 @@ OpenLayers.Format.GML.prototype =
|
||||
this.gmlns, "gml", "MultiLineString").length != 0) {
|
||||
var multilinestring = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode,
|
||||
this.gmlns, "gml", "MultiLineString")[0];
|
||||
feature.fid = multilinestring.parentNode.parentNode.getAttribute('fid');
|
||||
|
||||
geom = new OpenLayers.Geometry.MultiLineString();
|
||||
var lineStrings = OpenLayers.Ajax.getElementsByTagNameNS(multilinestring, this.gmlns, "gml", "LineString");
|
||||
@@ -122,6 +121,7 @@ OpenLayers.Format.GML.prototype =
|
||||
this.gmlns, "gml", "MultiPoint").length != 0) {
|
||||
var multiPoint = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode,
|
||||
this.gmlns, "gml", "MultiPoint")[0];
|
||||
feature.fid = multiPoint.parentNode.parentNode.getAttribute('fid');
|
||||
|
||||
geom = new OpenLayers.Geometry.MultiPoint();
|
||||
|
||||
@@ -138,6 +138,7 @@ OpenLayers.Format.GML.prototype =
|
||||
this.gmlns, "gml", "Polygon").length != 0) {
|
||||
var polygon = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode,
|
||||
this.gmlns, "gml", "Polygon")[0];
|
||||
feature.fid = polygon.parentNode.parentNode.getAttribute('fid');
|
||||
|
||||
geom = this.parsePolygonNode(polygon);
|
||||
}
|
||||
@@ -146,6 +147,8 @@ OpenLayers.Format.GML.prototype =
|
||||
this.gmlns, "gml", "LineString").length != 0) {
|
||||
var lineString = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode,
|
||||
this.gmlns, "gml", "LineString")[0];
|
||||
feature.fid = lineString.parentNode.parentNode.getAttribute('fid');
|
||||
|
||||
p = this.parseCoords(lineString);
|
||||
if (p.points) {
|
||||
geom = new OpenLayers.Geometry.LineString(p.points);
|
||||
@@ -157,6 +160,7 @@ OpenLayers.Format.GML.prototype =
|
||||
this.gmlns, "gml", "Point").length != 0) {
|
||||
var point = OpenLayers.Ajax.getElementsByTagNameNS(xmlNode,
|
||||
this.gmlns, "gml", "Point")[0];
|
||||
feature.fid = point.parentNode.parentNode.getAttribute('fid');
|
||||
|
||||
p = this.parseCoords(point);
|
||||
if (p.points) {
|
||||
|
||||
@@ -286,6 +286,8 @@ OpenLayers.Layer.prototype = {
|
||||
|
||||
if (!this.isBaseLayer) {
|
||||
this.inRange = this.calculateInRange();
|
||||
var show = ((this.visibility) && (this.inRange));
|
||||
this.div.style.display = show ? "" : "none";
|
||||
}
|
||||
|
||||
// deal with gutters
|
||||
|
||||
@@ -21,6 +21,15 @@ OpenLayers.Layer.Markers.prototype =
|
||||
/** internal marker list
|
||||
* @type Array(OpenLayers.Marker) */
|
||||
markers: null,
|
||||
|
||||
|
||||
/** internal state of drawing. This is a workaround for the fact
|
||||
* that the map does not call moveTo with a zoomChanged when the
|
||||
* map is first starting up. This lets us catch the case where we
|
||||
* have *never* drawn the layer, and draw it even if the zoom hasn't
|
||||
* changed.
|
||||
* @type Boolean */
|
||||
drawn: false,
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
@@ -51,8 +60,9 @@ OpenLayers.Layer.Markers.prototype =
|
||||
moveTo:function(bounds, zoomChanged, dragging) {
|
||||
OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
|
||||
|
||||
if (zoomChanged) {
|
||||
if (zoomChanged || !this.drawn) {
|
||||
this.redraw();
|
||||
this.drawn = true;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -248,6 +248,12 @@ OpenLayers.Layer.Vector.prototype =
|
||||
this.features = OpenLayers.Util.removeItem(this.features, feature);
|
||||
|
||||
this.renderer.eraseGeometry(feature.geometry);
|
||||
|
||||
//in the case that this feature is one of the selected features,
|
||||
// remove it from that array as well.
|
||||
if (OpenLayers.Util.indexOf(this.selectedFeatures, feature) != -1){
|
||||
OpenLayers.Util.removeItem(this.selectedFeatures, feature);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user