Google 地图上显示多个多边形
Multiple Polygons display on Google Maps
我有一张 google 地图,我可以在其中绘制圆形、矩形和多边形,然后将它们的坐标保存在数据库中并命名。现在我希望每次加载地图时都显示所有保存的区域。我已经用圆圈和矩形(固定数量的坐标)解决了这个问题,但我仍然坚持如何显示多边形。我正在从这个 google 三角形示例中获得显示的标准方法:Polygon Arrays。
一切都很好,直到我到达这一部分:
var triangleCoords = [
{lat: 25.774, lng: -80.190},
{lat: 18.466, lng: -66.118},
{lat: 32.321, lng: -64.757}
];
我已经保存了不同大小的多边形,所以每次显示循环运行时,我需要在 triangleCoords 中放入不同数量的经纬度。我尝试使用 triangleCoords 作为 table 但它出错了:
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);
}
}
我做到了!我需要的是将多边形的每个新点都推入数组。这很简单,但我没有想到使用 "push"。代码如下!
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;
}
我有一张 google 地图,我可以在其中绘制圆形、矩形和多边形,然后将它们的坐标保存在数据库中并命名。现在我希望每次加载地图时都显示所有保存的区域。我已经用圆圈和矩形(固定数量的坐标)解决了这个问题,但我仍然坚持如何显示多边形。我正在从这个 google 三角形示例中获得显示的标准方法:Polygon Arrays。 一切都很好,直到我到达这一部分:
var triangleCoords = [
{lat: 25.774, lng: -80.190},
{lat: 18.466, lng: -66.118},
{lat: 32.321, lng: -64.757}
];
我已经保存了不同大小的多边形,所以每次显示循环运行时,我需要在 triangleCoords 中放入不同数量的经纬度。我尝试使用 triangleCoords 作为 table 但它出错了:
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);
}
}
我做到了!我需要的是将多边形的每个新点都推入数组。这很简单,但我没有想到使用 "push"。代码如下!
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;
}