Skip to content

Instantly share code, notes, and snippets.

View Densyakun's full-sized avatar

電車君 Densyakun

View GitHub Profile

OSMデータから街並みを作るWebアプリ

  • OSMデータ
    • 必要なデータに合わせたOverpassのクエリを決める
    • OverpassからGeoJSON形式でOSMデータをダウンロードする
      • OSMデータのjsonファイルよりも容量が軽いため、GeoJSON形式を使用する
    • 投影するためのデータに整形する
    • 投影法を指定して経緯度ベースのデータを3d用のデータに投影する
    • 3D用のデータをもとにモデルを配置する
  • 標高、湖水深、基準水面標高
import { createInterface } from "readline"
import { promisify } from "util"
const rl = createInterface({
input: process.stdin,
output: process.stdout
})
const question = promisify<string, string>(rl.question as (answer: string) => Promise<string>).bind(rl)
let str = ''
for (var i = 0; i < length; i++)
str += String.fromCodePoint(Math.floor(Math.random() * 0x10FFFF))

Kozmik-IDE本体のパラダイム

ソフトウェアプラットフォームの選定

  • Web開発に、JavaScriptを使う
  • サーバーでもJavaScriptを使うことで生産性を向上できるため、Node.jsを使う
  • クライアント及びサーバーのHMRのためにNext.jsを使う
  • 入力補完のために、JavaScriptの代わりにTypeScriptを使う
  • node-hmrは、require関数により読み込まれたモジュール(=require.cacheに追加されているモジュール)のみ監視する
  • require関数でエラーが発生すると、node-hmrはそのモジュールの監視を停止する
  • require関数で発生したエラーをキャッチしたときに、require.cache[moduleId] = { id: moduleId }を追加することで監視を継続できる
  • 代替モジュール: error-handled-node-hmr

test.js:

const path = require('path')
const hmr = require('node-hmr')
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

パスワード:

  • 半角英字、数字、半角スペース、記号 !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~
  • html: !\&quot;#$%&amp;&#039;()*+,-./:;&lt;=&gt;?@[\\]^_`{|}~
  • 正規表現リテラル: /^[\x20-\x7E]{14,100}$/
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>title</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

関連するGist

Kozmik IDE のクロスプラットフォーム

  • パッケージ管理システムのコマンドラインツール: APT, (for Windows), Alpine Package Keeper (APK), Homebrew, Yum, emerge, Zypper
  • OS: Debian, Windows, Alpine Linux, macOS, Red Hat, Gentoo, SuSE
  • Debian は Ubuntu, Termux, Chrome OS のため