具有纬度和经度的大样本数据库

时间:2011-02-17 23:02:16

标签: database postgresql dataset postgis sample-data

我正在寻找具有large坐标的lat/lng样本数据集(最好是csv格式)。

的PostgreSQL,PostGIS的

4 个答案:

答案 0 :(得分:6)

一个班轮将在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)

您可以轻松地将此查询添加到insert语句,并在必要时为几何添加正确的Postgis函数。最后一个数字'5'当然控制将生成多少行。

答案 1 :(得分:2)

基于随机数据的数据库活动模拟往往不现实,因此要小心使用它进行的任何加载或查询测试。如果您真的想要实际坐标的示例,那么数据集available from OpenStreetMap肯定很大。导入TIGER/Line Shapefiles是这样的最好的单一样本数据集之一,并且可能比已转换为OSM格式的样本数据更容易处理。

答案 2 :(得分:1)

根据我的评论,您可以使用此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>

答案 3 :(得分:0)

此CSV文件包含228500条纬度/长度的夫妇,代表所有国家/地区的真实景点(旅游景点/等):

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

许可证是CC-BY-SA。