2012-07-25 65 views
0

我必須低於定義被髮布到一個谷歌的經緯度值的JavaScript對象映射創建腳本轉換latlngs的對象google.map.LatLng對象爲多邊形構建

var lat1 = '51.0001'; 
     var lng1 = '52.0001'; 
     var lat2 = '61.0001'; 
     var lng2 = '62.0001'; 
     google_map_item.coordinates = [ 
      new polygonLatLng(lat1,lng1), 
      new polygonLatLng(lat2,lng2) 
     ]; 

    google_map_items.push(google_map_item); 

    function polygonLatLng(lat,lng){ 
     this.lat = lat; 
     this.lng = lng; 
    } 

正如你可以看到google_map_item .coordinates對象基本上只是幾個點,我知道這不是完整的多邊形,但我已經硬編碼了一些簡單的值,只是試圖讓腳本在使用動態之前工作。

對象google_map_items被推到下面的地圖創建腳本:

jQuery(document).ready(function($) {  

     var longitude = google_map_items[0].lat; 
     var latitude = google_map_items[0].lon; 
     var center = new google.maps.LatLng(longitude, latitude); 

     var zoomlevel = parseInt(google_map_items[0].zoomlevel); 

     var myOptions = { 
      zoom: zoomlevel, 
      center: center, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     var bounds = new google.maps.LatLngBounds(); 
     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     for(i = 0; i < google_map_items.length; i++) { 
      var latlng = new google.maps.LatLng(google_map_items[i].lat, google_map_items[i].lon); 
      bounds.extend(latlng); 

      var marker = new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      icon: "https://chart.googleapis.com/chart?chst=d_map_pin_letter_withshadow&chld=" + (i + 1) + "|FF8888|000000", 
      zIndex: Math.round(latlng.lat()*-100000)<<5 
      }); 

      google.maps.event.addListener(marker, 'click', (function(marker, i) { 
      return function() { 
       $(".surgery").removeClass("highlighted"); 
       $("#surgery-" + (i + 1)).addClass("highlighted"); 
      } 
      })(marker, i)); 

     } 

     if (google_map_items.length >1) { map.fitBounds(bounds); } 

       //check if area to add to map 
       //if(google_map_items.coordinates){ 
       var surgeryArea; 

       var areaCoords = [ 

       ]; 

        surgeryArea = new google.maps.Polygon({ 
         paths: google_map_item.coordinates, 
         strokeColor: "#FF0000", 
         strokeOpacity: 0.4, 
         strokeWeight: 2, 
         fillColor: "#FF0000", 
         fillOpacity: 0.35, 
         clickable: true 
        }); 

        // add an event listener 
        google.maps.event.addListener(surgeryArea, 'click', function() { 
         this.setMap(null); 
        }); 

        surgeryArea.setMap(map); 

       //} 

     }); 

沒有爲areaCoords空obecjt需要建立尤斯新google.maps.LatLng構造函數裏面的每個點google_map_item.coordinates對象。我對JavaScript對象和數組操作的瞭解還不夠深入,無法解決通過這種語法的語法,因此非常感謝所有幫助。

回答

0

更改座標的值:

google_map_item.coordinates = [ 
     new google.maps.LatLng(lat1, lat1), 
     new google.maps.LatLng(lat2, lat2) 
    ];