Private Sub ScaricaCSVStradeNapoli()
Dim http As Object
Dim url As String
Dim query As String
Dim risposta As String
Dim percorsoFile As String
'url = "https://overpass-api.de/api/interpreter"
url = "https://overpass-api.de/api/interpreter?data="
query = _
"[out:csv(""name"")][timeout:2500];" & vbCrLf & _
"{{geocodeArea:Napoli}}->.searchArea;" & vbCrLf & _
"way" & vbCrLf & _
" [""highway""~""residential|unclassified|tertiary|secondary|primary""]" & vbCrLf & _
" [""name""]" & vbCrLf & _
" (area.searchArea);" & vbCrLf & _
"out;"
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.Open "POST", url, False
http.SetRequestHeader "Content-Type", "text/plain"
http.Send query
If http.Status = 200 Then
risposta = http.ResponseText
percorsoFile = "C:\TABULATI\strade_napoli.csv"
Call SalvaTestoSuFile(percorsoFile, risposta)
MsgBox "CSV salvato in: " & percorsoFile
Else
MsgBox "Errore HTTP: " & http.Status & " - " & http.StatusText
End If
Set http = Nothing
End Sub
Private Sub SalvaTestoSuFile(ByVal filePath As String, ByVal textData As String)
Dim F As Integer
F = FreeFile
Open filePath For Output As #F
Print #F, textData
Close #F
End Sub
Private Sub ScaricaCSVStradeNapoli()
Dim http As Object
Dim url As String
Dim query As String
Dim risposta As String
Dim percorsoFile As String
url = "https://overpass-api.de/api/interpreter"
' Overpass QL puro: sostituzione di {{geocodeArea}} con la ricerca dell'area
query = "data=" & _
"[out:csv(""name"")][timeout:2500];" & vbCrLf & _
"area[""name""=""Napoli""][""admin_level""=""8""]->.searchArea;" & vbCrLf & _
"way" & vbCrLf & _
" [""highway""~""residential|unclassified|tertiary|secondary|primary""]" & vbCrLf & _
" [""name""]" & vbCrLf & _
" (area.searchArea);" & vbCrLf & _
"out;"
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.Open "POST", url, False
http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.Send query
If http.Status = 200 Then
risposta = http.ResponseText
percorsoFile = "C:\TABULATI\strade_napoli.csv"
Call SalvaTestoSuFile(percorsoFile, risposta)
MsgBox "CSV salvato in: " & percorsoFile
Else
MsgBox "Errore HTTP: " & http.Status & " - " & http.StatusText & vbCrLf & http.ResponseText
End If
Set http = Nothing
End Sub
Private Sub SalvaTestoSuFile(ByVal filePath As String, ByVal textData As String)
Dim fileHandle As Integer
fileHandle = FreeFile
Open filePath For Output As #fileHandle
Print #fileHandle, textData
Close #fileHandle
End Sub
Grazie provo e ti faccio sapere
E poi perche, questa query, non mi restituisce anche il codice ISTAT, codice:
[out:csv(
::id,
::lat,
::lon,
“addr:street”,
“addr:housenumber”,
“addr:postcode”,
“ref:ISTAT”,
“ref:inset”;
true;
“;”
)][timeout:300];
// Definisci la zona di ricerca (sostituisci il nome della città o provincia)
area[“boundary”=“administrative”][“name”=“Napoli”]->.searchArea;
// Cerca tutti i nodi con numero civico all’interno dell’area
(
node"addr:housenumber";
way"addr:housenumber";
);
// Restituisce i dati
out center;
GRAZIE