ho fatto varie ricerche per trovare un metodo per recuperare tramite coordinate la via di un dato comune cui fa riferimento,
ed ho trovato il seguente codice
- Codice: Seleziona tutto
Sub indirizzi_excel()
Dim FileXml, indirizzo, localita, CAP, URL As String
Dim c As Integer
Dim z As Long
Dim GeoDati As Collection
Application.ScreenUpdating = False
FileXml = "IMPORTAZIONE XML.xls"
FileXml = ActiveWorkbook.Name
ActiveWorkbook.Sheets("INDIRIZZI").Activate
Range("D2").Select ' SI POSIZIONA SULLA PRIMA VIA
Selection.End(xlDown).Select
z = ActiveCell.Row ' prende il numero dell'ultima riga
If z = 65536 Then z = 2
Range("D2").Select ' SI POSIZIONA SULLA PRIMA VIA
For c = 2 To z Step 1
If ActiveCell.Value <> "" Then indirizzo = "address=" & ActiveCell.Value Else indirizzo = ""
If ActiveCell.Offset(0, -1).Value <> "" Then localita = "|locality:" & ActiveCell.Offset(0, -1).Value Else localita = ""
If ActiveCell.Offset(0, -2).Value <> "" Then CAP = "|postal_code:" & ActiveCell.Offset(0, -2).Value Else CAP = ""
'Geocoding in formato XML di Google API V3
URL = "http://maps.googleapis.com/maps/api/geocode/xml?" & indirizzo & "&sensor=false&language=it&components=Country:it" & localita & CAP
ActiveWorkbook.XmlMaps(1).Import URL:=URL
Sheets("IMPORTAZIONE XML").Select
Range("A2:C2").Select
Selection.Copy
Sheets("INDIRIZZI").Select
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.StatusBar = "Progress... " & Int(c / z * 100) & "%"
ActiveCell.Offset(1, -1).Range("A1").Select
Next c
Workbooks(FileXml).Activate
ActiveWorkbook.Save
' ActiveWorkbook.SaveAs Filename:= _
' "C:\Documents and Settings\renzgi\Desktop\indirizzi csv.csv", FileFormat:= _
' xlCSV, CreateBackup:=False
Application.StatusBar = ""
Application.ScreenUpdating = True
End Sub
Per quello che ho potuto capire tramite il CAP la via il numero civico ed il comune, si riesce ad individuare la coordinata corrispondente, tramite i comandi
- Codice: Seleziona tutto
'Geocoding in formato XML di Google API V3
URL = "http://maps.googleapis.com/maps/api/geocode/xml?" & indirizzo & "&sensor=false&language=it&components=Country:it" & localita & CAP
ActiveWorkbook.XmlMaps(1).Import URL:=URL
Vorrei sapere se è possibile, modificando il comando in questione, recuperare la via corrispondente ed il comune tramite le coordinate
allego link da cui prelevare il file originale,
https://www.dropbox.com/s/srnft4xm031rtmn/Geocoding.xlsm?dl=0