我必须在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) 我正面临着连接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"中.有任何想法吗 ?
我正在玩亚马逊提供的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)我正在寻找在发送HTTP响应之前等待事件发生的解决方案.
用例
zwave.connect("/dev/ttyACM5");此函数立即返回.zwave.on('driver ready', function(){...});
zwave.on('driver failed', function(){...});
Run Code Online (Sandbox Code Playgroud)
我的"解决方案"
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)
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) 我想了解当您已经拥有 POJO 对象(作为实体)时创建 DTO 对象有什么好处。
在我的项目中我有:
如果我查看 DTO 对象类(让我们称之为 MyObjDTO)和相同的类,但 POJO 方面(让我们称之为 MyObjPOJO),除了 MyObjPOJO 作为注释之外没有任何区别,因为它是一个 @Entity。
所以事实上,我在我的项目中得到了 2 个类,它们看起来相同(相同的属性,相同的方法),但用于不同的 puprose。
IMO,在这种情况下,DTO 类是无用的,并且会增加应用程序的复杂性,因为我对 DTO 类所做的所有操作都可以用 POJO 类来完成,而且,对于单一类型的对象,我必须维护至少 2 个类(DTO 和POJO),例如,如果我添加一个属性,我必须在两个类中添加该属性。
我不是专家,我对自己的想法提出疑问;你怎么看待这件事 ?
我有一个关于枚举的问题:当我创建一个枚举时,最新值是否总是高于枚举的第一个值?
也许一个例子有助于理解我的意思:
想象一下,我正在开发一款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)
希望足够清楚.如果我不够精确,请随时告诉我.
谢谢.
java ×2
node.js ×2
alexa ×1
asynchronous ×1
aws-lambda ×1
broker ×1
c ×1
c# ×1
control-flow ×1
dto ×1
enumeration ×1
enums ×1
events ×1
gdal ×1
geotiff ×1
httprequest ×1
jms ×1
objective-c ×1
pojo ×1
tiff ×1