小编Sha*_*aun的帖子

数学背后MKMetersPerMapPointAtLatitude

我正在尝试将一些Apple映射代码转换为Java.我有大部分转换正确,除了几个调用MKMetersPerMapPointAtLatitude

我有一个非常接近的解决方案......但这不是确切的,我不确定为什么不.有任何想法吗?

#import <Foundation/Foundation.h>
#import <Math.h>
@import MapKit;

#define MERCATOR_OFFSET 268435456.0 / 2.0
#define MERCATOR_RADIUS (MERCATOR_OFFSET/M_PI)
#define WGS84_RADIUS 6378137.0
#define POINTS_PER_METER (MERCATOR_RADIUS / WGS84_RADIUS)

double MyMetersPerMapPointAtLatitude(double latitude) {
    return 1.0 / (POINTS_PER_METER / cos(latitude * M_PI / 180.0));
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        double latitude = 33.861315;
        for (int i = 0; i < 100; i++) {
            double a = MKMetersPerMapPointAtLatitude(latitude);
            double b = MyMetersPerMapPointAtLatitude(latitude);

            NSLog(@"%f %f", a, b);
            latitude += .1;
        } …
Run Code Online (Sandbox Code Playgroud)

math objective-c map-projections apple-maps

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

JSON.NET根标记和反序列化

我从Java服务返回以下JSON

  {"Test":{
    "value": 1,
    "message": "This is a test"
  }}
Run Code Online (Sandbox Code Playgroud)

我有以下C#类

class Test {
    public int value { get; set; }
    public String message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,因为返回了根标签"Test",所以我无法直接反序列化

Test deserializedTest = JsonConvert.DeserializeObject<Test>(jsonString);
Run Code Online (Sandbox Code Playgroud)

我发现我必须将Test类包装在另一个类中才能使其工作.是否有一种简单的方法来避免这种情况

JToken root = JObject.Parse(jsonString);
JToken testToken = root["Test"];
Test deserializedTest = JsonConvert.DeserializeObject<Test>(testToken.toString());
Run Code Online (Sandbox Code Playgroud)

最后我还有第二个问题.我正在调用的大多数服务也可以返回一个Exception对象.我想我已经阅读了JSON的"root"标签来确定如何反序列化对象.如何获取第一个根标记和/或是否有更好,更优雅的方法来处理服务中的异常?

谢谢

c# serialization json.net

9
推荐指数
2
解决办法
7011
查看次数

复制JMS消息属性

有没有一种简单的方法可以将属性从一个JMS消息复制到另一个JMS消息?

我可以想象这样的事情:

private void copyMessageProperties (Message msg1, Message msg2) throws JMSException {
    Enumeration srcProperties = msg1.getPropertyNames();
    while (srcProperties.hasMoreElements()) {
        String propertyName = (String) srcProperties.nextElement ();

        // Now try to read and set
        try {
            Object obj = msg1.getObjectProperty (propertyName);
            msg2.setObjectProperty (propertyName, obj);
            continue;
        } catch (Exception e) {}
        try {
            String str = msg1.getStringProperty (propertyName);
            msg2.setStringProperty (propertyName, str);
            continue;
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这非常难看.必须有另一种方式

jms properties

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

来自 Bouncy Castle 的 OSX RSA 解密

我正在尝试使用来自使用 BouncyCastle 的 Java 进程的给定私钥解密数据

生成私钥的代码是:

RSAPrivateCrtKeyParameters key = new RSAPrivateCrtKeyParameters(modulus, publicExponent, privateExponent, p, q, dP, dQ, qInv);
RSAPrivateKeyStructure struc = new RSAPrivateKeyStructure(key.getModulus(), key.getPublicExponent(), key.getExponent(), key.getP(), key.getQ(), key.getDP(), key.getDQ(), key.getQInv());
byte [] bytes = struc.getEncoded();
Run Code Online (Sandbox Code Playgroud)

根据文档,这应该生成 PKCS1 v2.1 格式的 RSA 密钥。

这是 base64 中的示例输出

MIICXAIBAAKBgQC5THPoS5tXlIVMKjv2MwR1P3+pIOoWYT0M+uV/lmnDXRx02MrneKH0O0VZC1UgBZ4QKyAokl1oLwjfvBX3gmDzHdMJV8NWUAI09eRzqQEraXWsn1fjJBXbIU+OcIUl+tP0k59iLVMH6ztNnJH4JNWpxkUUXcN1VweOmyyRiTM+XQIDAQABAoGAITgQi3OKfM/2eaoUp9WLlg11MHfjH3H9ROdx30ay3UBDCruW3JpmxmcdzpHWh/AZ3yIsGLnsnvHXsGyCr6WjBYSTrWHBcAEgGgPIv8mW4Zhs0UjlrPMl6BzOJQRkgcnO549OjmEDymgM9Zjgc7PZIG9R4xzJC4MCHJElKNPuZy0CQQDfpB4jK8qZci8JWI7r403manN2tFDvlyQmx1wmuP4uLCSGlILYW/N1TYKesRLzsrDnSxFACev1nr5FN+Rtz3M/AkEA1BwYCbcJRXmTy5WvpzQ9GAzoSKt2TA1XKBDLzW+MQxX9+k0jzXSCsfMpJVv4HsAWTF9jK2elkw2dK10y9JQTYwJAH8C0irfX/ytoJEKPoExYriNlG3CEoU/rURozKkhPxox77yO85C1CBuCncBKiJzmyxlQxMc920hvk1f0WkMTIjwJBAI+myzzhIr1Tvp3VrZXfEjVUoIh+32pYapuu7Ggg0OyqW00Gq2W9L7qXBVnQ9LTWwQNOYtqFoqR6RuSUhSsRkiMCQA9q3UzFzXXcqmhhcXfzKHsMvHHr7WHYGz0YoqDi/4cmL50yA8oHBwY++rba8h6IdNAtT4VbQImbY6pS1Kq31ho=
Run Code Online (Sandbox Code Playgroud)

根据我对 PKCS1 的阅读,这似乎是正确的。我认为 Java 代码没有使用填充——至少我没有看到任何说 PKCS1、PKCS5 等的东西——所以我相信我必须在 iOS 和 Mac 上使用“kSecPaddingNone”。

我正在尝试在 iOS 和 Mac OSX 上对此进行解密。我让它在 iOS 上工作

status = SecKeyDecrypt(key, kSecPaddingNone, (uint8_t *)[data bytes], [data length], plainBuffer, &plainBufferSize);
Run Code Online (Sandbox Code Playgroud)

代码实际上有效,所以我很高兴......直到我意识到 SecKeyDecrypt 在 OSX 上不可用。所以我尝试了这个... …

encryption macos rsa bouncycastle ios

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

iText文档垂直对齐

我正在尝试将文档中的表格垂直对齐到页面底部.

我已将表格的垂直对齐设置为BOTTOM,但这只会使单元格与表格底部对齐.

如何使文档本身垂直对齐底部?

谢谢

java pdf alignment itext

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

JQuery AJAX HTTP连接

如果我有一个jQuery POST调用,则类似于:

$.post(url : "myserver/1", data : params, success: function () { 
    $.post(url : "myserver/2", data : params2); 
});
Run Code Online (Sandbox Code Playgroud)

这将打开多少个HTTP连接?我假设它打开2。

我正在尝试复制网页在Python脚本(作为性能测试类型脚本)中的作用。如果这样做的话,速度会更快:(伪代码)

for i in 0 to 5000:
     Open HTTP Connection
     POST
     POST
     Close HTTP Connection
Run Code Online (Sandbox Code Playgroud)

for i in 0 to 5000:
     Open HTTP Connection
     POST
     Close
     Open HTTP Connection
     POST
     Close
Run Code Online (Sandbox Code Playgroud)

我认为第二项测试是浏览器将要执行的操作。我本质上是想复制该页面5000次点击(背对背)的速度。显然,我可以并行执行此任务-但这不是我想要的

现在,假设jquery正在建立2个HTTP连接,是否有一种简单的方法来维持持久连接?

ajax performance jquery http

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