0

我从数据库中的表中获取列表。它包含纬度和经度。我想在谷歌地图上展示这些制造商。所以这就是我所做的:

<?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];
    }

因为我的表中有很多位置,其中一些具有完全相同的纬度和经度。我想显示这些包含相同 lat 和 lng 的标记。有谁知道该怎么做?感谢您的任何帮助!

4

1 回答 1

0

如果您只想显示一个相同的位置;

    $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 回答