0

データベースのテーブルからリストを取得します。緯度と経度が含まれています。これらのメーカーを Google マップで表示したい。だからここに私がしたことがあります:

<?php
        $exe1 = "SELECT * FROM accident";
        $result1 = mysql_query($exe1, $db) or die(mysql_error());
        $location = array();


        while ($row = mysql_fetch_array($result1)) {
            if ($row["latitude"] != "NA") {
                $location[] = array(
                    $row["latitude"],
                    $row["longitude"],

                );
            } 
            }

    ?>   

次に、JavaScript を使用してこれらのジオ コードを取得し、マーカーにプッシュします。

for (var i = 0; i < locations.length; i++) {

    lat = locations[i][0];
    lng = locations[i][1];
    }

テーブルには非常に多くの場所があるため、緯度と経度がまったく同じ場所がいくつかあります。同じ緯度と経度を含むこれらのマーカーを表示したいと思います。誰でも方法を知っていますか?あなたからの助けに感謝します!

4

1 に答える 1

0

同じ場所を 1 つだけ表示したい場合。

    $location = array();
    $hit = array();
    while ($row = mysql_fetch_array($result1)) {
        if ($row["latitude"] != "NA") {
            $lat = $row["latitude"];
            $lng = $row["longitude"];
            $key = $lat . '_' . $lng;
            $location[$key] = array($lat, $lng);
            $hit[$key]++;
        } 
    }

    $list = array();
    foreach ($hit as $key => $num) {
        if ($num > 1 ) {
            $list[] = $location[$key];
        }
    }

すべて同じ場所を表示する場合は、次のようにします。

    $location = array();
    $hit = array();
    while ($row = mysql_fetch_array($result1)) {
        if ($row["latitude"] != "NA") {
            $lat = $row["latitude"];
            $lng = $row["longitude"];
            $key = $lat . '_' . $lng;
            $location[$key][] = array($lat, $lng);
            $hit[$key]++;
        } 
    }

    $list = array();
    foreach ($hit as $key => $num) {
        if ($num > 1 ) {
            $list = array_merge($list, $location[$key]);
        }
    }
于 2013-07-19T01:39:57.693 に答える