실제로 VBA에서 이런 짓을 한, 나는 당신에게 내 솔루션을주지 Tools.Range (rngGeocoderAddress)). 포인트에 대한 KML 데이터를 구성하고 Google 어스 (아마도 필요하지 않음)로 전송 한 다음 주소 정보에 대한 검색을 실행합니다. 이렇게하면 결과 위치를 확대하기 시작합니다.
Google 어스를 주기적으로 모니터링하여 새로운 위치로 확대/축소하는 중인지 확인합니다. 이동이 멈 추면 검색 결과가 확대 된 것을 알았고 GetPointOnTerrainFromScreenCoords (0,0)를 사용하여 Lat Long을 캡처 할 수 있습니다.
Google 어스를 사용하여 주소를 지오 코딩했습니다. 여기
Public Sub LookUpAddress_Click()
Dim GEI As ApplicationGE
Dim PointOnTerrain As PointOnTerrainGE
Dim Search As SearchControllerGE
Dim KMLData As String
Dim row As Long
'Get the row of the location selected to look up'
With ddGeocoderID()
If .listCount <= 1 Then Exit Sub
row = .ListIndex + 1
End With
Set GEI = GEInit()
If GEI Is Nothing Then Exit Sub
KMLData = "<?xml version=""1.0"" encoding=""UTF-8""?>" & _
"<kml xmlns=""http://www.opengis.net/kml/2.2"">" & _
"<Placemark>" & _
"<name>" & ddGeocoderID().List(ddGeocoderID().ListIndex) & "</name>" & _
"<visibility>1</visibility>" & _
"<open>1</open>" & _
"<description>" & "<![CDATA[" & Tools.Range(rngGeocoderDescription) & "]]></description>" & _
"<address>" & Tools.Range(rngGeocoderAddress) & "</address>" & _
"</Placemark>" & _
"</kml>"
GEI.LoadKmlData KMLData
Set Search = GEI.SearchController()
Call Search.Search(Tools.Range(rngGeocoderAddress))
Dim resul As Variant
Set resul = Search.GetResults()
Dim lat As Double, lon As Double, prevlat As Double, prevlon As Double, checkChange As Double
Dim steady As Boolean
steady = False: checkChange = -1
lat = 0: lon = 0: prevlat = -1: prevlon = -1
While Not steady
Set PointOnTerrain = GEI.GetPointOnTerrainFromScreenCoords(0, 0)
lat = PointOnTerrain.Latitude
lon = PointOnTerrain.Longitude
lblGeoedLat().Caption = sigFigs(lat, 8)
lblGeoedLong().Caption = sigFigs(lon, 8)
DoEvents
If (checkChange = 100) Then
If (lat = prevlat And lon = prevlon) Then steady = True
prevlat = lat: prevlon = lon
checkChange = -1
End If
checkChange = checkChange + 1
Sleep 10
Wend
End Sub
나는 그것이 UI 작업을 만든 방법을 보여 일부 스크린 샷입니다 : 입력을
이미지 1은 주소를
2 클릭 지오 코드가 확대 기다립니다 이미지 중지 할
mage 3 코드는 만족스러운 경우 최종 위도/경도, 사용자 클릭 기록을 기록합니다.
많은 위치를 프로그래밍 방식으로 지오 코딩하도록 코드를 반복 해 보았습니다. Google 지구의 확대/축소 속도가 매우 빠르지 만 (순간적이 아님)
감사합니다. 내 질문을 업데이트했습니다. 불행히도 rjmunro가 지적했듯이 여전히 사용 조건에 위배됩니다. 또한 일괄 작업에이 작업이 필요했기 때문에 Google 어스가 각 항목을 확대 할 때까지 기다리지 않아도됩니다. 어쨌든 웹에 연결해야하는 경우 웹 서비스를 직접 사용하는 것이 더 합리적이라는 사실은 사실입니다. – chiccodoro