Here is the key code based on api3:
VaR allmarkers = []; var map = NULL; var Mgr = NULL; var infowindow; function setupmap (xlat, ylng, zoom, gdiv) {var Options = {ZOOM: Zoom, center: new Google. maps. latlng (xlat, ylng), maptypecontrol: false, // MAP satellite control does not display maptypeid: Google. maps. maptypeid. roadmap}; Map = new Google. maps. map (document. getelementbyid (gdiv), options);} function setupmarker (item) {var marker = new Google. maps. marker ({positio N: new Google. maps. latlng (item. xlat, item. ylong), icon: item. ICO, Title: item. title}) marker. metadata = {guid: item. guid, code: item. code, lampcount: item. lampcount, polecount: item. polecount, xlat: item. xlat, ylong: item. ylong, type: item. type, lampname: item. lampname, lamppower: item. lamppower, lampupdatetime: item. lampupdatetime, lampstatus: item. lampstatus, cabname: item. cabname, areaname: I TEM. areaname, roadname: item. roadname}; bindinfowindows (Marker, marker. metadata. type); Return marker;} function getmarkers (itms, minzoom, maxzoom) {var batch = []; var jsitms = eval (itms); $. each (jsitms, function (index, value) {var tmpmark = setupmarker (value); batch. push (tmpmark); allmarkers. push (tmpmark) ;}); If (! Mgr) var Mgr = new markermanager (MAP); Google. maps. event. addlistener (MGR, 'loaded', function () {Mgr. addmarkers (batch, minzoom, maxzoom); Mgr. refresh () ;}) ;}/ ** Note: When you click a marker, a prompt box is displayed * @ marker: the marker to be prompted | new Google. maps. marker * @ contents: Content in the prompt box * @ infowindow: new Google. maps. infowindow () */function bindinfowindows (Marker, infotype) {If (! Infowindow) infowindow = new Google. maps. infowindow (); Google. maps. event. addlistener (Marker, 'click', function () {infowindow. setcontent (setupmarkercontens (Marker, infotype, false); infowindow. open (MAP, marker) ;});} function setupmarkercontens (Marker, infotype, isclick) {If (marker. metadata. type = "cab" & isclick = false) {return "<Table> <tr> <TD align = center style = 'font-family:; font-size: Medium '> lightbox [<span> "+ marker. gettitle () + "</span>] Running Information </TD> </tr>" + "<tr>" + "<TD valign = top>" + "<Table width = 100%> "+" <tbody> "+" <tr> "+" <TD> lightbox No: </TD> "+" <TD> "+ marker. metadata. code + "</TD>" + "<TD> lightbox name: </TD>" + "<TD>" + marker. gettitle () + "</TD>" + "</tr>" + "<tr>" + "<TD> region: </TD> "+" <TD> "+ marker. metadata. roadname + "</TD>" + "<TD> zone: </TD>" + "<TD>" + marker. metadata. ar Eaname + "</TD>" + "</tr>" + "<tr>" + "<TD> longitude: </TD> "+" <TD> "+ marker. metadata. xlat + "</TD>" + "<TD> latitude: </TD>" + "<TD>" + marker. metadata. ylong + "</TD>" + "</tr>" + "<tr>" + "<TD> control lamps: </TD> "+" <TD> "+ marker. metadata. polecount + "</TD>" + "<TD> control light: </TD>" + "<TD>" + marker. metadata. lampcount + "</TD>" + "</tr>" + "<tr>" + "<TD> fault (no light on ): </TD> "+" <TD> "+ window. external. getlamplight (marker. m Etadata. guid) + "</TD>" + "<TD> </TD>" + "<TD> </TD>" + "</tr>" + "</tbody> "+" </table> "+" </TD> "+" </tr> "+" <tr> "+" <TD> "+" </TD> "+" </tr> "+" </table> ";} if (marker. metadata. type = "pole" & isclick = false) {return "<Table>" + "<tr>" + "<TD align = center style = 'font-family:; font-size: Medium '> lamp pole [<span id = polename> "+ marker. metadata. c Ode + "</span>] Running Information </TD>" + "</tr>" + "<tr>" + "<TD valign = top>" + "< table> "+" <tbody> "+" <tr> "+" <TD width = 25%> Pole Number: </TD> "+" <TD> <span id = polecode> "+ marker. metadata. code + "</span> </TD>" + "<TD width = 25%> lamp pole model: </TD> "+" <TD> <span id = poletype> one-pole, one-lamp road model </span> </TD> "+" </tr> "+" <tr> "+" <TD width = 25%> light box: </TD> "+" <TD> <span id = cabname> "+ marker. metadata. cabname + "</span> </TD>" + "< TD width = 25%> region: </TD> "+" <TD> <span id = areaname> "+ marker. metadata. roadname + "</span> </TD>" + "</tr>" + "<tr>" + "<TD width = 25%> longitude: </TD> "+" <TD> <span id = xlat> "+ marker. metadata. xlat + "</span> </TD>" + "<TD width = 25%> latitude: </TD> "+" <TD> <span id = ylong> "+ marker. metadata. ylong + "</span> </TD>" + "</tr>" + "<tr>" + "<TD width = 25%> total lamps: </TD> "+" <TD> <span id = lampcount> "+ marker. metadata. l Ampcount + "</span> </TD>" + "<TD width = 25%> & nbsp; </TD>" + "<TD> & nbsp; </TD> "+" </tr> "+" </tbody> "+" </table> "+" </TD> "+" </tr>" + "<tr>" + "<TD align = center style = 'font-family:; font-size: medium '> subordinate lamp running information </TD> "+" </tr> "+" <tr> "+" <TD align = center valign = top> "+" <table id = lampinfotbl Height = 50> "+" <tbody> "+" <tr> "+" <TD align = center> Category </TD> "+" <TD align = center> name </TD> "+" <TD al IGN = center> rated power </TD> "+" <TD align = center> Current Status </TD> "+" <TD align = center> Update time </TD> "+" </tr> "+" <tr> "+" <TD align = center> street lamp </TD> "+" <TD align = center> "+ marker. metadata. lampname + "</TD>" + "<TD align = center>" + marker. metadata. lamppower + "</TD>" + "<TD align = center>" + marker. metadata. lampstatus + "</TD>" + "<TD align = center>" + marker. metadata. lampupdatetime + "</TD>" + "</tr>" + "</TB Ody> "+" </table> "+" </TD> "+" </tr> "+" <tr> "+" <TD align = center> "+ " ";} if (infotype = "clcab" & isclick = true) {return "<Div style = text-align: center>" + marker. gettitle () + "</div>";} If (infotype = "clpole" & isclick = true) {return "<Div style = text-align: center> <B> pole No.: "+ marker. metadata. code + "</B> <Br> "+" street lamp: "+ marker. metadata. lampstatus + "</div>" ;}} function findedmarker (guid) {var marker; $. each (allmarkers, function (index, value) {If (value. metadata. guid = guid) {marker = value; return marker ;}}) return marker;} function gotonodeclick (guid, infotype, zoom) {var marker = findedmarker (guid ); if (typeof (Marker )! = "Undefined") {var mapzoom = map. getzoom (); var zoomlevel = zoom> mapzoom? Zoom: mapzoom; map. setzoom (zoomlevel); map. setcenter (Marker. getposition (); If (! Infowindow) infowindow = new Google. maps. infowindow (); infowindow. setcontent (setupmarkercontens (Marker, infotype, true); infowindow. open (MAP, marker); bindinfowindows (Marker, 0) ;}} function setcenter (Lat, LNG, zoom) {map. setcenter (new Google. maps. latlng (Lat, LNG); map. setzoom (zoom);} function updatemarker (guid, icon) {var marker = findedmarker (guid); marker. seticon (icon );}
Page code:
<! Doctype HTML public "-// W3C // dtd html 4.0 transitional // en"> <HTML>
Hope this is helpful!