Add projection argument when loading features
This commit is contained in:
@@ -908,7 +908,7 @@
|
|||||||
* @typedef {Object} olx.source.RemoteVectorOptions
|
* @typedef {Object} olx.source.RemoteVectorOptions
|
||||||
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
|
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
|
||||||
* @property {ol.Extent|undefined} extent Extent.
|
* @property {ol.Extent|undefined} extent Extent.
|
||||||
* @property {function(ol.Extent, number): string} extentUrlFunction Extent URL function.
|
* @property {function(ol.Extent, number, ol.proj.Projection): string} extentUrlFunction Extent URL function.
|
||||||
* @property {Object.<string, string>|undefined} headers Headers.
|
* @property {Object.<string, string>|undefined} headers Headers.
|
||||||
* @property {ol.format.Feature} format Format.
|
* @property {ol.format.Feature} format Format.
|
||||||
* @property {function(ol.Extent, number): Array.<ol.Extent>} loadingFunction Loading function.
|
* @property {function(ol.Extent, number): Array.<ol.Extent>} loadingFunction Loading function.
|
||||||
|
|||||||
@@ -170,7 +170,9 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
|
|||||||
}
|
}
|
||||||
|
|
||||||
var frameStateExtent = frameState.extent;
|
var frameStateExtent = frameState.extent;
|
||||||
var frameStateResolution = frameState.view2DState.resolution;
|
var view2DState = frameState.view2DState;
|
||||||
|
var projection = view2DState.projection;
|
||||||
|
var resolution = view2DState.resolution;
|
||||||
var pixelRatio = frameState.pixelRatio;
|
var pixelRatio = frameState.pixelRatio;
|
||||||
var vectorLayerRevision = vectorLayer.getRevision();
|
var vectorLayerRevision = vectorLayer.getRevision();
|
||||||
var vectorLayerRenderOrder = vectorLayer.getRenderOrder();
|
var vectorLayerRenderOrder = vectorLayer.getRenderOrder();
|
||||||
@@ -179,7 +181,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!this.dirty_ &&
|
if (!this.dirty_ &&
|
||||||
this.renderedResolution_ == frameStateResolution &&
|
this.renderedResolution_ == resolution &&
|
||||||
this.renderedRevision_ == vectorLayerRevision &&
|
this.renderedRevision_ == vectorLayerRevision &&
|
||||||
this.renderedRenderOrder_ == vectorLayerRenderOrder &&
|
this.renderedRenderOrder_ == vectorLayerRenderOrder &&
|
||||||
ol.extent.containsExtent(this.renderedExtent_, frameStateExtent)) {
|
ol.extent.containsExtent(this.renderedExtent_, frameStateExtent)) {
|
||||||
@@ -204,10 +206,10 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
|
|||||||
if (!goog.isDef(styleFunction)) {
|
if (!goog.isDef(styleFunction)) {
|
||||||
styleFunction = ol.feature.defaultStyleFunction;
|
styleFunction = ol.feature.defaultStyleFunction;
|
||||||
}
|
}
|
||||||
var tolerance = frameStateResolution / (2 * pixelRatio);
|
var tolerance = resolution / (2 * pixelRatio);
|
||||||
var replayGroup = new ol.render.canvas.ReplayGroup(tolerance, extent,
|
var replayGroup =
|
||||||
frameStateResolution);
|
new ol.render.canvas.ReplayGroup(tolerance, extent, resolution);
|
||||||
vectorSource.loadFeatures(extent, frameStateResolution);
|
vectorSource.loadFeatures(extent, resolution, projection);
|
||||||
var renderFeature =
|
var renderFeature =
|
||||||
/**
|
/**
|
||||||
* @param {ol.Feature} feature Feature.
|
* @param {ol.Feature} feature Feature.
|
||||||
@@ -216,7 +218,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
|
|||||||
function(feature) {
|
function(feature) {
|
||||||
goog.asserts.assert(goog.isDef(styleFunction));
|
goog.asserts.assert(goog.isDef(styleFunction));
|
||||||
var dirty = this.renderFeature(
|
var dirty = this.renderFeature(
|
||||||
feature, frameStateResolution, pixelRatio, styleFunction, replayGroup);
|
feature, resolution, pixelRatio, styleFunction, replayGroup);
|
||||||
this.dirty_ = this.dirty_ || dirty;
|
this.dirty_ = this.dirty_ || dirty;
|
||||||
};
|
};
|
||||||
if (!goog.isNull(vectorLayerRenderOrder)) {
|
if (!goog.isNull(vectorLayerRenderOrder)) {
|
||||||
@@ -228,7 +230,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
|
|||||||
}
|
}
|
||||||
replayGroup.finish();
|
replayGroup.finish();
|
||||||
|
|
||||||
this.renderedResolution_ = frameStateResolution;
|
this.renderedResolution_ = resolution;
|
||||||
this.renderedRevision_ = vectorLayerRevision;
|
this.renderedRevision_ = vectorLayerRevision;
|
||||||
this.renderedRenderOrder_ = vectorLayerRenderOrder;
|
this.renderedRenderOrder_ = vectorLayerRenderOrder;
|
||||||
this.replayGroup_ = replayGroup;
|
this.replayGroup_ = replayGroup;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ ol.source.RemoteVector = function(options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {function(ol.Extent, number): string}
|
* @type {function(ol.Extent, number, ol.proj.Projection): string}
|
||||||
*/
|
*/
|
||||||
this.extentUrlFunction_ = options.extentUrlFunction;
|
this.extentUrlFunction_ = options.extentUrlFunction;
|
||||||
|
|
||||||
@@ -74,7 +74,8 @@ ol.source.RemoteVector.prototype.addFeaturesInternal = function(features) {
|
|||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.source.RemoteVector.prototype.loadFeatures = function(extent, resolution) {
|
ol.source.RemoteVector.prototype.loadFeatures =
|
||||||
|
function(extent, resolution, projection) {
|
||||||
var loadedExtents = this.loadedExtents_;
|
var loadedExtents = this.loadedExtents_;
|
||||||
var extentsToLoad = this.loadingFunction_(extent, resolution);
|
var extentsToLoad = this.loadingFunction_(extent, resolution);
|
||||||
var i, ii;
|
var i, ii;
|
||||||
@@ -89,7 +90,7 @@ ol.source.RemoteVector.prototype.loadFeatures = function(extent, resolution) {
|
|||||||
return ol.extent.containsExtent(object.extent, extentToLoad);
|
return ol.extent.containsExtent(object.extent, extentToLoad);
|
||||||
});
|
});
|
||||||
if (!alreadyLoaded) {
|
if (!alreadyLoaded) {
|
||||||
var url = this.extentUrlFunction_(extentToLoad, resolution);
|
var url = this.extentUrlFunction_(extentToLoad, resolution, projection);
|
||||||
this.loadFeaturesFromURL(url);
|
this.loadFeaturesFromURL(url);
|
||||||
loadedExtents.insert(extentToLoad, {extent: extentToLoad.slice()});
|
loadedExtents.insert(extentToLoad, {extent: extentToLoad.slice()});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ goog.require('goog.events.Event');
|
|||||||
goog.require('goog.events.EventType');
|
goog.require('goog.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.ObjectEventType');
|
goog.require('ol.ObjectEventType');
|
||||||
|
goog.require('ol.proj');
|
||||||
goog.require('ol.source.Source');
|
goog.require('ol.source.Source');
|
||||||
goog.require('ol.structs.RBush');
|
goog.require('ol.structs.RBush');
|
||||||
|
|
||||||
@@ -340,6 +341,7 @@ ol.source.Vector.prototype.isEmpty = function() {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @param {number} resolution Resolution.
|
* @param {number} resolution Resolution.
|
||||||
|
* @param {ol.proj.Projection} projection Projection.
|
||||||
*/
|
*/
|
||||||
ol.source.Vector.prototype.loadFeatures = goog.nullFunction;
|
ol.source.Vector.prototype.loadFeatures = goog.nullFunction;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user