2014-09-30 4 views
0

Недавно я изменил файлы XML, которые я использую, чтобы создать карту местоположений для нашего сайта, но поскольку при переходе на новый XML-документ ни один из маркеров не появляется. Непосредственная навигация к генератору XML отображает правильно отформатированный XML и вывод на консоль показывает, что маркеры правильно создаются с данными из XML, но на карте ничего не отображается. Единственное, что изменилось, это XML-файл!API-интерфейс Google Maps, не отображающий маркеры

Вот мой код: (в основном акции с веб-сайта компании Google)

<?php /* Template Name: Campus Locator */ ?> 
    <!DOCTYPE html> 
    <html> 

    <head> 

     <!-- Page Title --> 
     <title> 
     <?php bloginfo('name'); wp_title('-'); ?> 
     </title> 

     <!-- Main Style --> 
     <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" /> 
     <style> 
     #map { 
      width: 100%; 
      height: 500px; 
      margin-bottom: 20px; 
     } 
     #stateselect { 
      width: 10em; 
      margin-bottom: 1em; 
     } 
     .gm-style-iw { 
      overflow: visible !important; 
      min-width: 200px; 
      height: auto !important; 
      width: auto !important; 
     } 
     </style> 

     <!-- Mobile Browser Support --> 
     <meta name="viewport" content="width=device-width; initial-scale=1;" /> 
     <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); echo(" /responsive.css "); ?>" type="text/css" media="screen" /> 

     <!-- Additional Styles --> 

     <!-- IE Conditional Styles --> 

     <!-- Feed Reader Support --> 
     <link rel="alternate" type="application/rss+xml" title="Bridges International RSS Feed" href="<?php bloginfo('rss2_url'); ?>" /> 
     <link rel="alternate" type="application/atom+xml" title="Bridges International Atom Feed" href="<?php bloginfo('atom_url'); ?>" /> 
     <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> 

     <!-- Google Web Fonts --> 
     <link href="http://fonts.googleapis.com/css?family=Droid+Sans:regular,bold" rel="stylesheet" type="text/css" /> 
     <link href="http://fonts.googleapis.com/css?family=Kreon:light,regular" rel="stylesheet" type="text/css" /> 

     <!-- Add jQuery --> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 

     <!-- Tracking Code --> 


     <!-- Maps --> 
     <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=*********************************************&sensor=false"> 
     </script> 
     <script type="text/javascript"> 
     //<![CDATA[ 
     var map; 
     var markers = []; 
     var infoWindow; 
     var geocoder = null; 

     function load() { 
      geocoder = new google.maps.Geocoder(); 

      map = new google.maps.Map(document.getElementById("map"), { 
       center: new google.maps.LatLng(40, -100), 
       zoom: 4, 
       mapTypeId: 'roadmap', 
       mapTypeControlOptions: { 
       style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
       } 
      }); 

      infoWindow = new google.maps.InfoWindow(); 

      displayMarkers(); 

      } //end load function 

     function findAddress(address) { 
      var addressStr = document.getElementById("stateselect").value; 
      if (!address && (addressStr != '')) 
       address = "State of " + addressStr; 
      else 
       address = addressStr; 
      if ((address != '') && geocoder) { 
       geocoder.geocode({ 
       'address': address 
       }, function(results, status) { 
       if (status == google.maps.GeocoderStatus.OK) { 
        if (status != google.maps.GeocoderStatus.ZERO_RESULTS) { 
        if (results && results[0] && results[0].geometry && results[0].geometry.viewport) 
         map.fitBounds(results[0].geometry.viewport); 
        } else { 
        alert("No results found"); 
        } 
       } else { 
        alert("Geocode was not successful for the following reason: " + status); 
       } 
       }); 
      } 
      } //end findAddress function 

     function displayMarkers() { 

      //pass the data to generate xml 
      var searchUrl = 'http://www.bridgesinternational.com/xml/genxmlibib.php'; 
      downloadUrl(searchUrl, function(data) { 
       var xml = parseXml(data); 
       var markerNodes = xml.documentElement.getElementsByTagName("marker"); 

       //loop through xml and create markers 
       for (var i = 0; i < markerNodes.length; i++) { 
       //declare and populate variables with xml data 
       //var locationID = markerNodes[i].getAttribute("locationID"); 
       var name = markerNodes[i].getAttribute("name"); 
       var latlng = new google.maps.LatLng(
        parseFloat(markerNodes[i].getAttribute("lat")), 
        parseFloat(markerNodes[i].getAttribute("lng"))); 
       var contact = markerNodes[i].getAttribute("contact"); 
       var website = markerNodes[i].getAttribute("website"); 
       var facebookPage = markerNodes[i].getAttribute("facebookPage"); 

       //create marker 
       //createMarker(locationID, latlng, name, contact, website, facebookPage); 
       createMarker(latlng, name, contact, website, facebookPage); 

       } //end for loop  

      }); //end downloadUrl function 

      } // end displayMarkers function 

     //function createMarker(locationID, latlng, name, contact, website, facebookPage) { 
     function createMarker(latlng, name, contact, website, facebookPage) { 
      //format the html to dispay inside the infowindow 
      var html = "<b>" + name + "</b>"; 

      if (contact != "") { 
       //html += "<br /><a href=\"http://www.bridgesinternational.com/campus-locator-email-form/?locationID=" + locationID + "\">Email Us!</a>"; 
       html += "<br /><a href=\"mailto:" + contact + "\">Email Us!</a>"; 
      } 
      if (website != "") { 
       html += "<br /><a href=\"http://" + website + "\">Visit our website</a>"; 
      } 
      if (facebookPage != "") { 
       html += "<br /><a href=\"http://" + facebookPage + "\">Connect with us on Facebook</a>"; 
      } 
      //console.log(html);    
      //create the marker 
      /***********************************************************/ 
      // Google Map Custom Marker Maker 2012 
      // Please include the following credit in your code 

      // Sample custom marker code created with Google Map Custom Marker Maker 
      // http://powerhut.co.uk/googlemaps/custom_markers.php 

      var image = new google.maps.MarkerImage(
       '<?php bloginfo(' 
       stylesheet_directory '); ?>/images/marker-images/image1.png', 
       new google.maps.Size(40, 45), 
       new google.maps.Point(0, 0), 
       new google.maps.Point(20, 45) 
      ); 

      var shadow = new google.maps.MarkerImage(
       '<?php bloginfo(' 
       stylesheet_directory '); ?>/images/marker-images/shadow1.png', 
       new google.maps.Size(66, 45), 
       new google.maps.Point(0, 0), 
       new google.maps.Point(20, 45) 
      ); 

      var shape = { 
       coord: [36, 0, 39, 1, 39, 2, 39, 3, 39, 4, 39, 5, 39, 6, 39, 7, 39, 8, 39, 9, 39, 10, 39, 11, 39, 12, 39, 13, 39, 14, 39, 15, 39, 16, 39, 17, 39, 18, 39, 19, 39, 20, 39, 21, 39, 22, 39, 23, 39, 24, 39, 25, 39, 26, 39, 27, 39, 28, 39, 29, 39, 30, 39, 31, 39, 32, 39, 33, 39, 34, 39, 35, 39, 36, 39, 37, 39, 38, 36, 39, 24, 40, 23, 41, 22, 42, 21, 43, 20, 44, 19, 44, 18, 43, 17, 42, 16, 41, 15, 40, 3, 39, 2, 38, 1, 37, 0, 36, 0, 35, 0, 34, 0, 33, 0, 32, 0, 31, 0, 30, 0, 29, 0, 28, 0, 27, 0, 26, 0, 25, 0, 24, 0, 23, 0, 22, 0, 21, 0, 20, 0, 19, 0, 18, 0, 17, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9, 0, 8, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 1, 2, 2, 1, 3, 0, 36, 0], 
       type: 'poly' 
      }; 

      var marker = new google.maps.Marker({ 
       icon: image, 
       shadow: shadow, 
       shape: shape, 
       map: map, 
       position: latlng 
      }); 

      //open the info window when the marker is clicked 
      google.maps.event.addListener(marker, 'click', function() { 
       infoWindow.setContent(html); 
       infoWindow.open(map, marker); 
      }); 
      //console.log(marker); 
      //add marker to marker array 
      markers.push(marker); 
      //console.log(markers);   
      } //end createMarker function 


     function downloadUrl(url, callback) { 
      var request = window.ActiveXObject ? 
       new ActiveXObject('Microsoft.XMLHTTP') : 
       new XMLHttpRequest; 

      request.onreadystatechange = function() { 
       if (request.readyState == 4) { 
       request.onreadystatechange = doNothing; 
       callback(request.responseText, request.status); 
       } 
      }; 

      request.open('GET', url, true); 
      request.send(null); 
      } // end downloadUrl function 

     function parseXml(str) { 

      if (window.ActiveXObject) { 
       var doc = new ActiveXObject('Microsoft.XMLDOM'); 
       doc.loadXML(str); 
       return doc; 
      } else if (window.DOMParser) { 
       return (new DOMParser).parseFromString(str, 'text/xml'); 
      } 
      } // end parseXml function 




     function doNothing() {} 

     //]]> 
     </script> 
     <!-- End Maps Script--> 
    </head> 

    <body onload="load()"> 
     <div id="page-container"> 
     <div id="header"> 

      <!-- begin logo --> 
      <a href="<?php bloginfo('url'); ?>"><img src="<?php bloginfo('stylesheet_directory'); echo('/images/bridges_logo_v1.png'); ?>" alt="Bridges International" id="logo"/></a> 
      <!-- end logo --> 

      <!-- begin social media and search --> 
      <div id="additional-info"> 
      <div id="social-media-icons"><a href="http://www.facebook.com/bridgesinternational" target="_blank"><img src="<?php bloginfo('stylesheet_directory'); echo('/images/facebook.png'); ?>" alt="Facebook" width="16" height="16" /></a> 
       <!--<a href="http://twitter.com/nationsherenow" target="_blank"><img src="<?php //bloginfo('stylesheet_directory'); echo('/images/twitter.png'); ?>" alt="Twitter" width="16" height="16" /></a>--> 
      </div> 
      <!-- search bar --> 
      <?php get_search_form($echo); ?> 
      </div> 
      <!-- end social media and search --> 

      <!-- begin nav--> 
      <?php wp_nav_menu(array('sort_column'=>'menu_order', 'theme_location' => 'header', 'menu' => 'Header Navigation', 'container' => false, 'menu_class' => 'nav', 'menu_id' => 'header-menu')); ?> 
      <!-- end nav--> 

      <!-- header image --> 
      <img id="header-img" src="<?php bloginfo('stylesheet_directory'); echo('/images/three-girls.jpg'); ?>" alt="Three Girls" /> 
     </div> 
     <!-- end header --> 

     <!-- begin custom content --> 
     <div id="content"> 
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
      <article> 
      <?php the_content(); ?> 
      </article> 
      <?php endwhile; ?> 
      <?php endif; ?> 
      <div id="map-message" style="color: #00F; font-weight: bold;"></div> 
      <div> 
      <select name="stateselect" id="stateselect" onclick="findAddress();return false" onchange="findAddress();return false" onfocus=""> 
       <option value=''>Select a State....</option> 
       <option value="Alabama">Alabama</option> 
       <option value="Alaska">Alaska</option> 
       <option value="Arizona">Arizona</option> 
       <option value="Arkansas">Arkansas</option> 
       <option value="California">California</option> 
       <option value="Colorado">Colorado</option> 
       <option value="Connecticut">Connecticut</option> 
       <option value="Delaware">Delaware</option> 
       <option value="Florida">Florida</option> 
       <option value="Georgia">Georgia</option> 
       <option value="Hawaii">Hawaii</option> 
       <option value="Idaho">Idaho</option> 
       <option value="Illinois">Illinois</option> 
       <option value="Indiana">Indiana</option> 
       <option value="Iowa">Iowa</option> 
       <option value="Kansas">Kansas</option> 
       <option value="Kentucky">Kentucky</option> 
       <option value="Louisiana">Louisiana</option> 
       <option value="Maine">Maine</option> 
       <option value="Maryland">Maryland</option> 
       <option value="Massachusetts">Massachusetts</option> 
       <option value="Michigan">Michigan</option> 
       <option value="Minnesota">Minnesota</option> 
       <option value="Mississippi">Mississippi</option> 
       <option value="Missouri">Missouri</option> 
       <option value="Montana">Montana</option> 
       <option value="Nebraska">Nebraska</option> 
       <option value="Nevada">Nevada</option> 
       <option value="New Hampshire">New Hampshire</option> 
       <option value="New Jersey">New Jersey</option> 
       <option value="New Mexico">New Mexico</option> 
       <option value="New York">New York</option> 
       <option value="North Carolina">North Carolina</option> 
       <option value="North Dakota">North Dakota</option> 
       <option value="Ohio">Ohio</option> 
       <option value="Oklahoma">Oklahoma</option> 
       <option value="Oregon">Oregon</option> 
       <option value="Pennsylvania">Pennsylvania</option> 
       <option value="Rhode Island">Rhode Island</option> 
       <option value="South Carolina">South Carolina</option> 
       <option value="South Dakota">South Dakota</option> 
       <option value="Tennessee">Tennessee</option> 
       <option value="Texas">Texas</option> 
       <option value="Utah">Utah</option> 
       <option value="Vermont">Vermont</option> 
       <option value="Virginia">Virginia</option> 
       <option value="Washington">Washington</option> 
       <option value="West Virginia">West Virginia</option> 
       <option value="Wisconsin">Wisconsin</option> 
       <option value="Wyoming">Wyoming</option> 
      </select> 
      </div> 
      <div id="map"></div> 
     </div> 
     <!-- end #content-area --> 

     <div id="footer" class="clearfix"> 
      <div id="footer-content"> 
      <h3>Contact Us</h3> 
      <p>12012 Technology Blvd #103 
       <br />Austin, TX 78727 
       <br />512-250-5046 
      </p> 
      <p id="copyright">&copy; 
       <?php echo(date("Y")); ?>Bridges International</p> 
      </div> 
      <!-- end #footer-content --> 

     </div> 
     <!-- end #footer --> 

     </div> 
     <!-- end #page-container --> 
     <?php /* Always have wp_footer() just before the closing </body>* tag of your theme, or you will break many plugins, which * generally use this hook to reference JavaScript files. */ wp_footer(); ?> 
    </body> 

    </html> 

XML-изменен с

<markers> 
    <marker locationID="8050" name="North Carolina State University" address="2200 Hillsborough Raleigh, NC 27695" lat="35.784958" lng="-78.682732" contact="10243" website="" facebookPage=""/> 
    ..... 
</markers> 

к:

<markers> 
    <marker name="North Carolina State University" website="missing" facebookPage="missing" lng="35.78579" lat="-78.663589" contact="[email protected]"/> 
    ..... 
</markers> 
+0

Как выглядит ваш XML сейчас? Как это изменилось? – geocodezip

+0

См. Текст выше для изменений XML. Я изменил xml, чтобы включить только ту информацию, которую я использую для карты infoWindows. – user1883901

ответ

0

Я понял ответ. Я переключил lat и lng на создание нового документа XML, который помещал маркеры из поля зрения в Антарктиде ...

Смежные вопросы