Следвайте тази статия и създайте свой собствен географски инструмент, с който можете да получите координатите за географска ширина и дължина за адрес. Преобразуватели като този често се използват от брокери на недвижими имоти.
Свали сега
Ако искате да start, за да използвате софтуера възможно най-скоро, тогава можете:
В противен случай, ако искате да си направите сам, можете да прочетете съдържанието по-долу.
Нека подготвим GUI
Всичко, от което се нуждаете, е един лист на Excel и можете да го наименувате според вашите нужди. В този пример използвам името на листа по подразбиране „Sheet1“. Следващата стъпка е да добавите необходимите заглавки на този лист. Конверторът за географска ширина и дължина дава точен резултат за адреса, който минаваме, ако входът включва предградие, щат, стрostкод и държава. Както е показано на изображението, подгответе заглавки. Нека добавим Latitude и Longitude като последните две колони. Също така се нуждаем от бутон, който да позволи на потребителя да извърши преобразуването. Така че нека вмъкнем фигура и я напълним с цвят, за да изглежда като бутон.
Нека го направим функционален
Предоставеният тук скрипт трябва да бъде копиран в нов модул. Не забравяйте да запишете работната си книга като файл с работна книга с активиран макрос. Под “FindThis” трябва да бъде прикрепен към бутона, който току-що създадохме.
Да го тестваме
Добавете адрес заедно с друга информация в съответните колони. Щракнете върху бутона, за да стартирате макроса, който ще показва координати на ширина и дължина за всички адреси, изброени на листа. Макросът ще start на ред 2 и ще продължи да работи, докато достигне празен ред.
Как работи?
Със скрипта създадохме две функции. Един за извличане на Lat стойност и друг за извличане на Long стойност. Използвайки цикъл FOR, ние предаваме всеки адрес на тези функции и показваме резултата на екрана.
Сценарий
Function GETLAT(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LAT>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LAT>")
GETLAT = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Function GETLNG(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LNG>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LNG>")
GETLNG = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Sub FindThis()
For r = 2 To 5
Range("F" & r).Value = GETLAT(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Range("G" & r).Value = GETLNG(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Next r
End Sub
Ако не получавате правилни резултати с помощта на скрипта, повреденият Excel може да е вероятна причина. След това можете да използвате Инструмент за възстановяване на файлове в Excel , като DataNumen Excel Repair да поправя Excel.
Въведение на автора:
Ник Випонд е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително проблем за ремонт на документ и перспектива за възстановяване на софтуерни продукти. За повече информация посетете WWW.datanumen.com
