Jump to content
uniGUI Discussion Forums
Sign in to follow this  
andyhill

Mobile Google Maps Global Variable Access

Recommended Posts

I use several google map markers on initial map presentation and all paint correctly.

 

After initializing with the default markers, the user can then request a marker's position to be updated.

 

Therefore before any marker updates can take place I want to verify if there are previous markers already on the map, if so then I need to remove the old marker in order to paint the markers new position. 

 

In my code below the alert(''new''); always fires telling me that markers is not global - how can I accomplish this - thanks in advance.

 

// Set Global Variable

procedure TGPSmForm.UnimFormCreate(Sender: TObject);
begin
  UniSession.AddJS('var markers = [];');
end;
 
...
 
      UniSession.AddJS(
                       'if (markers == null) '+
                       '{ '+
                       '  var markers = []; '+
                       '  alert(''new''); '+
                       '} '+
 
                       'var gm = googleMap; '+
                       'if (typeof gm == "object") '+
                       '{ '+
 
                       '  for (var i = 0; i < markers.length; i++) '+
                       '  { '+
                       '    markers.setMap(null); '+
                       '    alert(''for loop''); '+
                       '  } '+
 
 
...
 
 
                       '  markers.push(manmarker); '+
 
 

 

Share this post


Link to post
Share on other sites

Perhaps I miss understood you.

 

procedure TGPSmForm.UnimFormCreate(Sender: TObject);
begin
  UniSession.AddJS('var uniVars.markers = [];');
end;
 
procedure TGPSmForm.UnimHTMLFrame1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
 
...
 
      UniSession.AddJS('var gm = googleMap; '+
                       'if (typeof gm == "object") '+
                       '{ '+
 
                       '  for (var i = 0; i < uniVars.markers.length; i++) '+
                       '  { '+
                       '    uniVars.markers.setMap(null); '+
                       '  } '+
 
                       '  var myLatLng = {lat: '+LatStr+', lng: '+LngStr+'}; '+
                       '  var imageman = ''man.png'';'+
                       '  var manmarker = new google.maps.Marker '+
                       '  ( '+
                       '    { '+
                       '      position: myLatLng, '+
                       '      map: gm, '+
                       '      icon: imageman '+
                       '    } '+
                       '  ); '+
 
                       '  uniVars.markers.push(manmarker); '+
                       '  gm.resizeWindow; '+
 
                       '} '
 
                      );
 
Would you please show in code - thanks.

Share this post


Link to post
Share on other sites

 

Perhaps I miss understood you.

 

procedure TGPSmForm.UnimFormCreate(Sender: TObject);
begin
  UniSession.AddJS('var uniVars.markers = [];');
end;

 

 

Without var:

UniSession.AddJS('uniVars.markers = [];');

Share this post


Link to post
Share on other sites

Perfect - thank you.

 

I am using title to distinguish markers however I do not want labels painted.

 

How would you tag markers so as to know one from another without using title ?

Share this post


Link to post
Share on other sites

Because I did not want labels associated with the Icon Marker I have used the zIndex as a tag for selective deleting.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×