yalesov / zf2-geoname

Maintain a local copy of the Geonames (places) database.
12 stars 1 forks source link

pais no se obtiene #4

Open joacub opened 11 years ago

joacub commented 11 years ago

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.

heartsentwined commented 11 years ago

No puedo reproducir el error; puedes incluir más detalles, o mejor, un test que falla?

joacub commented 11 years ago

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.

heartsentwined commented 11 years ago

lo siento pero no puedo reproducirlo, quizás está relacionada con / se causa por #3 ?

joacub commented 11 years ago

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

heartsentwined commented 11 years ago

ah, gracias por la repuesta, pero que aún no está muy clara para localizar el bug (si lo es) -

joacub commented 11 years ago

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.

heartsentwined commented 11 years ago
  1. El algoritmo antiguo lee cada lugar, y resuelve sus padres media 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.
  2. Y si geonames no tiene datos, entonces esto no se puede resolver. Para "tiene datos" me refiero a que tiene 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.
joacub commented 11 years ago

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

heartsentwined commented 11 years ago

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.

joacub commented 11 years ago

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

heartsentwined commented 11 years ago

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.

joacub commented 11 years ago

ok espero su respuesta

heartsentwined commented 11 years ago

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.

joacub commented 11 years ago

usted no lo va a implantar ?

heartsentwined commented 11 years ago

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.

joacub commented 11 years ago

ok lo implantare y le are un commint a ver si le interesa

heartsentwined commented 11 years ago

Disculpe por el tuteo, no lo sabía que se hablar por "usted" en github.

heartsentwined commented 11 years ago

vale, gracias

joacub commented 11 years ago

a no te preocupes es msi forma de hablar puede tutearme todo lo que queira jeje ;D

heartsentwined commented 11 years ago

vale jaja :-)

joacub commented 11 years ago

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

heartsentwined commented 11 years ago

no hay problema, lo único es que ahora usted tiene que esperar :smile:

joacub commented 11 years ago

como lo lleva amigo, puedo cambiar el código ?

heartsentwined commented 11 years ago

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.