2518
Este SQL contiene una base de datos con "casi" todas las localidades del mundo agrupadas en regiones y países. Cada registro está en ocho idiomas (Ruso, Inglés, Alemán, Francés, Castellano, Italiano, Portugués y Chino). Contiene un total de 214 países, 1997 regiones y 129602 localidades. Contiene también la posición devuelta por la API de Google Maps para latitud y longitud y si esa posición es exacta o no. Espero que os sirva de ayuda en vuestros proyectos. Más info en el primer comentario.
menéame
Las tablas de paises, regiones y localidades contienen la posición de longitud y latitud en los campos x e y. Además incluye el campo de exacto que indica si ese lugar está correctamente posicionado (según los datos devueltos por google maps).
Las búsquedas de las localidades se realizaron de la siguiente manera:
Localidad, región, país [si falla] > Localidad, país [si falla] > país.
Solo lleva exacto = 1 cuando la búsqueda por localidad, región y país devuelve posición exacta.
1) He descargado una serie de XML con continentes, países, regiones y localidades, en total casi 20.000 XML.
2) He recorrido cada XML parseando el contenido y guardándolo en base de datos.
3) He creado un script de PHP que realiza la petición de geolocalización. El problema está en que google te corta las solicitudes en cuanto detecta peticiones sistemáticas automáticas o demasiado rápidas desde una misma IP, con lo que el script hacía un sleep(1) entre cada petición. Cuando google detectaba algo extraño, cortaba la conexión indicando "límite de peticiones alcanzado", entonces reiniciaba el router, y con nueva IP volvía a lanzar el proceso.
Es casi una semana de trabajo
<<You have reached the download-limit for free-users. Want to download more?>>
Alguien puede poner algún enlace alternativo?
Por cierto:
meneame.net/story/las-horas-felices-rapidshare
enhorabuena por el trabajo por el trabajo
Saludos!
Link a Gigasize.com: www.gigasize.com/get.php?d=2vmd9fgf4qb
En este enlace aparecen varios sitios que ofrecen esta información de forma libre
wiki.openstreetmap.org/index.php/Search
En geonames tienen también bases de datos descargables de puntos de interés, artículos de wikipedia geoposicionados, BDD con códigos postales de varios países...
download.geonames.org/export/dump/
Tu puedes coger un gps y publicar que tu ciudad está en longitud foo y latitud bar, lo que no puedes hacer es tomar esos datos de un corpus con copyright restrictivo y reproducirlos alegremente.
Gracias por el currazo
Gracias por todo! :))))
Aunque, eso realmente no está creado a partir de las coordenadas.
Las coordenadas las usaré para buscar envíos en un radio de quilómetros de otras localizaciónes (tu localización o la localización de los envíos), para eso, si os interesa, esta es la consulta:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
En donde selecciona un máximo de 20 localizaciones en un radio de entre 20 y 37 millas alrededor de la coordenadas 37, -122
El original:
Finding locations nearby with MySQL
To find locations in our markers table that are within a certain radius distance of a given latitude/longitude, you can use a SELECT statement based on the Haversine formula. The Haversine formula is used generally for computing great-circle distances between two pairs of coordinates on a sphere. An in-depth mathemetical explanation is given by Wikipedia and a good discussion of the formula as it relates to programming is on Movable Type's site.
Here's the SQL statement that will find the closest 20 locations that are within a radius of 25 miles to the 37, -122 coordinate. It calculates the distance based on the latitude/longitude of that row and the target latitude/longitude, and then asks for only rows where the distance value is less than 25, orders the whole query by distance, and limits it to 20 results. To search by kilometers instead of miles, replace 3959 with 6371.
¡¡A LA HOGUERA CON ESTE BICHO RARO DE MENEAME!!
(Excelente, Lito, me has alegrado el día. Hacía años que no leía aportes como este en meneame, como era al principio.)
Bendito seas Lito
To search by kilometers instead of miles, replace 3959 with 6371.