blob: 913f8902a86a09fbc23e7e7cda387bdb0ebed9e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# fonction a utiliser :
# - geocodageIUTV si vous êtes à l'IUT (utilisation nécessaire du proxy)
# - geocodage sinon
import urllib
import urllib2
from xml.dom import minidom
def geocodageIUTV(adresse):
try:
proxy = urllib2.ProxyHandler({'https': '192.168.1.246:3128'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
reponse = urllib2.urlopen(getURL(adresse))
return analyseResultat(reponse)
except:
return None
def geocodage(adresse):
try:
url = "http://nominatim.openstreetmap.org/search?format=xml&q=" + \
urllib.quote_plus(adresse)
reponse = urllib2.urlopen(getURL(adresse))
return analyseResultat(reponse)
except:
return None
def getURL(adresse):
return "https://nominatim.openstreetmap.org/search?format=xml&q=" + urllib.quote_plus(adresse)
def analyseResultat(reponse):
xml = reponse.read()
doc = minidom.parseString(xml)
place = doc.getElementsByTagName("place")[0]
lat = place.attributes["lat"].value
lon = place.attributes["lon"].value
return lat, lon
# fonction de test (ne pas utiliser dans votre code)
def index(req):
req.content_type = "text/html"
pos = geocodageIUTV(req.form["adresse"])
if pos == None:
req.write("Adresse non trouvée")
else:
lat, lon = pos
req.write("Latitude = " + str(lat) + ", Longitude = " + str(lon))
|