Creacion de POIs por direcciones

Hola, la pregunta es, si tengo una tabla con Carnicerias de mi ciudad y sus direcciones, hay alguna forma práctica (semiautomatica) de convertir (Por ejemplo con Nominatim) una lista de direcciones en nodos ubicados en las direcciones indicadas en la tabla?
Se entiende?
Saludetes,

Jorge

Si y no, porque depende de lo compatible y detallado que sean tus direcciones con las incluidas en OSM. En tu tabla deberías tener el nombre, la calle (con o sin el prefijo calle/avenida/pasaje), el barrio (opcional), la ciudad, el país… los últimos 3 son importantes para optimizar la búsqueda y reducir redundantes. El prefijo será importante pero depende de cada país y creo que en la Argentina llegaron al acuerdo de no incluir prefijos (calle, avenida, psaje, boulevar, etc).

Un ejemplo práctico, obtener la posición geográfica de “martadero” ubicado sobre la “Avenida 27 de Agosto” en el barrio “villa coronilla” de la ciudad de Cochabamba, Bolivia:


http://nominatim.openstreetmap.org/?format=json&addressdetails=1&q=martadero,avenida+27+de+agosto,villa+coronilla,cochabamba,bolivia

devolviendo en formato jSON:


[
  {
    "place_id": "23764579",
    "licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright",
    "osm_type": "node",
    "osm_id": "2330755888",
    "boundingbox": [
      "-17.4000931",
      "-17.3999931",
      "-66.1657584",
      "-66.1656584"
    ],
    "lat": "-17.4000431",
    "lon": "-66.1657084",
    "display_name": "mARTadero Project, Avenida 27 de Agosto, Villa Coronilla, Cochabamba, Provincia Cercado, Cochabamba Departament, 640, Bolivia",
    "type": "arts_centre",
    "importance": 0.901,
    "icon": "http://nominatim.openstreetmap.org/images/mapicons/tourist_art_gallery2.p.20.png",
    "address": {
      "arts_centre": "mARTadero Project",
      "road": "Avenida 27 de Agosto",
      "suburb": "Villa Coronilla",
      "city": "Cochabamba",
      "county": "Provincia Cercado",
      "state": "Cochabamba Departament",
      "postcode": "640",
      "country": "Bolivia",
      "country_code": "bo"
    }
  }
]

Lo más sencillo sería implementar en python con https://github.com/damianbraun/nominatim:


s1114u9@darkstar:~$ su -c "pip install nominatim"
s1114u9@darkstar:~$ python
>>> from nominatim import Nominatim
>>> nom = Nominatim()
>>> nom.query('martadero,avenida+27+de+agosto,villa+coronilla,cochabamba,bolivia')
[{u'display_name': u'Proyecto mARTadero, Avenida 27 de Agosto, Villa Coronilla, Cochabamba, Provincia Cercado, CBA, 640, Bolivia', u'importance': 0.901, u'place_id': u'23764579', u'lon': u'-66.1657084', u'lat': u'-17.4000431', u'osm_type': u'node', u'licence': u'Data \xa9 OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright', u'osm_id': u'2330755888', u'boundingbox': [u'-17.4000931', u'-17.3999931', u'-66.1657584', u'-66.1656584'], u'type': u'arts_centre', u'class': u'amenity', u'icon': u'http://nominatim.openstreetmap.org/images/mapicons/tourist_art_gallery2.p.20.png'}]

Lo que queres hacer se conoce como geocodificacion reversa.

Es posible si ya estan mapeadas las direcciones (o al menos las interpolaciones) en la ciudad que queres ingresar.