小编Ash*_*bay的帖子

使用gdal从C#中的现有位图创建地理基准

我必须在ac#project中使用gdal.我要做的是将一个简单的位图"转换"为GeoTiff.我在gdal网站上阅读了一些文档,但是我没有成功完成它.事实上,我的位图已成功导出到地理位置,但如果我使用GIS软件(例如QuantumGIS)打开geotiff,则GeoTiff会在y轴上反转:

在此输入图像描述 :

而原始位图看起来像这样:

在此输入图像描述

这就是我所做的:

首先我将一个临时文件写入磁盘(即位图),我创建了一个包含位图的数据集,这要归功于gdal函数(Gdal.Open(path)),我创建了一个新的数据集(使用GTiff驱动程序)位图数据集,我设置地理转换,并将geotiff写入磁盘:

  String wktProj = null;
  String tmpPath = @"C:\tmp.bmp";
  Bitmap tmpBitmap = bmp.Clone(new Rectangle(0, 0, bmp.Width, bmp.Height), pixFormat);
  tmpBitmap.Save(tmpPath, ImageFormat.Bmp);

  String[] options = null;
  Gdal.AllRegister();
  OSGeo.GDAL.Driver srcDrv = Gdal.GetDriverByName("GTiff");
  Dataset srcDs = Gdal.Open(tmpPath, Access.GA_ReadOnly);
  Dataset dstDs = srcDrv.CreateCopy(path, srcDs, 0, options, null, null);

  //Set the map projection
  Osr.GetWellKnownGeogCSAsWKT("WGS84", out wktProj);
  dstDs.SetProjection(wktProj);

  //Set the map georeferencing
  double mapWidth = Math.Abs(latLongMap.listBounds.topRight.x - latLongMap.listBounds.bottomLeft.x);
  double mapHeight = Math.Abs(latLongMap.listBounds.topRight.y - latLongMap.listBounds.bottomLeft.y);
  double[] geoTransfo = new double[] { -5.14, mapWidth / …
Run Code Online (Sandbox Code Playgroud)

c# tiff gdal geotiff

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

通过activeMQ网络转发消息时发出问题

我正面临着连接ActiveMQ网络的问题.

我有两种情况:

S1:我的应用程序连接到第一个activeMQ"A".而这个activeMQ"A"连接到一个ActiveMQ"B" - 这是导致我一些问题的场景.S2:我的应用程序直接连接到ActiveMQ"B".

在这两种情况下,我们都将数据发送到同一队列,当然我们发送完全相同的数据.预期结果:当ActiveMQ"B"接收数据时,它应该在同一队列上响应.

在场景S1中,数据由我的应用程序发送到ActiveMQ"A",然后转发到ActiveMQ"B",但是这个ActiveMQ"B"似乎没有响应,事实是ActiveMQ"A"不接收来自ActiveMQ"B".这是我的主要问题,我无法弄清楚为什么它不起作用,因为如果我将我的应用程序直接连接到ActiveMQ"B"我接收数据.

我试着在那里制作一个解释S1和S2的简单模式.

有没有人遇到过这种问题?我应该在哪里找到问题的原因?

在此输入图像描述

编辑:更多细节:

在activeMQ"A"中,我可以看到有消费者("消费者数量"列等于5)但是在activeMQ"B"中没有消费者("消费者数量"列为0),而应该是5如在活动MQ"A"中.有任何想法吗 ?

java activemq-classic jms broker

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

Alexa和Lambda在SDK v2上的HTTP请求,如何使其工作?

我正在玩亚马逊提供的ASK SDK v2,以便为Alexa制作技能,但我遇到了一个架构问题:

首先,HTTP请求就像魅力一样,但是当我和我的HTTP请求完成时我想要返回语音响应但是我甚至不知道是否可能因为"句柄"功能应该返回一些东西(看评论):

const MyIntentHandler = {

  canHandle(handlerInput) {
    const request = handlerInput.requestEnvelope.request;
    return request.type === 'LaunchRequest' || (request.type === 'IntentRequest' && request.intent.name === 'MyIntent');
  },
  handle(handlerInput) {

    var options = {
      host: 'http://foo.com',
      port: 80,
      path: '/mypath',
      method: 'GET'
    };

    var req = http.request(options, function(result){
      result.on("end", function(){
        //I would like to return speak here like that :
        //return handlerInput.responseBuilder.speak("It works").withSimpleCard("MyTestApp", "It works").getResponse()
      })
    });
    req.end();
    //And I would like to remove this line to manage response in result.on("end", …
Run Code Online (Sandbox Code Playgroud)

httprequest alexa node.js aws-lambda alexa-skills-kit

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

在NodeJS中发送HTTP响应之前等待事件发生?

我正在寻找在发送HTTP响应之前等待事件发生的解决方案.

用例

  1. 我的想法是在我的一个路由中调用一个函数:zwave.connect("/dev/ttyACM5");此函数立即返回.
  2. 但是有2个事件会注意到它是否成功或无法连接设备:
zwave.on('driver ready', function(){...});
zwave.on('driver failed', function(){...});
Run Code Online (Sandbox Code Playgroud)
  1. 在我的路线中,我想知道设备在发送HTTP响应之前是否成功或无法连接.

我的"解决方案"

  1. 当事件发生时,我将事件保存在数据库中:
zwave.on('driver ready', function(){
    //In the database, save the fact the event happened, here it's event "CONNECTED"
});
Run Code Online (Sandbox Code Playgroud)
  1. 在我的路由中,执行connect函数并等待事件出现在数据库中:
router.get('/', function(request, response, next) {     
    zwave.connect("/dev/ttyACM5");
    waitForEvent("CONNECTED", 5, null, function(){
        response.redirect(/connected);
    });
});

// The function use to wait for the event
waitForEvent: function(eventType, nbCallMax, nbCall, callback){
    if(nbCall == null) nbCall = 1;
    if(nbCallMax == null) nbCallMax = 1;

    // Looking for event to happen (return true …
Run Code Online (Sandbox Code Playgroud)

events asynchronous control-flow node.js

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

当您拥有与 POJO(实体)相同的对象时,拥有 DTO 对象有什么意义?

我想了解当您已经拥有 POJO 对象(作为实体)时创建 DTO 对象有什么好处。

在我的项目中我有:

  • DTO 类用于 Web 服务和应用程序之间的通信
  • POJO实体类(JPA)用于数据库和应用程序之间的通信

如果我查看 DTO 对象类(让我们称之为 MyObjDTO)和相同的类,但 POJO 方面(让我们称之为 MyObjPOJO),除了 MyObjPOJO 作为注释之外没有任何区别,因为它是一个 @Entity。

所以事实上,我在我的项目中得到了 2 个类,它们看起来相同(相同的属性,相同的方法),但用于不同的 puprose。

IMO,在这种情况下,DTO 类是无用的,并且会增加应用程序的复杂性,因为我对 DTO 类所做的所有操作都可以用 POJO 类来完成,而且,对于单一类型的对象,我必须维护至少 2 个类(DTO 和POJO),例如,如果我添加一个属性,我必须在两个类中添加该属性。

我不是专家,我对自己的想法提出疑问;你怎么看待这件事 ?

java pojo dto

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

最新的枚举值是否总是高于第一个枚举值?

我有一个关于枚举的问题:当我创建一个枚举时,最新值是否总是高于枚举的第一个值?

也许一个例子有助于理解我的意思:

  • 想象一下,我正在开发一款RPG游戏,其中有武器.每种武器都有一种类型:

    typedef enum
    {
      WoodenSword,
      IronSword,
      SteelSword,
      GoldenSword
    }WeaponType;
    
    Run Code Online (Sandbox Code Playgroud)

现在我想检查武器之间的力量差异(假设WoodenSword是最弱的武器而GoldenSword是最强的武器).有可能去检查一个简单的武器的力量:

    WeaponType type = GoldenSword;
    if(type > WoodenSword)
    {
      //Do something
    }
Run Code Online (Sandbox Code Playgroud)

换句话说,我不想要这个,但是enum值可能是这样的(如果你不强制该值):

    typedef enum
    {
      WoodenSword, //-> equals 40
      IronSword, //-> equals 0
      SteelSword, //-> equals 42
      GoldenSword //-> equals 5
    }WeaponType;
Run Code Online (Sandbox Code Playgroud)

或者默认情况下会这样:

    typedef enum
    {
      WoodenSword, //-> equals 0
      IronSword, //-> equals 1
      SteelSword, //-> equals 2
      GoldenSword //-> equals 3
    }WeaponType;
Run Code Online (Sandbox Code Playgroud)

希望足够清楚.如果我不够精确,请随时告诉我.

谢谢.

c enums enumeration objective-c

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