我正在寻找一种解决方案,允许使用OpenStreetMap数据在iOS中渲染基于2D顶视图矢量的地图,而不是使用来自服务器的预渲染切片.与iOS6 +中的Apple和Google Maps类似.
我对这个问题进行了广泛的研究,但没有找到太多的信息.
有许多iOS应用程序可以执行此操作,但没有关于它们如何实现它的信息.其中几个应用程序是:
前两个应用程序的工作方式类似于Apple和Google Maps.每当缩放变化时,地图都会实时绘制.
最后一个似乎使用了略有不同的方法.它以特定缩放级别呈现矢量数据并创建切片,然后将切片用作从切片服务器下载的普通切片.因此渲染引擎实际上可以是Route-Me库的tile源,但是不是下载tile而是动态渲染它们.
第一种方法是优选的.
[问]我猜一旦OpenGL ES渲染器到位,就可以在方法之间切换.我的意思是你可以使用渲染器作为Route-Me的源来创建磁贴,或者你可以将它用作实时抽屉,类似于游戏.我对吗?
我找到的最接近的解决方案是OpenStreetPad.但是,它使用的是Core Graphics而不是OpenGL ES,因此渲染不是硬件加速的.
Mapbox表示他们正在研究矢量图块,他们可能会提供一个iOS渲染解决方案,但是它可能会使用Mapnik,因此我不确定它的效率如何.自2013年中期以来,没有ETA.
[问]您是否了解其他任何图书馆,论文,指南,示例或其他有关如何处理此问题的有用信息?基本上如何处理OSM数据以及如何实际使用OpenGL ES/GLKit在设备上绘制数据.也许一些做过它的人可以分享一些东西?
我正在寻找一种快速多边形三角剖分算法,可以将不太复杂的2D凹面多边形(无孔)三角剖分成三角形条带,准备发送到OpenGL ES进行绘图GL_TRIANGLE_STRIP.
我知道一些算法,但我找不到符合我需求的算法:
GL_TRIANGLE_STRIP,你需要使用GL_TRIANGLES它对大量顶点不是很有效.我正在开发的平台是:iOS,OpenGL ES 2.0,cocos2d 2.0.
任何人都可以帮我这样的算法吗?或者非常感谢任何其他建议.
algorithm triangulation cocos2d-iphone opengl-es-2.0 gl-triangle-strip
Go测试包提到示例函数,如:
func Example() { ... }
func ExampleF() { ... }
func ExampleT() { ... }
func ExampleT_M() { ... }
Run Code Online (Sandbox Code Playgroud)
这些是什么意思和用例?
git2go在将1.4.2升级到1.5之后,我在将OS X上的库编译为linux amd64时遇到了问题.
我认为这是关于交叉编译任何使用C代码和go 1.5的应用程序.
使用CGO_ENABLED=1,我得到:
$ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 ./script/with-static.sh go install ./...
# runtime/cgo
ld: unknown option: --build-id=none
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
使用-compiler=gccgo,我得到:
$ GOOS=linux GOARCH=amd64 ./script/with-static.sh go install -compiler gccgo ./...
go build github.com/libgit2/git2go: : fork/exec : no such file or directory
Run Code Online (Sandbox Code Playgroud)
如果没有提供任何这些,我得到:
$ GOOS=linux GOARCH=amd64 ./script/with-static.sh go install ./...
can't load package: package github.com/libgit2/git2go: C source files not allowed when not …Run Code Online (Sandbox Code Playgroud) 有没有办法从函数中设置bash脚本的位置参数?
在全局范围内,可以使用set -- <arguments>更改位置参数,但它在函数内部不起作用,因为它更改了函数的位置参数.
快速说明:
# file name: script.sh
# called as: ./script.sh -opt1 -opt2 arg1 arg2
function change_args() {
set -- "a" "c" # this doesn't change the global args
}
echo "original args: $@" # original args: -opt1 -opt2 arg1 arg2
change_args
echo "changed args: $@" # changed args: -opt1 -opt2 arg1 arg2
# desired outcome: changed args: a c
Run Code Online (Sandbox Code Playgroud) 在搜索之后,我仍然感到困惑,你是否可以让一个运行Ubuntu 的docker容器与一个工作的init系统(upstart)和syslog一起运行.
我知道docker容器用于运行单个进程而不是完整的操作系统,但我的用例是测试各种Linux发行版上的守护进程,确保守护进程在崩溃时成功启动,停止和重新启动等,并记录到syslog .所以我试图决定是否可以使用docker容器,或者我可能会更好地使用Vagrant.
我发现的一些资源令人困惑:
容器无法连接到Upstart docker/docker#1024
因为Docker用它自己替换了默认的/ sbin/init,所以无法在Docker容器中运行Upstart init.
传统上,Docker容器在启动时会运行单个进程,例如Apache守护程序或SSH服务器守护程序.通常,您希望在容器中运行多个进程.您可以通过多种方式实现此目标,从使用简单的Bash脚本作为容器
CMD指令的值到安装流程管理工具.
基本上我最终需要的是能够运行:
$ initctl start <daemon>
$ initctl stop <daemon>
Run Code Online (Sandbox Code Playgroud)
当然,在创建必要的conf文件后/etc/init/<daemon>.conf,查看日志syslog.