2015-01-23 3 views
-1

Я не уверен, почему это внезапно началось, но мое приложение, использующее карты google api и jquery, больше не загружает файлы KML, как это когда-то было. С моей стороны изменений кода не было, поэтому я не знаю, в чем причина. Я обновил библиотеки jquery, думая, что это могло вызвать проблему без везения. Я убедился, что файлы kml все еще существуют в правильном месте, которое они делают. Я читал, что Google меняет, как накладываются KML-наложения, но мое понимание статьи - это то, что было бы в феврале, но я еще не считаю это.Google Map v3 API Наложение KML больше не загружает файлы kml

Если бы я должен был догадаться, я бы сказал, что функция setMap() больше не поддерживается, но на данный момент я понятия не имею, я просто догадываюсь.

Любая помощь была бы принята с благодарностью. Спасибо!

Ниже приведен код, который я использую для загрузки файлов KML.

<link rel="stylesheet" href="jQuerythemes/jquery.mobile.theme-1.4.5.min.css" /> 
<link rel="stylesheet" href="jQuerythemes/jquery.mobile.structure-1.4.5.min.css" /> 
<link rel="stylesheet" href="jQuerythemes/jquery.mobile.icons-1.4.5.min.css" />  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
<script src="jQuerythemes/jquery-2.1.3.min.js"></script> 
<script src="jQuerythemes/jquery.mobile-1.4.5.min.js"></script> 

<script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places"></script> 
<script src="jQuerythemes/jquery.geocomplete.min.js"></script> 

<script type="text/javascript"> 
    $(document).on('pageshow', '#map_page', function() { 
     initialize(); 
     layersOFFonload();   
    }); 

var routesLayerKML = []; 

function initialize() { 
     // set the default center of the map 
     var mapCenter = new google.maps.LatLng(55.1669513, -118.8031093); 

     //updateMapSize(mapCenter); 
     // set the display options for the map 
     var myOptions = { 
      mapTypeControl: false, 
      zoom: 12, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      center: mapCenter 
     } 
     // add the map to the map placeholder 
     map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     }); 

var kmlOptions = { 
      suppressInfoWindows: false, 
      preserveViewport: false, 
      map: map 
     }; 

routesLayerKML[0] = new google.maps.KmlLayer('http://mydomain/KML/mobile_route1.kml', kmlOptions); 
     routesLayerKML[1] = new google.maps.KmlLayer('http://mydomain/KML/mobile_route2.kml', kmlOptions); 
     routesLayerKML[2] = new google.maps.KmlLayer('http://mydomain/KML/mobile_route3.kml', kmlOptions); 

function layersOFFonload(){ 
     routesLayerKML[0].setMap(null); 
     routesLayerKML[1].setMap(null); 
     routesLayerKML[2].setMap(null);   
       } 

    function toggleLayer(i) { 
     if (routesLayerKML[i].getMap() === null) { 
      routesLayerKML[i].setMap(map); 
     } 
     else { 
      routesLayerKML[i].setMap(null); 
     } 
    } 


<div data-role="page" id="map_page"> 
    <div data-role="panel" id="routeLayersPage" data-position="right" data-display="overlay"> 
     <div data-role="header"> 
      <h1>Routes</h1> 
     </div>   
     <div> 
      <input type="checkbox" id="routesLayerKML0" onclick="toggleLayer(0)" /> 
       <label for="routesLayerKML0">Route 1</label> 
       <input type="checkbox" id="routesLayerKML1" onclick="toggleLayer(1)" /> 
       <label for="routesLayerKML1">Route 2</label> 
       <input type="checkbox" id="routesLayerKML2" onclick="toggleLayer(2)" /> 
       <label for="routesLayerKML2">Route 3</label> 
       <input type="checkbox" id="routesLayerKML3" onclick="toggleLayer(3)" /> 
      </div> 
      <a href="#my-header" data-role="button" data-rel="close">Close panel</a> 
     </div> 
+0

[KmlLayer работает для меня] (http://www.geocodezip.com/v3_GoogleEx_layer-kml_linktoB.html?filename=http://www.geocodezip.com/geoxml3_test/kmz/SO_ab9Plan0520.kmz). Возможно, ваша конфигурация сервера изменилась и больше не обслуживает эти файлы с правильным типом MIME (что случилось со мной). Не могу сказать, что без ссылки на KML. – geocodezip

+0

Ваша абсолютно правильная !! Это была точная проблема, я не знаю, почему или когда это изменилось, но MIME-тип полностью отсутствовал. Спасибо за ответ. Уверен, было бы здорово узнать, почему кто-то проголосовал за мою репутацию за этот пост. Это проблема с этим форумом, такие люди, которые препятствуют тому, чтобы другие получали достаточную репутацию, на самом деле публикуют ответы для других. Прежде чем вы нажмете эту кнопку, вам придется опубликовать причину. пффф. – Frost

+0

Проконсультируйтесь с вашей хостинговой компанией. Когда это случилось со мной, это было потому, что кто-то взломал мой сайт, и был активен активный. – geocodezip

ответ

0

Как указано в @geocodezip, тип MIME отсутствовал в IIS.

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