Estoy tratando de hacer un select en una tabla mysql y, a continuación, escribir a un archivo geojson. Me estoy acercando pero hay un par de problemas. He aquí lo que tengo hasta ahora:
<?php
require("dbinfo.php");
// Opens a connection to a mySQL server
$connection=mysql_connect ($hostname, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// json output
$query = 'SELECT * FROM markers LIMIT 5';
$dbquery = mysql_query($query);
// $rows = array();
// while($r = mysql_fetch_assoc($dbquery)) {
// $coords = $rows['lng'] . ", ";
// // $rows[] = $r;
// }
if(! $dbquery )
{
die('Could not get data: ' . mysql_error());
}
// Parse the dbquery into geojson
// ================================================
// ================================================
// Return markers as GeoJSON
$geojson = array(
'type' => 'FeatureCollection',
'features' => $feature
);
while($row = mysql_fetch_assoc($dbquery)) {
$feature = array(
'type' => 'Feature',
'geometry' => array(
'type' => 'Point',
'coordinates' => array($row['lng'], $row['lat'])
),
'properties' => array(
'name' => $row['name'],
'comment' => $row['comment']
)
);
array_push($geojson, $feature);
};
mysql_close($connection);
// // Return routing result
header("Content-Type:application/json",true);
//header("Location:map.html");
echo json_encode($geojson);
?>
El resultado que obtengo es:
{"type":"FeatureCollection","features":null,"0":{"type":"Feature","geometry":{"type":"Point","coordinates":["-122.677811","45.569889"]},"properties":{"name":"Bear on a Box","comment":"Bear on a box."}},"1":{"type":"Feature","geometry":{"type":"Point","coordinates":["-122.653770","45.542503"]},"properties":{"name":"test","comment":"aksdhvah"}},"2":{"type":"Feature","geometry":{"type":"Point","coordinates":["-122.675400","45.515690"]},"properties":{"name":"Bike Art","comment":"Bike pile."}},"3":{"type":"Feature","geometry":{"type":"Point","coordinates":["-122.688789","45.517735"]},"properties":{"name":"Goose","comment":"lipsumLorem ipsum dolor sit amet, consectetur adipiscing elit. Nam ut urna dolor. Sed iaculis velit quis nis"}},"4":{"type":"Feature","geometry":{"type":"Point","coordinates":["-122.649132","45.513401"]},"properties":{"name":"Goose","comment":"lorem ipsum"}}}
Así, el problema es que las "características" punto de no aguantar el resto de la información como una matriz. Sigue 'null'. A continuación, aparece la posición del array está escrito en el resultado de lo que no quiero. Por último, tengo que deshacerme de las comillas alrededor de las coordenadas de modo que pueda ser leído correctamente por el Prospecto del GeoJSON constructor. Estoy agitando con matrices y probablemente no la reciben. Quiero decir, no todo lo que se inserta en una matriz tiene que estar entre comillas? Gracias de antemano por cualquier ayuda.