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
' 1. URL base corretto per le richieste POST
url = "https://overpass-api.de/api/interpreter"
' 2. Query Overpass corretta
query = _
"[out:csv(""name"")][timeout:60];" & vbCrLf & _
"area[""name""=""Napoli""]->.searchArea;" & vbCrLf & _
"way" & vbCrLf & _
" [""highway""~""residential|unclassified|tertiary|secondary|primary""]" & vbCrLf & _
" [""name""]" & vbCrLf & _
" (area.searchArea);" & vbCrLf & _
"out body;"
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
' Configurazione della chiamata POST
http.Open "POST", url, False
http.SetRequestHeader "Content-Type", "text/plain; charset=utf-8"
http.Send query
If http.Status = 200 Then
risposta = http.ResponseText
percorsoFile = "C:\TABULATI\strade_napoli.csv"
' Assicurati che la cartella C:\TABULATI\ esista sul disco
Call SalvaTestoSuFile(percorsoFile, risposta)
MsgBox "CSV salvato con successo in: " & percorsoFile, vbInformation, "Completato"
Else
' Mostra il dettaglio dell'errore restituito dal server in caso di problemi
MsgBox "Errore HTTP: " & http.Status & " - " & http.StatusText & vbCrLf & _
"Dettagli: " & http.ResponseText, vbCritical, "Errore"
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