Hi All,
 I have a problem regarding google maps, I made a static kml file and
used it in google maps to display icon with particular data within it.
It looks fine and it works in IE7 and IE8, Firefox, Safari,and Google
Chrome. So I decided to make it a dynamic kml and used a ASPX page to
generate a dynamic kml.When I tried to used it , the icons did not
overlay on the google maps.
So I decided to used the  GDownloadUrl(gmKml, loadData)  and it works,
the problem is it works only on IE7 and IE8, but not in Firefox,
Safari,and Google Chrome.

I dont know what is the problem,PLease , please help me about
this.Here is my sample code below:



 window.onunload = function() {
       GUnload();
   }
   google.load("maps", "2");
   var gmLat = '45.05';
   var gmLng = '7.6667';
   var gmZoom = '2';
   var gmMap;
   var gmGeoXml;
   var gmKml;
   var gmcanvas;
   var goverlays = [];
   var baseIcon;
   var mm;
   //==========
   var markerElements = 0;
   var styleElements = 0;
   var markerElementsLen = 0;
   var pointTarget = 0;
   var markers = 0;
   var infoHtmls = 0;

   var strTypeArray = new Array();
   strTypeArray[0] = "Tab1|Tab2"; //sample only
   strTypeArray[1] = "Tab1|Tab2|Tab3|Tab4";/sample only
   strTypeArray[2] = "Tab1|Tab2|Tab3|Tab4";/sample only


   function replaceText(textToReplace) {
       var replaceLessThan;
       var replaceGreaterThan;
       var splitText;
       replaceLessThan = textToReplace.replace(/XXXXX/ig, "<");
       replaceGreaterThan = replaceLessThan.replace(/YYYYY/ig, ">");
       if (replaceGreaterThan.indexOf("XYXYXYXYXY") > -1) {
           splitText = replaceGreaterThan.split("XYXYXYXYXY");
       }
       return splitText;
   }
   //=======
   function createMarker(gOverlay, style, hasOverlay) {

       var tagFont = "<font size='1' face='Arial'>";
       var title="";
       var concatTag="";
       var description="";

       var marker=null;
       var typIcon = new GIcon(baseIcon);
       if (hasOverlay) {
           typIcon.image = gOverlay.getIcon().image;
           markerOptions = { icon: typIcon };
           marker = new GMarker(gOverlay.getPoint(), markerOptions);

           if (typIcon.image.indexOf("ico1-kml") > 0 ||
typIcon.image.indexOf("ico2-kml") > 0) {
               tagFont = "<font size=\"1\" face=\"Arial\">";
                title = "<b>XXX</b><br/>".replace(/XXX/ig,
gOverlay.name);
                concatTag = tagFont + title;
                if (gOverlay.description.indexOf(tagFont) > 0) {
                   description = gOverlay.description.replace
(tagFont, concatTag);
                   GEvent.addListener(marker, "click", function() {
                       marker.openInfoWindowHtml(description);
                   });
               }
               return marker;
           }

           arrText = replaceText(gOverlay.description);
           var tabs = [];
           var repInfowWindow;
           for (i = 0; i < arrText.length; i++) {
               if (arrText.length > 4) {
                   if ((typIcon.image.indexOf("ico4-kml") > 0) &&
(arrText[4].indexOf("writeVideoCode") <= 0)) {
                       if (i == 4) continue;
                       arrText[i] = arrText[i].replace(/infoWindow/
ig, "infoWindowResize");
                   }
               }
               if (typIcon.image.indexOf("ico3-kml") > 0){
               tabs.push(new GInfoWindowTab(strTypeArray[0].split("|")
[i], arrText[i]));
               }
               else if (typIcon.image.indexOf("ico4-kml") > 0){
               tabs.push(new GInfoWindowTab(strTypeArray[1].split("|")
[i], arrText[i]));
               }
               else if (typIcon.image.indexOf("ico5-kml") > 0){
               tabs.push(new GInfoWindowTab(strTypeArray[2].split("|")
[i], arrText[i]));
               }
           }

           marker.bindInfoWindowTabsHtml(tabs);

           return marker;
       }
       var spliText = gOverlay.childNodes[3].text.split(',');
       var styleElementsLen = style.length;

       for (var i = 0; i < styleElementsLen; ++i) {
           if (gOverlay.childNodes[2].text.indexOf(style
[i].getAttribute("id"))>0)
           {
            typIcon.image = style[i].childNodes[0].childNodes
[1].childNodes[0].text;
           break;
           }
       }

       var point = null;
       markerOptions = { icon: typIcon };
       point = new GLatLng(parseFloat(spliText[1]), parseFloat
(spliText[0]));
       marker = new GMarker(point, markerOptions);
       if (typIcon.image.indexOf("ico1-kml") > 0 ||
typIcon.image.indexOf("ico2-kml") > 0) {
           title= "<b>XXX</b><br/>".replace(/XXX/
ig,gOverlay.childNodes[0].text);
           concatTag=tagFont+title;
           description;
          if (gOverlay.childNodes[1].text.indexOf(tagFont) > 0) {
              description = gOverlay.childNodes[1].text.replace
(tagFont, concatTag);
              GEvent.addListener(marker, "click", function() {
                  marker.openInfoWindowHtml(description);
              });
          }
           return marker;
       }
               arrText = replaceText(gOverlay.childNodes[1].text);
       var tabs = [];
       for (i = 0; i < arrText.length; i++) {
           tabs.push(new GInfoWindowTab(strTypeArray[2].split("|")
[i], arrText[i]));
       }

       marker.bindInfoWindowTabsHtml(tabs);

       return marker;
   }

   function setValues(lat, lng, zoom, kml, canvasID) {
       gmLat = lat;
       gmLng = lng;
       gmZoom = zoom;
       gmKml = kml;
       gmcanvas = canvasID;
       initialize();
   }

   function DisplayMap(isMapVisible, coordinates,zoom) {
       var strCoor = coordinates.split(',');
       gmLat = strCoor[1];
       gmLng = strCoor[0];
       gmZoom = zoom;

       displayNone(isMapVisible);
       initialize();
   }
   function initialize() {

       var gmMapId = gmcanvas;

       if (GBrowserIsCompatible()) {

           baseIcon = new GIcon(G_DEFAULT_ICON);
           baseIcon.shadow = "http://www.google.com/mapfiles/
shadow50.png";
           baseIcon.iconSize = new GSize(20, 20);
           baseIcon.shadowSize = new GSize(30, 20);
           baseIcon.iconAnchor = new GPoint(20, 5);
           baseIcon.infoWindowAnchor = new GPoint(5, 1);

           gmGeoXml = new GGeoXml(gmKml);
           gmMap = new GMap2(document.getElementById(gmMapId));
           gmMap.setCenter(new GLatLng(gmLat, gmLng), gmZoom);
           gmMap.setMapType(G_PHYSICAL_MAP);
           gmMap.disableDoubleClickZoom();
           gmMap.addControl(new GSmallMapControl());
           gmMap.addControl(new GMapTypeControl());

// If IE doesn't worked. enabled this code
           if (navigator.appName == "Microsoft Internet Explorer") {
               GDownloadUrl(gmKml, loadData);

               return;
           }

//             gmMap.addOverlay(gmGeoXml);
//             GEvent.addListener(gmMap, "addoverlay", overLay);
            GEvent.addListener(gmMap, "dragend", addremoveOverlay);
       }

   }
   function addOverlayonDrag() {
       gmMap.clearOverlays();

       for (var i = 0; i < goverlays.length - 1; i++) {
           gmMap.addOverlay(createMarker(goverlays[i], null, true));
       }
   }
   function loadData(data) {
       debugger;
               var xmlDoc = GXml.parse(data);
               markerElements = xmlDoc.getElementsByTagName
("Placemark");
               styleElements = xmlDoc.getElementsByTagName("Style");
               markerElementsLen = markerElements.length;
               pointTarget = new Array(markerElementsLen);
               markers = new Array(markerElementsLen);
               for (var i = 0; i < markerElementsLen; ++i) {
                    gmMap.addOverlay(createMarker(markerElements[i],
styleElements, false));
               }

           }

   function overLay(overlay) {
       // If this is a named overlay (e.g. not the GGeoXml itself, or
the infowindow)
       debugger;
       if (overlay.name) {
           // check to see if we already know about this one
           if (overlay.Known) {


               // do nothing
           } else {


               var icon = overlay.getIcon().image;
               var arrText;

               gmMap.removeOverlay(overlay);
               gmMap.addOverlay(createMarker(overlay, null, true));

               goverlays.push(overlay);

               overlay.Known = true;
           }
       }
   }

   function addremoveOverlay() {
       var objTpe;
       var isUnTick = false;
       var obj=document.getElementById("txtType").value;
       if (obj.length > 0) {
           var objTpe = obj.split(";");
           gmMap.clearOverlays();

           for (var i = 0; i < goverlays.length - 1; i++) {
               isUnTick = false;
               for (j = 0; j <= objTpe.length - 2; j++) {
                   var objTypeSplit = objTpe[j].split("|");

                   if (goverlays[i].getIcon().image.indexOf
(objTypeSplit[1]) > 0 && objTypeSplit[0] == "false") {
                       isUnTick = true;
                       break;
                   }
               }
               if (!isUnTick) {
                   gmMap.addOverlay(createMarker(goverlays[i], null,
true));
               }
           }
       }
   }

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Maps-API?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to