国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Elixir Ecto: 使用Geo庫操作空間數(shù)據(jù)(地理坐標(biāo))

Blackjun / 3175人閱讀

摘要:簡介數(shù)據(jù)格式空間數(shù)據(jù)的文本標(biāo)識空間數(shù)據(jù)的二進(jìn)制標(biāo)識基于對象表示法的地理空間信息數(shù)據(jù)交換格式的庫提供了上述三種格式的相互轉(zhuǎn)換函數(shù)配置添加依賴配置擴(kuò)展創(chuàng)建刪除擴(kuò)展的移植腳本腳本內(nèi)容執(zhí)行移植插入數(shù)據(jù)軌跡點粵獲取經(jīng)緯度粵查詢聯(lián)系如何查詢字段例

簡介

數(shù)據(jù)格式

Abbr Fullname Description
WKT Well Known Text 空間數(shù)據(jù)的文本標(biāo)識
WKB Well Known Binary 空間數(shù)據(jù)的二進(jìn)制標(biāo)識
GeoJSON GeoJSON 基于Javascript對象表示法的地理空間信息數(shù)據(jù)交換格式GeoJSON

Elixir 的 Geo 庫提供了上述三種格式的相互轉(zhuǎn)換函數(shù).

配置

添加依賴

defp deps do
  [{:geo, "~> 1.0"}]
end

配置擴(kuò)展

config :electric_proto, ElectricProto.Repo,
  adapter: Ecto.Adapters.Postgres,
  # loggers: [],
  # loggers: [{Ecto.LogEntry, :log, [:info]}],
  url: "postgres://postgres:root@localhost/geometry_db",
  extensions: [{Geo.PostGIS.Extension, library: Geo}]

創(chuàng)建/刪除擴(kuò)展的移植腳本

$ mix ecto.gen.migration enable_postgis
* creating priv/repo/migrations
* creating priv/repo/migrations/20160706021353_enable_postgis.exs

腳本內(nèi)容

defmodule GeometryDb.Repo.Migrations.EnablePostgis do
  use Ecto.Migration

  def up do
    execute "CREATE EXTENSION IF NOT EXISTS postgis"
  end

  def down do
    execute "DROP EXTENSION IF EXISTS postgis"
  end
end

執(zhí)行移植

mix ecto.migrate -r GeometryDb.Repo
插入數(shù)據(jù)
defmodule ElectricProto.Model.Contrail do
  @moduledoc """
  軌跡點
  """
  use ElectricProto.Model
  alias Ecto.DateTime, as: EctoDateTime
  alias Geo.Point

  @primary_key {:id, :id, autogenerate: true}

  schema "contrail" do
    field :station_id,        :string        
    field :electromobile_id,  :string        
    field :timestamp,         EctoDateTime   
    field :coordinates,       Point          

    timestamps
  end

  @spec insert(map) :: {:ok, Schema.t} | {:error, Changeset.t}
  def insert(map) do
    Map.merge(%__MODULE__{}, map) |> Repo.insert
  end

  def get(id) do
    Repo.get(__MODULE__, id)
  end

  def test_insert do
    row = %{
      station_id: "FC-R55M560100003",
      timestamp: EctoDateTime.from_erl({{2016,07,06},{13,34,30}}),
      electromobile_id: "粵A12345",
      coordinates: %Geo.Point{coordinates: {49.44, 17.87}}
      
    }
    insert(row)
  end

  @doc """
  獲取經(jīng)緯度
  http://lbs.qq.com/tool/getpoint/index.html
  """
  def test_insert2 do
    t = DateTime.utc_now
    row = %{
      station_id: "FC-R55M560100003",
      timestamp: EctoDateTime.from_erl({{t.year, t.month, t.day},{t.hour, t.minute, t.second}}),
      electromobile_id: "粵A12345",
      coordinates: Geo.WKT.decode("POINT(29.608279 106.500773)")
    }
    insert(row)
  end
  
  def test_get do
    get 1
  end
end
查詢

聯(lián)系如何查詢GEO字段

例子: 查詢運動軌跡 例子: 在地圖上繪制軌跡

通過前一個例子查詢到的坐標(biāo)點的集合, 可以調(diào)用地圖API繪制一條線路, 這條線路就是目標(biāo)的運動軌跡.

使用案例

汽車跟蹤防盜

船舶跟蹤

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38949.html

相關(guān)文章

  • Elixir Ecto: 模型的嵌入(Embed)

    摘要:及其以上版本可以存儲類似這樣的非結(jié)構(gòu)化數(shù)據(jù)作為一個的數(shù)據(jù)封裝器提供了這些非結(jié)構(gòu)話的數(shù)據(jù)到原生數(shù)據(jù)類型的序列化和反序列化嵌入的記錄具有所有常規(guī)模型所具有的東西比如結(jié)構(gòu)化的字段生命周期回調(diào)變更集下面研究如何把結(jié)構(gòu)嵌入到模型當(dāng)中使用嵌入單個結(jié)構(gòu)可 Postgres 9.4 及其以上版本可以存儲類似 arrays, json, jsonb 這樣的非結(jié)構(gòu)化數(shù)據(jù). Ecto 作為一個 Elixir...

    ningwang 評論0 收藏0
  • Elixir Ecto: 在Postgresql中插入二進(jìn)制數(shù)據(jù)

    摘要:本文以用一個在數(shù)據(jù)庫中保存圖片信息為例展示如何向中插入二進(jìn)制數(shù)據(jù)首先我們要知道中唯一一種二進(jìn)制數(shù)據(jù)的類型為表示字節(jié)數(shù)組或字節(jié)序列對應(yīng)于和中的下面是一個示例遷移腳本這里也可以為實際上在執(zhí)行數(shù)據(jù)庫中字段的類型就是當(dāng)然除了圖片文件以外你還 本文以用一個在數(shù)據(jù)庫中保存圖片信息為例, 展示如何向 Postgresql 中插入二進(jìn)制數(shù)據(jù). showImg(https://segmentfault....

    CarterLi 評論0 收藏0
  • Elixir Ecto: 在Postgres中使用UUID類型的主鍵

    摘要:使用作為主鍵的目的降低類型這種自增線性特征作為隨機(jī)生成的字符串讓更離散增強(qiáng)系統(tǒng)的反爬蟲能力至少避免通過的線性增加來爬取內(nèi)容這種最簡單的爬取方式使用主鍵的是那種方式各有優(yōu)缺點可按實際需求自行權(quán)衡在應(yīng)用程序中生成并插入到數(shù)據(jù)庫通過使用擴(kuò)展自動生 使用UUID作為主鍵的目的 降低Serial類型這種自增ID線性特征, UUID作為隨機(jī)生成的字符串, 讓ID更離散, 增強(qiáng)系統(tǒng)的反爬蟲能力(至...

    OnlyLing 評論0 收藏0
  • Elixir Ecto: PostgreSQL大自增長主鍵的設(shè)置

    摘要:要解決的問題數(shù)據(jù)庫中存儲的行數(shù)超過了類型所能容納的數(shù)量因此需要采用類型的整數(shù)作為主鍵的取值范圍為到的取值范圍為到完整的字段的數(shù)據(jù)類型可以參考這里遷移腳本要點的參數(shù)要設(shè)置為通過宏指定主鍵列類型為模型的聲明要點主鍵要聲明為類型完 要解決的問題 數(shù)據(jù)庫中存儲的行數(shù)超過了 serial 類型所能容納的數(shù)量, 因此需要采用 bigserial 類型的整數(shù)作為主鍵serial 的取值范圍為: 1...

    yvonne 評論0 收藏0
  • 【戴嘉樂】基于IPFS和GeoHash構(gòu)建具有地理位置價值服務(wù)的DDApp(理論篇)

    摘要:數(shù)據(jù)將具有如下個特點將二維的經(jīng)緯度轉(zhuǎn)換成字符串,比如下圖展示了北京個區(qū)域的字符串,分別是,等等,每一個字符串代表了某一矩形區(qū)域。例如,坐標(biāo)對,位于北京安定門附近,后形成的值為。 作者簡介:戴嘉樂( Mr.Maple ) | 前百度高級研發(fā)工程師 | IPFS應(yīng)用實踐者&布道師|個人網(wǎng)站:https://www.daijiale.cn聯(lián)系方式:微信號:daijiale6239。 show...

    lmxdawn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<