簡體   English   中英

多個多邊形顯示在 Google 地圖上

[英]Multiple Polygons display on Google Maps

我有一個谷歌地圖,我可以在其中繪制圓形、矩形和多邊形,然后將它們的坐標保存在具有名稱的數據庫中。 現在我希望每次加載地圖時都顯示所有保存的區域。 我已經用圓形和矩形(固定數量的坐標)管理了這個,但我被困在我將如何顯示多邊形上。 我從這個谷歌三角形示例中獲得了標准的顯示方法: Polygon Arrays 一切都很好,直到我到達這部分:

var triangleCoords = [
        {lat: 25.774, lng: -80.190},
        {lat: 18.466, lng: -66.118},
        {lat: 32.321, lng: -64.757}
    ];

我保存了不同大小的多邊形,所以每次顯示循環運行時,我需要將不同數量的 lats 和 lngs 放入triangleCoords 中。 我嘗試使用triangleCoords 作為表格,但結果非常錯誤:

                    var j=1;
                    var k;
                    for (k = 0; k < (coo.length)/2 ; k++ ){
                        var triangleCoords[k] = [
                            {lat: coo[j], lng: coo[j+1]}
                        ];
                        j+=2;
                    }

這可能是一件非常簡單的事情,但我對編程的興趣不長,現在我越來越深入了! 你能幫忙嗎? 關於我應該在哪里看的任何提示? 一些示例代碼? 提前致謝!

這里還有一些代碼,這有幫助嗎?

<?php  
                $result2 = mysql_query("SELECT * FROM allplaces WHERE user_id = '$userid' "); 

                  $coordinates = array();
                  while ($row = mysql_fetch_array($result2)) {     
                    $coordinates[] = $row['coordinates']; 
                  } 
                ?>
var coordinates = new Array();
    <?php 
                for ($i=0;$i<count($coordinates); $i++)
                {
                    echo "coordinates[$i]='".$coordinates[$i]."';\n";
                }
?>
var i;
    for (i = 0; i < coordinates.length; i++) {  

                    var str = coordinates[i];
                var coo = str.split(";"); //first cell of coo is empty

if ( type[i] == 1 ){            //polygon

                    // Define the LatLng coordinates for the polygon's path.

   --> [code here that fills the triangleCoords each time, where triangleCoords must have the form that is given in the first Code Sample]

                    // Construct the polygon.
                    var bermudaTriangle = new google.maps.Polygon({
                      paths: triangleCoords,
                      strokeColor: '#FF0000',
                      strokeOpacity: 0.8,
                      strokeWeight: 2,
                      fillColor: '#FF0000',
                      fillOpacity: 0.35
                    });
                    bermudaTriangle.setMap(map); 
}
}

我讓它工作了! 我需要的是將多邊形的每個新點推入數組。 這很簡單,但我沒想到使用“推”。 代碼如下!

var bermudaTriangle = [];
var j;
var k=1;
for (j=0; j < (coo.length)/2 ; j++){
    bermudaTriangle.push(new google.maps.LatLng(coo[k],coo[k+1]));
    k+=2;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM