![](/img/trans.png)
[英]Display multiple polygons on Google Maps and toggle visibility of each polygon
[英]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.