Fictizia / Curso-JS-para-desarrolladores-web_ed5

FICTIZIA » Curso de JavaScript para desarrolladores web — 5ª Edición
4 stars 11 forks source link

Proyecto (eBirds) de OliverCedres #6

Open UlisesGascon opened 8 years ago

UlisesGascon commented 8 years ago

Hola @OliverCedres

Puedes abrir un repositorio nuevo en GitHub para trabajar en el proyecto.

Sobre lo que hablamos del proyecto... he podido investigar un poco. Te comparto algunos recursos y enlaces útiles.

eBirds

He intentado sacar datos de Madrid y la API no me devuelve nada... imagino que efectivamente solo funcionará para un area geográfica concreta. Pero aún así puede ser interesante trabajar con estos datos.

Desde la propia API puedes localizar los hotspots que utilizan

Avian taxonomy API

Puedes enriquecer los datos científicos relativos a la especie partiendo del nombre común o el nombre científico.

Puedes utilizar este sistema para cargar las imágenes de las aves.

Puede ser muy util utilizar la conexión o el GPS para determinar la posición del usuario.

Te adjunto una guía de MDN para manejar geolocalización de manera nativa. En principio la compatibilidad es muy buena, salvo que trabajes para Opera Mini o IE8

Un abrazo!

OliverCedres commented 8 years ago

Muchas gracias por toda la información.

Lo cierto es que la mayoría de APIs que he encontrado so son muy limitadas en su uso (como el ejemplo de eBirds) o son muy generales y al final la temática pierda interés.

Sin embargo, he encontrado esta EOL y parece que las posibilidades son miles, como muestran en estos ejemplos.

Si es cierto que su información es mucho más densa en lo que concierne sobre EEUU, pero al tener información internacional creo que podría valer, ¿podrías decirme qué te parece?

Un saludo

UlisesGascon commented 8 years ago

Me gusta EOL... sin duda tiene muchos más datos, pero la API no facilita tanta información como nos gustaría.

Por un lado no se puede hacer búsquedas por Geolocalización, pero se puede hacer una busqueda por especie.

{
   "totalResults":6,
   "startIndex":1,
   "itemsPerPage":30,
   "results":[
      {
         "id":1177506,
         "title":"Turdus migratorius Linnaeus 1766",
         "link":"http://eol.org/1177506?action=overview&controller=taxa",
         "content":"Turdus migratorius Linnaeus 1766; Turdus migratorius; Turdus migratorius Linnaeus 1758; Turdus migratorius Linnaeus"
      },
      {
         "id":1250450,
         "title":"Turdus migratorius migratorius Linnaeus, 1766",
         "link":"http://eol.org/1250450?action=overview&controller=taxa",
         "content":"American Robin"
      },
      {
         "id":1134341,
         "title":"Arisaema triphyllum (L.) Schott",
         "link":"http://eol.org/1134341?action=overview&controller=taxa",
         "content":"Jack in the pulpit; Indian jack in the pulpit; Indian Turnip; Jack-in-the-Pulpit; American Wake Robin; Swamp Jack-in-the-pulpit; Small Jack-in-the-Pulpit"
      },
      {
         "id":20893228,
         "title":"Influenza A virus (A/American robin/Georgia/CTR-AIV15/2006)",
         "link":"http://eol.org/20893228?action=overview&controller=taxa",
         "content":"Influenza A virus (A/American robin/Georgia/CTR-AIV15/2006)"
      },
      {
         "id":20893229,
         "title":"Influenza A virus (A/American robin/Idaho/CTR-AIV14/2006)",
         "link":"http://eol.org/20893229?action=overview&controller=taxa",
         "content":"Influenza A virus (A/American robin/Idaho/CTR-AIV14/2006)"
      },
      {
         "id":20893230,
         "title":"Influenza A virus (A/American robin/Washington/CTR-AIV17/2006)",
         "link":"http://eol.org/20893230?action=overview&controller=taxa",
         "content":"Influenza A virus (A/American robin/Washington/CTR-AIV17/2006)"
      }
   ],
   "first":"http://eol.org/api/search/American%20Robin.json?page=1",
   "self":"http://eol.org/api/search/American%20Robin.json?page=1",
   "last":"http://eol.org/api/search/American%20Robin.json?page=1"
}

Partiendo de esto... se puede hacer una segunda llamada para sacar los detalles de un elemento de la colección partiendo de ID que asigna EOL.

{
    "identifier": 994757,
    "scientificName": "Coregonus hoyi (Milner, 1874)",
    "exemplar": false,
    "richness_score": 67.1734,
    "taxonConcepts": [{
        "identifier": 52613084,
        "scientificName": "Coregonus hoyi (Milner, 1874)",
        "nameAccordingTo": "Species 2000 & ITIS Catalogue of Life: April 2013",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "12580922",
        "taxonRank": "Species"
    }, {
        "identifier": 55854339,
        "scientificName": "Coregonus hoyi (Milner, 1874)",
        "nameAccordingTo": "Integrated Taxonomic Information System (ITIS)",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "623394",
        "taxonRank": "Species"
    }, {
        "identifier": 24926578,
        "scientificName": "Coregonus hoyi",
        "nameAccordingTo": "IUCN Red List (Species Assessed for Global Conservation)",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "IUCN-5366"
    }, {
        "identifier": 46520977,
        "scientificName": "Coregonus hoyi (Milner, 1874)",
        "nameAccordingTo": "Integrated Taxonomic Information System (ITIS)",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "623394",
        "taxonRank": "Species"
    }, {
        "identifier": 44721281,
        "scientificName": "Coregonus hoyi (Milner, 1874)",
        "nameAccordingTo": "FishBase (Fish Species)",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "FB-2670"
    }, {
        "identifier": 51319911,
        "scientificName": "Coregonus hoyi",
        "nameAccordingTo": "NCBI Taxonomy",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "59862",
        "taxonRank": "Species"
    }, {
        "identifier": 57398114,
        "scientificName": "Coregonus hoyi",
        "nameAccordingTo": "NCBI Taxonomy",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "59862",
        "taxonRank": "Species"
    }, {
        "identifier": 27947086,
        "scientificName": "Coregonus hoyi (Milner, 1874)",
        "nameAccordingTo": "FishBase (Fish Species)",
        "canonicalForm": "Coregonus hoyi",
        "sourceIdentifier": "FB-2670"
    }]
}

Pero no facilita tantos datos como la propia web. Puedes usar fácilmente EOL como un sistema de búsqueda de especies y combinarlo con las otras APIs para enriquecer los datos.

Un abrazo!

OliverCedres commented 8 years ago

Buenas de nuevo,

En cuanto a añadirle más aPIS, creo que podría incluir la de Avian Taxonomy, y si consigo averiguar si Flicker permite buscar por nombre científico también.

Lo único sería hacer el código de manera que cuando no encuentre algunos de los datos te avise con un mensaje, y saber como unir varias Apis para que aparezca un solo mensaje

UlisesGascon commented 8 years ago

Hola!

El lunes veremos como mezclar APIs y múltiples llamadas... pasando datos de una a otra ;-)

En cuanto a Flickr, te paso algo interesante:

Buscar fotos (filtro tipo texto - título, descripción, etc...):

//... Búsqueda por "Robin American"

{"id":"25701060936","owner":"98711301@N00","secret":"0d65bb3a7f","server":"1456","farm":2,"title":"Born This Way","ispublic":1,"isfriend":0,"isfamily":0},

// ...

Creando URLs de las imágenes partiendo de los datos anteriores

/* Estructura y opciones:
https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}.jpg
https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}_[mstzb].jpg
https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{o-secret}_o.(jpg|gif|png)
*/

// Partiendo del .json:
var farmID = 2;
var serverID = 1456;
var id = 25701060936;
var secret = "0d65bb3a7f";

// Aplicando los datos para generar la URL:
var imagenURL = "https://farm"+farmID+".staticflickr.com/"+serverID+"/"+id+"_"+secret+".jpg";

Resultado: Foto_Robin_Americano

Buen finde!