小编m.s*_*.s.的帖子

开放式GIS的标准,如openstreetmap,cloudmade?

我不熟悉GIS(或地图),但最近我必须做一些与这个领域相关的工作.我知道一些地图提供者:OpenStreetMap,CloudMadeMap,OpenCycleMap,OpenAerialMap ......

我的问题是:那些地图提供商是否有相同的标准?我的意思是平铺尺寸,缩放级别,每个缩放级别的比例等等.

开放式GIS有什么标准吗?如果是的话,我在哪里可以找到它们,或者某些人可以给我一些参考或链接?

gis google-maps dictionary

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

滚动时,jQuery自动完成框保持打开并处于相同位置

当自动填充文本框被展开,并且用户滚动浏览器页面时,该框保持在相同位置并且不会消失.如果它保持在相同的位置,我可以打开,但是我不明白为什么它会在滚动的同一个位置停留.

function ($) {
    $.widget("ui.combobox", {
        _create: function () {
            var self = this,
                select = this.element.hide(),
                selected = select.children(":selected"),
                value = selected.val() ? selected.text() : "";
            var input = this.input = $("<input id='innertextbox'>")
                .insertAfter(select)
                .autocomplete({
                    delay: 0,
                    minLength: 0,
                    source: function (request, response) {
                        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
                        response(select.children("option").map(function () {
                            var text = $(this).text();
                            if (this.value && (!request.term || matcher.test(text)))
                                return {
                                    label: text.replace(
                new RegExp(
                "(?![^&;]+;)(?!<[^<>]*)(" +
                $.ui.autocomplete.escapeRegex(request.term) +
                ")(?![^<>]*>)(?![^&;]+;)", "gi"
                ), "<strong>$1</strong>"),
                                    value: text, …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui

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

针对CUDA静态库链接CUDA代码时出现nvlink错误-CMake

我创建了一个静态库,其中包含一些CUDA代码和一些常规C ++代码。此静态库的CMakeLists.txt如下所示:

SET(TARGET_H some_header.h)
SET(CUDA_SRC cudaclass1.cu cudaclass2.cu)
SET(TARGET_SRC cppclass1.cpp cppclass2.cpp)
SET(CUDA_NVCC_FLAGS "")
SET(CUDA_SEPARABLE_COMPILATION ON)
CUDA_ADD_LIBRARY(somestatic ${TARGET_H} ${TARGET_SRC} ${CUDA_SRC} OPTIONS -arch sm_20)
Run Code Online (Sandbox Code Playgroud)

这将产生libsomestatic.a

现在,我想将此静态库与可执行文件链接,该可执行文件本身由CUDA代码和C ++代码组成。

在这个可执行文件的CUDA代码,我需要实例化并使用CudaClass1libsomestatic.a

这是CMakeLists.txt可执行文件:

SET(TARGET_H some_header.h)
SET(CUDA_SRC cudafile.cu)
SET(TARGET_SRC main.cpp)
SET(CUDA_NVCC_FLAGS "")
SET(CUDA_SEPARABLE_COMPILATION ON)
CUDA_ADD_EXECUTABLE(some_exe ${TARGET_H} ${TARGET_SRC} ${CUDA_SRC} OPTIONS -arch sm_20)
TARGET_LINK_LIBRARIES(some_exe somestatic)
Run Code Online (Sandbox Code Playgroud)

但是在构建时出现以下错误:

nvlink error: Undefined reference to '_ZN10test7CudaClass1C1EPKNS_11intE' in ...
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 有可能完全做到这一点吗?将CUDA代码链接到包含CUDA代码的库?
  2. 如果是,我将如何使用CMake做到这一点?

CUDA文档说明(http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#examples

“可以在单个主机可执行文件中进行多个设备链接,只要每个设备链接彼此独立(它们不能跨设备可执行文件共享代码)”

听起来我无法做我想做的事,对吧?

我使用CUDA 5.5和GCC 4.8。

c++ cuda cmake nvcc nvlink

5
推荐指数
0
解决办法
1369
查看次数

C++ 11:"使用模数缩小{}内部的转换"

我尝试使用gccC++11启用以下代码编译:

unsigned int id = 100;
unsigned char array[] = { id % 3, id % 5 };
Run Code Online (Sandbox Code Playgroud)

我收到这些警告:

缩小'(id%3u)'从'unsigned int'到{}内的'unsigned char'的转换[-Wnarrowing]

看在线演示

有没有办法帮助编译器发现id%3的结果符合unsigned char

c++ narrowing c++11

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

GPU排序与CPU排序

我对归并排序算法做了一个非常简单的实现,然后我将其用于 CUDA,只需很少的实现更改,算法代码如下:

//Merge for mergesort
__device__ void merge(int* aux,int* data,int l,int m,int r)
{
    int i,j,k;
    for(i=m+1;i>l;i--){
        aux[i-1]=data[i-1];
    }
    //Copy in reverse order the second subarray
    for(j=m;j<r;j++){
        aux[r+m-j]=data[j+1];
    }
    //Merge
    for(k=l;k<=r;k++){
        if(aux[j]<aux[i] || i==(m+1))
            data[k]=aux[j--];
        else
            data[k]=aux[i++];
    }
}

//What this code do is performing a local merge
//of the array
__global__
void basic_merge(int* aux, int* data,int n)
{
    int i = blockIdx.x*blockDim.x + threadIdx.x;
    int tn = n / (blockDim.x*gridDim.x);
    int l = i * tn;
    int r = …
Run Code Online (Sandbox Code Playgroud)

sorting algorithm mergesort cuda gpgpu

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

Docker错误拨号unix /var/run/docker.sock:没有这样的文件或目录

我用来boot2docker安装但最近为Mac安装了Docker ToolBox应用程序(运行10.11).当我打开iTerm并输入时,docker ps我收到以下消息.

Get http:///var/run/docker.sock/v1.20/containers/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
Run Code Online (Sandbox Code Playgroud)

我用来使用boot2docker所以我假设现在需要ToolBox.我启动了Docker quick start terminal只在终端内部工作的应用程序.但是,我想在我自己的终端等中使用docker.

为什么我会收到此错误?怎么修?

macos ubuntu docker boot2docker

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

C++ 模板中的代码重用(或不重用)

到目前为止我读过的所有书籍中,他们都说 C++ 模板为我们使用的每种类型生成一个代码实例。

另一方面,书上说在 C# 中代码是重用的。

因此,我在许多书籍中进行了搜索,并在一本很旧的书中找到了以下 C# 示例。

1) 值类型

List<int> intList1  = new List<int>();
List<int> intList2  = new List<int>();
List<bool> boolList = new List<bool>();
Run Code Online (Sandbox Code Playgroud)

在这种情况下(值类型),编译器为 intList1 和 intList2(相同类型)生成一个代码实例,并为 boolList 生成一个代码实例。

2) 参考类型

List<Dog> dogList1 = new List<Dog>();
List<Dog> dogList2 = new List<Dog>();
List<Cat> catList  = new List<Cat>();
Run Code Online (Sandbox Code Playgroud)

在这种情况下(引用类型),编译器只为dogList1、dogList1和catList生成一个代码实例,因为只要它可以表示指向对象的指针,所有引用类型都可以共享一个实现。

这对我(作为 C++ 开发人员)来说非常清楚,但我对有关 C++ 模板的同样的事情感到好奇。

早在 C# 创建之前,C++ 也有值类型和引用类型。

因此,让我们用 C++ 重写 avove 示例

1) 值类型

vector<int> intList1;
vector<int> intList2;
vector<bool> boolList;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我毫不怀疑 intList1 和 intList2 共享相同的代码,并且 boolList 需要另一个实现

2) …

c++ templates

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

是否可以显式专门化模板来匹配lambda?

假设我有一个标题wrapper.h:

template <typename Func> void wrapper(const Func func);
Run Code Online (Sandbox Code Playgroud)

和一个文件wrapper.cpp包含:

#include "wrapper.h"
template <typename Func>
void wrapper(const Func  func)
{
  func();
}
Run Code Online (Sandbox Code Playgroud)

并且文件main.cpp包含:

#include "wrapper.h"
#include <iostream>

int main()
{
  wrapper( [](){std::cout<<"hello."<<std::endl;} );
}
Run Code Online (Sandbox Code Playgroud)

如果我一起编译这些(例如cat wrapper.cpp main.cpp | g++ -std=c++11 -o main -x c++ -),我没有链接器错误.

但是如果我单独编译它们(例如g++ -std=c++11 -o wrapper.o -c wrapper.cpp && g++ -std=c++11 -o main main.cpp wrapper.o),我当然---得到一个链接器错误:

Undefined symbols for architecture x86_64:
  "void wrapper<main::$_0>(main::$_0)", referenced from:
      _main in …
Run Code Online (Sandbox Code Playgroud)

c++ lambda gcc templates c++11

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

找到未经V8优化的相应JS源代码

我尝试优化node.js应用程序的性能,因此我正在分析V8的JIT编译器的行为.

通过运行应用程序时node --trace_deopt --trace_opt --code_comments --print_optcode ...,输出包含许多重复行,如下所示:

[didn't find optimized code in optimized code map for 0x490a8b4aa69 <SharedFunctionInfo>]
Run Code Online (Sandbox Code Playgroud)

如何找出哪个javascript代码对应0x490a8b4aa69

完整输出可在此处获得.

javascript performance jit v8 node.js

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

C++服务器端没有阻塞listen()

下面的代码不会阻止listen(),它只是完成执行.你能告诉我为什么吗?(initWSA返回true,我检查了它).我正在关注一个教程,我被告知它应该阻止,因为它正在寻找客户端连接.

#include <iostream>
#include <WinSock2.h>

#pragma comment(lib, "ws2_32.lib")
using namespace std;

#define PORT 10000
bool initWSA(){
    WSADATA wsadata;
    int error = WSAStartup(0x0202, &wsadata);
    if (error) return false;
    if (wsadata.wVersion != 0x0202){
        WSACleanup();
        return false;
    }
    return true;
}
void closeConnection(SOCKET s)
{
    //Close the socket if it exists
    if (s)
        closesocket(s);

    WSACleanup(); //Clean up Winsock
}
int main(){
    initWSA();
    SOCKET s;
    SOCKADDR_IN addr;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(PORT);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (s == …
Run Code Online (Sandbox Code Playgroud)

c++ sockets connection winsock server

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