PHP Echo只显示了表中的第一点

时间:2014-01-09 13:28:19

标签: php sql mapping

我有一个表,在我的数据库中包含500个点。我想在地图上显示这些点。目前它只显示表格列表顶部的点。

在此代码中,查询显示我拥有/需要的所有点。

<html>
<head><title>Hallo Geoinfo </title></head>
<body>

<?php
$db = pg_connect('host=localhost dbname=gis_db user=user password=user');

$query = "SELECT gid,geoeffnet_,ST_ASGEOJSON(geom) as geom from public.christbaumogd";

$result = pg_query($query);
if(!$result){
echo "Problem wiht query" . $query . "<br/>";
echo pg_last_error();
exit();
}

while($row = pg_fetch_assoc($result)){
echo "ID:". $row['gid'] ."<br/>";
echo "Zone" . $row['geoeffnet_'] ."<br/>";
echo "Geometry" . $row['geom'] ."<br/>";

}

&GT;

</body>
</html>

但是当我尝试使用相同的查询将点放在地图上时,它只显示一个点

<html>
<head> 
<title>OpenLayers Demo</title>
    <script src="http://www.openlayers.org/api/OpenLayers.js"></script> 
<!--<script src="http://localhost:8082/geoserver/openlayers/OpenLayers.js"      ></script>-->
    <script  type="text/javascript">


    var map; //representiert die Karte

    var startpointlat =  48.21252;//Wien
    var startpointlong= 16.37832;//Wien
    var startzoom = 3;


    var bounds = new OpenLayers.Bounds(
                16.1536311, 48.106509,
                16.6148645, 48.3433243
            );
    var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 0.00180169296875,
                projection: "EPSG:4326",
                units: 'degrees'
        };

    //Karte erstellen
    function init() {
    map = new OpenLayers.Map("map",options);//name muss mit div id übereinstimmen       


    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
        "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
    map.addLayer(wms);


    //database Ergebnis einbinden
    var polygons= <?php
        $db = pg_connect('host=localhost dbname=gis_db user=user password=user');
        $query = "SELECT gid, ST_ASGEOJSON(geom) as geom from public.christbaumogd";
        $result = pg_query($query);
        if(!$result){
        echo "Problem with query" . $query . "<br/>";
        echo pg_last_error();
        exit();
        }

        while($row = pg_fetch_assoc($result)){
         echo $row['geom'];
        break;
        } 

    ?>;
    var geojson_format= new OpenLayers.Format.GeoJSON();
    var vector_layer= new OpenLayers.Layer.Vector();
    map.addLayer(vector_layer);
    vector_layer.addFeatures(geojson_format.read(polygons));
    //database end


    // Controls einbinden
            map.addControl(new OpenLayers.Control.PanZoomBar({
                position: new OpenLayers.Pixel(2, 15)
            }));
            map.addControl(new OpenLayers.Control.Navigation());               

    //auf den extent zoomen
    var lonLat = new OpenLayers.LonLat(startpointlong,startpointlat);
            map.setCenter(lonLat, startzoom);

    }





    </script>
</head>
<body onload="init();">



<div style="width:100%; height:100%" id="map"></div>


</body>
</html>

提前致谢。

1 个答案:

答案 0 :(得分:0)

在while循环中取消休息