私は、円、長方形、ポリゴンを描き、その座標を名前付きデータベースに保存できるGoogleマップを持っています。今度は地図が保存されたすべての領域をロードされるたびに表示するようにしたい。私は円と長方形(座標の固定数)でこれを管理していますが、私は多角形をどのように表示するかについて固執しています。私はこのGoogle三角形の例から表示する標準的な方法を得ています:Polygon Arrays。私はこの部分に到達するまで すべてが素晴らしいです:複数のポリゴンがGoogleマップに表示されます
var triangleCoords = [
{lat: 25.774, lng: -80.190},
{lat: 18.466, lng: -66.118},
{lat: 32.321, lng: -64.757}
];
私は毎回の実行を表示するループは、私がtriangleCoordsにラッツとlngsの異なる数を配置する必要があり、異なるサイズのポリゴンを保存しています。私はテーブルとして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);
}
}
データのサンプルを含め、問題を示す[mcve]を入力してください。 – geocodezip
もう少しコードを追加しましたが、それは役に立ちますか? – lena
PHPはあなたのデータベースなしでは特に有用ではありません。 [mcve]が良いでしょう(ブラウザに提供されたHTMLがあなたに出発点を与えるかもしれません)。 – geocodezip