Hallo,

ich habe mal eine kleine Fingerübung in python gemacht und versucht mit nominatim die OSM-Ids der Wege zu bekommen. In Anhang sowohl ein Liste mit gefunden OSM-Ids sowohl auch das benzutzte python Skript. Zu einigen Straßen habe ich keine Straße in OSM gefunden. Kann es sein das diese bereits seit erstellen der Liste geändert wurden?


Viele Grüße
Stefan

Am 19.12.2012 13:59, schrieb Josias Polchau (HBT):
Hallo Hamburger,

im Rahmen der Arbeit mit OSM-Daten sind der Hamburger Hochbahn (HHA) einige 
fehlerhafte Straßennamen in Hamburg und Umgebung aufgefallen, die sie der 
Comunity gerne übermitteln möchte.

Bei der im Anhang befindlichen Liste handelt es sich um eine Dokumentation der 
Ersetzungen, die intern vorgenommen wurden.

Wir hoffen, dass die Liste bei der Verbesserung der Daten behilflich ist.

Mit freundlichem Gruß

Josias Polchau
Softwareentwickler, GIS

E-Mail: [email protected]
Tel.: +49 40 369779-72


HBT Hamburger Berater Team GmbH
Stadthausbrücke 3, 20355 Hamburg

Geschäftsführer:
Ilse Habermann, Hans-Joachim Habermann,
Arne Habermann, Daniel Hoffmann

Handelsregister:
HRB 31629 Hamburg


_______________________________________________
Hamburg mailing list
[email protected]
http://lists.openstreetmap.de/mailman/listinfo/hamburg

# -*- coding: utf-8 -*-

import csv
import json
import urllib
import urllib2

def queryNominatim(options):
    options["format"] = "json"
    options["email"] = insertemailhere
    para = urllib.urlencode(options)
    url = "http://nominatim.openstreetmap.org/search?{0}".format(para)
    return json.load(urllib2.urlopen(url))
    

def osmidOfStreet(street, boundingBox):
    j = queryNominatim({ 'q' : street, 'viewbox' : boundingBox, 'bounded' : 1 })
    j = filter(lambda s: s['display_name'].encode('utf-8').startswith(street), j)
    # if list is emty, try without bounding box
    if len(j) == 0:
        j = queryNominatim({ 'q' : street })
        j = filter(lambda s: s['display_name'].encode('utf-8').startswith(street), j)
    return [i['osm_id'] for i in j]

# TODO make the ISO-8859-1 decoding transperent in open
with open('HHA-korrekteSchreibweiseOSMStraennamen.csv', 'rb') as csvfile:
    with open('HHA-OSMIds.csv', 'w') as output:
        csvwriter = csv.writer(output, delimiter=';')
        csvreader = csv.reader(csvfile, delimiter=';')
        csvreader.next() # skip Header
        for row in csvreader:
            street = row[0].decode('ISO-8859-1').encode('utf-8')
            print street
            if len(row) < 3:
                comment = ''
            else:
                comment = row[2]
            ids = osmidOfStreet(street, '9,54.5,11,53')
            csvwriter.writerow([row[0], row[1], comment] + ids)
#            if row[0].decode('ISO-8859-1').encode('utf-8') == "Achtern Krankenhus":
#                exit()
_______________________________________________
Hamburg mailing list
[email protected]
http://lists.openstreetmap.de/mailman/listinfo/hamburg

Antwort per Email an