Tras el taller pgRouting aquí Tengo la siguiente consulta de enrutamiento:
$sql = "SELECT gid, start_id AS source, end_id AS target, the_geom,
distance(the_geom, GeometryFromText(
'POINT(".$lonlat[0]." ".$lonlat[1].")', 4326)) AS dist
FROM ".TABLE."
WHERE the_geom && setsrid(
'BOX3D(".($lonlat[0]-0.1)."
".($lonlat[1]-0.1).",
".($lonlat[0]+0.1)."
".($lonlat[1]+0.1).")'::box3d, 4326)
ORDER BY dist LIMIT 1";
Esta consulta falla con el error: Query failed: ERROR: Operation on two geometries with different SRIDs
. Ahora, he estado buscando y me encontré con este . He probado las sugerencias de este post, pero el error persiste. Cualquier idea sobre cómo solucionar esto será apreciada.
ACTUALIZACIÓN: Ejecutar SELECT st_srid(the_geom) FROM table_name
contra mi tabla de la base de datos devuelve -1
. En mi consulta y mapa, la proyección externa asumida es EPSG:4326
. ¿Es probable que cambiar este valor ayude? ¿Hay algún inconveniente en cambiar el valor srid directamente en la base de datos? ¿Cómo puedo cambiar el valor srid en la base de datos si no presenta ningún riesgo?
ACTUALIZACIÓN: Tuve que cambiar el srid de la columna del UNKNOWN
indicador de -1
a 4326
. La respuesta en este Post de StackOverflow fue de gran ayuda en esto. Además, la pregunta en este Puesto SE GIS fue fundamental para ayudarme en la dirección correcta.