andyhill Posted January 28, 2018 Share Posted January 28, 2018 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); '+ Link to comment Share on other sites More sharing options...
Sherzod Posted January 29, 2018 Share Posted January 29, 2018 "Solutions": uniVars.markers; YourObject.markers; Link to comment Share on other sites More sharing options...
andyhill Posted January 29, 2018 Author Share Posted January 29, 2018 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. Link to comment Share on other sites More sharing options...
Sherzod Posted January 29, 2018 Share Posted January 29, 2018 Perhaps I miss understood you. procedure TGPSmForm.UnimFormCreate(Sender: TObject); begin UniSession.AddJS('var uniVars.markers = [];'); end; Without var: UniSession.AddJS('uniVars.markers = [];'); Link to comment Share on other sites More sharing options...
andyhill Posted January 29, 2018 Author Share Posted January 29, 2018 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 ? Link to comment Share on other sites More sharing options...
andyhill Posted January 29, 2018 Author Share Posted January 29, 2018 Because I did not want labels associated with the Icon Marker I have used the zIndex as a tag for selective deleting. Link to comment Share on other sites More sharing options...
Recommended Posts