Projet

Général

Profil

Development #22218

géocodage: pouvoir spécifier des urls différentes pour le géocodage et géocodage inverse

Ajouté par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
01 mars 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Certains services peuvent proposer le géocodage inverse, mais pas le géocodage.
On devrait pouvoir spécifier les deux pour ne pas casser l'action de géocodage dans wcs.


Fichiers


Demandes liées

Lié à Passerelle - Development #21558: opengis: rajouter le geocodage inverseFermé31 janvier 2018

Actions

Révisions associées

Révision d1023b69 (diff)
Ajouté par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans

geocoding: allow custom url for search and reverse geocoding (#22218)

Historique

#1

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans

#2

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans

Option supplémentaire qui prend la valeur de nominatim_url si non-définie.

#3

Mis à jour par Frédéric Péters il y a environ 6 ans

pub.site_options.set('options', 'nominatim_search_url', 'http://search.openstreetmap.org')

Dans dix minutes tout le monde aura oublié pourquoi deux paramètres et quelqu'un voudra aller à cette adresse en se disant que peut-être l'API y est différente et le nom de domaine n'existera pas et la perplexité grandira encore.

Ce qu'il faut plutôt c'est avoir du côté du publisher get_geocoding_service_url() et get_reverse_geocoding_service_url() et chacune regarderait d'abord si (reverse_)geocoding_service_url existe dans le site-options.cfg et sinon construirait l'URL à partir de nominatim_url, dans ce genre :

def get_reverse_geocoding_service_url(self):
    url = self.get_site_option('reverse_geocoding_service_url')
    if url:
        return url
    nominatim_url = self.get_site_option('nominatim_url') or 'http://nominatim.openstreetmap.org'
    return nominatim_url + 'reverse'
#4

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans

Le même principe doit être suivi aussi pour les paramètres liés à nominatim, comme nominatim_key, nominatim_reverse_zoom_level, imo.

#6

Mis à jour par Frédéric Péters il y a environ 6 ans

def get_geocoding_key(self):

Si ça doit arriver ça doit être en permettant aux URL de géocodage (inversé) de contenir une query string arbitraire.

def get_geocoding_reverse_zoom_level(self):

Si ça devait arriver ça bénéficierait aussi du point précédent. Ne pas ajouter cette méthode, continuer avec l'ancienne option uniquement en attendant.

soudainement deux lignes blanches entre deux méthodes

Non.

#7

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans

Ok. Le nom de la clé pour interroger le service définissable dans les options.

#8

Mis à jour par Frédéric Péters il y a environ 6 ans

pub.site_options.set('options', 'custom_geocode_key', 'geocoding_secret')

Nope je me suis mal fait comprendre, je ne veux pas de nouvelle option sur le sujet; je veux que geocoding_service_url puisse être https://whatever/search?key=toto&foo=bar qu'il n'y ait pas besoin d'un site_options par paramètre.

#10

Mis à jour par Thomas Noël il y a environ 6 ans

Sur ce passage :

  url = url % (urllib2.quote(address))

pour la beauté de la chose, éviter de faire le % alors qu'on ne sait pas vraiment ce qu'il y a dans url (s'il y a un autre %truc, ça va crasher salement). Plutôt :

        if '?' in url:
            url += '&'
        else:
            url += '?'
        url += 'q=%s' % urllib2.quote(address)
#12

Mis à jour par Thomas Noël il y a environ 6 ans

Je pourrais faire mon pénible relou en disant que tu pouvais laisser la ligne

url += '&accept-language=%s' % (get_publisher().get_site_language() or 'en')
tranquille, pour minimiser ton patch, le temps du relecteur, et garder un git blame qui blâme bien ... mais allez, ack.

Si tu peux/veux attendre Frédéric qui est en début de relecture, c'est bien, sinon, tu pousses.

#13

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans

Yep, j'ai remis la ligne comme elle était.
J'attends aussi un avis de Frédéric avant de pusher.

#14

Mis à jour par Frédéric Péters il y a environ 6 ans

Pour moi les options nominatim_* devraient servir, vu leur nom, uniquement pour nominatim, à intégrer en bout de get_reverse_geocoding_service_url et get_geocoding_service_url.

#15

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 6 ans

Oui, d'accord.

#16

Mis à jour par Frédéric Péters il y a environ 6 ans

  • Statut changé de En cours à Résolu (à déployer)
  • Assigné à changé de Serghei Mihai (congés, retour 15/05) à Frédéric Péters

Parce que :

  • nominaitm_url, à quoi ça sert donc d'avoir des tests s'ils ne sont pas exécutés
  • la disparition du format=json lors des appels de l'action de workflow qui allait gentiment casser tout ça
  • le code qui aurait plutôt eu sa place dans le publisher de qommon/, comme les autres méthodes proches (get_default_position, get_map_attributes)
  • etc.

Parce que fatigué.

J'ai repris, modifié, poussé.

commit 0c18c039ab8ded812537d0494cf25a263d417694
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Fri Mar 2 10:15:05 2018 +0100

    geocoding: allow custom url for search and reverse geocoding (#22218)
#17

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF