Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用AWS lambda和dynamo db创建地理空间模块_Node.js_Amazon Web Services_Amazon Dynamodb_Aws Lambda - Fatal编程技术网

Node.js 如何使用AWS lambda和dynamo db创建地理空间模块

Node.js 如何使用AWS lambda和dynamo db创建地理空间模块,node.js,amazon-web-services,amazon-dynamodb,aws-lambda,Node.js,Amazon Web Services,Amazon Dynamodb,Aws Lambda,首先,我要感谢你花时间阅读我的问题 我的计划是在dynamodb中的个人记录中添加纬度和经度记录,然后使用地理库(最好是用nodejs编写的)来计算给定半径内的附近人员。例如,这个计划是,只从50英里半径返回人员 到目前为止,我唯一尝试过的地理库允许我将lat和long传递给它,并确认它是否在给定的半径范围内。问题是我必须循环整个dynamodb表才能得到结果。是否有一种相反的函数,其中我将一个latlong点和半径传递给geo库,然后geo库将一些lat和long边界传递给我,以便我可以轻松地

首先,我要感谢你花时间阅读我的问题

我的计划是在dynamodb中的个人记录中添加纬度和经度记录,然后使用地理库(最好是用nodejs编写的)来计算给定半径内的附近人员。例如,这个计划是,只从50英里半径返回人员

到目前为止,我唯一尝试过的地理库允许我将lat和long传递给它,并确认它是否在给定的半径范围内。问题是我必须循环整个dynamodb表才能得到结果。是否有一种相反的函数,其中我将一个latlong点和半径传递给geo库,然后geo库将一些lat和long边界传递给我,以便我可以轻松地将其查询到dynamodb(例如(lat:latboundary 2)和(long:longbundary 2))

提供了一个基于点和半径计算边界框的函数。您可以使用返回的SW和NE点进行查询

.boundingCoordinates(距离、半径、inKilometers):计算距离点的边界坐标,并返回包含边界框的SW和NE点的数组。如果未提供半径,则将使用地球半径。除非inKilometers为真,否则距离以英里为单位计算


我不确定我是否理解正确,但你为什么不自己计算这些边界呢?嗨!谢谢你的回复。我不确定我看到的公式,但如果我要计算它,它是正确的吗?嘿!你找到解决办法了吗?我也在想同样的事情哈哈。嗨@lucasenechal,我认为最好的解决方案是地理哈希。在dynamodb中,您不能有2个GSI,因此您不能通过lat和lng进行查询。地理哈希的问题是我不知道如何创建一个。我已经看过这方面的开源库,但它并没有真正展示它背后的基本概念,也没有展示如何从头开始构建一个开源库。它只是向您展示了如何将它安装在一台服务器上,而这台服务器不符合dynamodb+lambda的用途。谢谢你的回答。这有帮助。但它并不像gmaps中的渲染那样精确。例如:npm geopoint函数返回的数组为:0:[_degLat:14.385677399028326 _degLon:120.9803657521953 _radLat:0.2510774357427784 _radLon:2.11150572642868],1:[_degLat:14.394670600971672 _degLon:120.98965024780444 _radLat:0.251234396672698655 _radLon:2.1116657660491],我只使用degLat和degLon的数组。我是否也应该使用radLat和radLon?我没有评估精度,我的用例不需要非常高的精度。顺便说一句,geopoint library积分提到计算基于。如果您想使用度或弧度,这是一个偏好问题。