2011-04-11 90 views
1

我正在嘗試使用戶從表單中選擇一些內容並點擊提交後,它會將所有內容添加到Google地圖中。添加標記可以很好地工作,並添加一個監聽事件來添加多義線也可以。由於某些原因,KML文件無法正確覆蓋。我不確定我是否正確地做到了。來自窗體的值確實回顯出來,所以我知道數據至少到達了地圖函數。下面是一個不正常的代碼:將KML圖層添加到Google地圖API 3

window.onload = function() { 
     // Creating an object literal containing the properties 
     // we want to pass to the map 
     var options = { 
      zoom: 5, 
      center: new google.maps.LatLng(39.09, -95.71), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     // Creating the map 
     var map = new google.maps.Map(document.getElementById('map'), options); 
     // Creating a LatLngBounds object 
     var bounds = new google.maps.LatLngBounds(); 

     // Creating an empty MVCArray 
     var route = new google.maps.MVCArray(); 

     var polyline = new google.maps.Polyline({ 
      path: route, 
      strokeColor: "#ff0000", 
      strokeOpacity: 0.6, 
      strokeWeight: 5 
     });  
     polyline.setMap(map); 
     google.maps.event.addListener(map, 'click', function(e) { 
      var path = polyline.getPath(); 
      path.push(e.latLng); 
     }); 
     kmlFiles.setMap(map); 

這裏是設定kmlFiles變量的代碼:

kmlFiles = new google.maps.KmlLayer(<?php echo $_POST['kmlFile']; ?>); 
+0

代碼對我來說看起來沒問題。究竟出了什麼問題?你真的需要使用kml文件嗎? – 2011-04-12 06:53:42

回答

0

我懷疑你缺少周圍的URL報價要傳遞到KMLLayer例如

var layer = new google.maps.KmlLayer(http://www.site.com/foo.kml);

無效而

變種層=新google.maps.KmlLayer( 「http://www.site.com/foo.kml」);

有效。