19-01-2012, 16:49
Hej!
To jest skrypt, który generuje geojson z bazy. Chcę go podczytać do openlayers przez new OpenLayers.Format.GeoJSON();
jeżeli wpiszę jako 'url' podany wyżej plik to wywala mi błąd (linia 305 w pliku openLayers.js)
http://www.geostrona.pl/_temp/geojson.php
QGIS "łyka" ten wynik i po zapisaniu wyświetla się wszystko jak trzeba.
Problemem jest to, że wszystko robię przez echo, a nie przez funkcje PHP do generowania JSON???
Tu widzę kilka fragmentów kodu,
http://www.osgeo.org/pipermail/openlayer...21995.html
zrobiłem to bardziej po ludzku i teraz błędu nie wyrzuca, ale za to geometrii nie widzi...
Pewnie dlatego, że mi ją w cudzusłowie wsadziło....
http://www.geostrona.pl/_temp/geojson2.php
OK. Mam to. na przyszłość. Geometria też musi iść jako tablica:
To jest skrypt, który generuje geojson z bazy. Chcę go podczytać do openlayers przez new OpenLayers.Format.GeoJSON();
jeżeli wpiszę jako 'url' podany wyżej plik to wywala mi błąd (linia 305 w pliku openLayers.js)
http://www.geostrona.pl/_temp/geojson.php
Kod PHP:
echo "{
"type": "FeatureCollection",
"features": [
";
while ($row = pg_fetch_array($result)) {
echo "{ "type": "Feature", "id": ".$row[0].", "properties": { "gid": ".$row[0].", "fid": ".$row[1]." }, "geometry": { "type": "Point", "coordinates": [ ".$row[2].", ".$row[3]." ] } }
,
";
}
echo "]
}";
QGIS "łyka" ten wynik i po zapisaniu wyświetla się wszystko jak trzeba.
Problemem jest to, że wszystko robię przez echo, a nie przez funkcje PHP do generowania JSON???
Tu widzę kilka fragmentów kodu,
http://www.osgeo.org/pipermail/openlayer...21995.html
zrobiłem to bardziej po ludzku i teraz błędu nie wyrzuca, ale za to geometrii nie widzi...
Pewnie dlatego, że mi ją w cudzusłowie wsadziło....
http://www.geostrona.pl/_temp/geojson2.php
Kod PHP:
$query = "SELECT gid, fid, ST_X(ST_centroid(geom)) as X, ST_Y(ST_centroid(geom)) as Y FROM XXX";
$result = pg_query($dbconn, $query);
// Return route as GeoJSON
$geojson = array(
'type' => 'FeatureCollection',
'features' => array()
);
// Add edges to GeoJSON array
while($row=pg_fetch_array($result)) {
$feature = array(
'type' => 'Feature',
'type' => $row[0],
'properties' => array(
'gid' => $row[0],
'fid' => $row[1]
),
'geometry' => array(
'type' => 'Point',
'coordinates' => array($row[2], $row[3])
)
);
// Add feature array to feature collection array
array_push($geojson['features'], $feature);
}
// Close database connection
pg_close($dbconn);
// Return routing result
//header('Content-type: application/json',true);
echo json_encode($geojson);
OK. Mam to. na przyszłość. Geometria też musi iść jako tablica:
Kod PHP:
'geometry' => array(
'type' => 'Point',
'coordinates' => array($row[2], $row[3])
)