小编Dot*_*tan的帖子

OSM数据转mapBox格式

我看到几个地方将OSM数据转换为MVT(mapbox 矢量切片)以进行简单渲染。

其中包括:

  • OSRM提供基于 MVT 的路线图像进行渲染
  • OpenMapTiles可以下载 MVT 格式的 OSM 地图
  • GeoServer可以导入OSM和导出MVT

有没有一个简单的工具可以在本地将OSM数据转换为MVT?

我有自己的 OSM 格式数据,我想将其转换为 MVT 并存储在本地,而不渲染为地图图像。

openstreetmap mapbox

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

Scala:对可能返回空列表的yield的类型检查

我必须遵循Scala中的代码,这意味着返回句子.

val x: List[Word] = for (word <- words) yield {
  if (word.isLegit()) sentenceStartingWith(word)
}
Run Code Online (Sandbox Code Playgroud)

我收到错误,因为类型x不是,List[word]Any(因为它可能不会产生任何东西).施法没有帮助.

想到的简单修复就是

val x: List[Word] = for (word <- words) yield {
  if (word.isLegit()) sentenceStartingWith(word)
  else List[Word]()
}
Run Code Online (Sandbox Code Playgroud)

但是这将返回一个列表,其中包含许多空列表作为成员.我怎样才能获得我想要的行为,即List[word]如果找到则返回包含所有项目的行为(如果找不到则返回空)

scala

3
推荐指数
1
解决办法
217
查看次数

openCV:如何使用getPerspectiveTransform

我有一个由尺寸矩阵表示的图像 n * n

我创建了一个转换矩阵

M = cv2.getPerspectiveTransform(...)
Run Code Online (Sandbox Code Playgroud)

我可以M使用定义的形状来变换图像

cv2.warpPerspective(image, M, image_shape)
Run Code Online (Sandbox Code Playgroud)

根据这个,我应该能够用一个点乘以矩阵并得到该点的新位置,改造后。我尝试过:

point = [100, 100, 0]
x, y, z = M.dot(point)
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误的结果。(在这种情况下[112.5 12.5 0])

我究竟做错了什么?


为了更加清楚,这是我在做什么:

我有这张图片,线条和正方形在不同的图层上

翘曲之前

我使线条变形并得到以下信息:

弯曲的线

现在,我想获取放置正方形的坐标,如下所示:

预期

我所拥有的是我用于线条的扭曲矩阵以及第一张图片中正方形的坐标


注意:一种选择是创建一个带有单个点的图像,只需使用第一种方法将其变形并在新图像中查找非零单元格。我正在寻找比这更惯用的东西

python opencv

3
推荐指数
1
解决办法
4187
查看次数

哪些OSM属性用于路由?(OSRM)

我正在尝试在我自己的地图数据上使用OSRM(以OSM格式)

我想知道~66k OSM属性中哪一个与此相关,哪些被OSRM忽略.

有人可以指点我的参考吗?

openstreetmap osrm

2
推荐指数
1
解决办法
601
查看次数

Scala:没有var的分支指令?

在scala中使用分支指令时,最佳做法是什么?

让我说我有这个代码:

val initial  = Something(...)
val afterOp1 = initial.op1()
val afterOp2 = afterOp1.op2()
val result   = afterOp2.op3()
Run Code Online (Sandbox Code Playgroud)

但是,现在有用于OP2两个选项:op2a,op2b

我可以轻松地编写代码var:

val initial  = Something(...)
val afterOp1 = initial.op1()
var afterOp2 = Nil
if (useA) {
  afterOp2 = afterOp1.op2a()
} else {
  afterOp2 = afterOp1.op2b()
}
val result = afterOp2.op3()
Run Code Online (Sandbox Code Playgroud)

但后来我失去了不变性.另一种没有变量的解决方案是

val initial  = Something(...)
val afterOp1 = initial.op1()
var afterOp2 = Nil
if (useA) {
  val afterOp2 = afterOp1.op2a()
  val result   = afterOp2.op3()
} else …
Run Code Online (Sandbox Code Playgroud)

scala

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

Scala:以特定格式打印DateTime对象

我有一个DateTime对象,我想用给定的格式打印它,比方说yyyy-MM-dd.

我试过了

val date = DateTime.now()
val format = "yyyy-MM-dd"
println(date.formatted(format))
Run Code Online (Sandbox Code Playgroud)

yyyy-MM-dd好像格式没有被识别.

我也试过了

val formatter = new SimpleDateFormat(format)
println(
Run Code Online (Sandbox Code Playgroud)

但得到了

无法将给定对象格式化为日期java.lang.IllegalArgumentException:无法将给定对象格式化为日期

如何以我选择的格式打印DateTime对象?

scala

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

标签 统计

scala ×3

openstreetmap ×2

mapbox ×1

opencv ×1

osrm ×1

python ×1