Большая база данных с широтами и долготами - PullRequest
4 голосов
/ 18 февраля 2011

Я ищу образец набора данных large (предпочтительно в формате CSV), который имеет lat/lng координаты.

PostgreSQL, PostGIS

Ответы [ 4 ]

6 голосов
/ 21 февраля 2011

Один лайнер сгенерирует данные в sql:

test=# select POINT(random()*180-90, random()*90-45)from generate_series(1,5);
                point                 
--------------------------------------
 (79.7833853960037,27.2689918940887)
 (27.6489242445678,-9.43540174048394)
 (-51.9591500423849,19.2025181371719)
 (83.5859301500022,31.8948447704315)
 (-56.1149036698043,42.5037826504558)
(5 rows)

Вы можете легко добавить этот запрос в оператор вставки и при необходимости добавить правильную функцию Postgis для геометрии.Последнее число «5», конечно, контролирует, сколько строк будет сгенерировано.

2 голосов
/ 22 февраля 2011

Моделирование активности базы данных на основе случайных данных, как правило, нереалистично, поэтому будьте осторожны с любой нагрузкой или тестированием запросов, которое вы делаете с ним. Если вам действительно нужны примеры реальных координат, наборы данных , доступные из OpenStreetMap , безусловно, большие. Импорт TIGER / Line Shapefiles является одним из лучших отдельных наборов примеров данных, подобных этому, и с ним, вероятно, легче обращаться, чем с теми, которые были преобразованы в форматы OSM.

1 голос
/ 18 февраля 2011

После моего комментария вы можете использовать эту html-страницу, чтобы набрать столько очков, сколько вы хотите.

<!DOCTYPE html>
<html lang="en-au">
<head>
    <meta charset="utf-8">
    <meta http-equiv="pragma" content="no-cache" />
</head>
<body>
<script type="text/javascript">
function generatePoints(){
    var pointsToGenerate = document.getElementById('pointsToGenerate').value;

    var output = '';

    for (i=0;i<pointsToGenerate;i++) {
        var multiplier = 10000;
        var latitude=(Math.random()*(90*multiplier))/multiplier;
        var longitude=(Math.random()*(180*multiplier))/multiplier;
        latitude *=(Math.floor(Math.random()*2) == 1)?1:-1;
        longitude *=(Math.floor(Math.random()*2) == 1)?1:-1;
        output = output + latitude + ',' + longitude + '\n';
    }

    document.getElementById('output').innerHTML = output;
}
</script>
<input type="text" id="pointsToGenerate" value="1000" />
<input type="button" onclick="generatePoints()" value="Generate Points" />
<div><textarea cols=40 rows=10 id="output"></textarea></div>
</body>
</html>
0 голосов
/ 24 июля 2015

Этот CSV-файл содержит 228500 лат / длинных пар, представляющих реальные достопримечательности (туристические достопримечательности и т. Д.) Во всех странах:

http://datahub.io/dataset/wikivoyage-listings-as-csv

Лицензия CC-BY-SA.

...