Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if image exists in typescript

I have a google maps implementation where I use map tiles which are located online. But if I go outside the tile area it throws me errors because it cant find that images.. How do I make an if statement to return null when they don't exist?

What I was thinking was about this because I include jquery:

$.get(url)
.done(function() { 
  // exists code
  return `http://www.blablabla.com/grey-tiles/${zoom}/${coord.x}/${coord.y}.png`
}).fail(function() { 
    // not exists code
   return null;
})

but this is not working for me this is the constructor of my component:

 constructor(){
this.imageMapOptions = {
  getTileUrl: (coord: ImageMapTypeCoord, zoom: number) => {
     return `http://www.blablabla.com/grey-tiles/${zoom}/${coord.x}/${coord.y}.png`
  },
   tileSize: { height: 256, width: 256 },
   maxZoom: 18,
   minZoom: 16,
   radius: 1738000,
   name: 'Beeksebergen'
 };    
}
like image 484
Sireini Avatar asked Oct 31 '22 02:10

Sireini


1 Answers

Something like this might work:

var url = 'https://example.com/image.png';
return new Promise((resolve, reject) => {
  return $('<img>')
    .on('error', reject.bind(null, url))
    .on("load", resolve.bind(null, url))
    .appendTo(document.body)
    .css({ "position": "absolute", top: -9999, left: -9999 })
    .on("error load", $.fn.remove)
    .attr("src", url);
});
like image 77
Andreas Louv Avatar answered Nov 12 '22 10:11

Andreas Louv