对于我正在编写的应用程序,我们正在将IOS设备与外部传感器连接,外部传感器通过本地wifi网络输出GPS数据.这些数据以海拔高度的"原始"格式出现.通常,所有GPS高度需要具有与基于当前位置的WGS84大地水准面高度相关的校正因子.
例如,在以下地理控制点(http://www.ngs.noaa.gov/cgi-bin/ds_mark.prl?PidBox=HV9830)位于Lat 38 56 36.77159和Lon 077 01 08.34929
HV9830* NAD 83(2011) POSITION- 38 56 36.77159(N) 077 01 08.34929(W) ADJUSTED
HV9830* NAD 83(2011) ELLIP HT- 42.624 (meters) (06/27/12) ADJUSTED
HV9830* NAD 83(2011) EPOCH - 2010.00
HV9830* NAVD 88 ORTHO HEIGHT - 74.7 (meters) 245. (feet) VERTCON
HV9830 ______________________________________________________________________
HV9830 GEOID HEIGHT - -32.02 (meters) GEOID12A
HV9830 NAD 83(2011) X - 1,115,795.966 (meters) COMP
HV9830 NAD 83(2011) Y - -4,840,360.447 (meters) COMP
HV9830 NAD 83(2011) Z - 3,987,471.457 (meters) …Run Code Online (Sandbox Code Playgroud) 我认为应该这样做的"正确"方式是,getResourceAsStream()但它似乎并没有削减它.
我的情况:
我有一个Java的Web应用程序,最终将部署到几个不同的Web服务器,可能是GlassFish,Tomcat和WildFly.目前我正在使用Netbeans处理Mac,我可以访问WildFly和GlassFish.该项目已经成熟
我需要做的是读取和写入两个不同的Excel文件.一个用作"模板",一个用作输出文件.该应用程序以前独立运行,我试图将其包装到JSF网站.
我需要FileInputStream为我的其中一个方法获取一个并最终创建一个输出文件,该文件将通过http提供给用户.
根据我的收集,适当的方式来做到这一点应该是:
XLSX文件
/src/main/resources/ANALYSIS_template.xlsx
Run Code Online (Sandbox Code Playgroud)
位置一旦编译成WAR文件:: WildFly
/usr/local/opt/wildfly-as/libexec/standalone/deployments/fleetForecast-1.0-SNAPSHOT.war/WEB-INF/classes/ANALYSIS_template.xlsx
Run Code Online (Sandbox Code Playgroud)
位置一旦编译成WAR文件:: GlassFish
~/devel/fleetforecast/target/fleetForecast-1.0-SNAPSHOT/WEB-INF/classes/ANALYSIS_template.xlsx
Run Code Online (Sandbox Code Playgroud)
Java代码
我想我可能设法使用以下命令获取文件的输入流:
InputStream is1 = getClass().getResourceAsStream("ANALYSIS_template.xlsx");
Run Code Online (Sandbox Code Playgroud)
我也尝试过("/ANALYSIS_template.xlsx")类似行为的方式.当我尝试从此输入流中读取时
try {
is1.read();
} catch (IOException ex) {
Logger.getLogger(FleetBean.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)
我得到了java.lang.NullPointerException.
Caused by: java.lang.NullPointerException
at org.mitre.fleetforecast.bean.FleetBean.<init>(FleetBean.java:57)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at java.lang.Class.newInstance(Class.java:433)
at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:186)
... 76 more
Run Code Online (Sandbox Code Playgroud)
任何提供或想到的援助将不胜感激.
我正试图在swift playground中创建一个自定义的UIView组件.我已经能够弄清楚除正确渲染文本之外的所有事情.我不确定我是否应该通过Core Graphics或Core Text执行此操作,或者确切地知道如何使其正常工作.
正如您在下图中所看到的,我想在自定义View Component的任意一侧上下颠倒和正面渲染文本

我已经尝试了各种方法来使文本工作,但我一直搁浅.如果有人能够告诉我如何修改我的游乐场以添加一些非常棒的文本渲染.
// Playground - noun: a place where people can play
import Foundation
import UIKit
class RunwayView : UIView {
var northText : String?
var southText : String?
///Draws the "runway"
override func drawRect(rect: CGRect) {
// Setup graphics context
var ctx = UIGraphicsGetCurrentContext()
// clear context
CGContextClearRect(ctx, rect)
let parentVieBounds = self.bounds
let width = CGRectGetWidth(parentVieBounds)
let height = CGRectGetHeight(parentVieBounds)
// Setup the heights
let endZoneHeight : CGFloat = 40
/* …Run Code Online (Sandbox Code Playgroud) 我在swift中将NSData转换为NSString时遇到问题.我正在使用我认为正确的命令和格式:NSString(data: <DATA>, encoding: <ENCODING>)但无论我做什么,我总是以零值结束.我正在运行最新的Xcode测试版,所以我不确定这是否相关,但我希望这是一个简单的错误,我遇到了.
我附上了游乐场代码和屏幕截图.
import Foundation
//: # NSData to String Conversion Playground
//: ### Step 1
//: The first step is to take an array of bytes and conver them into a NSData object. The bytes are as follows:
var testBytes : [UInt8] = [0x14, 0x00, 0xAB, 0x45, 0x49, 0x1F, 0xEF, 0x15, 0xA8, 0x89, 0x78, 0x0F, 0x09, 0xA9, 0x07, 0xB0, 0x01, 0x20, 0x01, 0x4E, 0x38, 0x32, 0x35, 0x56, 0x20, 0x20, 0x20, …Run Code Online (Sandbox Code Playgroud) 我正在试图找出如何NSData在特定值上"chunk"a .
7E 55 33 22 7E 7E 22 AE BC 7E 7E AA AA 00 20 00 22 53 25 A3 4E 7E
返回一个由3个元素组成的数组,[NSData]其中元素为:
55 33 2222 AE BCAA AA 00 20 00 22 53 25 A3 4E我知道我可以这样做:
var ptr = UnsafePointer<UInt8>(data.bytes)
var bytes = UnsafeBufferPointer<UInt8>(start: ptr, count: data.length)
Run Code Online (Sandbox Code Playgroud)
而且我想通过做类似的比较迭代:
bytes[1] == UInt8(0x7E)
Run Code Online (Sandbox Code Playgroud)
我想建立"范围",但我想知道是否有更好的方法来解决这个问题?
private fund chunkMessage(data: NSData) -> [NSData] {
var ptr = UnsafePointer<UInt8>(data.bytes)
var bytes = …Run Code Online (Sandbox Code Playgroud) 我正在尝试在swift中进行一些二进制文件解析,虽然我有事情工作但我有一个情况,我有可变字段.
我的所有解析都在默认情况下工作
我抢了
1-bit field
1-bit field
1-bit field
11-bits field
1-bit field
(optional) 4-bit field
(optional) 4-bit field
1-bit field
2-bit field
(optional) 4-bit field
5-bit field
6-bit field
(optional) 6-bit field
(optional) 24-bit field
(junk data - up until byte buffer 0 - 7 bits as needed)
Run Code Online (Sandbox Code Playgroud)
大多数数据只使用一组选项,所以我已经开始编写类来处理这些数据.我的一般方法是创建一个指针结构,然后从中构造一个字节数组:
let rawData: NSMutableData = NSMutableData(data: input_nsdata)
var ptr: UnsafeMutablePointer<UInt8> = UnsafeMutablePointer<UInt8(rawData.mutableBytes)
bytes = UnsafeMutableBufferPointer<UInt8>(start: ptr, count: rawData.length - offset)
Run Code Online (Sandbox Code Playgroud)
所以我最终使用了一个数组,[UInt8]我可以用类似于以下的方式进行解析:
let b1 = (bytes[3] & 0x01) << 5 …Run Code Online (Sandbox Code Playgroud) 这是关于Swift中正则表达式的问题.我找到了各种教程,提到了如何进行搜索和匹配,但没有关于分组的内容:
这是一个简单的Match语句:
if Regex("\\w{4}").test("ABCD") {
println("matches pattern")
}
Run Code Online (Sandbox Code Playgroud)
但如果我想提取第3个字母怎么办:
if Regex("\\w{2}(\\w)\\w").text("REGX") {
print("Found a match with \$1")
}
Run Code Online (Sandbox Code Playgroud)
打印匹配组的正确语法是什么?
或者更具体地说-我将如何提取2044从2014-10-29T20:44:00
在swift 2中,将十六进制字符串转换为ascii等价物的最佳方法是什么.
let str1 = "0x4d 0x4c 0x4e 0x63"
let str2 = "4d 4c 4e 63"
let str3 = "4d4c4e63"
let str4 = "4d4d 4e63"
let str5 = "4d,4c,4e,63"
Run Code Online (Sandbox Code Playgroud)
我们想运行一个吐出的函数(或字符串扩展名):'MLNc',它是十六进制字符串的ascii等价物
strtoulfunc hexStringtoAscii(hexString : String) -> String {
let hexArray = split(hexString.characters) { $0 == " "}.map(String.init)
let numArray = hexArray.map{ strtoul($0, nil, 16) }.map{Character(UnicodeScalar(UInt32($0)))}
return String(numArray)
}
Run Code Online (Sandbox Code Playgroud)
这部分实现是否在正确的路径上?如果是这样,处理分块的最佳方法是什么?
昨天我在一个会议上与一些人谈论 Puppet Lab 的Bolt 1.0。我试图弄清楚这些工具是否可与 Ansible 相媲美,但是否可以利用所有已经存在的 puppet 模块,或者是否以其他方式有所不同。
我对这两种工具都不太熟悉,希望知识渊博的人能够解释这两种工具之间的区别。
我可以看到两者都是无代理的,我认为这是一个优点 - 但我不清楚其他差异以及为什么一个会选择一个而不是另一个。 不是在寻找主观答案 - 而是寻找区分这两种工具的实际列表
所以我正在玩协议扩展,我遇到了一个"有趣"的问题.
我想写一个Meters和Kilometers单位类型测试一些东西出来.很容易做到这一点,因为有一个基类,两个子类都覆盖基类,而只是覆盖一个简单的值
//Conversion factor between types
enum DISTANCE_UNIT_TYPE : Double {
case METER = 1.0;
case KILOMETER = 0.001;
}
protocol DistanceUnit {
var unitType : DISTANCE_UNIT_TYPE {get}
var value : Double { get set }
var baseValue : Double { get set }
}
struct Kilometers : DistanceUnit {
var unitType = DISTANCE_UNIT_TYPE.KILOMETER
var value : Double
var baseValue : Double
init(_ v : Double) {
value = v
baseValue = v * unitType.rawValue
} …Run Code Online (Sandbox Code Playgroud)