DATAtourisme

Erreur requête _geo_distance sur fichier HDT

Bonjour et tout d’abord merci pour votre travail !

J’utilise l’API avec succès sur des requêtes simples du type

$resolver = new HdtResolver('flux.hdt');
$api = \Datatourisme\Api\DatatourismeApi::create($resolver);
$result = $api->process('{
    poi ( 
        size:10,
        filters:[
            {
                allowedPersons:{
                    _eq:30
                }
            }
        ]
    ) { 
        results { 
            rdfs_label,
            dc_identifier
        } 
    } 
}');

Je rencontre une erreur dès que j’utilise un filtre de location de type _geodistance ou _geo_bounding :

$result = $api->process('{
    poi(filters: [
        { 
            isLocatedAt: {
                schema_geo: { _geo_distance: {lng: "44.7", lat: "-0.5", distance: "10" } }
            }
        }
    ]){
        total
    }
}');

Erreur retournée :

["errors"]=>
  array(1) {
    [0]=>
    array(2) {
      ["message"]=>
      string(26) "<> Uri contain bad symbols"
      ["code"]=>
      int(1)
    }
  }

Version : datatourisme/api (3.1.6)

Est-ce une limitation liée à l’utilisation des fichiers hdt ? Pouvez-vous me débloquer ?

Merci d’avance,

Bonjour,

Malheureusement, il s’agit effectivement d’une limitation liée aux fichiers HDT. Pour faire des requêtes géospatiales, nous vous recommandons d’utiliser Blazegraph.

Cordialement

Merci de votre réponse !

En restant sur l’utilisation d’un fichier HDT, est-ce qu’une requête portant sur le département ou la région aboutirait ? Quelle en serait la syntaxe ?

Merci d’avance et bonne journée,

Pour celles et ceux cherchant à cibler une ville :

filters: [
    { 
        isLocatedAt: {
            schema_address: { hasAddressCity : { insee:{_eq:"75056"} }  }  
        }
    }
]

Un département :

filters: [
    { 
        isLocatedAt: {
            schema_address: { hasAddressCity : { isPartOfDepartment :{insee:{_eq:"01"} }}  }  
        }
    }
]

Bonne continuation