RxJava 批量计算网络连接速度

1.计算连接耗时

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private static long calcConnCost(String url) {
long start = new Date().getTime();
long end = start;
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestProperty("Range", "bytes=0-0");
conn.setIfModifiedSince(1);
start = new Date().getTime();
if (conn.getResponseCode() == 206 || conn.getResponseCode() == 200) {
end = new Date().getTime();
}
conn.disconnect();
conn = null;
} catch (IOException e) {
e.printStackTrace();
}
return end - start;
}

2.异步计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Observable.just("http://baidu.com")
.map(new Func1<String, Long>() {
@Override
public Long call(String url) {
return calcConnCost(url);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
@Override
public void call(Long cost) {
Log.d("time", cost + "");
}
});
//输出 time:90

Read More

ArcMap Python 脚本编写入门索引

本文主要是Python脚本批量处理ArcMap数据的入门资料索引.

如果是简单的批量处理数据, 可以直接使用ArcMap内置的Python窗口处理.而对于稍复杂或经常重复的操作就可以考虑用插件来完成.

ArcMap中的Python窗口:

ArcMap中的Python插件

ArcMap中的python插件有两种形式, 一种是Toolbox里直接运行的py脚本, 添加时需要设置字段. 比如下图里的 Add Geometry Attributes 就属于此类.

另一种是作为esriaddin插件形式的,可以添加菜单、工具条;单文件形式存在,方便安装和传播,不过似乎不方便调试。

开始吧,皮卡丘

  1. 首先python要有入门水平, 推荐廖雪峰的 Python教程, 看一两遍差不多入门.
  2. Programming ArcGIS 10.1 with Python Cookbook, 这本书不错, 难度一般,例数据比较全.
  3. 什么是 Python 加载项?
  4. gis.stackexchange.com 基本上ArcPy相关的问题都可以查到.