首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用PostGIS - LineString的Rails不会超过零下90度

PostGIS是一个开源的地理信息系统(GIS)扩展,它为数据库添加了地理空间功能。它是基于PostgreSQL关系型数据库的插件,可以用于存储、查询和分析地理空间数据。

LineString是PostGIS中的一种几何类型,表示由多个连续线段组成的线。它由一系列有序的点构成,每个点都有一个X和Y坐标。LineString可以用来表示道路、河流、管道等线状地理要素。

在Rails中使用PostGIS的LineString,可以通过以下步骤实现:

  1. 安装和配置PostgreSQL和PostGIS:首先,需要安装PostgreSQL数据库和PostGIS扩展。可以参考PostgreSQL和PostGIS的官方文档进行安装和配置。
  2. 创建数据库表:在Rails应用中,可以使用Active Record迁移来创建数据库表。可以创建一个包含LineString字段的表,例如:
代码语言:txt
复制
class CreateRoads < ActiveRecord::Migration[6.0]
  def change
    create_table :roads do |t|
      t.line_string :path, geographic: true
      t.timestamps
    end
  end
end

上述代码创建了一个名为"roads"的表,其中包含一个名为"path"的LineString字段。

  1. 操作LineString数据:在Rails中,可以使用Active Record模型来操作数据库表。可以创建一个名为"Road"的模型,并在模型中定义LineString字段:
代码语言:txt
复制
class Road < ApplicationRecord
  self.rgeo_factory_generator = RGeo::Geos.factory_generator
  set_rgeo_factory_for_column(:path, RGeo::Geographic.spherical_factory)
end

上述代码使用RGeo库来处理地理空间数据,并将LineString字段配置为地理坐标系。

  1. 进行查询和分析:通过Road模型,可以进行各种查询和分析操作。例如,可以查询所有距离某个点最近的道路:
代码语言:txt
复制
point = RGeo::Geographic.spherical_factory.point(经度, 纬度)
nearest_road = Road.order("ST_Distance(path, '#{point}')").first

上述代码使用ST_Distance函数计算每条道路与给定点之间的距离,并按距离排序,返回最近的道路。

推荐的腾讯云相关产品:腾讯云数据库PostgreSQL、腾讯云地理位置服务。

  • 腾讯云数据库PostgreSQL:提供高性能、可扩展的托管式PostgreSQL数据库服务,支持PostGIS扩展,可用于存储和处理地理空间数据。详情请参考:腾讯云数据库PostgreSQL
  • 腾讯云地理位置服务:提供全球范围的地理位置信息服务,包括地理编码、逆地理编码、路径规划等功能,可与PostGIS结合使用。详情请参考:腾讯云地理位置服务

请注意,以上答案仅供参考,具体实现方式可能因应用环境和需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

超融合时序数据库YMatrixDB与PostGIS案例

YMatrix适用于各种规模设备数据融合与物联网时序应用场景,本案例以具体案例来说明YMatrix在PostGIS数据加载、处理和分析能力以及时空数据具体使用方法,首先我们先了解下PostGIS...PostGIS特点PostGIS 具有强大功能,具有以下特点PostGIS支持空间数据类型,包括点(POINT)、线(LINESTRING)、面(POLYGON)、多点 (MULTIPOINT)、...---- 以下操作需要使用root用户执行-- 解压postgis安装包# unzip postgis-install.zip-- 创建postgisrepo# cd postgis-install#...postgis扩展,postgis适用于当前session数据库,如果其他数据库使用,请切换到其他数据库中再次创建即可。...PostGIS车联网数据案例车联网数据下载某城市拥有超过800万人口和20万辆出租车行程信息,该行程信息乘客上下车时间、上下车地点、乘车人数、车费和支付方式等。

1.8K30
  • 超融合时序数据库YMatrixDB与PostGIS案例

    YMatrix适用于各种规模设备数据融合与物联网时序应用场景,本案例以具体案例来说明YMatrix在PostGIS数据加载、处理和分析能力以及时空数据具体使用方法,首先我们先了解下PostGIS...PostGIS特点 1、PostGIS 具有强大功能,具有以下特点 2、PostGIS支持空间数据类型,包括点(POINT)、线(LINESTRING)、面(POLYGON)、多点 (MULTIPOINT...---- 以下操作需要使用root用户执行 -- 解压postgis安装包# unzip postgis-install.zip-- 创建postgisrepo# cd postgis-install...PostGIS使用案例 首先我们先熟悉一下PostGIS常用案例,然后再使用真实北京市内所有的酒店信息和宾馆信息做统计。...yLngLatLocation.htm YMatrixDBPostGIS车联网数据案例 车联网数据下载 某城市拥有超过800万人口和20万辆出租车行程信息,该行程信息乘客上下车时间、上下车地点、

    1.5K10

    PostGIS初探

    PostGIS是PostgreSQL空间扩展,他使得PostgreSQL支持空间数据类型,比如点、线段、折线段、多边形、椭圆等等,并且能够使用高效空间索引进行存储和查找。...简要使用 用好这个扩展好像也是个挺麻烦,因为这个牵涉到使用很多函数,因此查看帮助文档就显得很必要了。 下面就以对点进行最近邻查找为例。...这个数字是srid,表示我们使用坐标集。这个数字对应是之前spatial_ref_sys里字段。通常经纬度坐标集对应srid是4326,而这里0表示我用是普通几何坐标。...对应类型还有: • POINT(0 0) • LINESTRING(0 0,1 1,1 2) • POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1...PostGIS 2.0 Manual PostGIS 在 O2O应用中优势

    1.1K30

    一篇文章带你玩转PostGIS空间数据库

    检索几何图形属性和空间信息测量函数 比较 —— 比较两种几何图形空间关系函数 生成 —— 基于其他几何图形生成新图形函数 二、PostGIS快速入门 1.postGIS是什么 其实您应该猜到了...2.postGIS怎么用啊 这个教程主要是帮助快速理解什么是postGIS,因此不会太细致。...默认情况下,PostgreSQL定期收集数据统计信息,共查询规划器使用。但是,如果你在短时间内更改了表构成,则统计数据将不会是最新。...所有投影共同之处在于,它们将(地球)转换为平面笛卡尔坐标系。 使用投影特别简单,PostGIS提供了ST_SRID(geometry)和ST_SetSRID(geometry,SRID)函数。...如果你数据在地理范围上是紧凑(包含在州、县或市内),请使用基于笛卡尔坐标的geometry类型。否则,请使用使用基于球体坐标的Geography。

    6K50

    Mongodb GeoJSON 地理数据处理 其实我也很厉害

    相信如果提起地理数据处理,首先想起数据库就是postgis, 对大名鼎鼎postgresql + 插件方式来将POSTGRESQL 变成纯纯地理数据处理数据库,这是人尽皆知和童叟无欺功能...那么世界上如果我不想使用POSTGRESQL postgis来处理我地理数据以外选择,那么NO.2 选择就是mongodb GeoJSON 此时更简单方式,以及不需要进行插件方式,通过一整套...1 point 点 {type: "Point",coordinates:[90,2]} 经纬度 2 linestring 线 {type:"LineString",coordinates:[40,3...使用索引是地理位图索引 那么查询数据时候,需要建立索引,空间索引,如果不进行建立则查询会出现这样错误。...{background:true,name:"idx_location"} ) 在地理数据存储和计算方面POSTGRESQL POSTGIS 是业界NO.1 ,但在地理位图方面MONGODB 地理数据存储和计算也可以尝试

    1.9K20

    postgis常用函数介绍(一)

    概述: 在进行地理信息系统开发过程中,常用空间数据库有esrisde,postgrespostgis以及mySQLmysql gis等等,在本文,给大家介绍是有关postgis一些常用函数意思以及使用...说明: 本文中所使用postgres版本为9.4.0,你可从我百度网盘获取相关安装包,安装包地址如下:     postgres:http://pan.baidu.com/s/1o69WORK    ...以下为几何WKT字串样例: POINT(6 10) LINESTRING(3 4,10 50,20 25) POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2...图中,以下划线开头表示系统函数,在平常应用中是使用不到,不以下划线开头是咱们有可能用到函数,所以,在使用过程中可要仔细看看了。...wkt到geometry转换,具体使用如下: st_astext(geom) ?

    3.1K30

    如何使用postgis做一个高可用附近的人服务?

    本文采用postgis方案,相比较其他方案,开发人员对SQL都比较熟悉。技术选择上,你选择了最优,你就节约了时间和成本,人生苦短,作为使用者没必要在一些半成品上浪费时间。...GIS方面,支持: 空间数据类型,包括:点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、 多线(MULTILINESTRING)、多多边形(MULTIPOLYGON...基本数据结构如下: 有三个比较重要点 通过create extension语句创建postgis插件,每个库只能创建一次 创建一个gis类型字段,支持POINT、POLYGON等多种数据类型,我们后续排序和计算都将使用此字段...、区块包含查询 要求大部分查询能够在100ms内返回,部分长尾请求不超过1s 要求支持集群环境基本failover、SLB功能 分析 系统实时性要求比较高,所以并不能通过折衷方案进行结果缓存。...下面是一个简单脚本例子: 更复杂,如果PostGIS也无法满足你性能需求,你可能已经是行业巨头了,可以考虑用PostGIS做数据存储源,用Solr/ES专门提供搜索等。

    2.7K50

    地理空间数据库复习笔记:关系数据库标准语言、几何对象模型与查询

    ,如城市 曲线(Curve): 由点序列描述一维几何对象类,如街道、管线 相邻两点间插值方法:线性插值和非线性插值 折线(LineString): 曲线子类,采用线性插值 线段(Line)...类型及其相关方法与函数,并用该扩展几何类型实现空间数据存储和管理 扩展几何类型解释和维护由定义者负责 Oracle Spatial中SDO_GEOMETRY、PostGISGeometry...给出了一种较为紧凑几何数据二进制方式存储格式 WKT表达:一种基于文本格式几何数据交汇标准表达方式 举例: POINT(0 0) LINESTRING(0 0, 1 1, 1 2)...(2 3,3 4)) PostGISPostGIS中常用数据类型: boolean 布尔类型,其值为T或F box2d 矩形框类型,由矩形左下角和右上角组成 box3d 长方体类型,由左前下角和右后上角组成...(PostGIS 1.5前测试实际相等性) boolean ST_Equals(geometry A, geometry B);几何在空间上相等则返回true,不考虑点顺序。

    1.1K20

    pgrouting 路径规划_路径分析是什么意思

    该扩展库依托PostGIS自身gist索引,丰富坐标系与图形类型,强大几何处理能力,如空间查询,空间处理,线性参考等优势,能保障在较大数据级别下网络分析效果更快更好。   ...PostGIS早已奠定了最优秀开源空间数据库地位,在新时代GIS中应用将会越来越普遍。...二.数据准备 1.准备路网数据,从OSM下载中国区数据,然后使用ArcMap对数据进行裁剪,获得自己想要区域路网数据; 2.通过Postgis自带shp导入工具导入被裁剪好路网数据(注意shp路径不要太深...of MULTI geometries”,因为路径分析只支持LineString类型,不支持MuliLineString类型,这里介绍一个方法,因为裁剪过程或者数据自身问题,当勾选这个时候可能会出现导入数据失败...但第四个参数使用还需要查明-todo 最短路径,包含方向 SELECT seq,id1 AS node, id2 AS edge,line."

    1.2K30

    Python地信专题 | 基于geopandas空间数据分析—数据结构篇

    其目标是尽可能地简化Python中地理空间数据处理,减少对Arcgis、PostGIS等工具依赖,使得处理地理空间数据变得更加高效简洁,打造纯Python式空间数据处理工作流。...geopandas安装和使用需要若干依赖包,如果不事先妥善安装好这些依赖包而直接使用pip install geopandas或conda install geopandas,可能会引发依赖包相关错误导致安装失败...GeoSeries中单个元素: 图3 LineString 对应shapely中LineString,用于表示由多个点按顺序连接而成线。...下面我们创建一个由若干LineString对象组成GeoSeries: # 创建存放LineString对象GeoSeries # 这里shapely.geometry.LineString([(x1...() 图32 geopandas自带世界地图 查看其表格内容: 图33 使用.loc+条件筛选选择数据: 图34 使用.iloc选择数据: 图35 而除了这些常规数据索引方式之外,geopandas

    1.8K20

    (数据科学学习手札74)基于geopandas空间数据分析——数据结构篇

    、PROJ等开源地理空间计算相关框架之上,类似pandas语法风格空间数据分析Python库,其目标是尽可能地简化Python中地理空间数据处理,减少对Arcgis、PostGIS等工具依赖,使得处理地理空间数据变得更加高效简洁...geopandas安装和使用需要若干依赖包,如果不事先妥善安装好这些依赖包而直接使用pip install geopandas或conda install geopandas可能会引发依赖包相关错误导致安装失败...图3 LineString   对应shapely中LineString,用于表示由多个点按顺序连接而成线,下面我们创建一个由若干LineString对象组成GeoSeries: # 创建存放LineString...图29   这时所有直接针对GeoDataFrame矢量相关操作都无法使用。...图33   使用.loc+条件筛选选择数据: ? 图34   使用.iloc选择数据: ?

    2.8K20

    百度地图之收索视野内建筑物

    根据用户移动地图位置,显示在视野范围内建筑物,简单思路是,添加地图监听,当地图移动结束之后,计算出当前屏幕四个角GeoPoint,根据这4个点,通过mysqlspatial中函数,完成在此范围内建筑物查询...但是MySQL对空间查询支持不够完善,要进行复杂空间运算,建议使用postgreSQL数据库postGIS。    ...   3)  LineN USE smartu;   DELIMITER $$   CREATE DEFINER = 'smart'@'localhost' FUNCTION LineN(ls LINESTRING...,                  n  INT                )   RETURNS LINESTRING   DETERMINISTIC   NO SQL   BEGIN   ...t.convenience_item_code        , t.convenience_item_name   from smart_u_convenience_item t;   l  后台代码使用查询点

    74990

    python使用gdal对shp读取,新建和更新实例

    补充知识:python使用GDAL生成shp文件 GDAL是一个开源地理工具包,其支持基本所有的地理操作,其有python、java、c等语言包,是地理信息C端开发不可越过工具,鉴于python语言简单性...,这里使用python中GDAL包来进行shp文件生成,这里本质是利用ogc地理标准坐标字符串来生成shp。...(4 6,7 10)) POINT ZM (1 1 5 60) POINT M (1 1 80) 需要注意是,这里应该与上面定义生成要素类型保持一致,最后是清空缓存,这里多说一句,字符串语法与postgis...可以使用该方法,下载在线shp数据,只需要知道所需要素geojson格式数据中坐标串即可。或者图像识别中获取矢量边界赋予经纬度。...以上这篇python使用gdal对shp读取,新建和更新实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    3.9K30

    实测极端温度条件下Jetson NANO开发套件运行情况

    注意,实验室老师给Jetson NANO开发套件装TF卡是监控级别的。 好啦,开始测试! 零下30摄氏度 ?...关机,准备测试-40摄氏度 零下40摄氏度 ? -40到了,稳定两分钟,开机! ? 开机正常,-40度正常起来了! 同样运行Yolo4 ? ? 妥妥。...环境温度60度,运行YOLO4深度学习应用,CPU和GPU温度都超过80度,还能跑起来。 看到这个结果时,忍不住要欢呼一下, ?...总结 经过深冷实验箱测试,Jetson NANO开发套件可以在零下40摄氏度-零上60摄氏度环境温度下都可以顺利工作。在80摄氏度左右,系统就会卡住。...当然这种方案里,载板以及sd卡使用芯片元器件温度也要能在-40度~80度之间工作。 希望本次实验能给大家一些借鉴!

    4.3K20

    【翻译】GeoJSON格式规范-RFC7946

    实现不应该扩展位置超过三个元素,因为三个元素后额外元素是语义不明容易引起歧义。...在表示跨越反子午线特征中,可以通过修改它们几何形状来提高互操作性。任何跨越反子午线几何形状都应该被切割成两个都不会跨越反子午线几何形状。...然而,如果所有相关方都事先做出安排,在不会有数据被误解风险前提下则可以使用替代坐标参考系统。 5....地理坐标以度为单位,6个小数位(在例如sprintf中通用默认值)约为10厘米,在当前GPS系统精度之内。 实现应该考虑使用一个超过须要经度带来开销。...规范更改 移除坐标参考系统规范,也就是说“crs”成员不在被使用; 缺少高度值时,对高度深度敏感应用应该解释positions当作当地高度或是海平面高度; 实现不应该扩展position超过3个元素

    6.9K80
    领券