2016-10-17 9 views
-1

私は、円、長方形、ポリゴンを描き、その座標を名前付きデータベースに保存できる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); 
} 
} 
+0

データのサンプルを含め、問題を示す[mcve]を入力してください。 – geocodezip

+0

もう少しコードを追加しましたが、それは役に立ちますか? – lena

+0

PHPはあなたのデータベースなしでは特に有用ではありません。 [mcve]が良いでしょう(ブラウザに提供されたHTMLがあなたに出発点を与えるかもしれません)。 – geocodezip

答えて

1

私は作った!私が必要としたのは、ポリゴンの新しい点をすべて配列に挿入することでした。シンプルでしたが、私は「プッシュ」の使用を念頭に置いていませんでした。コードは次のとおりです!

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; 
} 
関連する問題