पर मौसम रडार पाश मैं एक Google मानचित्र पर लूपिंग रडार एनीमेशन को लागू करने की कोशिश कर रहा हूं। यह साइट: http://mesonet.agron.iastate.edu/ogc/ वर्तमान समय से 60 मिनट पहले रडार छवियां प्रदान करती है।Google मानचित्र एपीआई 3
वर्तमान में, मैं इन छवियों को लोड कर रहा हूं और मानचित्र पर प्रत्येक छवि को जोड़ने/निकालने के लिए टाइमर का उपयोग कर रहा हूं। यह तकनीकी रूप से काम करता है, लेकिन परिणाम बहुत चंचल है। ऐसा कोई उल्लेखनीय समय नहीं है जहां मानचित्र पर कोई रडार छवि दिखाई दे। टाइमआउट को कम करने से, केवल प्रभाव खराब हो जाता है क्योंकि रडार छवि में इसे हटाने से पहले लोड करने के लिए पर्याप्त समय नहीं होता है।
क्या एनीमेशन को सुगम बनाने के लिए कोई तकनीक है? या मैं इस सब गलत के बारे में जा रहा हूँ?
कोड
var map;
var imageArray = [];
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(42.5, -95.5),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
//Load Images and add them to imageArray
tileNEX = new google.maps.ImageMapType({
getTileUrl: function(tile, zoom) {
return "http://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913/" + zoom + "/" + tile.x + "/" + tile.y +".png?"+ (new Date()).getTime();
},
tileSize: new google.maps.Size(256, 256),
opacity:0.60,
name : 'NEXRAD',
isPng: true,
});
imageArray.push(tileNEX);
tileNEX5 = new google.maps.ImageMapType({
getTileUrl: function(tile, zoom) {
return "http://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913-m05m/" + zoom + "/" + tile.x + "/" + tile.y +".png?"+ (new Date()).getTime();
},
tileSize: new google.maps.Size(256, 256),
opacity:0.60,
name : 'NEXRAD5',
isPng: true,
});
imageArray.push(tileNEX5);
tileNEX10 = new google.maps.ImageMapType({
getTileUrl: function(tile, zoom) {
return "http://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913-m10m/" + zoom + "/" + tile.x + "/" + tile.y +".png?"+ (new Date()).getTime();
},
tileSize: new google.maps.Size(256, 256),
opacity:0.60,
name : 'NEXRAD10',
isPng: true,
optimized: false
});
imageArray.push(tileNEX10);
tileNEX15 = new google.maps.ImageMapType({
getTileUrl: function(tile, zoom) {
return "http://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913-m15m/" + zoom + "/" + tile.x + "/" + tile.y +".png?"+ (new Date()).getTime();
},
tileSize: new google.maps.Size(256, 256),
opacity:0.60,
name : 'NEXRAD15',
isPng: true,
});
imageArray.push(tileNEX15);
tileNEX20 = new google.maps.ImageMapType({
getTileUrl: function(tile, zoom) {
return "http://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913-m20m/" + zoom + "/" + tile.x + "/" + tile.y +".png?"+ (new Date()).getTime();
},
tileSize: new google.maps.Size(256, 256),
opacity:0.60,
name : 'NEXRAD20',
isPng: true,
});
imageArray.push(tileNEX20);
animateRadar(imageArray);
}
google.maps.event.addDomListener(window, 'load', initialize);
function animateRadar(images) {
map.overlayMapTypes.push(images[0]);//Add first image
var index = 0;
window.setInterval(function(){
map.overlayMapTypes.pop();//Remove previous image
index++;
if(index >= images.length){
index = 0;
}
map.overlayMapTypes.push(images[index]);//Add new image
}, 1000);
}
यह पूरी तरह से काम करता है! क्या यह दिन अपडेट होने के साथ ऑटो-अपडेट होगा, या आपको पृष्ठ पर रीफ्रेश अंतराल डालना होगा? – Pat
मौसम टाइल्स को ताज़ा करने की आवश्यकता होगी। – schn0573