जवाबों:
यह देखा गया कि इस बारे में जानकारी प्राप्त करना मेरे लिए काफी कठिन था क्योंकि मैं इसे जोड़ूंगा:
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)
KML परत के लिए URL सेट करें:
//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 -//
}
आशा है कि यह वहाँ कुछ अन्य लोगों के लिए आसान बनाता है। सौभाग्य।
मैं इसके साथ कोई फायदा नहीं हुआ। क्या कोई मेरे कोड को देखेगा और मुझे बताएगा कि मैं क्या गलत कर रहा हूं? धन्यवाद!
<html>
<head>
<title>Test</title>
<link rel="stylesheet" href="http://openlayers.org/api/theme/default/style.css" type="text/css" />
<link rel="stylesheet" href="http://openlayers.org/dev/examples/style.css" type="text/css" />
<script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAl9RMqSzhPUXAfeBCXOussRTQDbvAygy0cfGJr8dEMAYKf3RWNBQqP9mjKIsqTfmAlz5LOJ3Xpy5s4w'></script>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init() {
// Create the map object
map = new OpenLayers.Map('map');
// Create a Google layer
var gmap = new OpenLayers.Layer.Google(
"Google Streets", // the default
{numZoomLevels: 20}
);
// Add layer to map
map.addLayer(gmap);
map.setCenter(new OpenLayers.LonLat(-112.1161, 33.6636), 13);
}
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: C:/Users/person/desktop/test.kml,
//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
})
})
});
var proposedanchorpositionurl = 'http://' + host + '/KML?key=' + Math.random();
window.setInterval(UpdateKmlLayer, 5000, MyKmlLayer);
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 -//
}
</script>
</head>
<body onload="init()">
<h1 id="title">test</h1>
<div id="map" class=""></div>
</body>
</html>
इसलिए क्षमा करें, मुझे आपके अपूर्ण कोड को सही करना पड़ा। इस समय चलना चाहिए।
आप रिफ्रेश रणनीति को देखना चाह सकते हैं। http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Strategy/Refresh-js.html
इस तरह से अप्रयुक्त लेकिन कुछ?
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init() {
// Create the map object
map = new OpenLayers.Map('map');
// Create a Google layer
var gmap = new OpenLayers.Layer.Google(
"Google Streets", // the default
{numZoomLevels: 20}
);
// Add layer to map
map.addLayer(gmap);
map.setCenter(new OpenLayers.LonLat(-112.1161, 33.6636), 13);
var KMLURL = 'C:/Users/person/desktop/test.kml?' + Math.random();
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: KMLURL,
//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
})
})
});
window.setInterval(UpdateKmlLayer, 5000, MyKmlLayer);
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 -//
}
}
</script>