小编Paw*_*rok的帖子

C#查找两个纬度/经度的中点

我需要找到两个纬度/经度点之间的中点.

我试图将我绘制的两个位置之间的地图居中,并且需要找到该点.

我已经从我找到的其他示例中编写了这个函数,但似乎没有用.

    public static void midPoint(double lat1, double lon1, double lat2, double lon2, out double lat3_OUT, out double lon3_OUT)
    {
        //http:// stackoverflow.com/questions/4656802/midpoint-between-two-latitude-and-longitude
        double dLon = DistanceAlgorithm.Radians(lon2 - lon1);

        //convert to radians
        lat1 = DistanceAlgorithm.Radians(lat1);
        lat2 = DistanceAlgorithm.Radians(lat2);
        lon1 = DistanceAlgorithm.Radians(lon1);

        double Bx = Math.Cos(lat2) * Math.Cos(dLon);
        double By = Math.Cos(lat2) * Math.Sin(dLon);
        double lat3 = Math.Atan2(Math.Sin(lat1) + Math.Sin(lat2), Math.Sqrt((Math.Cos(lat1) + Bx) * (Math.Cos(lat1) + Bx) + By * By));
        double lon3 = lon1 + Math.Atan2(By, Math.Cos(lat1) + Bx);

        lat3_OUT …
Run Code Online (Sandbox Code Playgroud)

c# geolocation latitude-longitude

7
推荐指数
1
解决办法
2501
查看次数

如何返回第一个异步任务来完成

我有几个任务,我正在异步运行.根据输入,一个或多个可能会运行很长时间,但只有一个任务将返回:success消息.

slowtask = Task.async(slow())
fasttask = Task.async(fast())
Run Code Online (Sandbox Code Playgroud)

如何捕获上述两个任务中的第一个完成,而不必等待另一个?我已经尝试过了Task.find/2,但是由于它是用enum实现的,所以它似乎在找到ref/message之前等待所有的退出信号.我的另一个想法是对此进行调查Stream.cycle,忽略仍然存在的任务并捕获已退出的任务.看来这种灵丹妙药不喜欢以这种方式进行民意调查.

elixir

7
推荐指数
1
解决办法
1489
查看次数

文件lib/phoenix_ecto/html.ex上的编译错误

在编译使用elixir和phoenix web框架的项目时,会发生以下编译错误:

==> phoenix_ecto 
Compiled lib/phoenix_ecto.ex 
Compiled lib/phoenix_ecto/plug.ex 
Compiled lib/phoenix_ecto/ison.ex 
==> Compilation error on file lib/phoenix_ecto/html.ex == 
** (CompileError) ib/phoenix_ecto/html.ex:7: unknown key :impl for struct Phoenix.HTML.Form 
(elixir) src/e ixir_map.erl:175: :elixir_map.--assert_struct_keys/5-1c$"011-0--/5 
(elixir) src/e ixir_map.erl:48: :elixir_map.translate_struct/4 
(elixir) src/e ixir_clauses.erl:36: :elixir_clauses.clause/7 
(elixir) src/e ixir_def.erl:178: :elixir_def.translate_clause/7 
(elixir) src/e ixir_def.erl:167: :elixir_def.translate_definition/8 
[31m[1mcould not compile dependency phoenix_ecto, mix compile failed. You can recompile this dependency with 'mix deps.compile phoenix_ecto' or update it with 'mix deps.update phoenix_ecto'
Run Code Online (Sandbox Code Playgroud)

如何让我的项目正确编译?

frameworks window elixir web phoenix-framework

5
推荐指数
2
解决办法
745
查看次数

如何在链接中指定多个参数

我在router.ex中有这个:

resources "/games", GamesController do
  get "/scores/:student_id", GameScoreController, :new
  post "/scores/:student_id", GameScoreController, :create
end
Run Code Online (Sandbox Code Playgroud)

现在我打电话给:

link(student.name, to: game_game_score_path(@conn, :new, @game, student_id: student))
Run Code Online (Sandbox Code Playgroud)

但这会创建一个链接:/ games/1/scores?student_id = 1而不是/ games/1/scores/1.

如何调用链接以便生成正确的URL?

哦,有没有办法摆脱助手的双重游戏?我尝试添加as :: game_score,但这没有改变任何东西.

elixir phoenix-framework

5
推荐指数
1
解决办法
1850
查看次数

如何在Elixir中测试无限的递归任务

请检查此代码:

defmodule InfinitePollTask do
  def poll(opts \\ [])
    # function body code here
    poll(new_opts)
  end
end
Run Code Online (Sandbox Code Playgroud)

我想为函数体代码编写一个单元测试,假设函数体执行一些重要的计算,optsnew_opts为下一次迭代生成一个.

testing elixir erlang-otp

5
推荐指数
1
解决办法
209
查看次数

使用 uuid 的 Elixir Postgrex

我正在为我的数据库使用 Postgrex 库,但我有以下问题:数据库中的列之一的类型为uuid. 我正在使用灵药的UUID模块,但每当我试图坚持一些东西到数据库中,我得到以下错误:Postgrex expected a binary of 16 bytes, got "3c5fda26-ea3b-4c77-8f19-06e106a61eda"。我试图将它存储为普通字符串,但正如您所见,这是不可能的。在将 uuid 持久化到数据库之前,我应该如何转换它?

elixir

5
推荐指数
2
解决办法
1834
查看次数

何时在Elixir中使用仅编译依赖项

什么时候仅deps在my中指定依赖项mix.exs而不在in中指定运行时依赖项才合适applications

我认为这applications是需要启动的实际应用程序,然后才能启动我自己的应用程序,但是我遇到了一个问题,exrm就是Jazz直到我将包含在内:jazz时,才将库(我认为仅包含纯函数)放到发行版中applications

elixir exrm

4
推荐指数
1
解决办法
212
查看次数

在Phoenix Framework中使用hex语言包

我怎样才能在凤凰城使用语言包?我正试图在网页上进行国际化.我已经将包添加到mix.exs并mix deps.get成功运行.

现在,我不知道在哪个文件夹中写入包的模块文件的位置,以及它应该是ex或exs扩展名,如用例(fr.exs)中的其他国家/地区语言文件.

此外,在编写模块后,我将如何将其应用于HTML标记?

elixir internationalization phoenix-framework

4
推荐指数
1
解决办法
412
查看次数

Elixir:执行完该函数后,进程会发生什么

我试图理解之间的差异spawnspawn_link,但不能完全把握时会发生什么功能的进程执行结束.

defmodule SendAndDie do
  def send_and_die(target) do
    send(target, "Goodbye")
    # Process.exit(self, :boom)
  end
end

dying_process = spawn_link(SendAndDie, :send_and_die, [self])
:timer.sleep(500)
IO.puts("Dying process is alive: #{Process.alive?(dying_process)}")
receive do
  msg -> IO.puts(msg)
end
Run Code Online (Sandbox Code Playgroud)

我预计主要过程会失败,因为它与在程序结束前明显死亡的过程相关联.但是,打印"Goodbye"消息,然后程序正常退出.更改spawn_linkspawn没有任何效果.

当我取消注释第Process.exit4行时,我确实看到了spawn和之间的区别spawn_link(后者在整个程序中停止而前者没有).但是,这Process.exitsend_and_die函数中的最后一次执行.当函数结束时,进程是否会退出?

process elixir

4
推荐指数
1
解决办法
182
查看次数

'&'运算符如何工作?

我在以下上下文中无法理解'&'运算符.

  @doc "Marks a task as executed"
  def put_task(task, project) do
    item = {task, project}
    Agent.update(__MODULE__, &MapSet.put(&1, item))
  end
Run Code Online (Sandbox Code Playgroud)

在这种情况下,似乎'&1'指的是地图对象本身,但我很好奇这是如何工作的.它是作为一个参数传递给我自己在文档中查看这个,但无法确定这是否正是发生了什么.如果有人能帮助我理解究竟发生了什么以及&1指的是什么,如果它引用了MapSet,我将不胜感激.

elixir

4
推荐指数
3
解决办法
1961
查看次数