Tag: postgis

数据库查询node.js(PHP风格)

我终于明白了websockets的概念。 我在这里find了很棒的问答,非常感谢。 我将要安装node.js以及apache和geoserver作为web-mapping项目,我将使用node.js来处理websocket。 实际上,在编码方面,我对php有更多的经验,并且很难将我的逻辑从传统的xml-http请求中转移出来,但我会给它一个机会。 一些问题,在我挖掘之前。我使用postgreSQL / postGIS,如何执行从node.js到postgreSQL / postGIS的数据库查询? 我习惯于像下面这样的传统的PHP查询 $stmt = $dbh->prepare("SELECT pins.p_name FROM pins WHERE type.t_id=pins.p_type AND AND p_id = :nm"); $stmt->bindParam(':nm', $nm, PDO::PARAM_STR); $nm=$jas; $data=array('nm'=>$nm); $stmt->execute($data); //blah blah //(I always use PDO and prepared statements) 大多数教程都谈论聊天应用程序,但是关于查询和与postgreSQL / postGIS沟通呢? 在node.js / socket.io中可以吗? 任何提示/教程? 我想执行查询,收集结果,把一些html标签,然后推回到客户端,在一个特定的股利。 另外,是node.js现在在Windows 7上工作,没有问题? 在过去它没有,但我想现在它,因为他们有一个MSI安装程序。 对? 非常感谢你…

Mapnik PostGIS GeoJSON / TopoJSON渲染

我成功地使用PostGIS从一个定制的dynamicnode-mapnik tile服务器渲染并提供了美国县级的.pbf图块,但是现在我也想从同一个服务器渲染和提供topojson和/或geojson图块。 有没有办法扩展下面的代码示例(完整示例在要点)返回geojson的瓷砖,甚至更好的topojson格式? https://gist.github.com/nautilytics/75cbbb2d854de608e81c map.render(new mapnik.VectorTile(+params.z, +params.x, +params.y), opts, function (err, image) { if (err || !image) { res.removeHeader('Content-Encoding'); res.writeHead(500, { 'Content-Type': 'application/x-protobuf' }); res.end(); return; } // Fake empty RGBA image.isSolid(function (err, solid, key) { if (err) { res.writeHead(500, { 'Content-Type': 'text/plain' }); res.end(err.message); return; } // Solid handling. var done = function (err, […]

Sequelize WHERE sequelize.fn(…)和东西='东西'订购问题

我有一个Sequelize findOne函数,它可以select一个给定点与一个多边形(col'geom')AND状态='active'相交的行。 var point = sequelize.fn('ST_GeomFromText', 'POINT(' + lng + ' ' + lat +')', 4326); var intersects = sequelize.fn('ST_Intersects', sequelize.col('geom'), point); GeoCounty.findOne({ attributes: ['id', 'name' ], where: { status: 'active', $and: intersects }, plain: true }) 截至目前,它工作得很好。 它生成的SQL如下所示: SELECT "id", "name" FROM "geocounty" AS "geocounty" WHERE "geocounty"."status" = 'active' AND (ST_Intersects("geom", ST_GeomFromText('POINT(-98.025006 43.714735)', 4326))) […]

用于Postgers空间索引的Nodejs ORM(如PostGIS)

Postgres是使用PostGIS或其他要素的空间索引良好性(top-k-nearest-points)的首选数据库。 看起来像Node.js ORMs不直接支持空间索引,那么哪一个需要最less量的黑客攻击呢? Sequelize和node-orm-2似乎需要一些黑客来使其工作。 有什么build议么?

Geojson to node.js中的Topojson

我有一个形状文件在我的postGIS数据库。我已经通过使用下面的代码检索到node.js中的geojson。 var moisql = 'SELECT *, (ST_AsGeoJSON(geom)) from xxx;' 工作正常..但我的要求是我必须将这个geojson文件转换为“ TOPOJSON ”。 所以我有这个代码: topojsonOutput = topojson.topology({'collection': geojsonString}); 但仍然我检索geojson文件作为输出。请指导我做到这一点..预先感谢。 另外当我GOOGLE了我得到这个代码: var collection = {type: "FeatureCollection", features: […]}; // GeoJSON var topology = topojson.topology({collection: collection}); // convert to TopoJSON console.log(topology.objects.collection); // inspect TopoJSON 但完全我不明白这个..我必须给予什么,以取代function[..]和collections..

通过nodejs和websockets保存从openlayers到postgis的function

我正在尝试通过websockets将创build在vector图层(openlayers)上的特性保存到postgreSQL 9.1 / postGIS 2.0中。 我正在使用websockets,因为我正在插入表单数据,以及几何。 我的服务器是NodeJS 0.10.12和pg模块。 我正在尝试将一个要素的几何体转换为一个string,将其从字母和括号中除去,并只将数字发送给服务器。 我在服务器端获得有关几何的语法错误。 尽pipe尝试了很多东西和不同的语法,我仍然无法解决这个问题。 客户端(片段) //create websockets var so = new WebSocket("ws://localhost:8000"); //error report for websockets so.onerror=function (evt) {saveMSG.textContent = evt;} //open websockets so.onopen = function(){ //get geometry var jak=map.layers[2].features[0].geometry; //make it a string var as=new String(jak); //keep the numbers var hul=as.substring(11,as.length-1); //make it WKT var god=hul.toString(); //send […]

在同一应用程序中使用多个数据库

我目前在node.js开发一个应用程序。 我有一个Postgres / PostGIS数据库来存储地理空间信息,并将其呈现为SVG。 迄今为止工作正常。 另一方面,我有一个CouchDB数据库充满了以前项目的数据。 我想将这些数据与来自postgis的地理空间数据通过node.js结合起来,但是我不知道如何处理数据库的结构。 在一个应用程序中使用两种不同的数据库types(甚至范例)是一个好主意吗? 或者是将数据从一个数据库转换到另一个数据库更好? 顺便说一句:这纯粹是一个爱好项目。

如何在Sequelize ORM中插入PostGIS几何点?

我想在Sequelize.js ORM中有一个几何列的表中插入一行。 我有纬度,经度和高度,需要先将它转换为一个点,然后才能将其作为几何体插入。 执行转换的PostGIS存储过程是 ST_MakePoint( longitude, latitude, altitude ) 插入一行我正在使用sequelize model.create函数 models.Data.create({ location: "ST_MakePoint("+request.params.lon+", "+request.params.lat+", "+request.params.alt+")", // PSUEDO code, How can I call this function? speed: request.params.spd, azimuth: request.params.azi, accuracy: request.params.acc }); 现在我想要做的是当我插入字段location返回"ST_MakePoint("+request.params.lon+", "+request.params.lat+", "+request.params.alt+")"该行。 我怎样才能做到这一点?