小编ffl*_*dro的帖子

Android:检测方向已更改

我需要检测应用程序中的方向更改,但我不希望我的布局从纵向更改为横向.目前我正在使用OrientationEventListener但检测方向角度不够.我想检测用户是从纵向更改为横向还是反之,这不仅仅是检测方向角是90还是270.

我想进行与Android相同的检测来改变活动的方向.我尝试覆盖onConfigurationChanged并检查orientantion是否是横向/纵向,但是这仍然会将我的活动布局更改为横向.

有没有办法使用onConfigurationChanged但强制布局保持纵向?
还有另一种方法可以在不使用的情况下检测方向变化OrientationEventListener.最终我可以实现我自己的方向改变算法,对此有何想法?它必须比一些更复杂的东西if(90-THRESHOLD <= orientation <= 90+THRESHOLD),我想检测用户是否完成了纵向 - >横向或横向 - >纵向移动.

感谢你的帮助,
菲利普

android screen-orientation android-layout

20
推荐指数
3
解决办法
3万
查看次数

Javascript max()表示数组列

通常当我需要找到数组的最大值时,我使用这个非常简单的代码: var max = Math.max.apply(Math, array);

但是,现在我有一个多维数组,其中每行我有一个包含5列的数组.是否有类似的方法来查找某列的最大值?现在我正在做:

var maxFunc = function(data){
    var max = 0;
    data.forEach(function(value){
        max = Math.max(max, value[0]);
    });
    return max;
};
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有更漂亮/更简单的方法呢?

javascript math max

11
推荐指数
2
解决办法
5748
查看次数

在initWithNibName之前调用ViewDidLoad?

我有最奇怪的错误,我希望有人可以帮助我.这是我创建视图控制器并将其推送到navigationController时的代码.问题是将随机变量传递给新的视图控制器.我尝试在init方法中传递它,并使用下面注释的行传递它.

    MultipleBet *multipleBet = [[MultipleBet alloc] initWithMaxNumber:numbers andMaxStars:stars andRandom:self.random];
    NSLog(@"RANDOM1: %d", self.random);
    //[multipleBet setRandom:self.random];

    UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] init] autorelease];
    backButton.title = @"Voltar";
    self.navigationItem.backBarButtonItem = backButton;
    [self.navigationController pushViewController:multipleBet animated:YES];

    [multipleBet release];
Run Code Online (Sandbox Code Playgroud)

但是,当我在MultipleBet的viewDidLoad中访问随机变量时,它始终为FALSE.

这是MultipleBet的代码:

- (id)initWithMaxNumber:(int)maxNumbers andMaxStars:(int)maxStars andRandom:(BOOL)isRandom {
    self = [super initWithNibName:@"MultipleBet" bundle:[NSBundle mainBundle]];
    ...

    self.random = isRandom;
    NSLog(@"RANDOM2: %d", self.random);
    NSLog(@"RANDOM2.1: %d", isRandom);

return self;
}
Run Code Online (Sandbox Code Playgroud)

这是viewDidLoad的代码:

- (void)viewDidLoad {
   [super viewDidLoad];


    NSLog(@"RANDOM2.2: %d", self.random);

}
Run Code Online (Sandbox Code Playgroud)

我声明变量和属性,如下所示:

BOOL random;
@property (nonatomic) BOOL random;
Run Code Online (Sandbox Code Playgroud)

输出始终为:
RANDOM2.2:0
RANDOM2:1
RANDOM2.1:1
RANDOM1:1 …

iphone objective-c

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

在PUT Restful Service中使用JSON对象

我正在尝试在Java中实现RESTful服务,该服务通过PUT请求接收JSON对象并自动映射到Java对象.我设法用XML做到这一点,但我不能用JSON做到这一点.这就是我想要做的事情:

@PUT
@Consumes(MediaType.APPLICATION_XML)
public String putTodo(JAXBElement<Route> r) {
    Route route = r.getValue();
    route.toString();
    System.out.println("Received PUT XML Request");
    return "ok";
}
Run Code Online (Sandbox Code Playgroud)

这有效,但使用JSON会类似,但我不能使用JAXB,可以吗?

@PUT
@Consumes(MediaType.APPLICATION_JSON)
public String putTodo(<WHAT DO I PUT HERE>) {
    Route route = r.getValue();
    route.toString();
    System.out.println("Received PUT JSON Request");
    return "ok";
}
Run Code Online (Sandbox Code Playgroud)

java rest json jaxb jersey

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

PostGIS/CartoDB:存储MultiLineString中每个点的时间戳

我正在使用CartoDB作为我的应用程序的PostGIS服务器.

我需要存储轨道并为每个轨道点坐标对关联一个时间戳,以便进行查询give me the distance traveled between 12AM and 12PM on day X.

在CartoDB我只能创建3种类型的表:点对多点,MULTILINESTRING和MULTIPOLYGON.要插入曲目,我正在使用MULTILINESTRING表.

我的第一个尝试是将时间戳作为MULTILINESTRING中每个点的Z索引插入,但是我总是得到一个 ERROR: Geometry has Z dimension but column does not.

如何在"普通"PostGIS数据库中实现这一目标,以及如何在CartoDB PostGIS实现中实现它?

更新1:

因此,在jatorre回答之后,我创建了一个JSFiddle示例作为练习练习.但是我得到了不连贯的结果.

在上面的例子中,我有两个表具有相同的两个数据集.然而,一个是一个MULTILINESTRING表,其中每一行代表一个segment,另一个是MULTIPOINT我存储每组segment坐标的表.

然后我查询这两个表来获取total distance of segments according to transport mode.我觉得我很清楚地得到了jattore的idead,但是我不明白为什么我会得到不同的结果CarWalk总距离.任何提示?

解:

距离的微小差异是因为我需要在对points表进行分组之前对表进行排序segment.这是我当前的查询,以获取根据传输模式行进的总距离和时间:

WITH segments AS 
  (SELECT ST_Makeline(pts.the_geom_webmercator) as the_geom, (MAX(pts.timestamp) - MIN(pts.timestamp)) AS time, paths.transport_mode, paths.cartodb_id AS id
   FROM …
Run Code Online (Sandbox Code Playgroud)

gis postgis

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

Objective-C:使用参数对数组进行排序

我正在尝试对一个将参数传递给选择器的数组进行排序.例如,我有一个位置数组,我想根据它们与某个点的距离(例如,我当前的位置)对该数组进行排序.

这是我的选择器,但我不知道如何调用它.

- (NSComparisonResult)compareByDistance:(POI*)otherPoint withLocation:(CLLocation*)userLocation {
    int distance = [location distanceFromLocation:userLocation];
    int otherDistance = [otherPoint.location distanceFromLocation:userLocation];

    if(distance > otherDistance){
        return NSOrderedAscending;
    } else if(distance < otherDistance){
        return NSOrderedDescending;
    } else {
        return NSOrderedSame;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下函数对数组进行排序,但我无法将我的位置传递给选择器:

- (NSArray*)getPointsByDistance:(CLLocation*)location
{
    return [points sortedArrayUsingSelector:@selector(compareByDistance:withLocation:)];
}
Run Code Online (Sandbox Code Playgroud)

sorting iphone objective-c

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