OpenLayers выясняет уровень масштабирования пользователя с помощью стратегии BBOX - PullRequest
3 голосов
/ 09 апреля 2011

В настоящее время я делаю сайт, который использует OpenLayers и строит графики со стратегией BBOX.Потенциально может быть много точек для построения графика в БД.Когда OpenLayers отправляет координаты BBOX, я бы хотел, чтобы OpenLayers отправил текущий уровень масштабирования.Я бы использовал этот уровень масштабирования, чтобы решить, отправлять ли мне все результаты или 10 самых последних записей.Может ли OpenLayers отправлять серверу информацию о текущем уровне масштабирования, когда OpenLayers отправляет информацию BBOX?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

Не по умолчанию, но вы можете переопределить функцию triggerRead и добавить уровень масштабирования самостоятельно.Примерно так (не проверено):

OpenLayers.Strategy.BBOX.prototype.triggerRead = 
function() {
    if (this.response) {
        this.layer.protocol.abort(this.response);
        this.layer.events.triggerEvent("loadend");
    }
    this.layer.events.triggerEvent("loadstart");
    this.response = this.layer.protocol.read({
        filter: this.createFilter(),
        callback: this.merge,
        scope: this,
        params: {center: this.layer.getZoomForExtent()}
    });
}

Или, конечно, просто рассчитать уровень масштабирования с параметрами BBOX.

0 голосов
/ 10 сентября 2013

Я проверил это, и оно работает:

        //override BBOX strategy in order to pass zoom
        OpenLayers.Strategy.BBOX.prototype.triggerRead = 
        function() {
            if (this.response) {
                this.layer.protocol.abort(this.response);
                this.layer.events.triggerEvent("loadend");
            }
            this.layer.events.triggerEvent("loadstart");
            this.response = this.layer.protocol.read({
                filter: this.createFilter(),
                callback: this.merge,
                scope: this,
                params: {zoom: this.layer.map.getZoom()}

            });
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...