Open joacub opened 11 years ago
No puedo reproducir el error; puedes incluir más detalles, o mejor, un test
que falla?
la funcion getCountry es siempre vacia y getParent igual, no los sitios no estan relacionados con su hijos ni padres. en la base de datos este dato no se rellena y por eso no tienen ningun dato de hijo ni padre.
lo siento pero no puedo reproducirlo, quizás está relacionada con / se causa por #3 ?
no no es eso, estoy viendo que geonames no parece pasar este dato en sus documentos, osea en el hiranchy.txt hay muchisimos sitios que no estan, ¿esto es posible? y como deveria de sacarse el padre de estos sitios que geonames no lo facilita o si lo facilita de otra forma.
un saludo
ah, gracias por la repuesta, pero que aún no está muy clara para localizar el bug (si lo es) -
zf2-geoname
extrae las relaciones desde hierarchy.txt
, si por algun razón un lugar no está en él, zf2-geoname
no puede relacionarlo con ningún lugar. El antiguo algoritmo sí que intenta descubrir relaciones en lugares entre si, pero que eso depiende de todos los datos - que es lentísimo y carísimo, y que eso necesita otro ciclo al fin (cuando todos los datos hayan terminado de importarse) - para que zf2-geoname
tenga datos completos con que trabajarhierarchy
se ha cambiado. Entonces claro que zf2-geoname
va a tener problemas con leerlo. Bueno, pero eso no va a ser muy probable, ya que hierarchy.txt
es algo como API medio-público...el problema es que geonames en hiranchy no pasa todos los datos o casi ninguno solo algunos, lo que hace que tu algoritno no relacione casi ningun sitio con sus padres, entonces no se cual sera la solucion pero no veo nada sencillo de hacer, no se como lo haria antes el algoritmo pero como bien dices habra que ahcer un ultimo paso en el que intentes localizar aquellos sitios que no esten en hiranchy que son muchos, por que si no se queda sin saberse ni ciudad ni poblacion ni nada lo que hace un poco inserbible el modulo.
Creo que ahora ya entendiste por donde viene el problema pero la solucion no la veo muy clara ya que geonames parece no pasar todo lo necesario para poder hacer esto.
admin{1-4}Code
y countryCode
, que indica districtos administrativos y país. El problema es que, ya sabes, un base de datos de geonames completo tiene literalmente millones de registros, y para cada paso del registro de lugar se buscará 0-5 lugares relacionados entre millones de registros - ¿eso se llama "eficaz", eh? - por eso abandoné este algoritmo.admin{1-4}Code
y/o countryCode
para un lugar. Con lo que se describe en geonames, creo que hierarchy.txt
debe ser un resume de lo que acabo de describir en (1). Pero no lo averigüé - tampoco puedo hacerlo por que para eso hay que examinar todo los millones de registros.vaya yo lo que aria es una tarea de mantenimiento que siemrpe se ejecute para mantener esta relacion entre todo pues si no no sirve de nada yo volveria a tu antiguo algoritmo para sacar este dato pero solo una vez tengas todo descargado he instalado ;D aunque le cueste es importante tener esto relacionado.
espero tu respuesta amigo
bueno, entonces ¿te importa hacernos un favor de averiguar si se puede confiar en hierarchy.txt
? si no, ya sabes cómo lo hice antes.
Si se puede confiar pero no da casi ningun dato comparado con la cantidad de sitios que hay, parece dar solo los mas importantes, yo complementaria ese paso que haces con el que hacias antes de esta manera te aseguras cualquier tipo de fallo o falta de datos ;D
pd: si me pudes hacer un commint de el codigo que tenias antes para resolver los padres te lo agradeceria asi ya lo tneemos perfecto por el resto el modulo funciona perfecto ;D
vaya, eso por si acaso que todavía lo tenga, que es de hace años cuando todavía no había empezado de usar git.
ok espero su respuesta
El algoritmo antiguo ya no está, pero es bastante similar como updatePlaceModify()
. De hecho, creo que puede copiar 90% del método, y simplemente lo executa con cada registro de lugar, como si se actualiciera el lugar ahora.
usted no lo va a implantar ?
Dame una semana o algo así y lo haré, es que de momento no tengo mucho tiempo libre por el trabajo; o puede implantarlo usted si no quiere esperar.
ok lo implantare y le are un commint a ver si le interesa
Disculpe por el tuteo, no lo sabía que se hablar por "usted" en github.
vale, gracias
a no te preocupes es msi forma de hablar puede tutearme todo lo que queira jeje ;D
vale jaja :-)
lo siento amigo no voy a poder dedicarle tiempo a esto estoy viendo y es un poco mas complicado de l oque preveia y tendria que invertirle mas tiempo del que dispongo lo siento :( esperare a que usted lo tenga gracias por todo :D
no hay problema, lo único es que ahora usted tiene que esperar :smile:
como lo lleva amigo, puedo cambiar el código ?
Lo siento de verdad, es que aún no tengo tiempo para volver a estos proyectos de PHP/Zend. Pero claro que sí, si ya tienes la solución, por favor danos un pull request.
Parece que getCountry del lugar no funciona correctamente no devuelve el pais y getParent tampoco devuelve el padre ni getChildren.
esto no parece estar funcionando o en la exportación no se incluye.