Как получить объекты в виде векторного слоя, который создается с использованием протокола? - PullRequest
0 голосов
/ 03 апреля 2012

Я изучаю OpenLayers сейчас. Я обнаружил странную вещь в векторном слое, когда использовал протокол для его создания, например:

 var scheldtoutflow = new OpenLayers.Layer.Vector("scheldtoutflow", {
     projection: new OpenLayers.Projection("EPSG:900913"),
     strategies: [new OpenLayers.Strategy.Fixed()],
     protocol: new OpenLayers.Protocol.HTTP({
               url: "data/scheldtoutflow",
               format: new OpenLayers.Format.GeoJSON()
            }),
               visibility: false
          });

когда я отлаживал этот код, я обнаружил, что список функций для этого слоя пуст. Только если я зарегистрирую некоторые события в слое, например выберите функцию и т. д., список функций может стать правильным.

Кто-нибудь знает, почему это так? Большое спасибо.

Ура, Сюань

1 Ответ

1 голос
/ 18 апреля 2012

Похоже, что эта проблема может быть очень похожа на этот вопрос . Я думаю, что вы пытаетесь протестировать встроенный список функций, в то время как вызов для заполнения функций будет вызывать HTTP-запрос асинхронно. Функции будут пусты, так как вы будете их опрашивать до возвращения HTTP-запроса. Чтобы сделать это правильно, вам нужно добавить обработчик в событие загрузки слоя , чтобы объединить функции

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