2014-01-09 20 views
0

我有一個包含在我的數據庫中500點的表格。我想在地圖上顯示這些點。目前它只顯示位於表格頂部的點。PHP Echo只在表格中顯示第一個點

在這段代碼上查詢顯示了我所有/需要的所有點。

<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/>"; 

}

?>

</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

顯示你的代碼code_text而不是圖片 - 使得它更容易複製和粘貼 –

回答

0

取出while循環中斷

+0

謝謝你的關心。當我在循環中取出它時,既沒有地圖也沒有點存儲 – jugoslaviaa

+0

粘貼您的代碼,以便我們可以複製和調試它 –

+0

我已經通過複製整個代碼來編輯問題。 – jugoslaviaa

相關問題