Ранее я задавал этот вопрос безрезультатно, поэтому подумал, что поставить его здесь будет хорошей идеей.
Вот пример на:
Как обновить / обновить слой KML в OpenLayers. Динамический слой KML. Смотрите мой ответ ниже.
TLDR: см. Мой ответ ниже.
Ранее я задавал этот вопрос безрезультатно, поэтому подумал, что поставить его здесь будет хорошей идеей.
Вот пример на:
Как обновить / обновить слой KML в OpenLayers. Динамический слой KML. Смотрите мой ответ ниже.
TLDR: см. Мой ответ ниже.
Похоже, мне было трудно найти информацию по этому поводу, я бы добавил:
1)
Создайте слой KML:
//Define your KML layer
var MyKmlLayer= new OpenLayers.Layer.Vector("This Is My KML Layer", {
//Set your projection and strategies//
projection: new OpenLayers.Projection("EPSG:4326"),
strategies: [new OpenLayers.Strategy.Fixed()],
//set the protocol with a url//
protocol: new OpenLayers.Protocol.HTTP({
//set the url to your variable//
url: mykmlurl,
//format this layer as KML//
format: new OpenLayers.Format.KML({
//maxDepth is how deep it will follow network links//
maxDepth: 1,
//extract styles from the KML Layer//
extractStyles: true,
//extract attributes from the KML Layer//
extractAttributes: true
})
})
});
2)
Установите URL для слоя KML:
//note that I have host equal to location// //Math.Random will stop caching//
var mykmlurl= 'http://' + host + '/KML?key=' + Math.random();
3)
Установите интервал обновления вашего слоя:
//function called// //timer// //layer to refresh//
window.setInterval(UpdateKmlLayer, 5000, MyKmlLayer);
4)
Функция для обновления слоя:
function UpdateKmlLayer(layer) {
//setting loaded to false unloads the layer//
layer.loaded = false;
//setting visibility to true forces a reload of the layer//
layer.setVisibility(true);
//the refresh will force it to get the new KML data//
layer.refresh({ force: true, params: { 'key': Math.random()} });
//- <3 from Thqr -//
}
Надежды, что это облегчает для некоторых других там. Удачи.
Я возился с этим безрезультатно. Не возражает ли кто-нибудь взглянуть на мой код и сказать, что я делаю неправильно? Спасибо!
Извините, мне пришлось исправить ваши несовершенные коды. Должен бежать на этот раз.
источник
Возможно, вы захотите взглянуть на стратегию обновления. http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Strategy/Refresh-js.html
источник
не проверено но как то так?
источник