splatone 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -6
- package/crawler.js +20 -7
- package/package.json +1 -1
- package/views/index.ejs +1 -0
package/README.md
CHANGED
|
@@ -11,14 +11,18 @@ SNSのジオタグ付きポストをキーワードに基づいて収集する
|
|
|
11
11
|
- Bulky: クロールした全てのジオタグを小さな点で描画する
|
|
12
12
|
- Marker Cluster: 密集しているジオタグをクラスタリングしてまとめて表示する
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Change Log
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- サイズの問題は、一度ファイルに書き出す事で解決しました。(v0.0.6)
|
|
18
|
-
- **--no-filed**オプションを付ける事で、従来の方法で実行できます。(ファイルに書き出すより多少速い)
|
|
19
|
-
- 以下の画像のように大きな範囲で多くのジオタグが収集できるようになりました。
|
|
16
|
+
### v0.0.7 → v0.0.8
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
* 範囲指定とHexGridの表示・非表示ができるようになりました。
|
|
19
|
+
* デフォルトで非表示
|
|
20
|
+
* 表示したい場合はレイヤコントロールにて切り替えてください
|
|
21
|
+
|
|
22
|
+
### v0.0.6 → v0.0.7
|
|
23
|
+
|
|
24
|
+
* Hexサイズの自動設定モードが実装され、デフォルトとなりました。
|
|
25
|
+
* Web画面のハンバーガーメニューから変更できます。(サイズ0で自動)
|
|
22
26
|
|
|
23
27
|
# 使い方
|
|
24
28
|
|
|
@@ -162,3 +166,8 @@ $ node crawler.js -p flickr -o '{"flickr":{"API_KEY":"aaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
162
166
|
|
|
163
167
|

|
|
164
168
|
|
|
169
|
+
### 広範囲なデータ収集例
|
|
170
|
+
|
|
171
|
+
* あまりにも大きいとFlickrから一時的にBANされることがありますので注意してください。
|
|
172
|
+
|
|
173
|
+

|
package/crawler.js
CHANGED
|
@@ -28,7 +28,7 @@ import { hideBin } from 'yargs/helpers';
|
|
|
28
28
|
// -------------------------------
|
|
29
29
|
import { loadPlugins } from './lib/pluginLoader.js';
|
|
30
30
|
import paletteGenerator from './lib/paletteGenerator.js';
|
|
31
|
-
import { dfsObject, saveGeoJsonObjectAsStream } from './lib/splatone.js';
|
|
31
|
+
import { dfsObject, bboxSize, saveGeoJsonObjectAsStream } from './lib/splatone.js';
|
|
32
32
|
|
|
33
33
|
const __filename = fileURLToPath(import.meta.url);
|
|
34
34
|
const __dirname = dirname(__filename);
|
|
@@ -108,7 +108,7 @@ try {
|
|
|
108
108
|
// コマンド例
|
|
109
109
|
// node crawler.js -p flickr -o '{"flickr":{"API_KEY":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}' -k "商業=shop,souvenir,market,supermarket,pharmacy,store,department|食べ物=food,drink,restaurant,cafe,bar|美術 館=museum,art,exhibition,expo,sculpture,heritage|公園=park,garden,flower,green,pond,playground" --vis-bulky
|
|
110
110
|
// node crawler.js -p flickr -k "水域=canal,channel,waterway,river,stream,watercourse,sea,ocean,gulf,bay,strait,lagoon,offshore|橋梁=bridge,overpass,flyover,aqueduct,trestle|通路=street,road,thoroughfare,roadway,avenue,boulevard,lane,alley,roadway,carriageway,highway,motorway|ランドマーク=church,sanctuary,chapel,cathedral,basilica,minster,abbey,temple,shrine" --vis-bulky
|
|
111
|
-
// node crawler.js -p flickr -k "水辺=sea,ocean,beach
|
|
111
|
+
// node crawler.js -p flickr -k "水辺=sea,ocean,beach,river,delta,lake,coast,creek|緑地=forest,woods,turf,lawn,jungle,trees,rainforest,grove,savanna,steppe|砂漠=desert,dune,outback,barren,wasteland" --vis-bulky --filed
|
|
112
112
|
let yargv = await yargs(hideBin(process.argv))
|
|
113
113
|
.strict() // 未定義オプションはエラー
|
|
114
114
|
.usage('使い方: $0 [options]')
|
|
@@ -304,7 +304,7 @@ try {
|
|
|
304
304
|
title: title,
|
|
305
305
|
lat: DEFAULT_CENTER.lat,
|
|
306
306
|
lon: DEFAULT_CENTER.lon,
|
|
307
|
-
defaultCellSize: 0
|
|
307
|
+
defaultCellSize: 0,
|
|
308
308
|
defaultUnits: 'kilometers',
|
|
309
309
|
defaultKeywords: argv.keywords,
|
|
310
310
|
});
|
|
@@ -357,19 +357,32 @@ try {
|
|
|
357
357
|
console.warn("invalid sessionId:", req.sessionId);
|
|
358
358
|
return;
|
|
359
359
|
}
|
|
360
|
-
|
|
360
|
+
let { bbox, drawn, cellSize = 0, units = 'kilometers', tags = 'sea,beach|mountain,forest' } = req.query;
|
|
361
|
+
const boundary = String(bbox).split(',').map(Number);
|
|
361
362
|
if (cellSize == 0) {
|
|
362
363
|
//セルサイズ自動決定()
|
|
364
|
+
//console.log("[cellSize?]",boundary,units);
|
|
365
|
+
const { width, height } = bboxSize(boundary, units);
|
|
366
|
+
//console.log("","w=",width,"/\th=",height);
|
|
367
|
+
cellSize = Math.max(width / (3 * 30), height / (30 * Math.sqrt(3)));
|
|
368
|
+
if(cellSize==0){
|
|
369
|
+
cellSize=1;
|
|
370
|
+
}
|
|
371
|
+
const msg = "セルサイズを[ " + cellSize + ' ' + units + " ]に設定しました。";
|
|
372
|
+
console.log(msg)
|
|
373
|
+
io.to(sessionId).timeout(5000).emit('toast', {
|
|
374
|
+
text: msg,
|
|
375
|
+
class: "info"
|
|
376
|
+
});
|
|
363
377
|
}
|
|
364
378
|
const fallbackBbox = [139.55, 35.53, 139.92, 35.80];
|
|
365
379
|
let bboxArray = fallbackBbox;
|
|
366
380
|
|
|
367
381
|
if (bbox) {
|
|
368
|
-
|
|
369
|
-
if (parts.length !== 4 || !parts.every(Number.isFinite)) {
|
|
382
|
+
if (boundary.length !== 4 || !boundary.every(Number.isFinite)) {
|
|
370
383
|
return res.status(400).json({ error: 'bbox must be "minLon,minLat,maxLon,maxLat"' });
|
|
371
384
|
}
|
|
372
|
-
bboxArray =
|
|
385
|
+
bboxArray = boundary;
|
|
373
386
|
}
|
|
374
387
|
|
|
375
388
|
const sizeNum = Number(cellSize);
|
package/package.json
CHANGED