Jump to content

Recommended Posts

Posted (edited)

Hello,

  I have a website with a Google Map I setup using the Google Map API.  It works and displays just fine.  However to make it useful to me I need to be able to dynamically change the map to display different areas by sending new Latitude and Longitude coordinates.  I am having difficulty making this happen.  Here is my code thus far:

#include <IE.au3>
                         
                         $oIE3 = _IECreate("http://my_sample_website.html")  
                           ;just an example, not an actual site...
                         _IELoadWait($oIE3)

                         $s_word = "lat:"  
                         $oInputs = _IETagNameAllGetCollection($oIE3)
                         
                          if @error <> 0 Then
                          MsgBox($MB_SYSTEMMODAL, "ERROR", "Error is: " & @error)
                          EndIf  ;@error

                           For $oInput In $oInputs

                            if Number($iPos) == -1 Then
                            $iPos = StringInStr($oInput.innerHTML, String($s_word))
                             if (Number($iPos) > 0) AND (@error == 0) Then

ConsoleWrite("I FOUND IT...! " & String($s_word) & @CRLF)                        

                             $sHTML = _IEBodyReadHTML($oIE3)

                             $_lat_look = 0
                             $_lng_look = 0
                             $_end_look = 0  ;default

                             $_lat_look = StringInStr(String($sHTML), "lat:")
                              if Number($_lat_look) <> 0 Then $_lng_look = StringInStr(String($sHTML), "lng:")

                              if Number($_lng_look) <> 0 Then $_end_look = StringInStr(String($sHTML), "}")

                              if Number($_end_look) <> 0 Then

                              ConsoleWrite("HTML BODY: " & $sHTML & @CRLF)

                              $_old_lat = String(StringMid(String($sHTML), $_lat_look, ($_lng_look - $_lat_look)))
                              $_old_lng = String(StringMid(String($sHTML), $_lng_look, ($_end_look - $_lng_look)))
  
                              ConsoleWrite("$_old_lat: " & $_old_lat & @CRLF)
                              ConsoleWrite("$_old_lng: " & $_old_lng & @CRLF)

                              $_new_lat = "lat: " & String("-34.397") & ",  "
                              $_new_lng = "lng: " & String("150.644") & "}; "

                              ConsoleWrite("...new lat is: " & String($_new_lat) & " new lng is: " & String($_new_lng) & @CRLF)

                              $_LOOK = StringReplace($_old_lat, 1, String($_new_lat))
                              $_LOOK2 = StringReplace($_old_lng, 1, String($_new_lng))

                              ConsoleWrite("$_LOOK: " & $_LOOK & "$_LOOK2: " & $_LOOK2 & @CRLF)


                              EndIf  ;'$_end_look' NOT "0"...
  
                               $iPos = -1
                             EndIf  ;'String($s_word)' was found in the collection '$oInputs'
                            EndIf  ;'$iPos' is "-1"
                           Next

 

  I am having trouble trying to replace the line in the HTML ($sHTML variable in my example) that contains the "lat:" and "lng:" information.  I figure if I can replace that line everything else remains the same, and in theory, the map should cycle to display a map with the new latitude and longitude coordinates...I hope. 

  I have attempted to write the $sHTML to a text document and then use '_IEBodyWriteHTML' to read it back into the webpage HTML however that is not working.  There must be an easier method to accomplish this...what am I missing here...?  Any thoughts greatly appreciated.  Regards.       

Edited by Burgs

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...