diff --git a/.cache/redirects.json b/.cache/redirects.json deleted file mode 100644 index 7434dc712f..0000000000 --- a/.cache/redirects.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "fromPath": "/en/docs/api", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/en/docs/api/L7" - }, - { - "fromPath": "/zh/docs/api", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/zh/docs/api/L7" - }, - { - "fromPath": "/zh/docs/tutorial", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/zh/docs/api/quickstart" - }, - { - "fromPath": "/en/docs/tutorial", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/en/docs/api/quickstart" - }, - { - "fromPath": "/zh/examples/raster/", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/zh/examples/raster/basic" - }, - { - "fromPath": "/zh/examples/polygon/", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/zh/examples/polygon/3d" - }, - { - "fromPath": "/zh/examples/heatmap/", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/zh/examples/heatmap/heatmap" - }, - { - "fromPath": "/en/examples", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/en/examples/gallery/basic" - }, - { - "fromPath": "/zh/examples", - "isPermanent": true, - "redirectInBrowser": true, - "toPath": "/zh/examples/gallery/basic" - } -] \ No newline at end of file diff --git a/.cache/redux.state b/.cache/redux.state deleted file mode 100644 index b63664a60c..0000000000 Binary files a/.cache/redux.state and /dev/null differ diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 7e3649acc2..0000000000 --- a/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false - -[Makefile] -indent_style = tab diff --git a/.eslintrc b/.eslintrc deleted file mode 100755 index b6d3fb664f..0000000000 --- a/.eslintrc +++ /dev/null @@ -1,45 +0,0 @@ -{ - "extends": [ - "eslint-config-egg" - ], - "globals": { - "AMap": true, - "L7": true, - }, - "env": { - "browser": true, - "node": true - }, - "parser": "babel-eslint", - "parserOptions": { - "sourceType": "module" - }, - "plugins": [ - "html" - ], - "rules": { - "no-console": [ - "error", - { - "allow": [ - "warn", - "error" - ] - } - ], - "no-bitwise": [ - 0 - ], - "experimentalDecorators": [ - 0 - ], - "comma-dangle": [ - "error", - "never" - ], - "jsdoc/require-param": 0, - "linebreak-style": [ - 0 - ] - } -} diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100755 index 6ed9d91adb..0000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,24 +0,0 @@ - - -* **L7 Version**: -* **Platform**: -* **Mini Showcase(like screenshots)**: -* **CodePen Link**: - - diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100755 index fd86cfc330..0000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,19 +0,0 @@ - - -##### Checklist - - -- [ ] `npm test` passes -- [ ] tests and/or benchmarks are included -- [ ] commit message follows commit guidelines - -##### Description of change - diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1dc69bff9f..0000000000 --- a/.gitignore +++ /dev/null @@ -1,75 +0,0 @@ - -# Created by https://www.gitignore.io/api/node - -### Node ### -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Typescript v1 declaration files -# typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - - -# End of https://www.gitignore.io/api/node - -lib/ -dist/ - -.DS_Store -public -.cache - -yarn.lock -package-lock.json diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index a531dea305..0000000000 --- a/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "printWidth": 80, - "tabWidth": 2, - "singleQuote": true, - "trailingComma": "all", - "arrowParens": "always" -} diff --git a/.storybook/addons.ts b/.storybook/addons.ts deleted file mode 100644 index 06915d6e12..0000000000 --- a/.storybook/addons.ts +++ /dev/null @@ -1,3 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-notes/register'; -import '@storybook/addon-storysource/register'; diff --git a/.storybook/config.ts b/.storybook/config.ts deleted file mode 100644 index e2e73a0586..0000000000 --- a/.storybook/config.ts +++ /dev/null @@ -1,32 +0,0 @@ -// tslint:disable-next-line:no-submodule-imports -import '!style-loader!css-loader!sass-loader!./iframe.scss'; -import '@storybook/addon-console'; -import { addParameters, configure } from '@storybook/react'; -import { create } from '@storybook/theming'; - -addParameters({ - options: { - isFullscreen: false, - showAddonsPanel: true, - showSearchBox: false, - panelPosition: 'bottom', - hierarchySeparator: /\./, - // hierarchyRootSeparator: /\|/, - enableShortcuts: true, - theme: create({ - base: 'light', - brandTitle: 'L7 POC for new architecture', - brandUrl: 'https://github.com/xiaoiver/L7-POC', - gridCellSize: 12, - }), - }, -}); - -// automatically import all files ending in *.stories.tsx -const req = require.context('../stories', true, /\.stories\.tsx$/); - -function loadStories() { - req.keys().forEach(req); -} - -configure(loadStories, module); diff --git a/.storybook/iframe.scss b/.storybook/iframe.scss deleted file mode 100644 index fd9c693afd..0000000000 --- a/.storybook/iframe.scss +++ /dev/null @@ -1,7 +0,0 @@ -html, body { - margin: 0; -} - -.dg.ac { - z-index: 999 !important; -} \ No newline at end of file diff --git a/.storybook/l7.css b/.storybook/l7.css deleted file mode 100644 index ca0e4f1fa9..0000000000 --- a/.storybook/l7.css +++ /dev/null @@ -1,400 +0,0 @@ -.l7-marker-container { - width:100% -} -.l7-marker { - position: absolute !important; - top: 0; - left: 0; - z-index: 5; -} -.l7-popup-anchor-top, -.l7-popup-anchor-top-left, -.l7-popup-anchor-top-right { - -webkit-flex-direction: column; - flex-direction: column; -} - -.l7-popup-anchor-bottom, -.l7-popup-anchor-bottom-left, -.l7-popup-anchor-bottom-right { - -webkit-flex-direction: column-reverse; - flex-direction: column-reverse; -} - -.l7-popup-anchor-left { - -webkit-flex-direction: row; - flex-direction: row; -} - -.l7-popup-anchor-right { - -webkit-flex-direction: row-reverse; - flex-direction: row-reverse; -} -.l7-popup { - position: absolute; - top: 0; - left: 0; - display: -webkit-flex; - display: flex; - will-change: transform; - pointer-events: none; - z-index: 5; -} -.l7-popup-tip { - width: 0; - height: 0; - border: 10px solid transparent; - z-index: 1; -} -.l7-popup-anchor-top .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-top: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-top: none; - border-left: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-top: none; - border-right: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-bottom .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-bottom: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-bottom: none; - border-left: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-bottom: none; - border-right: none; - border-top-color: #fff; -} - -.l7-popup-anchor-left .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-left: none; - border-right-color: #fff; -} - -.l7-popup-anchor-right .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-right: none; - border-left-color: #fff; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - padding: 0; - font-size: 25px; - line-height: 20px; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -.l7-popup-anchor-top-left .l7-popup-content { - border-top-left-radius: 0; -} - -.l7-popup-anchor-top-right .l7-popup-content { - border-top-right-radius: 0; -} - -.l7-popup-anchor-bottom-left .l7-popup-content { - border-bottom-left-radius: 0; -} - -.l7-popup-anchor-bottom-right .l7-popup-content { - border-bottom-right-radius: 0; -} - -.l7-popup-track-pointer { - display: none; -} - -.l7-popup-track-pointer * { - pointer-events: none; - user-select: none; -} - -.l7-map:hover .l7-popup-track-pointer { - display: flex; -} - -.l7-map:active .l7-popup-track-pointer { - display: none; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -/* general toolbar styles */ - -.l7-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.l7-bar a, -.l7-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } -.l7-bar a, -.l7-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.l7-bar a:hover { - background-color: #f4f4f4; - } -.l7-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.l7-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.l7-bar a.l7-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - - -/* control positioning */ - -.l7-control-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; -} -.l7-control-hide { - display: none; -} -.l7-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.l7-top, -.l7-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.l7-top { - top: 0; - } -.l7-right { - right: 0; - } -.l7-bottom { - bottom: 0; - } -.l7-left { - left: 0; - } -.l7-control { - float: left; - clear: both; - } -.l7-right .l7-control { - float: right; - } -.l7-top .l7-control { - margin-top: 10px; - } -.l7-bottom .l7-control { - margin-bottom: 10px; - } -.l7-left .l7-control { - margin-left: 10px; - } -.l7-right .l7-control { - margin-right: 10px; - } - - /* attribution and scale controls */ - -.l7-control-container .l7-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } -.l7-control-attribution, -.l7-control-scale-line { - padding: 0 5px; - color: #333; - } -.l7-control-attribution a { - text-decoration: none; - } -.l7-control-attribution a:hover { - text-decoration: underline; - } -.l7-container .l7-control-attribution, -.l7-container .l7-control-scale { - font-size: 11px; - } -.l7-left .l7-control-scale { - margin-left: 5px; - } -.l7-bottom .l7-control-scale { - margin-bottom: 5px; - } -.l7-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: border-box; - box-sizing: border-box; - - background: #fff; - background: rgba(255, 255, 255, 0.5); - } -.l7-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.l7-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.l7-touch .l7-control-attribution, -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - box-shadow: none; - } -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - - /* layers control */ - -.l7-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.l7-control-layers-toggle { - background-image: url(../images/layers.svg); - width: 36px; - height: 36px; - } -.l7-retina .l7-control-layers-toggle { - background-image: url(../images/layers.svg); - background-size: 26px 26px; - } -.l7-touch .l7-control-layers-toggle { - width: 44px; - height: 44px; - } -.l7-control-layers .l7-control-layers-list, -.l7-control-layers-expanded .l7-control-layers-toggle { - display: none; - } -.l7-control-layers-expanded .l7-control-layers-list { - display: block; - position: relative; - } -.l7-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.l7-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } -.l7-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.l7-control-layers label { - display: block; - } -.l7-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js deleted file mode 100644 index 2d3b00e6e0..0000000000 --- a/.storybook/webpack.config.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = ({ config }) => { - - // config.module.rules.push({ - // test: /\.glsl$/, - // loader: 'raw-loader' - // }); - - // config.module.rules.push({ - // test: /\.worker\.(js|ts)$/, - // use: { - // loader: 'worker-loader', - // options: { inline: true, fallback: false } - // } - // }); - - config.module.rules.push({ - test: /\.(ts|tsx)$/, - loader: require.resolve('awesome-typescript-loader'), - }); - - config.module.rules.push({ - test: /\.stories\.tsx?$/, - loaders: [ - { - loader: require.resolve('@storybook/addon-storysource/loader'), - options: { parser: 'typescript' }, - }, - ], - enforce: 'pre', - },{ - test: /\.stories\.css?$/, - use: ['style-loader', 'css-loader'], - }, - ); - - config.resolve.extensions.push('.ts', '.tsx', '.js', '.glsl'); - - return config; -}; diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index 0a81b4570a..0000000000 --- a/.stylelintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "processors": ["stylelint-processor-styled-components"], - "extends": [ - "stylelint-config-standard", - "stylelint-config-styled-components" - ] -} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index bc97a5937e..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -sudo: false -language: node_js -node_js: -- '12' -branches: - only: - - next -install: -- yarn install -script: -- yarn test -- yarn coveralls diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 0db3279e44..0000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - -} diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 7da54ea95c..0000000000 --- a/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Alipay.inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 96abb3a96c..0000000000 --- a/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# L7 - -![最近提交](https://badgen.net/github/last-commit/antvis/L7) - -L7 Large-scale WebGL-powered Geospatial data visualization analysis framework - - -### Installation - -``` - npm install @antv/l7 - -``` - -### Features - -### Links - - -## Development - -使用 Yarn Workspace 完成依赖安装以及各包之间的 link 工作: -```bash -yarn install -``` - -开发模式: -```bash -yarn watch -``` - -运行 Demo -```bash -yarn storybook -``` - -代替 `git commit` 提交: -```bash -yarn commit -``` - -## view doc example - -```bash - npm start -``` -visit http://localhost:8000/ - -## Add Package - -add new package: -```bash -lerna create my-pack -y -``` - -将 ui-lib 作为 my-pack 的依赖: -```bash -yarn workspace my-pack add ui-lib/1.0.0 -``` - -将 lodash 添加为所有 package 的依赖(不包含root) -```bash -yarn workspaces run add lodash -``` - -将 typescript 设置为 root 的开发依赖 -```bash -yarn add -W -D typescript jest -``` diff --git a/README.zh.md b/README.zh.md deleted file mode 100644 index 36ff1a9f91..0000000000 --- a/README.zh.md +++ /dev/null @@ -1,125 +0,0 @@ -## L7 地理空间数据可视分析引擎 - -L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析开发框架。L7 中的 L 代表 Location,7 代表世界七大洲,寓意能为全球位置数据提供可视分析的能力。L7 以图形符号学为理论基础,将抽象复杂的空间数据转化成 2D、3D 符号,通过颜色、大小、体积、纹理等视觉变量实现丰富的可视化表达。 - - - - -### Installation - -``` - npm install @antv/l7 - -``` - - -## 核心特性 - -### 🌏 数据驱动可视化展示 - -数据驱动,从数到形,支持丰富的地图可视化类型,更好洞察数据。 - -### 🌏 2D,3D 一体化的海量数据高性能渲染 - -百万级空间数据实时,动态渲染。 - -### 🌏简单灵活的数据接入 - -支持CSV,JSON,geojson等数据格式接入,可以根据需求自定义数据格式,无需复杂的空间数据转换。 - -### 🌏 多地图底图支持,支持离线内网部署 - -高德地图国内合法合规的地理底图,Mapbox 满足国际化业务需求。 - -## 支持丰富的图表类型 - -### 点图层 - - - 气泡图 - - 散点图 - - 符号地图 - - 3D柱状地图 - - 聚合地图 - - 复合图表地图 - - 自定义Marker - -### 线图层 - -- 路径地图 -- 弧线,支持2D弧线、3D弧线以及大圆航线 -- 等值线 - -### 面图层 - -- 填充图 -- 3D填充图 - -### 热力图 - -- 经典热力图 -- 蜂窝热力图 -- 网格热力图 - -### 栅格地图 -- 图片 -- Raster - -## L7 2.0 Roadmap - -![L7 Road Map](https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*3j9HTLTQT2MAAAAAAAAAAABkARQnAQ) - -## Development - -使用 Yarn Workspace 完成依赖安装以及各包之间的 link 工作: -```bash -yarn install -``` - -开发模式: -```bash -yarn watch -``` - -运行 Demo -```bash -yarn storybook -``` - -代替 `git commit` 提交: -```bash -yarn commit -``` - -## view doc example - -```bash - npm start -``` -visit http://localhost:8000/ - -## Add Package - -add new package: -```bash -lerna create my-pack -y -``` - -将 ui-lib 作为 my-pack 的依赖: -```bash -yarn workspace my-pack add ui-lib/1.0.0 -``` - -将 lodash 添加为所有 package 的依赖(不包含root) -```bash -yarn workspaces run add lodash -``` - -将 typescript 设置为 root 的开发依赖 -```bash -yarn add -W -D typescript jest -``` \ No newline at end of file diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 439b91afb5..0000000000 --- a/babel.config.js +++ /dev/null @@ -1,120 +0,0 @@ -// @see https://babeljs.io/docs/en/next/config-files#project-wide-configuration -module.exports = api => { - api.cache(() => process.env.NODE_ENV); - - const isSite = api.env('site'); - const isCDNBundle = api.env('bundle'); - const isCommonJS = api.env('cjs'); - const isESModule = api.env('esm'); - const isTest = api.env('test'); - - if (isSite) { // - return { - presets: [ - 'babel-preset-gatsby' - ], - plugins: [ - '@babel/plugin-proposal-optional-chaining', - '@babel/plugin-proposal-nullish-coalescing-operator', - [ - '@babel/plugin-proposal-decorators', - { - legacy: true - } - ], - [ - // import glsl as raw text - 'babel-plugin-inline-import', - { - extensions: [ - // 由于使用了 TS 的 resolveJsonModule 选项,JSON 可以直接引入,不需要当作纯文本 - // '.json', - '.glsl' - ] - } - ] - ] - }; - } - return { - presets: [ - [ - '@babel/env', - { - targets: { - browsers: 'Last 2 Chrome versions, Firefox ESR', - node: 'current' - }, - // set `modules: false` when building CDN bundle, let rollup do commonjs works - // @see https://github.com/rollup/rollup-plugin-babel#modules - modules: (isCDNBundle || isESModule) ? false : 'auto' - } - ], - [ - '@babel/preset-react', - { - development: isCommonJS - } - ], - '@babel/preset-typescript' - ], - plugins: [ - '@babel/plugin-proposal-optional-chaining', - '@babel/plugin-proposal-nullish-coalescing-operator', - [ - '@babel/plugin-proposal-decorators', - { - legacy: true - } - ], - [ - '@babel/plugin-proposal-class-properties', - { - // @see https://github.com/storybookjs/storybook/issues/6069#issuecomment-472544973 - loose: true - } - ], - '@babel/plugin-syntax-dynamic-import', - // let rollup do commonjs works - // @see https://github.com/rollup/rollup-plugin-babel#modules - (isCDNBundle || isESModule) ? {} : '@babel/plugin-transform-modules-commonjs', - // '@babel/plugin-transform-modules-commonjs', - // 开发模式下以原始文本引入,便于调试 - isCDNBundle ? {} : [ - // import glsl as raw text - 'babel-plugin-inline-import', - { - extensions: [ - // 由于使用了 TS 的 resolveJsonModule 选项,JSON 可以直接引入,不需要当作纯文本 - // '.json', - '.glsl' - ] - } - ], - [ - // @see https://github.com/babel/babel/issues/8741#issuecomment-509041135 - 'const-enum', - { - transform: 'constObject' - } - ], - // 按需引用 @see https://github.com/lodash/babel-plugin-lodash - 'lodash', - // 内联 WebGL 常量 @see https://www.npmjs.com/package/babel-plugin-inline-webgl-constants - isCDNBundle ? 'inline-webgl-constants' : {} - ], - ignore: [ - 'node_modules', - ...!isTest ? [ - '**/*.test.tsx', - '**/*.test.ts', - '**/*.story.tsx', - '__snapshots__', - '__tests__', - '__stories__', - '**/*/__snapshots__', - '**/*/__tests__' - ] : [] - ] - }; -}; diff --git a/build/bundle.ts b/build/bundle.ts deleted file mode 100644 index 737cb99736..0000000000 --- a/build/bundle.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-ignore -export * from '@l7/scene'; -// @ts-ignore -export * from '@l7/layers'; - -// @ts-ignore -export * from '@l7/component'; diff --git a/build/rollup-plugin-glsl.js b/build/rollup-plugin-glsl.js deleted file mode 100644 index 892ddbe944..0000000000 --- a/build/rollup-plugin-glsl.js +++ /dev/null @@ -1,33 +0,0 @@ -import { createFilter } from 'rollup-pluginutils'; - -// borrow from https://github.com/uber/luma.gl/blob/master/dev-modules/babel-plugin-remove-glsl-comments/index.js#L4-L5 -const INLINE_COMMENT_REGEX = /\s*\/\/.*[\n\r]/g; -const BLOCK_COMMENT_REGEX = /\s*\/\*(\*(?!\/)|[^*])*\*\//g; - -// 生产环境压缩 GLSL -export default function glsl(include, minify) { - const filter = createFilter(include); - return { - name: 'glsl', - transform(code, id) { - if (!filter(id)) return; - - if (minify) { - code = code - .trim() // strip whitespace at the start/end - .replace(/\n+/g, '\n') // collapse multi line breaks - // remove comments - .replace(INLINE_COMMENT_REGEX, '\n') - .replace(BLOCK_COMMENT_REGEX, '') - .replace(/\n\s+/g, '\n') // strip identation - // .replace(/\s?([+-\/*=,])\s?/g, '$1') // strip whitespace around operators - // .replace(/([;\(\),\{\}])\n(?=[^#])/g, '$1'); // strip more line breaks - } - - return { - code: `export default ${JSON.stringify(code)};`, - map: { mappings: '' } - }; - } - }; -} \ No newline at end of file diff --git a/build/rollup.config.js b/build/rollup.config.js deleted file mode 100644 index cf07153724..0000000000 --- a/build/rollup.config.js +++ /dev/null @@ -1,79 +0,0 @@ -import path from 'path'; -import alias from '@rollup/plugin-alias'; -import json from '@rollup/plugin-json'; -import resolve from 'rollup-plugin-node-resolve'; -import commonjs from 'rollup-plugin-commonjs'; -import { terser } from "rollup-plugin-terser"; -import analyze from 'rollup-plugin-analyzer'; -import babel from 'rollup-plugin-babel'; -import glsl from './rollup-plugin-glsl'; - -function resolveFile(filePath) { - return path.join(__dirname, '..', filePath) -} - -module.exports = [ - { - input: resolveFile('build/bundle.ts'), - output: { - file: resolveFile('dist/bundle.js'), - format: 'umd', - name: 'L7', - globals: { - 'mapbox-gl': 'mapboxgl', - }, - }, - external: [ - 'mapbox-gl', - ], - treeshake: true, - plugins: [ - alias( - { - resolve: ['.tsx', '.ts'], - entries: [ - { - find: /^@l7\/(.*)/, - replacement: resolveFile('packages/$1/src'), - }, - ] - }, - ), - resolve({ - browser: true, - preferBuiltins: false, - extensions: ['.js', '.ts'], - }), - glsl( - ['**/*.glsl'], - true, - ), - json(), - // @see https://github.com/rollup/rollup-plugin-node-resolve#using-with-rollup-plugin-commonjs - commonjs({ - namedExports: { - eventemitter3: [ 'EventEmitter' ], - // @see https://github.com/rollup/rollup-plugin-commonjs/issues/266 - lodash: [ - 'isNil', - 'uniq', - 'clamp', - 'isObject', - 'isFunction', - 'cloneDeep', - 'isString', - 'isNumber', - ], - } - }), - babel({ - extensions: ['.js', '.ts'], - }), - terser(), - analyze({ - summaryOnly: true, - limit: 20, - }), - ], - }, -]; diff --git a/commitlint.config.js b/commitlint.config.js deleted file mode 100644 index dc0adae16c..0000000000 --- a/commitlint.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - extends: [ - '@commitlint/config-conventional' - ] -}; diff --git a/demos/raster/basic/data/ndviundefined.be75.tif b/demos/raster/basic/data/ndviundefined.be75.tif deleted file mode 100755 index b4205d18e4..0000000000 Binary files a/demos/raster/basic/data/ndviundefined.be75.tif and /dev/null differ diff --git a/demos/raster/basic/demo/image.js b/demos/raster/basic/demo/image.js deleted file mode 100644 index ade1323c73..0000000000 --- a/demos/raster/basic/demo/image.js +++ /dev/null @@ -1,25 +0,0 @@ -import { Scene } from '@l7/scene'; -import { ImageLayer } from '@l7/layers' -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [121.2680, 30.3628], - zoom: 13, -}); - -const layer = new ImageLayer({}); -layer.source( - 'https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg', - { - parser: { - type: 'image', - extent: [121.168, 30.2828, 121.384, 30.4219], - }, - }, -); -scene.on('loaded',()=>{ - scene.addLayer(layer); -}) - diff --git a/demos/raster/basic/demo/meta.json b/demos/raster/basic/demo/meta.json deleted file mode 100644 index 25b9c47b9e..0000000000 --- a/demos/raster/basic/demo/meta.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "title": { - "zh": "栅格图层", - "en": "Gallery" - }, - "demos": [ - { - "filename": "image.js", - "title": "图片", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*ZrCaR53185IAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "raster.js", - "title": "地形" - }, - { - "filename": "light.js", - "title": "夜光图" - } - ] -} diff --git a/demos/raster/basic/demo/raster.js b/demos/raster/basic/demo/raster.js deleted file mode 100644 index c63bcaa948..0000000000 --- a/demos/raster/basic/demo/raster.js +++ /dev/null @@ -1,61 +0,0 @@ -import { Scene } from '@l7/scene'; -import { RasterLayer } from '@l7/layers' -import * as GeoTIFF from 'geotiff'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'light', - center: [121.2680, 30.3628], - zoom: 3, -}); - async function getTiffData() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/rmsportal/XKgkjjGaAzRyKupCBiYW.dat', - ); - const arrayBuffer = await response.arrayBuffer(); - const tiff = await GeoTIFF.fromArrayBuffer(arrayBuffer); - const image = await tiff.getImage(); - const width = image.getWidth(); - const height = image.getHeight(); - const values = await image.readRasters(); - return { - data: values[0], - width, - height, - min: 0, - max: 8000, - }; -} - -async function addLayer() { - const tiffdata = await getTiffData(); - - const layer = new RasterLayer({}); - layer - .source(tiffdata.data, { - parser: { - type: 'raster', - width: tiffdata.width, - height: tiffdata.height, - min: 0, - max: 8000, - extent: [73.482190241, 3.82501784112, 135.106618732, 57.6300459963], - }, - }) - .style({ - heightRatio:100, - opacity: 0.8, - rampColors: { - colors: [ '#FF4818', '#F7B74A', '#FFF598', '#91EABC', '#2EA9A1', '#206C7C' ].reverse(), - positions: [0, 0.2, 0.4, 0.6, 0.8, 1.0] - }, - }); - return layer; -} -scene.on('loaded', async () =>{ - const layer = await addLayer(); - scene.addLayer(layer); - scene.render(); -}) - diff --git a/demos/raster/basic/index.en.md b/demos/raster/basic/index.en.md deleted file mode 100644 index 39ed3aaf30..0000000000 --- a/demos/raster/basic/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Raster Map -order: 0 ---- diff --git a/demos/raster/basic/index.zh.md b/demos/raster/basic/index.zh.md deleted file mode 100644 index 6147459f75..0000000000 --- a/demos/raster/basic/index.zh.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 栅格图层 -order: 0 ---- diff --git a/demos/tutorial/control/demo/amap.js b/demos/tutorial/control/demo/amap.js deleted file mode 100644 index 957781139c..0000000000 --- a/demos/tutorial/control/demo/amap.js +++ /dev/null @@ -1,58 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers' -import { Scale, Zoom, Layers } from '@l7/component'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'dark', - center: [121.40, 31.258134], - zoom: 14, -}); - -fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') - .then((res) => res.json()) - .then((data) => { - const pointLayer = - new PointLayer({ - }) - .source(data, { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude' - } - }).shape('circle') - .size('unit_price', [5, 25]) - .color('name',['#49B5AD', "#5B8FF9"]) - .style({ - opacity: 0.3, - strokeWidth: 1, - }) - - scene.addLayer(pointLayer); - var overlayers = { - "围栏填充": pointLayer, - }; - var baseLayers = { - "基础地图": pointLayer, - }; - const layersControl = new Layers({ - overlayers: overlayers, - }); - - scene.addControl(layersControl); - - }); - - - - - const zoomControl = new Zoom(); - const scaleControl = new Scale({ - position:"bottomright" - }); - - scene.addControl(zoomControl); - scene.addControl(scaleControl); - diff --git a/demos/tutorial/control/demo/mapbox.js b/demos/tutorial/control/demo/mapbox.js deleted file mode 100644 index 4f7eb86e7d..0000000000 --- a/demos/tutorial/control/demo/mapbox.js +++ /dev/null @@ -1,19 +0,0 @@ -import { Scene } from '@l7/scene'; -import { Scale, Zoom } from '@l7/component'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'light', - center: [-97.119140625, 38.75408327579141], - zoom: 2, -}); - -const zoomControl = new Zoom(); -const scaleControl = new Scale({ - position:'rightbottom', -}); -scene.addControl(zoomControl); -scene.addControl(scaleControl); - - diff --git a/demos/tutorial/control/demo/meta.json b/demos/tutorial/control/demo/meta.json deleted file mode 100644 index d921629ac5..0000000000 --- a/demos/tutorial/control/demo/meta.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title": { - "zh": "地图", - "en": "Category" - }, - "demos": [ - { - "filename": "amap.js", - "title": "高德底图组件", - }, - { - "filename": "mapbox.js", - "title": "MapBox底图组件" - } - ] -} diff --git a/demos/tutorial/control/demo/popup.js b/demos/tutorial/control/demo/popup.js deleted file mode 100644 index 36f094242b..0000000000 --- a/demos/tutorial/control/demo/popup.js +++ /dev/null @@ -1,57 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers' -import { Scale, Zoom, Layers } from '@l7/component'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'dark', - center: [121.40, 31.258134], - zoom: 5, -}); - -fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') - .then((res) => res.json()) - .then((data) => { - const pointLayer = - new PointLayer({ - }) - .source(data, { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude' - } - }).shape('circle') - .size('unit_price', [5, 25]) - .color('name',['#49B5AD', "#5B8FF9"]) - .style({ - opacity: 0.3, - strokeWidth: 1, - }) - - scene.addLayer(pointLayer); - var overlayers = { - "围栏填充": pointLayer, - }; - var baseLayers = { - "基础地图": pointLayer, - }; - const layersControl = new Layers({ - overlayers: overlayers, - baseLayers, - }); - - scene.addControl(layersControl); - - }); - - - - - const zoomControl = new Zoom(); - const scaleControl = new Scale(); - - scene.addControl(zoomControl); - scene.addControl(scaleControl); - diff --git a/demos/tutorial/control/index.en.md b/demos/tutorial/control/index.en.md deleted file mode 100644 index 9dbd64200a..0000000000 --- a/demos/tutorial/control/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: control -order: 2 ---- diff --git a/demos/tutorial/control/index.zh.md b/demos/tutorial/control/index.zh.md deleted file mode 100644 index 53dd2eef6b..0000000000 --- a/demos/tutorial/control/index.zh.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: 组件 -order: 2 ---- - - diff --git a/demos/tutorial/data/demo/line.js b/demos/tutorial/data/demo/line.js deleted file mode 100644 index 288f28b1dd..0000000000 --- a/demos/tutorial/data/demo/line.js +++ /dev/null @@ -1,39 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers' -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'light', - center: [102.602992, 23.107329], - zoom: 13, -}); - -fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') - .then((res) => res.json()) - .then((data) => { - const layer = - new LineLayer({ - }) - .source(data) - .size(1) - .shape('line') - .color( - 'ELEV', - [ - '#E8FCFF', - '#CFF6FF', - '#A1E9ff', - '#65CEF7', - '#3CB1F0', - '#2894E0', - '#1772c2', - '#105CB3', - '#0D408C', - '#002466', - ].reverse(), - ) - scene.addLayer(layer); - console.log(layer); - - }); diff --git a/demos/tutorial/data/demo/meta.json b/demos/tutorial/data/demo/meta.json deleted file mode 100644 index 42812b23e6..0000000000 --- a/demos/tutorial/data/demo/meta.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": { - "zh": "图库", - "en": "Gallery" - }, - "demos": [ - { - "filename": "line.js", - "title": "线图层", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/demos/tutorial/data/index.en.md b/demos/tutorial/data/index.en.md deleted file mode 100644 index 64087c814e..0000000000 --- a/demos/tutorial/data/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Data -order: 1 ---- diff --git a/demos/tutorial/data/index.zh.md b/demos/tutorial/data/index.zh.md deleted file mode 100644 index 4ed5924b03..0000000000 --- a/demos/tutorial/data/index.zh.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 数据 -order: 1 ---- diff --git a/demos/tutorial/map/demo/amap.js b/demos/tutorial/map/demo/amap.js deleted file mode 100644 index fd49089062..0000000000 --- a/demos/tutorial/map/demo/amap.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'dark', - center: [121.40, 31.258134], - zoom: 5, -}); diff --git a/demos/tutorial/map/demo/mapbox.js b/demos/tutorial/map/demo/mapbox.js deleted file mode 100644 index ec57775e93..0000000000 --- a/demos/tutorial/map/demo/mapbox.js +++ /dev/null @@ -1,10 +0,0 @@ -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'light', - center: [ -97.119140625, 38.75408327579141], - zoom: 2, -}); - diff --git a/demos/tutorial/map/demo/meta.json b/demos/tutorial/map/demo/meta.json deleted file mode 100644 index 31bfd25527..0000000000 --- a/demos/tutorial/map/demo/meta.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "title": { - "zh": "地图", - "en": "Category" - }, - "demos": [ - { - "filename": "amap.js", - "title": "高德底图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "mapbox.js", - "title": "MapBox底图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/demos/tutorial/map/index.en.md b/demos/tutorial/map/index.en.md deleted file mode 100644 index 860c4ca494..0000000000 --- a/demos/tutorial/map/index.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: map -order: 0 ---- -初始 L7 地图实例 - diff --git a/demos/tutorial/map/index.zh.md b/demos/tutorial/map/index.zh.md deleted file mode 100644 index 4fc3d4f1a5..0000000000 --- a/demos/tutorial/map/index.zh.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: 地图 -order: 0 -redirect_from: - - /zh/tutorial ---- -初始 L7 地图实例 - - diff --git a/dev-docs/ConfigSchemaValidation.md b/dev-docs/ConfigSchemaValidation.md deleted file mode 100644 index e8736469b8..0000000000 --- a/dev-docs/ConfigSchemaValidation.md +++ /dev/null @@ -1,68 +0,0 @@ -# ConfigSchemaValidation 设计 - -用户在使用 L7 的 Scene/Layer API 时,由于参数配置项众多难免会误传。需要在运行时通过校验提前发现并给出友好的提示。 -另外由于 L7 允许用户自定义 Layer 与 LayerPlugin,规范化参数配置项也能提升易用性和质量。 - -这方面 Webpack 做的很好,使用 [schema-utils](https://github.com/webpack/schema-utils) 基于 JSON Schema 对 Plugin 和 Loader 进行校验。如果传入了错误的配置项,会给出友好的提示: -``` -Invalid configuration object. MyPlugin has been initialised using a configuration object that does not match the API schema. - - configuration.optionName should be a integer. -``` - -和 Webpack 一样,我们也选择 [ajv](https://github.com/epoberezkin/ajv) 作为 JSON Schema 校验器。 -目前我们只在 Layer 初始阶段进行校验,一旦校验失败会中断后续初始化插件的处理,并在控制台给出校验失败信息。后续需要在属性更新时同样进行校验。 - -## Layer 基类配置项 Schema - -目前在基类中我们声明了如下属性及其对应的校验规则: - -```javascript -export default { - properties: { - // 开启拾取 - enablePicking: { - type: 'boolean', - }, - // 开启高亮 - enableHighlight: { - type: 'boolean', - }, - // 高亮颜色:例如 [0, 0, 1, 1] 或者 '#ffffff' - highlightColor: { - oneOf: [ - { - type: 'array', - items: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - { - type: 'string', - }, - ], - }, - }, -}; -``` - -如果传入了错误的配置项则会在控制台给出提示。 - -## Layer 子类配置项 Schema - -Layer 子类可以通过重载 `getConfigSchema()` 方法定义自身的特有属性。例如 `PolygonLayer` 需要定义透明度: - -```javascript -protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; -} -``` diff --git a/dev-docs/MultiPassRenderer.md b/dev-docs/MultiPassRenderer.md deleted file mode 100644 index 533f3a0fd0..0000000000 --- a/dev-docs/MultiPassRenderer.md +++ /dev/null @@ -1,167 +0,0 @@ -# MultiPassRenderer 实现 - -每个 Layer 渲染时都需要经历多个流程,从最简单的清屏、拾取到各种各样的后处理。我们希望把复杂渲染流程中每个步骤都抽象出来,让 L7 内部以及用户能够方便的扩展,进行渲染流程的自定义。其中的每一个步骤称作 Pass,负责串联调用各个 Pass 的渲染器称作 MultiPassRenderer。 - -![](./screenshots/blurpass.png) - -## 接口设计 - -目前我们将 Pass 分成两类: - 1. 渲染相关。例如 ClearPass、RenderPass、PickingPass、ShadowPass - 2. 后处理相关。例如 CopyPass、BlurPass - -```typescript -export enum PassType { - Normal = 'normal', - PostProcessing = 'post-processing', -} -``` - -每个 Pass 定义两个生命周期节点,初始化和渲染,并将当前 Layer 作为参数传入。因此 Pass 中可以访问 Layer 上的属性及方法: -```typescript -export interface IPass { - getType(): PassType; - init(layer: ILayer): void; - render(layer: ILayer): void; -} -``` - -其中后处理相关的 Pass 比较特殊,例如最后一个 PostProcessingPass 需要自动切换 renderTarget 为屏幕: -```typescript -export interface IPostProcessingPass extends IPass { - setRenderToScreen(renderToScreen: boolean): void; - isEnabled(): boolean; - setEnabled(enabled: boolean): void; -} -``` - -具体实现依赖 `@l7/renderer` 实现,目前使用 regl 实现 IFramebuffer 等接口。 - -## 内置 Pass - -目前我们仅对外开放 PostProcessing 后处理相关 Pass 的配置。在 L7 内部我们使用如下流程: -``` -ClearPass -> RenderPass -> [ ...其他后处理 Pass ] -> CopyPass -``` - -目前各内置 Pass 说明如下: - -| Pass 名称 | 类型 | 参数 | 说明 | -| -------- | --- | ------------- | --------- | -| ClearPass | normal | 无 | 清除 framebuffer,clearColor 为 [0, 0, 0, 0] | -| RenderPass | normal | 无 | 渲染到 framebuffer,作为后续后处理的输入 | -| PickingPass | normal | 无 | 负责拾取,[详见](./PixelPickingEngine.md) | -| TAAPass | normal | 无 | [详见](./TAA.md) | -| CopyPass | post-processing | 无 | 作为后处理最后一个 Pass,负责拷贝 framebuffer 到屏幕输出 | - -剩余后处理效果见最后一节。 -后续待实现 Pass 如下: - -- [ ] ShadowPass 负责生成 shadowMap,供 PCF、CSM 等实时阴影技术使用 - -## 使用方法 - -在每个 Layer 中,通过 `enableMultiPassRenderer` 开启之后,可以配置各个 Pass 的参数。配置方法类似 babel 插件: -```typescript -const layer = new PolygonLayer({ - enableMultiPassRenderer: true, - passes: [ - 'blurH', // 使用 BlurHPass - [ - 'blurV', // 使用 BlurVPass - { - blurRadius: 20, // 设置模糊半径 - }, - ], - ], -}); -``` - -## 内置后处理效果 - -参考了 [glfx](https://github.com/evanw/glfx.js) 中的一些常用图像处理效果。可以按照名称引用,顺序决定了各个效果的应用次序。例如我们想依次应用噪声和模糊效果: - -```typescript -const layer = new PolygonLayer({ - passes: [ - [ - 'noise', // 使用 NoisePass - { - amount: 0.5, - }, - ] - 'blurH', // 使用 BlurHPass - 'blurV', // 使用 BlurVPass - ], -}); -``` - -下面详细介绍各个后处理效果及其参数,在 DEMO 中也可以通过 GUI 任意调节参数。 - -### 高斯模糊 - -采用 [高斯模糊 blur9](https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl)。 - -名称:`blurH/blurV` - -参数: -* `blurRadius` 水平/垂直方向模糊半径,默认值为 `8.0` - -效果如下: - -![](./screenshots/blurpass.png) - -### ColorHalftone - -CMYK halftone 效果 - -名称:`colorHalftone` - -参数: -* `angle` pattern 旋转角度,默认值为 0 -* `size` pattern 大小,默认值为 8 -* `center` `[x, y]` pattern 的中心,默认值为 `[0, 0]` - -效果如下: - -![](./screenshots/halftone.png) - -### 噪声 - -噪声效果。 - -名称:`noise` - -参数: -* `amount` 噪声程度,范围 `[0, 1]`,默认值为 `0.5` - -效果如下: - -![](./screenshots/noise.png) - -### 六边形像素化处理 - -六边形像素化处理。 - -名称:`hexagonalPixelate` - -参数: -* `scale` 六边形大小,默认值为 `10` -* `center` `[x, y]` pattern 的中心,默认值为 `[0.5, 0.5]` - -效果如下: - -![](./screenshots/hexagonalPixelate.png) - -### Sepia - -Sepia 颜色映射。 - -名称:`sepia` - -参数: -* `amount` 程度,范围 `[0, 1]`,默认值为 `0.5` - -效果如下: - -![](./screenshots/sepia.png) \ No newline at end of file diff --git a/dev-docs/PixelPickingEngine.md b/dev-docs/PixelPickingEngine.md deleted file mode 100644 index 7a99ec6433..0000000000 --- a/dev-docs/PixelPickingEngine.md +++ /dev/null @@ -1,151 +0,0 @@ -# PixelPickingEngine 设计 - -在地图交互中,除了地图底图本身提供的平移、旋转、缩放、flyTo 等相机动作,最常用的就是信息要素的拾取以及后续的高亮了。 - -3D 引擎常用的拾取技术通常有两种:RayPicking 和 PixelPicking。前者从鼠标点击处沿着投影方向发射一根射线,通过包围盒碰撞检测获取到接触到的第一个对象,后续就可以进行选中对象的高亮甚至是跟随移动了,以上运算均在 CPU 侧完成。 -但是在 L7 的场景中,海量数据在同一个 Geometry 中,无法计算每个要素的包围盒,因此在 GPU 侧完成的 PixelPicking 更加适合。 - -作为拾取引擎 PixelPickingEngine,除了实现内置基本的拾取 Pass,最重要的是提供友好易用的 API,覆盖以下常见场景: -* 基本的拾取场景,用户只需要开启 Layer 拾取功能并设置高亮颜色即可。 -* 拾取后展示特定 UI 组件的场景,用户需要监听事件,在回调中使用上述拾取对象完成组件展示。 -* 更灵活的联动场景,用户可以不依赖 L7 内置的事件监听机制,直接拾取并高亮指定点/区域包含的要素。 - -本文会依次介绍: -* PixelPicking 原理 -* 使用方法 - * 拾取对象结构 - * 拾取 API 的使用方法 - * 开启/关闭拾取 - * 设置高亮颜色 - * 展示自定义 UI 组件 - * 在自定义 Layer 中使用 - -## PixelPicking 原理 - -在执行时机方面,基于 [MultiPassRenderer](./MultiPassRenderer.md) 的设计,拾取发生在实际渲染之前: -``` -ClearPass -> PixelPickingPass -> RenderPass -> [ ...其他后处理 Pass ] -> CopyPass -``` - -PixelPickingPass 分解步骤如下: -1. `ENCODE` 阶段。逐要素编码(idx -> color),传入 attributes 渲染 Layer 到纹理。 -2. 获取鼠标在视口中的位置。由于目前 L7 与地图结合的方案为双 Canvas 而非共享 WebGL Context,事件监听注册在地图底图上。 -3. 读取纹理在指定位置的颜色,进行解码(color -> idx),查找对应要素,作为 Layer `onHover/onClick` 回调参数传入。 -4. `HIGHLIGHT` 阶段(可选)。将待高亮要素对应的颜色传入 Vertex Shader 用于每个 Vertex 判断自身是否被选中,如果被选中,在 Fragment Shader 中将高亮颜色与计算颜色混合。 - -## 使用方法 - -### 拾取对象结构定义 - -拾取对象结构定义如下: - -| 参数名 | 类型 | 说明 | -| -------- | --- | ------------- | -| x | `number` | 鼠标位置在视口空间 x 坐标,取值范围 `[0, viewportWidth]` | -| y | `number` | 鼠标位置在视口空间 y 坐标,取值范围 `[0, viewportHeight]` | -| lnglat | `{ lng: number; lat: number; }` | 鼠标位置经纬度坐标 | -| feature | `object` | GeoJSON feature 属性 | - -### API - -对于基本的拾取场景,用户只需要开启 Layer 拾取功能并设置高亮颜色即可。 -而对于拾取后展示特定 UI 组件的场景,用户需要监听事件,在回调中使用上述拾取对象完成组件展示。 -最后,对于更灵活的联动场景,用户可以不依赖 L7 内置的事件监听机制,直接拾取并高亮指定点/区域包含的要素。 - -#### 禁用/开启拾取 - -并不是所有 Layer 都需要拾取(例如文本渲染 Layer),通过 `enablePicking` 关闭可以跳过该阶段,减少不必要的渲染开销: -```typescript -const layer = new PolygonLayer({ - enablePicking: false, // 关闭拾取 -}); -``` - -⚠️L7 默认开启拾取。 - -#### 设置高亮颜色 - -如果一个 Layer 开启了拾取,我们可以通过 `highlightColor` 设置高亮颜色: -```typescript -const layer = new PolygonLayer({ - enablePicking: true, // 开启拾取 - enableHighlight: true, // 开启高亮 - highlightColor: [0, 0, 1, 1], // 设置高亮颜色为蓝色 -}); -``` - -#### 展示自定义 UI 组件 - -监听 Layer 上的 `hover/mousemove` 事件就可以得到拾取对象,然后通过对象中包含的位置以及原始数据信息,就可以使用 L7 内置或者自定义 UI 组件展示: -```typescript -layer.on('hover', ({ x, y, lnglat, feature }) => { - // 展示 UI 组件 -}); -layer.on('mousemove', ({ x, y, lnglat, feature }) => { - // 同上 -}); -``` - -除了基于事件监听,还可以通过 Layer 的构造函数传入 `onHover` 回调,在后续 Layer 对应的 react 组件中也可以以这种方式使用: -```typescript -const layer = new PolygonLayer({ - enablePicking: true, - onHover: ({ x, y, lnglat, feature }) => { - // 展示 UI 组件 - }, -}); -``` - -#### 直接调用拾取引擎方法 - -除了默认在地图上交互完成拾取,在与其他系统进行联动时,脱离了地图交互,仍需要具备拾取指定点/区域内包含要素的能力。 -```typescript -anotherSystem.on('hover', ({ x, y }) => { - layer.pick({ - x, - y, - }); -}); -``` - -⚠️目前只支持拾取视口中一个点所在的要素,未来可以实现拾取指定区域内的全部要素。 - -### 自定义 Layer 中的拾取 - -用户实现自定义 Layer 时,必然需要实现 Vertex/Fragment Shader。如果也想使用拾取功能,就需要在 Shader 中引入拾取模块,方法如下。 - -在 Vertex Shader 中引入 `picking` 模块。关于 L7 Shader 的模块化设计,[详见]()。 -```glsl -// mylayer.vert.glsl - -#pragma include "picking" - -void main() { - setPickingColor(customPickingColors); -} -``` - -在 Fragment Shader 中 -```glsl -// mylayer.frag.glsl - -#pragma include "picking" - -void main() { - // 必须在末尾,保证后续不会再对 gl_FragColor 进行修改 - gl_FragColor = filterPickingColor(gl_FragColor); -} -``` - -其中涉及 `picking` 模块方法说明如下: - -| 方法名 | 应用 shader | 说明 | -| -------- | --- | ------------- | -| `setPickingColor` | `vertex` | 比较自身颜色编码与高亮颜色,判断是否被选中,传递结果给 fragment | -| `filterPickingColor` | `fragment` | 当前 fragment 被选中则使用高亮颜色混合,否则直接输出原始计算结果 | - -## 参考资料 - -* [Deck.gl 交互文档](https://deck.gl/#/documentation/developer-guide/adding-interactivity) -* [Deck.gl Picking 实现](https://deck.gl/#/documentation/developer-guide/writing-custom-layers/picking) -* 「Interactive.Computer.Graphics.Top.Down.Approach - 3.9 Picking」 \ No newline at end of file diff --git a/dev-docs/TAA.md b/dev-docs/TAA.md deleted file mode 100644 index d0ceb98bd5..0000000000 --- a/dev-docs/TAA.md +++ /dev/null @@ -1,118 +0,0 @@ -# 在地理场景中应用 TAA - -## 问题背景 - -关于走样产生的原因以及常用的反走样手段,可以参考「知乎 - 反走样技术(一):几何反走样」[🔗](https://zhuanlan.zhihu.com/p/28800047)。 -我之前也简单总结了下 SSAA、MLAA/SMAA、FXAA 等反走样技术的实现细节。 - -其中 MSAA 作为浏览器内置实现,开发者使用起来很简单: - -> 相对于着色走样,人眼对几何走样更敏感。MSAA 的原理很简单,它仍然把一个像素划分为若干个子采样点,但是相较于 SSAA,每个子采样点的颜色值完全依赖于对应像素的颜色值进行简单的复制(该子采样点位于当前像素光栅化结果的覆盖范围内),不进行单独计算。此外它的做法和 SSAA 相同。由于 MSAA 拥有硬件支持,相对开销比较小,又能很好地解决几何走样问题,在游戏中应用非常广泛(我们在游戏画质选项中常看到的 4x/8x/16x 抗锯齿一般说的就是 MSAA 的子采样点数量分别为4/8/16个)。 - -下图为 4x MSAA 采样点示意: - -![](./screenshots/MSAA.png) - -在 Mapbox 中左图未开启 MSAA 而右图选择开启,观察立方体边缘可以发现明显的几何走样:相关 [ISSUE](https://github.com/mapbox/mapbox-gl-js/pull/8474)。 -![](./screenshots/mapbox-MSAA.png) - -但是 MSAA 存在一些限制: -* WebGL1 不支持对 FBO 进行,因此开启 post-processing 后处理时 MSAA 就失效了。当然 WebGL2 支持 🔗。 -* 即使开启,浏览器在某些情况下也不保证应用 🔗。 - -因此在需要后处理的场景中(例如 L7 的热力图需要 blur pass、PBR 中的 SSAO 环境光遮蔽),只能采用其他反走样手段。 - -## TAA(Temporal Anti-Aliasing) 原理 - -来自「知乎 - Experimentalize TAA with no code」🔗: - -> 严格来说 TAA 并不能算一个具体的算法,而是更像一个统一的算法框架。和 SSAA 一样,TAA 也能够同时减轻几何走样和着色走样的问题。 - -关于 TAA 的原理,「GDC - Temporal Reprojection -Anti-Aliasing in INSIDE」[🔗](http://twvideo01.ubm-us.net/o1/vault/gdc2016/Presentations/Pedersen_LasseJonFuglsang_TemporalReprojectionAntiAliasing.pdf) 讲的十分清晰。如果相机和物体的相对位置在当前帧之前发生过变化,那么当前帧就可以以若干前序帧进行修正。 - -![](./screenshots/taa-1.png) - -但如果在前序帧中相机和物体都没有发生过变化,那对于当前帧就无从修正了。因此可以对视锥进行抖动,在渲染每一帧之前,使用抖动矩阵对投影矩阵进行偏移,最终实现视锥的偏移: - -![](./screenshots/taa-step1.png) - -然后在 FS 中,最关键的就是 reproject 这一步: - -![](./screenshots/taa-step2.png) - -对于静止场景,「Three.js - TAA example」[🔗](https://threejs.org/examples/#webgl_postprocessing_taa)、「ECharts.GL - temporalSuperSampling」[🔗](https://echarts.apache.org/zh/option-gl.html#globe.temporalSuperSampling) 都采用了这种方法。 - -## 实现方法 - -由于需要对投影矩阵进行抖动,我们需要选取低差异序列。 -来自「知乎 - 低差异序列(一)- 常见序列的定义及性质」🔗,右图明显比左图纯随机生成覆盖面广: - -![](./screenshots/halton.png) - -参考 Echarts.GL,我们选择 `Halton(2,3)` 低差异序列: -```typescript -const offset = this.haltonSequence[this.frame % this.haltonSequence.length]; -this.cameraService.jitterProjectionMatrix( - ((offset[0] * 2.0 - 1.0) / width) * jitterScale, - ((offset[1] * 2.0 - 1.0) / height) * jitterScale, -); -``` - -在每一帧都会尝试进行累加。如果在连续运动过程中,TAA 的累加过程必然来不及完成,此时只需要输出当前帧原始结果即可,随后尝试继续轮询累加是否完成。因此在累加完成之前,都会输出当前帧未经 TAA 的结果。 - -最后我们需要进行加权平均,历史帧的权重应当越来越小: - -![](./screenshots/taa-step3.png) - -这里我们选择当前帧权重为 0.9,历史帧为 0.1: - -```typescript -useFramebuffer(this.outputRenderTarget, () => { - this.blendModel.draw({ - uniforms: { - u_opacity: layerStyleOptions.opacity || 1, - u_MixRatio: this.frame === 0 ? 1 : 0.9, - u_Diffuse1: this.sampleRenderTarget, - u_Diffuse2: - this.frame === 0 - ? layer.multiPassRenderer.getPostProcessor().getReadFBO() - : this.prevRenderTarget, - }, - }); -}); -``` - -最后我们将最终的混合结果“拷贝”给后处理模块,实现渐进增强的效果: - -```typescript -useFramebuffer( - layer.multiPassRenderer.getPostProcessor().getReadFBO(), - () => { - this.copyModel.draw({ - uniforms: { - u_Texture: this.copyRenderTarget, - }, - }); - }, -); -// 调用后处理模块应用后续效果 -layer.multiPassRenderer.getPostProcessor().render(layer); -``` - -## 最终效果 - -为了更直观地看到效果,在 DEMO 中我们可以调节相机抖动范围: - -![](./screenshots/taa-result.gif) - -## 参考资料 - -* 「知乎 - 反走样技术(一):几何反走样」[🔗](https://zhuanlan.zhihu.com/p/28800047) -* 「知乎 - Experimentalize TAA with no code」[🔗](https://zhuanlan.zhihu.com/p/41642855) -* 「ECharts.GL - temporalSuperSampling」[🔗](https://echarts.apache.org/zh/option-gl.html#globe.temporalSuperSampling) -* 「Mapbox - set custom layers and extrusion examples to use antialias: true」[🔗](https://github.com/mapbox/mapbox-gl-js/pull/8474) -* 「Three.js - TAA example」[🔗](https://threejs.org/examples/#webgl_postprocessing_taa) -* 「Paper - Amortized Supersampling」[🔗](http://hhoppe.com/supersample.pdf) -* 「GDC - Temporal Reprojection Anti-Aliasing in INSIDE」[🔗](http://twvideo01.ubm-us.net/o1/vault/gdc2016/Presentations/Pedersen_LasseJonFuglsang_TemporalReprojectionAntiAliasing.pdf) -* 「知乎 - 低差异序列(一)- 常见序列的定义及性质」[🔗](https://zhuanlan.zhihu.com/p/20197323) diff --git a/dev-docs/screenshots/MSAA.png b/dev-docs/screenshots/MSAA.png deleted file mode 100644 index 205a8f2f61..0000000000 Binary files a/dev-docs/screenshots/MSAA.png and /dev/null differ diff --git a/dev-docs/screenshots/blurpass.png b/dev-docs/screenshots/blurpass.png deleted file mode 100644 index 931b96457e..0000000000 Binary files a/dev-docs/screenshots/blurpass.png and /dev/null differ diff --git a/dev-docs/screenshots/halftone.png b/dev-docs/screenshots/halftone.png deleted file mode 100644 index 0b981617a6..0000000000 Binary files a/dev-docs/screenshots/halftone.png and /dev/null differ diff --git a/dev-docs/screenshots/halton.png b/dev-docs/screenshots/halton.png deleted file mode 100644 index 7f8ff63842..0000000000 Binary files a/dev-docs/screenshots/halton.png and /dev/null differ diff --git a/dev-docs/screenshots/hexagonalPixelate.png b/dev-docs/screenshots/hexagonalPixelate.png deleted file mode 100644 index 7a8fd1ce44..0000000000 Binary files a/dev-docs/screenshots/hexagonalPixelate.png and /dev/null differ diff --git a/dev-docs/screenshots/jest.png b/dev-docs/screenshots/jest.png deleted file mode 100644 index 247e12fb69..0000000000 Binary files a/dev-docs/screenshots/jest.png and /dev/null differ diff --git a/dev-docs/screenshots/mapbox-MSAA.png b/dev-docs/screenshots/mapbox-MSAA.png deleted file mode 100644 index 8e79cc088b..0000000000 Binary files a/dev-docs/screenshots/mapbox-MSAA.png and /dev/null differ diff --git a/dev-docs/screenshots/monorep.png b/dev-docs/screenshots/monorep.png deleted file mode 100644 index 99b56ba339..0000000000 Binary files a/dev-docs/screenshots/monorep.png and /dev/null differ diff --git a/dev-docs/screenshots/noise.png b/dev-docs/screenshots/noise.png deleted file mode 100644 index fb2145ca1e..0000000000 Binary files a/dev-docs/screenshots/noise.png and /dev/null differ diff --git a/dev-docs/screenshots/sepia.png b/dev-docs/screenshots/sepia.png deleted file mode 100644 index 8a3fc791a4..0000000000 Binary files a/dev-docs/screenshots/sepia.png and /dev/null differ diff --git a/dev-docs/screenshots/taa-1.png b/dev-docs/screenshots/taa-1.png deleted file mode 100644 index 4ce4460bc9..0000000000 Binary files a/dev-docs/screenshots/taa-1.png and /dev/null differ diff --git a/dev-docs/screenshots/taa-result.gif b/dev-docs/screenshots/taa-result.gif deleted file mode 100644 index 5beff2810b..0000000000 Binary files a/dev-docs/screenshots/taa-result.gif and /dev/null differ diff --git a/dev-docs/screenshots/taa-step1.png b/dev-docs/screenshots/taa-step1.png deleted file mode 100644 index 0ae395bc6b..0000000000 Binary files a/dev-docs/screenshots/taa-step1.png and /dev/null differ diff --git a/dev-docs/screenshots/taa-step2.png b/dev-docs/screenshots/taa-step2.png deleted file mode 100644 index 00d585ac91..0000000000 Binary files a/dev-docs/screenshots/taa-step2.png and /dev/null differ diff --git a/dev-docs/screenshots/taa-step3.png b/dev-docs/screenshots/taa-step3.png deleted file mode 100644 index 781a7f0164..0000000000 Binary files a/dev-docs/screenshots/taa-step3.png and /dev/null differ diff --git "a/dev-docs/\344\275\277\347\224\250\346\226\271\346\263\225.md" "b/dev-docs/\344\275\277\347\224\250\346\226\271\346\263\225.md" deleted file mode 100644 index 912ac3639b..0000000000 --- "a/dev-docs/\344\275\277\347\224\250\346\226\271\346\263\225.md" +++ /dev/null @@ -1,230 +0,0 @@ -# 使用方法 - -L7 提供三种使用方式:CDN、Submodule 以及 React 组件。 - -## 通过 CDN 使用 - -首先在 `` 中引入 L7 CDN 版本的 JS 和 CSS 文件: -```html - - - - -``` - -如果使用 Mapbox,还需要额外引入 Mapbox 的 JS 和 CSS 文件,这一步可以参考 [Mapbox 文档](https://docs.mapbox.com/mapbox-gl-js/overview/#quickstart): -```html - - - - - -``` -⚠️高德采用异步加载,因此不需要引入任何额外静态文件。 - -然后在 `` 中定义一个容器并设置一个 `id`。通过全局 `L7` 这个命名空间可以获取场景 `L7.Scene` 和图层 `L7.PolygonLayer`: -```html - -
- - -``` - -⚠️需要获取高德或者 Mapbox 的使用 token 并传入 `L7.Scene` 的构造函数,获取方式如下: -* 高德地图开发者 Key [申请方法](https://lbs.amap.com/dev/key/) -* [Mapbox Access Tokens](https://docs.mapbox.com/help/how-mapbox-works/access-tokens/#creating-and-managing-access-tokens) - -## 通过 Submodule 使用 - -首先通过 `npm/yarn` 安装 `@l7/scene` 和 `@l7/layers`: -```bash -npm install --save @l7/scene @l7/layers -// or -yarn add @l7/scene @l7/layers -``` - -然后就可以使用其中包含的场景和各类图层: -```typescript -import { Scene } from '@l7/scene'; -import { PolygonLayer } from '@l7/layers'; - -(async function() { - // 获取数据 - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - - // 创建场景 - const scene = new Scene({ - center: [110.19382669582967, 50.258134], - id: 'map', - pitch: 0, - style: 'dark', - type: 'amap', - zoom: 3, - token: 'pg.xxx', // 高德或者 Mapbox 的 token - }); - - // 创建图层 - const layer = new PolygonLayer({}); - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - // 添加图层到场景中 - scene.addLayer(layer); - - // 渲染场景 - scene.render(); -})(); -``` - -最后在 `` 中引入 L7 CDN 版本的 CSS 文件: -```html - - - -``` - -L7 目前的文档都通过这种方式使用,可以参考项目中的 stories: -* [高德地图](https://github.com/antvis/L7/blob/next/stories/MapAdaptor/components/AMap.tsx) -* [Mapbox](https://github.com/antvis/L7/blob/next/stories/MapAdaptor/components/Mapbox.tsx) - - -## [WIP] React - -React 组件待开发,目前可以暂时以 Submodule 方式使用: -```tsx -import { Scene } from '@l7/scene'; -import { PolygonLayer } from '@l7/layers'; -import * as React from 'react'; - -export default class AMap extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - center: [110.19382669582967, 50.258134], - id: 'map', - pitch: 0, - style: 'dark', - type: 'amap', - zoom: 3, - token: 'pg.xxx', // 高德或者 Mapbox 的 token - }); - const layer = new PolygonLayer({}); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - scene.addLayer(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} -``` - -⚠️组件 Unmount 时需要通过 `scene.destroy()` 手动销毁场景。 diff --git "a/dev-docs/\346\236\204\345\273\272\346\226\271\346\241\210.md" "b/dev-docs/\346\236\204\345\273\272\346\226\271\346\241\210.md" deleted file mode 100644 index 6de98446e3..0000000000 --- "a/dev-docs/\346\236\204\345\273\272\346\226\271\346\241\210.md" +++ /dev/null @@ -1,326 +0,0 @@ -# 构建方案 - -考虑到 L7 提供的三种[使用方法](./使用方法.md):CDN、Submodule 和 React 组件,我们需要提供对应的构建方案。 - -由于 React 组件待开发,下面我们将从方案技术细节、优化手段两方面介绍 CDN 和 Submodule 的构建方案。 - -## CDN - -考虑到后续将引入 WebWorker 特性,目前 Webpack4 暂时还不支持多种 target(web + webworker)混合的输出模式,相关 [ISSUE](https://github.com/webpack/webpack/issues/6525)。 -如果后续支持,配合 SplitChunksPlugin 应该能解决在 Worker 和不同 entry 之间共享代码的问题。 - -因此目前和 Mapbox 做法一样,我们使用 Rollup 构建 CDN Bundler。 - -打包命令如下,会在 `dist/` 下输出产物: -```bash -yarn bundle -``` - -### UMD - -以 L7 为命名空间,让用户可以通过类似 `L7.Scene` 的方式使用。同时以 UMD 为构建目标: -```javascript -{ - input: resolveFile('build/bundle.ts'), - output: { - file: resolveFile('dist/bundle.js'), - format: 'umd', - name: 'L7', - }, -} -``` - -目前只需要暴露场景以及图层相关的 API,因此 Bundler 非常简单: -```typescript -// build/bundle.ts -export * from '@l7/scene'; -export * from '@l7/layers'; -``` - -### Alias - -为了帮助 resolver 定位 lerna packages,需要重命名类似 `@l7/scene` 这样的依赖路径: -```javascript -import alias from '@rollup/plugin-alias'; - -plugins: [ - alias( - { - resolve: ['.tsx', '.ts'], - entries: [ - { - find: /^@l7\/(.*)/, - replacement: resolveFile('packages/$1/src'), - }, - ] - }, - ), -] -``` - -配合 [`terser`](https://github.com/TrySound/rollup-plugin-terser) 压缩后,我们就能得到可运行的 CDN 版本了,但从减少构建产物大小出发还有很多优化可以做。 - -### 减少包大小 - -除了 Rollup 提供的 TreeShaking,我们主要从三个方面考虑: -* 减少第三方依赖大小尤其是 Lodash -* external Mapbox 依赖 -* 压缩 GLSL 代码 - * 去除多余空格、换行符和注释 - * 内联 WebGL 常量 - * 预计算 define 变量 - -#### Lodash 按需引用 - -通过 analysis 插件可以看到第三方依赖大小占比: -``` -/node_modules/lodash/lodash.js -███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 23.79 % (540.328 KB) -/node_modules/regl/dist/regl.js -██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 12.21 % (277.403 KB) -/node_modules/hammerjs/hammer.js -█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3.25 % (73.847 KB) -/node_modules/uri-js/dist/es5/uri.all.js -█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2.28 % (51.721 KB) -``` - -仔细查看 Lodash 的引用情况: -``` -███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ -file: /node_modules/lodash/lodash.js -bundle space: 23.79 % -rendered size: 540.328 KB -original size: 540.51 KB -code reduction: 0.03 % -dependents: 13 - - /packages/core/src/services/layer/StyleAttribute.ts - - /packages/core/src/services/shader/ShaderModuleService.ts - - /packages/core/src/services/renderer/passes/post-processing/BlurHPass.ts -``` - -按需引用 Lodash 常见的做法有几种: -* [loash-es](https://github.com/lodash/lodash/tree/es) -* babel-plugin-lodash -* lodash-webpack-plugin - -由于我们使用 Rollup 以及 `rollup-plugin-babel`,[babel-plugin-lodash](https://github.com/lodash/babel-plugin-lodash) 可以很好地解决这个问题。该插件的[原理](https://github.com/rollup/rollup/issues/610#issuecomment-270801483)其实也是引用 `lodash-es`: -```javascript -// this... -import { template } from 'lodash-es'; - -// ...basically becomes this: -import template from 'lodash-es/template.js'; -``` - -最终的效果还是很明显的: -``` -/node_modules/regl/dist/regl.js -████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 16.55 % (277.403 KB) -/node_modules/hammerjs/hammer.js -██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 4.41 % (73.847 KB) -/node_modules/uri-js/dist/es5/uri.all.js -█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3.09 % (51.721 KB) -/node_modules/lodash.mergewith/index.js -█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3.06 % (51.256 KB) -``` - -#### 剔除 Mapbox - -不同于高德异步加载的方式,Mapbox 用户需要手动引入 Mapbox 的 JS 和 CSS,因此 L7 CDN 版本就需要剔除了。通过 `globals` 假定用户负责引入 Mapbox 的 CDN 版本: -```javascript -{ - output: { - globals: { - 'mapbox-gl': 'mapboxgl', - }, - }, - external: [ - 'mapbox-gl', - ], -} -``` - -这样 L7 Bundler 中就不包含 Mapbox 的 Module Bundler(mapbox-gl) 了。 - -#### 内联 WebGL 常量 - -在构建阶段可以将 WebGL 常量替换成对应的值,可以减少字符长度: -```javascript -// from -const max = gl.MAX_VERTEX_ATTRIBS; -// to -const max = 34921; -``` - -luma.gl 和 deck.gl 都使用了 [babel-plugin-inline-webgl-constants](https://www.npmjs.com/package/babel-plugin-inline-webgl-constants)。 - -来看一下实际效果,在压缩前就能减少字符长度: -```javascript -// 内联前 -const usageMap = { - [gl.STATIC_DRAW]: 'static', - [gl.DYNAMIC_DRAW]: 'dynamic', - [gl.STREAM_DRAW]: 'stream' -}; -// 内联后 -const usageMap = { - [35044]: 'static', - [35048]: 'dynamic', - [35040]: 'stream' -}; -``` - -#### 压缩 GLSL 代码 - -在开发编写 Shader 时,我们是不需要对 GLSL 代码进行压缩的,因为在 Shader 编译失败时能根据错误信息定位到具体行列。 - -但是在生产环境下,我们就需要把 GLSL 源代码中包含的**多余**的换行、空格以及注释去掉,减少最终引入字符串的大小。 - -这里需要注意的是并不是所有换行都可以简单去除,例如 `define` 语句末尾的换行一定要保留。 - -luma.gl 和 deck.gl 使用了 [babel-plugin-remove-glsl-comments](https://github.com/uber/luma.gl/tree/master/dev-modules/babel-plugin-remove-glsl-comments) 简单地移除注释,但很明显,多余的空格和换行符依然存在。 - -因此我们需要写一个简单的 Rollup 插件: -```javascript -export default function glsl(include, minify) { - const filter = createFilter(include); - return { - name: 'glsl', - transform(code, id) { - if (!filter(id)) return; - - if (minify) { - code = code - .trim() // strip whitespace at the start/end - .replace(/\n+/g, '\n') // collapse multi line breaks - // remove comments - .replace(INLINE_COMMENT_REGEX, '\n') - .replace(BLOCK_COMMENT_REGEX, '') - .replace(/\n\s+/g, '\n') // strip identation - } - - return { - code: `export default ${JSON.stringify(code)};`, - map: { mappings: '' } - }; - } - }; -} -``` - -#### GLSL minifier - -以上针对 GLSL 的压缩仅限于字符替换,更彻底的优化必然需要生成 GLSL 对应的 AST,从而进行变量重命名、死代码消除等等更高级的优化手段。[glsl-minifier](https://github.com/TimvanScherpenzeel/glsl-minifier) 就是这样一个 CLI 工具。 - -其中的预计算特性有点类似 [Prepack](https://github.com/facebook/prepack),在构建阶段就计算出 `define` 变量的值: -```glsl -#define SPREAD 8.00 -#define MAX_DIR_LIGHTS 0 -#define MAX_POINT_LIGHTS 0 -#define MAX_SPOT_LIGHTS 0 -#define MAX_HEMI_LIGHTS 0 -#define MAX_SHADOWS 0 -#define GAMMA_FACTOR 2 - -uniform mat4 viewMatrix; -uniform vec3 cameraPosition; - -uniform vec2 resolution; -uniform float time; -uniform sampler2D texture; - -void main() { - vec2 uv = gl_FragCoord.xy / resolution.xy; - - float v = texture2D( texture, uv ).x; - - if (v == 1000.) discard; - v = sqrt(v); - - gl_FragColor = vec4( vec3( 1. - v / SPREAD ), 1.0 ); -} -``` - -上述代码压缩结果如下,`define` 统统不见了,变量名也进行了改写: -```glsl -uniform highp vec2 resolution;uniform sampler2D texture;void main(){highp vec2 a;a=(gl_FragCoord.xy/resolution);lowp vec4 b;b=texture2D(texture,a);if((b.x==1000.0)){discard;}lowp vec4 c;c.w=1.0;c.xyz=vec3((1.0-(sqrt(b.x)/8.0)));gl_FragColor=c;} -``` - -当然 glsl-minifier 做的远不止这些,还会应用变量名改写、死代码消除等等优化手段: -> Optimisations include function inlining, dead code removal, copy propagation, constant folding, constant propagation, arithmetic optimizations and so on. Minifications includes variable rewriting and whitespace trimming. - -显然这种手段要求我们的 Shader 代码在构建时是稳定的,然而 L7 使用的 GLSL 模块化方案需要在运行时进行模块拼接,如果在构建时代码片段中包含的变量发生了改写,势必影响运行时的拼接结果。另外 minifier 会校验代码的正确性,不理解我们自定义的模块引入语句 `pragma include 'module'` 是一定会报错的。 - -以这样的 Shader 为例: -```glsl -#pragma include "project" - -void main() { - // 从 project 模块引入方法 - project(position); -} -``` - -执行压缩时会报错: -```bash -$ node_modules/.bin/glsl-minifier -i ./build/example.frag -o ./build/example.min.frag -Error: -(28,2): error: no function with name 'project' - -Exiting glsl-minifier! -``` - -因此要想使用这个终极压缩方案,需要修改 L7 目前的 GLSL 模块化方案,代码拼接不能在运行时而需要在构建时完成。但这样就很难兼顾扩展性,毕竟用户自定义图层的 Shader 代码肯定只有运行时才能拿到。 - -所以一个折中的办法是在构建时先对 L7 内置图层的 Shader 代码进行模块化处理,得到最终的 GLSL 文本,然后再 minify。同时保留运行时模块化拼接的能力,应对用户自定义图层。 - -## Submodule - -npm 和 yarn 只提供了例如 `npm link` 以及 `yarn link` 这样的功能,而 yarn workspaces 只提供了 monorep 需要的底层 link 功能。相比之下 lerna 提供了更高级的功能例如 publish 和 version。因此 yarn workspaces 和 lerna 完全可以组合使用,这也是例如 Jest 等大型项目的使用方式。 - -![](./screenshots/monorep.png) - -构建命令如下,会在各个 package 下生成 `/lib` 和 `/es` 两个文件夹分别包含 ES2015 和 ESModule 产物: -```bash -yarn build -``` - -### 编译 TS - -使用 TS 有两种构建方式: -* native TypeScript with tsc -* [@babel/preset-typescript](https://babeljs.io/docs/en/babel-preset-typescript) - -由于我们的项目中需要使用到一些 babel plugin(装饰器、引入 GLSL 等),因此后者显然是更好的选择。这里我们使用 babel 7 的项目全局配置 configFile。 - -为了合并 ES2015 与 ESModule,我们参考 [redux](https://babeljs.io/blog/2018/06/26/on-consuming-and-publishing-es2015+-packages#conflating-javascript-modules-and-es2015): -```json -// redux package.json -{ - "main": "lib/redux.js", // ES5 + Common JS - "module": "es/redux.js", // ES5 + JS Modules -} -``` - -开发模式加上 `--watch` 即可。 -* `--root-mode upward` 使用 root 下的 babel 配置文件 -* `--out-dir dist` 输出到 /dist 文件夹下 -* `--delete-dir-on-start` 每次构建前清空,因此不需要 `rimraf` -```json -"scripts": { - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments" -}, -``` - -### [WIP] 生成 TS 声明文件 - -和构建前类型检查不同,此时我们需要 tsc 输出类型声明文件了,当然不需要包含 story 和测试用例。 - -### [WIP] 异步加载 Mapbox - -以 L7 Bundler 方式使用时,由于需要在运行时根据用户配置项选择地图底图,会导致构建时需要将全部地图依赖引入,无法进行 TreeShaking。 -目前高德地图使用运行时异步加载方式引入,不会导致该问题,但 Mapbox 同样使用 Bundler,对于高德用户就多余了。 - -一个可能的方案是对于 Mapbox 使用 CodeSplitting。在容器首次获取 Mapbox 地图服务时异步加载并缓存。 \ No newline at end of file diff --git "a/dev-docs/\350\207\252\345\212\250\345\214\226\346\265\213\350\257\225\346\226\271\346\241\210.md" "b/dev-docs/\350\207\252\345\212\250\345\214\226\346\265\213\350\257\225\346\226\271\346\241\210.md" deleted file mode 100644 index 58fd2b55ab..0000000000 --- "a/dev-docs/\350\207\252\345\212\250\345\214\226\346\265\213\350\257\225\346\226\271\346\241\210.md" +++ /dev/null @@ -1,142 +0,0 @@ -# 自动化测试方案 - -如何测试一个 WebGL 应用渲染结果是否正确呢?常用的做法是进行像素比对,当然这也只能用于一些简单的判断例如渲染是否成功,整体的 Snapshot 比对开销很大。 - -但不管怎么说,这都意味着我们必须使用 WebGL API 进行真实的渲染。 - -以上过程在测试用例中描述如下: -```javascript -// 1. 绘制 -// 2. 读取像素 -const pixels = new Uint8Array(width * height * 4); -gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels); -// 3. 判断某个像素点是否符合预期 -``` - -在与测试框架结合时,常用的方案有: -* Electron 除了 WebGL API,DOM API 等其他浏览器实现对于 WebGL 测试都是多余的,在 CI 时需要安装的依赖过大,所需的启动时间也很长。 -* [node-webgl](https://github.com/mikeseven/node-webgl) 不同于 WebGL,可以直接调用 OpenGL 驱动,但同样包含了很多 WebGL 之外的特性。 - -这里我们选择 [headless-gl](https://github.com/stackgl/headless-gl),一个纯粹的 WebGL 1 规范的实现。并且能够很容易集成进现有的 [CI 流程](https://github.com/stackgl/headless-gl#how-can-i-use-headless-gl-with-a-continuous-integration-service)中,例如 [TravisCI](https://travis-ci.org/) 和 [AppVeyor](http://www.appveyor.com/)。 - -## 测试框架 - -在配置测试框架前,我们必须解决一个 WebGL 项目中常见的问题。 - -### 引入 GLSL 文件 - -如何在测试时正确引入 GLSL 文件是一个问题。目前各个 3D 引擎常用的做法有两种: - -* 以字符串形式直接写在 `.js` 文件中。`luma.gl/deck.gl` 使用[这种方式](https://github.com/uber/deck.gl/blob/7.1-release/modules/layers/src/arc-layer/arc-layer-fragment.glsl.js)。 -* 使用 `.glsl` 编写,测试前使用构建脚本自动生成对应的 `.js` 文件。`Three.js`、`clay.gl` 使用[这种方式](https://github.com/pissang/claygl/blob/master/build/glsl2js.js)。 - -前者的好处是测试流程无需做过多修改,坏处则是无法享受编辑器对于 GLSL 的语法高亮,影响开发体验。而后者又需要编写额外的 `glsl2js` 的转换脚本。 - -我们显然希望如后者一样直接写 GLSL,但最好能让测试框架帮助我们完成自动转换的工作。 - -之前我们选择 `@babel/preset-typescript` 而非官方 `tsc` 的一大原因就是可以使用 `babel` 丰富的插件,`babel-plugin-inline-import` 就能完成类似 webpack 中 `raw-loader` 的功能,直接以字符串形式引入 GLSL 代码: - -```javascript -// 以字符串形式引入 GLSL 代码 -import circleFrag from '../../shaders/circle_frag.glsl'; -``` - -这样测试框架只需要使用同一套 babel 项目全局配置就行了。我们使用 Jest: -```javascript -// jest.config.js -module.exports = { - transform: { - '^.+\\.(ts|tsx)$': 'babel-jest', - }, -} -``` - -下面就可以编写测试用例了。 - -## 测试用例编写 - -我们将测试用例分成三类: -* 内部服务的单元测试 -* 渲染服务结果的 Snapshot 快照测试 -* React 组件测试 - -将测试用例放在任意路径的 `__tests__` 文件夹下并以 `xxx.spec.ts` 命名就可以帮助框架发现并执行了。 - -使用 `yarn test` 运行所有测试用例: - -![](./screenshots/jest.png) - -### 单元测试 - -这类测试直接使用 Jest API 就好了,我们以 `@l7/core` 模块的 `ShaderModuleService` 为例,编写一个简单的测试用例: - -```typescript -// services/shader/__test__/shader.spec.ts -import 'reflect-metadata'; -import IShaderModuleService from '../IShaderModuleService'; -import ShaderModuleService from '../ShaderModuleService'; - -describe('ShaderService', () => { - let shaderService: IShaderModuleService; - - beforeEach(() => { - shaderService = new ShaderModuleService(); - }); - - it('should register common module correctly and generate fragment/vertex shader code', () => { - const rawShaderCode = ` - #define PI 3.14 - `; - - const commonModule = { - fs: rawShaderCode, - vs: rawShaderCode, - }; - shaderService.registerModule('common', commonModule); - - const { vs, fs } = shaderService.getModule('common'); - - expect(vs).toMatch(/3\.14/); - expect(fs).toMatch(/3\.14/); - }); -}); -``` - -### 渲染结果测试 - -得益于 L7 使用的基于 Inversify 的依赖注入方案,我们能够很轻易地将渲染服务替换为基于 headless-gl 的渲染服务。 - -具体到我们目前的渲染服务实现 `regl`,它能轻易做到这一点。事实上 regl 的[测试用例](https://github.com/regl-project/regl/blob/gh-pages/test/util/create-context.js#L28)也是这样使用的。 - - -### [WIP] React 组件测试 - -### Coverage Report - -我们使用 Coveralls.io: -```json -// package.json -"coveralls": "jest --coverage && cat ./tests/coverage/lcov.info | coveralls", -``` - -运行 `yarn coveralls` 可以查看代码覆盖率,我们为分支、行覆盖率等指标设置了阈值: - -```javascript -// jest.config.js -module.exports = { - coverageThreshold: { - global: { - branches: 80, - functions: 80, - lines: 80, - statements: 80, - }, - }, -}; -``` - -## TravisCI - -TravisCI 检测到 `yarn.lock` 就会默认安装 `yarn` 并使用它安装依赖,所以不需要[额外的配置](https://yarnpkg.com/en/docs/install-ci#travis-tab)。 - -TravisCI 配合之前的 Coveralls.io。 diff --git a/docs/API/L7.en.md b/docs/API/L7.en.md deleted file mode 100644 index c26a8f7e2e..0000000000 --- a/docs/API/L7.en.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Introduction -order: 0 -redirect_from: - - /en/docs/api ---- -#### An open source large-scale geospatial data visualization analysis development framework powered by WebGL - -L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析开发框架。L7 中的 L 代表 Location,7 代表世界七大洲,寓意能为全球位置数据提供可视分析的能力。L7 以图形符号学为理论基础,将抽象复杂的空间数据转化成 2D、3D 符号,通过颜色、大小、体积、纹理等视觉变量实现丰富的可视化表达。 - - - -## 核心特性 - - -🌏 数据驱动可视化展示 - -数据驱动,从数到形,支持丰富的地图可视化类型,更好洞察数据。 - -🌏 2D,3D 一体化的海量数据高性能渲染 - -百万级空间数据实时,动态渲染。 - -🌏 简单灵活的数据接入 - -支持CSV,JSON,geojson等数据格式接入,可以根据需求自定义数据格式,无需复杂的空间数据转换。 - - 🌏 多地图底图支持,支持离线内网部署 - -高德地图国内合法合规的地理底图,Mapbox 满足国际化业务需求。 - -## 支持丰富的图表类型 - -### 点图层 - - - 气泡图 - - 散点图 - - 符号地图 - - 3D柱状地图 - - 聚合地图 - - 复合图表地图 - - 自定义Marker - -### 线图层 - -- 路径地图 -- 弧线,支持2D弧线、3D弧线以及大圆航线 -- 等值线 - -### 面图层 - -- 填充图 -- 3D填充图 - -### 热力图 - -- 经典热力图 -- 蜂窝热力图 -- 网格热力图 - -### 栅格地图 -- 图片 -- Raster - -## L7 2.0 Roadmap - -![L7 Road Map](https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*3j9HTLTQT2MAAAAAAAAAAABkARQnAQ) - - -更多技术细节,详细进展,请关注 [GitHub](https://github.com/antvis/L7),欢迎大家来给点点 Star,让更多人看到这个开源的项目。 \ No newline at end of file diff --git a/docs/API/L7.zh.md b/docs/API/L7.zh.md deleted file mode 100644 index 99742bd0c3..0000000000 --- a/docs/API/L7.zh.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: 简介 -order: 0 -redirect_from: - - /zh/docs/api ---- - -# L7 地理空间数据可视分析引擎 - -L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析开发框架。L7 中的 L 代表 Location,7 代表世界七大洲,寓意能为全球位置数据提供可视分析的能力。L7 以图形符号学为理论基础,将抽象复杂的空间数据转化成 2D、3D 符号,通过颜色、大小、体积、纹理等视觉变量实现丰富的可视化表达。 - - - -## 核心特性 - - -🌏 数据驱动可视化展示 - -数据驱动,从数到形,支持丰富的地图可视化类型,更好洞察数据。 - -🌏 2D,3D 一体化的海量数据高性能渲染 - -百万级空间数据实时,动态渲染。 - -🌏 简单灵活的数据接入 - -支持CSV,JSON,geojson等数据格式接入,可以根据需求自定义数据格式,无需复杂的空间数据转换。 - - 🌏 多地图底图支持,支持离线内网部署 - -高德地图国内合法合规的地理底图,Mapbox 满足国际化业务需求。 - -## 支持丰富的图表类型 - -### 点图层 - - - 气泡图 - - 散点图 - - 符号地图 - - 3D柱状地图 - - 聚合地图 - - 复合图表地图 - - 自定义Marker - -### 线图层 - -- 路径地图 -- 弧线,支持2D弧线、3D弧线以及大圆航线 -- 等值线 - -### 面图层 - -- 填充图 -- 3D填充图 - -### 热力图 - -- 经典热力图 -- 蜂窝热力图 -- 网格热力图 - -### 栅格地图 -- 图片 -- Raster - -## L7 2.0 Roadmap - -![L7 Road Map](https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*3j9HTLTQT2MAAAAAAAAAAABkARQnAQ) - - -更多技术细节,详细进展,请关注 [GitHub](https://github.com/antvis/L7),欢迎大家来给点点 Star,让更多人看到这个开源的项目。 \ No newline at end of file diff --git a/docs/API/Scene.en.md b/docs/API/Scene.en.md deleted file mode 100644 index 345f9e5dc7..0000000000 --- a/docs/API/Scene.en.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -title: Scene -order: 1 ---- - -## 简介 -`Scene `基础的地图类,提供地图创建,图层创建,管理等功能 - -示例代码 - -```javascript -import {Scene} from '@l7/scene'; -const scene =new L7.Scene({ - id:'map', - mapStyle:'dark', - center:[ 110.770672, 34.159869 ], - pitch:45 -}) -``` - - -### 构造函数 - -**Scene**
支持两种实例化方式 - -- 独立实例化 内部根据id自动穿件地图实例 -- 传入地图实例 - - - - - -#### 独立实例化 Scene - -```javascript -const scene = new L7.Scene({ - id: 'map', - mapStyle: 'dark', - center: [ 120.19382669582967, 30.258134 ], - pitch: 0, - zoom: 12, - maxZoom:20, - minZoom:0, -}); -``` - - -#### 根据map 实例创建Sence - -_L7 基于高德地图3D模式开发的,因此传入Map实例 __viewModes需要设置成3d_
_ -```javascript -var mapinstance = new AMap.Map('map',{ - center: [ 120.19382669582967, 30.258134 ], - viewMode: '3D', - pitch: 0, - zoom: 12, - maxZoom:20, - minZoom:0, - }); - -const scene = new L7.Scene({ - mapStyle: 'dark', - map:mapinstance -}); -``` - - -## map -L7 在scene 下保留了高德地图实例,可以通过scene.map 调用高德地图的map方法。
map 实例方法见[高德地图文档](https://lbs.amap.com/api/javascript-api/reference/map) - -```javascript -scene.map -``` - - -## 构造类 - -### PointLayer -新建点图层 - -### PolylineLayer -新建线图层 - -### PolygonLayer -新建面图层 - -### ImageLayer -新建图片图层 - - -## 配置项 - -### id -需传入 dom 容器或者容器 id  {domObject || string} [必选] - - -### zoom -地图初始显示级别 {number} (0-22) - -### center -地图初始中心经纬度 {Lnglat} - -### pitch -地图初始俯仰角度 {number}  default 0 - -### mapSyle -地图样式 {style} 目前仅支持高德地图。 default 'dark'
L7 内置三种种默认地图样式 dark | light|blank 空地图 - -设置地图的显示样式,目前支持两种地图样式:
第一种:自定义地图样式,如`"amap://styles/d6bf8c1d69cea9f5c696185ad4ac4c86"`
可前往[地图自定义平台](https://lbs.amap.com/dev/mapstyle/index)定制自己的个性地图样式;
第二种:官方样式模版,如`"amap://styles/grey"`。
其他模版样式及自定义地图的使用说明见[开发指南](https://lbs.amap.com/api/javascript-api/guide/create-map/mapstye/) - - -### minZoom -地图最小缩放等级 {number}  default 0 (0-22) - -### maxZoom -地图最大缩放等级 {number}  default 22 (0-22) - -### rotateEnable -地图是否可旋转 {Boolean} default true - - - - -## 方法 - -### getZoom -获取当前缩放等级 - -```javascript -scene.getZoom(); -``` - -return {float}  当前缩放等级 - -### getLayers() -获取所有的地图图层 -```javascript -scene.getLayers(); -``` - -return 图层数组 {Array} - - -### getCenter() -获取地图中心点 -```javascript -scene.getCenter() -``` - -return {Lnglat} :地图中心点 - -### getSize() -获取地图容器大小 -```javascript -scene.getSize() -``` -return { Object } 地图容器的 width,height - -### getPitch() -获取地图俯仰角 -```javascript -scene.getPitch(); -``` - -return {number} pitch - -### setCenter() -设置地图中心点坐标 - -```javascript -scene.setCenter([lng,lat]) -``` - -参数:`center` {LngLat} 地图中心点 - - -### setZoomAndCenter -设置地图等级和中心 -```javascript -scene.setZoomAndCenter(zoom,center) -``` - -参数:zoom {number}
center {LngLat} - - -### setRotation -设置地图顺时针旋转角度,旋转原点为地图容器中心点,取值范围 [0-360] -```javascript -scene.setRotation(rotation) -``` - -参数: `rotation` {number} - -### zoomIn -地图放大一级 -```javascript -scene.zoomIn() -``` - -### zoomOut -地图缩小一级 -```javascript -scene.ZoomOUt() -``` - -### panTo -地图平移到指定的位置 -```javascript -scene.panTo(LngLat) -``` - -参数:`center` LngLat 中心位置坐标 - -### panBy -以像素为单位沿X方向和Y方向移动地图 -```javascript -scene.panBy(x,y) -``` -参数:
`x` {number} 水平方向移动像素 向右为正方向
      `y` {number} 垂直方向移动像素 向下为正方向 - - -### setPitch -设置地图仰俯角度 -```javascript -scene.setPitch(pitch) -``` - -参数 :
   `pitch` {number} - -### - -### setStatus -设置当前地图显示状态,包括是否可鼠标拖拽移动地图、地图是否可缩放、地图是否可旋转(rotateEnable)、是否可双击放大地图、是否可以通过键盘控制地图旋转(keyboardEnable)等    - -```javascript - scene.setStatus({ - dragEnable: true, - keyboardEnable: true, - doubleClickZoom: true, - zoomEnable: true, - rotateEnable: true - }); -``` - - -### fitBounds -地图缩放到某个范围内
参数 :
  `extent` { array} 经纬度范围 [minlng,minlat,maxlng,maxlat] - -```javascript -scene.fitBounds([112,32,114,35]); -``` - - - -### removeLayer -移除layer - -```javascript -scene.removeLayer(layer) -``` - -参数
`layer` {Layer} - -### getLayers - 获取所有的layer - -```javascript -scene.getLayers() -``` - -return layers  {array} - -## 事件 - - -### on -事件监听 - -#### 参数 -`eventName` {string} 事件名
`hander` {function } 事件回调函数 - - -### off -移除事件监听
`eventName` {string} 事件名
`hander` {function } 事件回调函数 - - -### 地图事件 -```javascript -scene.on('loaded',()=>{})  //地图加载完成触发 -scene.on('mapmove',()=>{}) // 地图平移时触发事件 -scene.on('movestart',()=>{}) // 地图平移开始时触发 -scene.on('moveend',()=>{}) // 地图移动结束后触发,包括平移,以及中心点变化的缩放。如地图有拖拽缓动效果,则在缓动结束后触发 -scene.on('zoomchange',()=>{}) // 地图缩放级别更改后触发 -scene.on('zoomstart',()=>{}) // 缩放开始时触发 -scene.on('zoomend',()=>{}) // 缩放停止时触发 -``` - - -### 鼠标事件 - -```javascript -scene.on('click', (ev)=>{}); // 鼠标左键点击事件 -scene.on('dblclick', (ev)=>{}); // 鼠标左键双击事件 -scene.on('mousemove', (ev)=>{}); // 鼠标在地图上移动时触发 -scene.on('mousewheel', (ev)=>{}); // 鼠标滚轮开始缩放地图时触发 -scene.on('mouseover', (ev)=>{}); // 鼠标移入地图容器内时触发 -scene.on('mouseout', (ev)=>{}); // 鼠标移出地图容器时触发 -scene.on('mouseup', (ev)=>{}); // 鼠标在地图上单击抬起时触发 -scene.on('mousedown', (ev)=>{}); // 鼠标在地图上单击按下时触发 -scene.on('rightclick', (ev)=>{}); // 鼠标右键单击事件 -scene.on('dragstart', (ev)=>{}); //开始拖拽地图时触发 -scene.on('dragging', (ev)=>{}); // 拖拽地图过程中触发 -scene.on('dragend', (ev)=>{}); //停止拖拽地图时触发。如地图有拖拽缓动效果,则在拽停止,缓动开始前触发 -``` - -### 其它事件 -```javascript -scene.on('resize',()=>{}) // 地图容器大小改变事件 -``` - - diff --git a/docs/API/Scene.zh.md b/docs/API/Scene.zh.md deleted file mode 100644 index a0eb5cc2eb..0000000000 --- a/docs/API/Scene.zh.md +++ /dev/null @@ -1,292 +0,0 @@ ---- -title: 场景 Scene -order: 1 ---- - -# 简介 - -## Scene - -L7 地理可视化 地图,图层,组件,以及可视化所需要的资源,如图片,字体通过Scene统一管理 - - -## Map - - L7 地理可视化侧重于地理数据的可视化表达,地图层需要依赖第三方地图,第三方地图通过Scene 统一创建,创建管理 - 只需要通过Scene传入地图配置项即可。 - -目前L7 支持两种地图底图 - -- 高德地图 国内业务场景 合规中国地图 -- MapBox 国际业务,或者内网离线部署场景 - - - -示例代码 - -```javascript -import {Scene} from '@l7/scene'; -const scene =new L7.Scene({ - id:'map', - mapStyle:'dark', - center:[ 110.770672, 34.159869 ], - pitch:45 -}) -``` - - -### 构造函数 - -**Scene** - - - - - - -## map -L7 在scene 下保留了高德地图实例,可以通过scene.map 调用高德地图的map方法。
map 实例方法见[高德地图文档](https://lbs.amap.com/api/javascript-api/reference/map) - -```javascript -scene.map -``` - -## 配置项 - -### 地图配置项 - -### id -需传入 dom 容器或者容器 id  {domObject || string} [必选] - - -### zoom -地图初始显示级别 {number} (0-22) - -### center -地图初始中心经纬度 {Lnglat} - -### pitch -地图初始俯仰角度 {number}  default 0 - -### mapSyle - -简化地图样式设置,L7 内置了三种主题默认样式 -- dark -- light -- normal - -地图样式 {style} 目前仅支持高德地图。 default 'dark'
L7 内置三种种默认地图样式 dark | light|blank 空地图 - -设置地图的显示样式,目前支持两种地图样式:
第一种:自定义地图样式,如`"amap://styles/d6bf8c1d69cea9f5c696185ad4ac4c86"`
可前往[地图自定义平台](https://lbs.amap.com/dev/mapstyle/index)定制自己的个性地图样式;
第二种:官方样式模版,如`"amap://styles/grey"`。
其他模版样式及自定义地图的使用说明见[开发指南](https://lbs.amap.com/api/javascript-api/guide/create-map/mapstye/) - - -### minZoom -地图最小缩放等级 {number}  default 0 (0-22) - -### maxZoom -地图最大缩放等级 {number}  default 22 (0-22) - -### rotateEnable -地图是否可旋转 {Boolean} default true - - - - -## 方法 - -### getZoom -获取当前缩放等级 - -```javascript -scene.getZoom(); -``` - -return {float}  当前缩放等级 - -### getLayers() -获取所有的地图图层 -```javascript -scene.getLayers(); -``` - -return 图层数组 {Array} - - -### getCenter() -获取地图中心点 -```javascript -scene.getCenter() -``` - -return {Lnglat} :地图中心点 - -### getSize() -获取地图容器大小 -```javascript -scene.getSize() -``` -return { Object } 地图容器的 width,height - -### getPitch() -获取地图俯仰角 -```javascript -scene.getPitch(); -``` - -return {number} pitch - -### setCenter() -设置地图中心点坐标 - -```javascript -scene.setCenter([lng,lat]) -``` - -参数:`center` {LngLat} 地图中心点 - - -### setZoomAndCenter -设置地图等级和中心 -```javascript -scene.setZoomAndCenter(zoom,center) -``` - -参数:zoom {number}
center {LngLat} - - -### setRotation -设置地图顺时针旋转角度,旋转原点为地图容器中心点,取值范围 [0-360] -```javascript -scene.setRotation(rotation) -``` - -参数: `rotation` {number} - -### zoomIn -地图放大一级 -```javascript -scene.zoomIn() -``` - -### zoomOut -地图缩小一级 -```javascript -scene.ZoomOUt() -``` - -### panTo -地图平移到指定的位置 -```javascript -scene.panTo(LngLat) -``` - -参数:`center` LngLat 中心位置坐标 - -### panBy -以像素为单位沿X方向和Y方向移动地图 -```javascript -scene.panBy(x,y) -``` -参数:
`x` {number} 水平方向移动像素 向右为正方向
      `y` {number} 垂直方向移动像素 向下为正方向 - - -### setPitch -设置地图仰俯角度 -```javascript -scene.setPitch(pitch) -``` - -参数 :
   `pitch` {number} - -### - -### setStatus -设置当前地图显示状态,包括是否可鼠标拖拽移动地图、地图是否可缩放、地图是否可旋转(rotateEnable)、是否可双击放大地图、是否可以通过键盘控制地图旋转(keyboardEnable)等    - -```javascript - scene.setStatus({ - dragEnable: true, - keyboardEnable: true, - doubleClickZoom: true, - zoomEnable: true, - rotateEnable: true - }); -``` - - -### fitBounds -地图缩放到某个范围内
参数 :
  `extent` { array} 经纬度范围 [minlng,minlat,maxlng,maxlat] - -```javascript -scene.fitBounds([112,32,114,35]); -``` - - - -### removeLayer -移除layer - -```javascript -scene.removeLayer(layer) -``` - -参数
`layer` {Layer} - -### getLayers - 获取所有的layer - -```javascript -scene.getLayers() -``` - -return layers  {array} - -## 事件 - - -### on -事件监听 - -#### 参数 -`eventName` {string} 事件名
`hander` {function } 事件回调函数 - - -### off -移除事件监听
`eventName` {string} 事件名
`hander` {function } 事件回调函数 - - -### 地图事件 -```javascript -scene.on('loaded',()=>{})  //地图加载完成触发 -scene.on('mapmove',()=>{}) // 地图平移时触发事件 -scene.on('movestart',()=>{}) // 地图平移开始时触发 -scene.on('moveend',()=>{}) // 地图移动结束后触发,包括平移,以及中心点变化的缩放。如地图有拖拽缓动效果,则在缓动结束后触发 -scene.on('zoomchange',()=>{}) // 地图缩放级别更改后触发 -scene.on('zoomstart',()=>{}) // 缩放开始时触发 -scene.on('zoomend',()=>{}) // 缩放停止时触发 -``` - - -### 鼠标事件 - -```javascript -scene.on('click', (ev)=>{}); // 鼠标左键点击事件 -scene.on('dblclick', (ev)=>{}); // 鼠标左键双击事件 -scene.on('mousemove', (ev)=>{}); // 鼠标在地图上移动时触发 -scene.on('mousewheel', (ev)=>{}); // 鼠标滚轮开始缩放地图时触发 -scene.on('mouseover', (ev)=>{}); // 鼠标移入地图容器内时触发 -scene.on('mouseout', (ev)=>{}); // 鼠标移出地图容器时触发 -scene.on('mouseup', (ev)=>{}); // 鼠标在地图上单击抬起时触发 -scene.on('mousedown', (ev)=>{}); // 鼠标在地图上单击按下时触发 -scene.on('rightclick', (ev)=>{}); // 鼠标右键单击事件 -scene.on('dragstart', (ev)=>{}); //开始拖拽地图时触发 -scene.on('dragging', (ev)=>{}); // 拖拽地图过程中触发 -scene.on('dragend', (ev)=>{}); //停止拖拽地图时触发。如地图有拖拽缓动效果,则在拽停止,缓动开始前触发 -``` - -### 其它事件 -```javascript -scene.on('resize',()=>{}) // 地图容器大小改变事件 -``` - - diff --git a/docs/API/component/control.en.md b/docs/API/component/control.en.md deleted file mode 100644 index 7e1e7c0cf8..0000000000 --- a/docs/API/component/control.en.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Control -order: 1 ---- -# control - -地图组件 用于控制地图的状态如果平移,缩放,或者展示地图一些的辅助信息如图例,比例尺 - - -## 构造函数 - -```javascript -const baseControl = new L7.Control.Base(option); -``` - - -#### option - - position: `string` 控件位置支持是个方位 `bottomright, topright, bottomleft, topleft` - - -#### scene 内置地图组件 -zoom 地图放大缩小  默认添加
Scale 地图比例尺   默认添加
attribution 地图数据属性  默认添加
layer 图层列表 - -**scene配置项设置控件添加状态** - -```javascript -scene = new L7.scene({ - zoomControl: true, - scaleControl: true, - attributionControl: true -}) -``` - -#### - -#### Zoom -放大缩小组件 默认 左上角 - -```javascript - new L7.Control.Zoom({ - position: 'topleft' - }).addTo(scene); -``` - - -#### Scale -比例尺组件默认左下角 - -```javascript - new L7.Control.Scale({ - position: 'bottomleft' - }).addTo(scene); -``` - - -#### attribution -默认右下角 - -```javascript -new L7.Control.Attribution({ - position: 'bottomleft' - }).addTo(scene); -``` - - -#### layer -图层列表目前只支持可视化overlayers 图层控制 - -```javascript - var overlayers = { - "围栏填充": layer, - "围栏边界": layer2 - }; -new L7.Control.Layers({ - overlayers: overlayers -}).addTo(scene); -``` - - -## 方法 - -#### onAdd -组件添加到地图Scene时调用,自定义组件时需要实现此方法 - - -#### addTo -添加到地图scene - -```javascript -control.addTo(scene); -``` - - -#### setPosition -设置组件位置 - -```javascript -control.setPosition('bottomright'); -``` - - -#### remove -移除地图组件 - -```javascript -control.remove(); -``` - - - -## 示例代码 - - -#### 自定义图例控件 -[源码](https://antv.alipay.com/zh-cn/l7/1.x/demo/component/extendControl.html) - -```javascript -var legend = new L7.Control.Base({ - position: 'bottomright' - }); - legend.onAdd = function() { - var el = document.createElement('div'); - el.className = 'infolegend legend'; - var grades = [0, 8, 15, 30, 65, 120]; - for (var i = 0; i < grades.length; i++) { - el.innerHTML += ' ' + grades[i] + (grades[i + 1] ? '–' + grades[i + 1] + '
' : '+'); - } - return el; - }; - legend.addTo(scene); - -``` - -## - -## FAQ - diff --git a/docs/API/component/control.zh.md b/docs/API/component/control.zh.md deleted file mode 100644 index 16d9950e31..0000000000 --- a/docs/API/component/control.zh.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: Control -order: 3 ---- -# control - -地图组件 用于控制地图的状态如果平移,缩放,或者展示地图一些的辅助信息如图例,比例尺 - - -## 构造函数 - -```javascript -const baseControl = new L7.Control.Base(option); -``` - - -#### option - position: `string` 控件位置支持是个方位 `bottomright, topright, bottomleft, topleft` - - -#### scene 内置地图组件 -zoom 地图放大缩小  默认添加
Scale 地图比例尺   默认添加
attribution 地图数据属性  默认添加
layer 图层列表 - -**scene配置项设置控件添加状态** - -```javascript -scene = new L7.scene({ - zoomControl: true, - scaleControl: true, - attributionControl: true -}) -``` - -#### - -#### Zoom -放大缩小组件 默认 左上角 - -```javascript - new L7.Control.Zoom({ - position: 'topleft' - }).addTo(scene); -``` - - -#### Scale -比例尺组件默认左下角 - -```javascript - new L7.Control.Scale({ - position: 'bottomleft' - }).addTo(scene); -``` - - -#### attribution -默认右下角 - -```javascript -new L7.Control.Attribution({ - position: 'bottomleft' - }).addTo(scene); -``` - - -#### layer -图层列表目前只支持可视化overlayers 图层控制 - -```javascript - var overlayers = { - "围栏填充": layer, - "围栏边界": layer2 - }; -new L7.Control.Layers({ - overlayers: overlayers -}).addTo(scene); -``` - - -## 方法 - -#### onAdd -组件添加到地图Scene时调用,自定义组件时需要实现此方法 - - -#### addTo -添加到地图scene - -```javascript -control.addTo(scene); -``` - - -#### setPosition -设置组件位置 - -```javascript -control.setPosition('bottomright'); -``` - - -#### remove -移除地图组件 - -```javascript -control.remove(); -``` - - - -## 示例代码 - - -#### 自定义图例控件 -[源码](https://antv.alipay.com/zh-cn/l7/1.x/demo/component/extendControl.html) - -```javascript -var legend = new L7.Control.Base({ - position: 'bottomright' - }); - legend.onAdd = function() { - var el = document.createElement('div'); - el.className = 'infolegend legend'; - var grades = [0, 8, 15, 30, 65, 120]; - for (var i = 0; i < grades.length; i++) { - el.innerHTML += ' ' + grades[i] + (grades[i + 1] ? '–' + grades[i + 1] + '
' : '+'); - } - return el; - }; - legend.addTo(scene); - -``` - -## - -## FAQ - diff --git a/docs/API/component/marker.en.md b/docs/API/component/marker.en.md deleted file mode 100644 index 5adbea840f..0000000000 --- a/docs/API/component/marker.en.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Marker -order: 3 ---- - -Marker 地图标注 目前只支持2D dom标注 - - -## 构造函数 -Marker
`const Marker = new L7.Marker(option)` - - -#### option - -- color        `string `   ![map-marker.png](https://cdn.nlark.com/yuque/0/2019/png/104251/1566814628445-4f3152c8-71d1-4908-a651-246c17e507b5.png#align=left&display=inline&height=32&name=map-marker.png&originHeight=32&originWidth=32&size=635&status=done&width=32) 设置默认marker的颜色 -- element    `Dom|string`    自定义marker Dom节点,可以是dom实例,也可以是dom id -- anchor     `string`  锚点位置  支持 center, top, top-left, top-right, bottom, bottom-left,bottom-                        right,left, right -- offset    `Array`  偏移量 [ 0, 0 ] 分别表示 X, Y 的偏移量 - - -## 方法 - -#### setLnglat -设置marker经纬度位置 - -#### addTo -将marker添加到地图Scene - -#### remove -移除marker - -#### getElement -获取marker dom Element - -#### getLngLat -获取marker经纬度坐标 - -#### togglePopup -开启或者关闭marker弹出框 - -#### setPopup -为marker设置popup - -#### getPopup -获取marker弹出框 - - -## 示例代码 - -#### 默认Marker -**
` const marker = new L7.Marker({color:'blue'})` - - -#### 自定义Marker - -```javascript -var el = document.createElement('label'); - el.className = 'lableclass'; - el.textContent = data[i].v; - el.style.background = getColor(data[i].v); - new L7.Marker({ - element: el - }) - .setLnglat([data[i].x * 1, data[i].y]) - .addTo(scene); -``` - - -#### 设置 popup - -```javascript - var popup = new L7.Popup({ - anchor: 'left' - }).setText(item.name); - -new L7.Marker({ - element: el -}).setLnglat(item.coordinates) - .setPopup(popup) - .addTo(scene); -``` - - diff --git a/docs/API/component/marker.zh.md b/docs/API/component/marker.zh.md deleted file mode 100644 index 5adbea840f..0000000000 --- a/docs/API/component/marker.zh.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Marker -order: 3 ---- - -Marker 地图标注 目前只支持2D dom标注 - - -## 构造函数 -Marker
`const Marker = new L7.Marker(option)` - - -#### option - -- color        `string `   ![map-marker.png](https://cdn.nlark.com/yuque/0/2019/png/104251/1566814628445-4f3152c8-71d1-4908-a651-246c17e507b5.png#align=left&display=inline&height=32&name=map-marker.png&originHeight=32&originWidth=32&size=635&status=done&width=32) 设置默认marker的颜色 -- element    `Dom|string`    自定义marker Dom节点,可以是dom实例,也可以是dom id -- anchor     `string`  锚点位置  支持 center, top, top-left, top-right, bottom, bottom-left,bottom-                        right,left, right -- offset    `Array`  偏移量 [ 0, 0 ] 分别表示 X, Y 的偏移量 - - -## 方法 - -#### setLnglat -设置marker经纬度位置 - -#### addTo -将marker添加到地图Scene - -#### remove -移除marker - -#### getElement -获取marker dom Element - -#### getLngLat -获取marker经纬度坐标 - -#### togglePopup -开启或者关闭marker弹出框 - -#### setPopup -为marker设置popup - -#### getPopup -获取marker弹出框 - - -## 示例代码 - -#### 默认Marker -**
` const marker = new L7.Marker({color:'blue'})` - - -#### 自定义Marker - -```javascript -var el = document.createElement('label'); - el.className = 'lableclass'; - el.textContent = data[i].v; - el.style.background = getColor(data[i].v); - new L7.Marker({ - element: el - }) - .setLnglat([data[i].x * 1, data[i].y]) - .addTo(scene); -``` - - -#### 设置 popup - -```javascript - var popup = new L7.Popup({ - anchor: 'left' - }).setText(item.name); - -new L7.Marker({ - element: el -}).setLnglat(item.coordinates) - .setPopup(popup) - .addTo(scene); -``` - - diff --git a/docs/API/component/popup.en.md b/docs/API/component/popup.en.md deleted file mode 100644 index fca06aefdd..0000000000 --- a/docs/API/component/popup.en.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Popup -order: 4 ---- -# popup - -地图标注信息窗口,用于展示地图要素的属性信息 - - -## 构造函数 -Popup - -```javascript -const popup = new L7.Popup(option) -``` - - -#### option - -- closeButton -- closeOnClick -- maxWidth -- anchor - - -## 方法 - -#### setLnglat -设置popup的经纬度位置
**参数**:lnglat 经纬度数组 [112,32] - -```javascript -popup.setLnglat([112, 32]); -``` - - -#### addTo -**参数**:scene 地图scene实例 - -将popup添加到地图scene显示 - -```javascript -popup.addTo(scene); -``` - - -#### setHtml -**参数**:html 字符串 - -设置popup html 内容 - -```javascript -var html = '

\u7701\u4EFD\uFF1A' + feature.s + '

\n

\u5730\u533A\uFF1A' + feature.m + '

\n

\u6E29\u5EA6\uFF1A' + feature.t + '

\n '; -popup.setHtml(html); - -``` - - -#### setText -设置 popup 显示文本内容 - -```javascript -popup.setText('hello world'); -``` - - -#### remove -移除popup - -```javascript -popup.remove() -``` - - -## 事件 - -#### close - -```javascript -popup.on('close',()=>{}) -``` - - -## 示例代码 - -#### 添加popup - -``` - var html = '

'+feature.m+'

'; - const new L7.Popup().setLnglat([112, 32]).setHTML(html).addTo(scene); -``` - -### FAQ diff --git a/docs/API/component/popup.zh.md b/docs/API/component/popup.zh.md deleted file mode 100644 index e3fa32bfbe..0000000000 --- a/docs/API/component/popup.zh.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: popup -order: 0 ---- -# popup - -地图标注信息窗口,用于展示地图要素的属性信息 - - -## 构造函数 -Popup - -```javascript -const popup = new L7.Popup(option) -``` - - -#### option - -- closeButton -- closeOnClick -- maxWidth -- anchor - - -## 方法 - -#### setLnglat -设置popup的经纬度位置
**参数**:lnglat 经纬度数组 [112,32] - -```javascript -popup.setLnglat([112, 32]); -``` - - -#### addTo -**参数**:scene 地图scene实例 - -将popup添加到地图scene显示 - -```javascript -popup.addTo(scene); -``` - - -#### setHtml -**参数**:html 字符串 - -设置popup html 内容 - -```javascript -var html = '

\u7701\u4EFD\uFF1A' + feature.s + '

\n

\u5730\u533A\uFF1A' + feature.m + '

\n

\u6E29\u5EA6\uFF1A' + feature.t + '

\n '; -popup.setHtml(html); - -``` - - -#### setText -设置 popup 显示文本内容 - -```javascript -popup.setText('hello world'); -``` - - -#### remove -移除popup - -```javascript -popup.remove() -``` - - -## 事件 - -#### close - -```javascript -popup.on('close',()=>{}) -``` - - -## 示例代码 - -#### 添加popup - -``` - var html = '

'+feature.m+'

'; - const new L7.Popup().setLnglat([112, 32]).setHTML(html).addTo(scene); -``` - -### FAQ diff --git a/docs/API/layer/heatmap.en.md b/docs/API/layer/heatmap.en.md deleted file mode 100644 index 2bf68b6740..0000000000 --- a/docs/API/layer/heatmap.en.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -title: HeatmapLayer -order: 5 ---- - -# heatmapLayer - - -### 简介 - -热力图图层,包含三种类型的, -- 方格热力图 - -将一组点数据按照等大小的正方形网格进行聚合,一个正方形网格代表网格内所有点的统计值。方格热力图特点以方格网布局。 - -- 六边形热力图 - -将一组点数据按照等大小的六边形网格进行聚合,一个六边形网格代表网格内所有点的统计值。蜂窝热力图特点以六边形热力图网格布局 - -- 经典热力图 - - - -⚠️ 网格热力图和蜂窝热力图需要对数据聚合处理,使用之前需要在source方法设置数据聚合方法 - -### source - -热力图只支持点数据作为数据源 - -布局方法 通过source的 tansforms属性配置 - -- type  数据聚合类型 grid、hexagon -- size  网格半径 单位 米 -- field  聚合字段 -- method 聚合方法  count,max,min,sum,mean5个统计维度 - -```javascript - -layer.source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms:[ - { - type: 'grid', - size: 15000, - field:'v', - method:'sum' - } - ], - } -``` - -### shape - -不同类型热力图shape支持 - -| | 2D | 3d | -| --- | --- | --- | -| 网格格热力图 | circle,triangle,square,heaxgon | cylinder,triangleColumn,hexagonColum,squareColumn | -| 蜂窝热力图 | circle,triangle,square,heaxgon | circle,triangle,square,heaxgon | -| 普通热力图 | heatmap | heatmap | - - -热力图布局下只shape方法只支持常量的可视化。 - -```javascript -HeatmapLayer.shape('square'); -HeatmapLayer.shape('hexagon'); -// 默认类型可以不设置 -``` - -### size -当前版本 shape 为grid,hexagon不需要设置 size 映射 - -default 类型需要设置size映射 详细参数见[Size](https://www.yuque.com/antv/l7/layer#size) - -**size(field,values) ** - -- field: 热力图权重字段 -- values: 数据映射区间 热力图显示 [0, 1] 效果最佳 - -```javascript -HeatmapLayer.size ('field', [0, 1]) -``` - - -### color -default heatMap 类型不需设置 color映射 - -color 配置项同 [**color**](https://www.yuque.com/antv/l7/layer#color) - - - -### style - -grid hexagon 可以通过style 设置透明度 - -default热力图需要通过style配置参数热力图参数 - -- intensity   全局热力权重   推荐权重范围 1-5 -- radius  热力半径,单位像素 -- rampColors 色带参数 - - colors  颜色数组 - - positions 数据区间 - -```javascript - HeatmapLayer.style({ - intensity: 3, - radius: 20, - rampColors: { - colors: [ 'rgba(33,102,172,0.0)', 'rgb(103,169,207)', 'rgb(209,229,240)', 'rgb(253,219,199)', 'rgb(239,138,98)', 'rgb(178,24,43,1.0)' ], - positions: [ 0, 0.2, 0.4, 0.6, 0.8, 1.0 ] - } - }) -``` - - -### 完整代码示例 - -#### 普通热力图 - -```javascript -// 测试数据 url https://gw.alipayobjects.com/os/basement_prod/08c6ea00-dc5f-4bb0-b0b5-52bde5edf0a3.json - - HeatmapLayer({ - zIndex: 2 - }) - .source(data) - .size('mag', [ 0, 1 ]) // weight映射通道 - .style({ - intensity: 3, - radius: 20, - rampColors: { - colors: [ 'rgba(33,102,172,0.0)', 'rgb(103,169,207)', 'rgb(209,229,240)', 'rgb(253,219,199)', 'rgb(239,138,98)', 'rgb(178,24,43,1.0)' ], - positions: [ 0, 0.2, 0.4, 0.6, 0.8, 1.0 ] - } - }) -``` - - - -#### 网格热力图 - -```javascript -var layer = scene.HeatmapLayer({ - zIndex: 2 - }) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms:[ - - { - type: 'grid', - size: 15000, - field:'v', - method:'sum' - } - ] - }) - .shape('grid') - .style({ - coverage: 0.8 - }) - .color('count', - ["#002466","#105CB3","#2894E0","#CFF6FF","#FFF5B8","#FFAB5C","#F27049","#730D1C"]) - -``` - - -#### 六边形热力图 - -```javascript - var layer = scene.HeatmapLayer({ - zIndex: 2 - }). - souce(data,{ - parser:{ - type:'csv', - x:lng, - y:lat, - }, - transforms:[ - { - type:'hexgon', - size:1500, - field:'count', - operation: 'sum', - } - ] - }) - .shape('hexgon') - .size(1000) - .color('sum') - .style({ - coverage:0.8 - }) -render() -``` \ No newline at end of file diff --git a/docs/API/layer/heatmap.zh.md b/docs/API/layer/heatmap.zh.md deleted file mode 100644 index 2431fc5cb7..0000000000 --- a/docs/API/layer/heatmap.zh.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -title: HeatmapLayer -order: 5 ---- -# heatmapLayer - - -### 简介 - -热力图图层,包含三种类型的, -- 方格热力图 - -将一组点数据按照等大小的正方形网格进行聚合,一个正方形网格代表网格内所有点的统计值。方格热力图特点以方格网布局。 - -- 六边形热力图 - -将一组点数据按照等大小的六边形网格进行聚合,一个六边形网格代表网格内所有点的统计值。蜂窝热力图特点以六边形热力图网格布局 - -- 经典热力图 - - - -⚠️ 网格热力图和蜂窝热力图需要对数据聚合处理,使用之前需要在source方法设置数据聚合方法 - -### source - -热力图只支持点数据作为数据源 - -布局方法 通过source的 tansforms属性配置 - -- type  数据聚合类型 grid、hexagon -- size  网格半径 单位 米 -- field  聚合字段 -- method 聚合方法  count,max,min,sum,mean5个统计维度 - -```javascript - -layer.source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms:[ - { - type: 'grid', - size: 15000, - field:'v', - method:'sum' - } - ], - } -``` - -### shape - -不同类型热力图shape支持 - -| | 2D | 3d | -| --- | --- | --- | -| 网格格热力图 | circle,triangle,square,heaxgon | cylinder,triangleColumn,hexagonColum,squareColumn | -| 蜂窝热力图 | circle,triangle,square,heaxgon | circle,triangle,square,heaxgon | -| 普通热力图 | heatmap | heatmap | - - -热力图布局下只shape方法只支持常量的可视化。 - -```javascript -HeatmapLayer.shape('square'); -HeatmapLayer.shape('hexagon'); -// 默认类型可以不设置 -``` - -### size -当前版本 shape 为grid,hexagon不需要设置 size 映射 - -default 类型需要设置size映射 详细参数见[Size](https://www.yuque.com/antv/l7/layer#size) - -**size(field,values) ** - -- field: 热力图权重字段 -- values: 数据映射区间 热力图显示 [0, 1] 效果最佳 - -```javascript -HeatmapLayer.size ('field', [0, 1]) -``` - - -### color -default heatMap 类型不需设置 color映射 - -color 配置项同 [**color**](https://www.yuque.com/antv/l7/layer#color) - - - -### style - -grid hexagon 可以通过style 设置透明度 - -default热力图需要通过style配置参数热力图参数 - -- intensity   全局热力权重   推荐权重范围 1-5 -- radius  热力半径,单位像素 -- rampColors 色带参数 - - colors  颜色数组 - - positions 数据区间 - -```javascript - HeatmapLayer.style({ - intensity: 3, - radius: 20, - rampColors: { - colors: [ 'rgba(33,102,172,0.0)', 'rgb(103,169,207)', 'rgb(209,229,240)', 'rgb(253,219,199)', 'rgb(239,138,98)', 'rgb(178,24,43,1.0)' ], - positions: [ 0, 0.2, 0.4, 0.6, 0.8, 1.0 ] - } - }) -``` - - -### 完整代码示例 - -#### 普通热力图 - -```javascript -// 测试数据 url https://gw.alipayobjects.com/os/basement_prod/08c6ea00-dc5f-4bb0-b0b5-52bde5edf0a3.json - - HeatmapLayer({ - zIndex: 2 - }) - .source(data) - .size('mag', [ 0, 1 ]) // weight映射通道 - .style({ - intensity: 3, - radius: 20, - rampColors: { - colors: [ 'rgba(33,102,172,0.0)', 'rgb(103,169,207)', 'rgb(209,229,240)', 'rgb(253,219,199)', 'rgb(239,138,98)', 'rgb(178,24,43,1.0)' ], - positions: [ 0, 0.2, 0.4, 0.6, 0.8, 1.0 ] - } - }) -``` - - - -#### 网格热力图 - -```javascript -var layer = scene.HeatmapLayer({ - zIndex: 2 - }) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms:[ - - { - type: 'grid', - size: 15000, - field:'v', - method:'sum' - } - ] - }) - .shape('grid') - .style({ - coverage: 0.8 - }) - .color('count', - ["#002466","#105CB3","#2894E0","#CFF6FF","#FFF5B8","#FFAB5C","#F27049","#730D1C"]) - -``` - - -#### 六边形热力图 - -```javascript - var layer = scene.HeatmapLayer({ - zIndex: 2 - }). - souce(data,{ - parser:{ - type:'csv', - x:lng, - y:lat, - }, - transforms:[ - { - type:'hexgon', - size:1500, - field:'count', - operation: 'sum', - }, - ], - }) - .shape('hexgon') - .size(1000) - .color('sum') - .style({ - coverage:0.8 - }) -render() -``` \ No newline at end of file diff --git a/docs/API/layer/imagelayer.en.md b/docs/API/layer/imagelayer.en.md deleted file mode 100644 index 4d0c122617..0000000000 --- a/docs/API/layer/imagelayer.en.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: ImageLayer -order: 5 ---- -# ImageLayer - -## 简介 -将图片添加到地图上,需要指定图片的经纬度范围 - -### 代码示例 - -```javascript -const layer = new ImageLayer({}); -layer.source( - 'https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg', - { - parser: { - type: 'image', - extent: [ 121.168, 30.2828, 121.384, 30.4219 ] - } - } -); -``` diff --git a/docs/API/layer/imagelayer.zh.md b/docs/API/layer/imagelayer.zh.md deleted file mode 100644 index 4d0c122617..0000000000 --- a/docs/API/layer/imagelayer.zh.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: ImageLayer -order: 5 ---- -# ImageLayer - -## 简介 -将图片添加到地图上,需要指定图片的经纬度范围 - -### 代码示例 - -```javascript -const layer = new ImageLayer({}); -layer.source( - 'https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg', - { - parser: { - type: 'image', - extent: [ 121.168, 30.2828, 121.384, 30.4219 ] - } - } -); -``` diff --git a/docs/API/layer/layer.en.md b/docs/API/layer/layer.en.md deleted file mode 100644 index 21ccab7477..0000000000 --- a/docs/API/layer/layer.en.md +++ /dev/null @@ -1,322 +0,0 @@ ---- -title: Map Layer -order: 0 ---- -# Layer - - -## 简介 -L7 Layer 接口设计遵循图形语法,在可视表达上 - -语法示例 - -```javascript -new Layer(option) -.source() -.color() -.size() -.shape() -.style() - -``` - - -## 构造函数 - - -## 配置项 - -### visable -图层是否可见   {bool } default true - -### zIndex - 图层绘制顺序,数值越小优先绘制,可以控制图层绘制的上下层级 {int}   default 0 -### minZoom -图层显示最小缩放等级,(0-18)   {number}  default 0 - -### maxZoom - 图层显示最大缩放等级 (0-18)   {number}  default 18 - - -## 鼠标事件 - -beta版当前不支持,正式版会支持 - -```javascript -layer.on('click', (ev)=>{}); // 鼠标左键点击图层事件 -layer.on('dblclick', (ev)=>{}); // 鼠标左键双击图层事件 -layer.on('mousemove', (ev)=>{}); // 鼠标在图层上移动时触发 -layer.on('mouseover', (ev)=>{}); // 鼠标移入图层要素内时触发 -layer.on('mouseout', (ev)=>{}); // 鼠标移出图层要素时触发 -layer.on('mouseup', (ev)=>{}); // 鼠标在图层上单击抬起时触发 -layer.on('mousedown', (ev)=>{}); // 鼠标在图层上单击按下时触发 -layer.on('mouseleave', (ev)=>{}); // 鼠标离开图层要素 -layer.on('rightclick', (ev)=>{}); // 鼠标右键图层要素 - -``` - - -## 方法 - -### source -数据源为layer设置数据 source(data,config) - -- data {geojson|json|csv} - - -      源数据 - -- config  可选 数据源配置项 - - parser 数据解析,默认是解析层geojson - - transforms [transform,transform ]  数据处理转换 可设置多个 - - parser和 transforms [见source文档](https://www.yuque.com/antv/l7/source) - -```javascript -layer.source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms:[ - { - type: 'map', - callback:function(item){ - const [x, y] = item.coordinates; - item.lat = item.lat*1; - item.lng = item.lng*1; - item.v = item.v *1; - item.coordinates = [x*1,y*1]; - return item; - } - - }, - { - type: 'hexagon', - size: 6000, - field:'v', - method:'sum' - } - ] - }) -``` - -### - -### scale - - -cscle('field', scaleConfig) - -(field: string, scaleConfig: object) - -为指定的数据字段进行列定义,返回 layer 实例。 - - - -- `field` 字段名。 - -- `scaleConfig` 列定义配置,对象类型,可配置的属性如下: - -```javascript -{ - type: "linear" // 指定数据类型,可声明的类型为:identity、linear、cat、time、timeCat、log、pow, quantile,quantize -} - -``` - -### size - -将数据值映射到图形的大小上的方法。 - -**注意:**  - -不同图层的 size 的含义有所差别: - -- point 图形的 size 影响点的半径大小和高度; - -- line, arc, path 中的 size 影响线的粗细,和高度; - -- polygon size 影响的是高度 - - - -```javascript -pointLayer.size(10); // 常量 -pointLayer.size('type'); // 使用字段映射到大小 -pointLayer.size('type', [ 0, 10 ]); // 使用字段映射到大小,并指定最大值和最小值 -pointLayer.size('type', (type) => { // 回调函数 - if(type === 'a') { - return 10; - } - return 5; -}); -``` - - -#### size(value) - -传入数字常量,如 `pointLayer.size(20)` - -#### size(field) -根据 field 字段的值映射大小,使用默认的`最大值 max:10` 和`最小值 min: 1`。 - -#### size(field, callback) -使用回调函数控制图形大小。 - -- `callback`: function 回调函数。 - -```javascript -pointLayer.size('age', (value) => { - if(value === 1) { - return 5; - } - return 10; -}); -``` - -### color - -将数据值映射到图形的颜色上的方法。 - -```javascript -layer.color('red'); // 常量颜色 -layer.color('type'); // 对 type 字段进行映射,使用内置的颜色 -layer.color('type', [ 'red', 'blue' ]) // 指定颜色 -layer.color('type', (type) => { // 通过回调函数 - if (type === 'a') { - return 'red'; - } - return 'blue'; -}); -layer.color('type*value', (type, value) => { //多个参数,通过回调函数 - if (type === 'a' && value > 100) { - return 'red'; - } - return 'blue'; -}); -``` - - -#### color(value) - - -参数:`value` :string -只支持接收一个参数,value 可以是: - -- 映射至颜色属性的数据源字段名,如果数据源中不存在这个字段名的话,则按照常量进行解析,这个时候会使用 L7 默认提供的颜色。 - -- 也可以直接指定某一个具体的颜色值 color,如 '#fff', 'white','rgba(255,0,0,0.5)' ,rgb(255,0,1) 等。 - - -示例 -```javascript -layer.color('name') // 映射数据字段 -layer.color('white') // 指定颜色 -``` - - -#### color(field, colors) - -参数: - -- `field`: stringfield 为映射至颜色属性的数据源字段名,也支持指定多个参数。 - --  `colors`: string | array | function - - -colors 的参数有以下情况: 如果为空,即未指定颜色的数组,那么使用内置的全局的颜色;如果需要指定颜色,则需要以数组格式传入,那么分类的颜色按照数组中的颜色确定。对于颜色的分配顺序。 - -```javascript -layer.color('name'); // 使用默认的颜色 -layer.color('name', [ 'red', 'blue' ]); // 使用传入的指定颜色 -``` - -- colors 如果是回调函数,则该回调函数的参数为对应字段的数值,具体使用如下,当 color 映射为多个字段时,参数按照字段声明的顺序传入: - - - -```javascript -layer.color('gender', (value) => { - if(value === 1) { - return 'red' - } - return 'blue'; -}); -layer.color('gender*age', (gender, age) => { - if(age === 20 && gender ==' 男' ) { - return 'red' - } - return 'blue'; -}); -``` - -### shape -将数据值映射到图形的形状上的方法。 - -**shape(shape)** - -参数`shape` string - -只支持接收一个参数,指定几何图像对象绘制的形状。下表列出了不同的 图层 几何图形对象支持的 shape 形状 - -| layer类型 | shape类型 | 备注 | -| --- | --- | --- | -| point | 2d:point,circle, square, triangle,hexagon,image,text 3d:circle,triangle,hexagon,square | | -| line | line,arc, arc3d, greatcircle | | -| polygon | fill,line, extrude | | - - -**shape(field, shapes)** - -**shape(field, callback)** - - -### style - -用于配置几何体显示图像属性目前支持以下属性,其他属性会逐步开放 - -- fill - -- opacity  设置透明度 - -- stroke 线填充颜色 - -- strokeWidth 线的宽度 - - -```javascript -layer.style({ - fill:'red', - opacity:0.8, - stroke:'white' -}) -``` - - -### show -图层显示 - -```javascript -layer.show(); -``` - - -### hide - -图层隐藏 - -```javascript -layer.hide(); -``` - - -### fitBounds - -缩放到图层范围 - -```javascript -layer.fitBounds() - -``` \ No newline at end of file diff --git a/docs/API/layer/layer.zh.md b/docs/API/layer/layer.zh.md deleted file mode 100644 index dfefab69a6..0000000000 --- a/docs/API/layer/layer.zh.md +++ /dev/null @@ -1,322 +0,0 @@ ---- -title: Layer -order: 0 ---- -# Layer - - -## 简介 -L7 Layer 接口设计遵循图形语法,在可视表达上 - -语法示例 - -```javascript -new Layer(option) -.source() -.color() -.size() -.shape() -.style() - -``` - - -## 构造函数 - - -## 配置项 - -### visable -图层是否可见   {bool } default true - -### zIndex - 图层绘制顺序,数值越小优先绘制,可以控制图层绘制的上下层级 {int}   default 0 -### minZoom -图层显示最小缩放等级,(0-18)   {number}  default 0 - -### maxZoom - 图层显示最大缩放等级 (0-18)   {number}  default 18 - - -## 鼠标事件 - -beta版当前不支持,正式版会支持 - -```javascript -layer.on('click', (ev)=>{}); // 鼠标左键点击图层事件 -layer.on('dblclick', (ev)=>{}); // 鼠标左键双击图层事件 -layer.on('mousemove', (ev)=>{}); // 鼠标在图层上移动时触发 -layer.on('mouseover', (ev)=>{}); // 鼠标移入图层要素内时触发 -layer.on('mouseout', (ev)=>{}); // 鼠标移出图层要素时触发 -layer.on('mouseup', (ev)=>{}); // 鼠标在图层上单击抬起时触发 -layer.on('mousedown', (ev)=>{}); // 鼠标在图层上单击按下时触发 -layer.on('mouseleave', (ev)=>{}); // 鼠标离开图层要素 -layer.on('rightclick', (ev)=>{}); // 鼠标右键图层要素 - -``` - - -## 方法 - -### source -数据源为layer设置数据 source(data,config) - -- data {geojson|json|csv} - - -      源数据 - -- config  可选 数据源配置项 - - parser 数据解析,默认是解析层geojson - - transforms [transform,transform ]  数据处理转换 可设置多个 - - parser和 transforms [见source文档](https://www.yuque.com/antv/l7/source) - -```javascript -layer.source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms:[ - { - type: 'map', - callback:function(item){ - const [x, y] = item.coordinates; - item.lat = item.lat*1; - item.lng = item.lng*1; - item.v = item.v *1; - item.coordinates = [x*1,y*1]; - return item; - } - - }, - { - type: 'hexagon', - size: 6000, - field:'v', - method:'sum' - } - ] - }) -``` - -### - -### scale - - -cscle('field', scaleConfig) - -(field: string, scaleConfig: object) - -为指定的数据字段进行列定义,返回 layer 实例。 - - - -- `field` 字段名。 - -- `scaleConfig` 列定义配置,对象类型,可配置的属性如下: - -```javascript -{ - type: "linear" // 指定数据类型,可声明的类型为:identity、linear、cat、time、timeCat、log、pow, quantile,quantize -} - -``` - -### size - -将数据值映射到图形的大小上的方法。 - -**注意:**  - -不同图层的 size 的含义有所差别: - -- point 图形的 size 影响点的半径大小和高度; - -- line, arc, path 中的 size 影响线的粗细,和高度; - -- polygon size 影响的是高度 - - - -```javascript -pointLayer.size(10); // 常量 -pointLayer.size('type'); // 使用字段映射到大小 -pointLayer.size('type', [ 0, 10 ]); // 使用字段映射到大小,并指定最大值和最小值 -pointLayer.size('type', (type) => { // 回调函数 - if(type === 'a') { - return 10; - } - return 5; -}); -``` - - -#### size(value) - -传入数字常量,如 `pointLayer.size(20)` - -#### size(field) -根据 field 字段的值映射大小,使用默认的`最大值 max:10` 和`最小值 min: 1`。 - -#### size(field, callback) -使用回调函数控制图形大小。 - -- `callback`: function 回调函数。 - -```javascript -pointLayer.size('age', (value) => { - if(value === 1) { - return 5; - } - return 10; -}); -``` - -### color - -将数据值映射到图形的颜色上的方法。 - -```javascript -layer.color('red'); // 常量颜色 -layer.color('type'); // 对 type 字段进行映射,使用内置的颜色 -layer.color('type', [ 'red', 'blue' ]) // 指定颜色 -layer.color('type', (type) => { // 通过回调函数 - if (type === 'a') { - return 'red'; - } - return 'blue'; -}); -layer.color('type*value', (type, value) => { //多个参数,通过回调函数 - if (type === 'a' && value > 100) { - return 'red'; - } - return 'blue'; -}); -``` - - -#### color(value) - - -参数:`value` :string -只支持接收一个参数,value 可以是: - -- 映射至颜色属性的数据源字段名,如果数据源中不存在这个字段名的话,则按照常量进行解析,这个时候会使用 L7 默认提供的颜色。 - -- 也可以直接指定某一个具体的颜色值 color,如 '#fff', 'white','rgba(255,0,0,0.5)' ,rgb(255,0,1) 等。 - - -示例 -```javascript -layer.color('name') // 映射数据字段 -layer.color('white') // 指定颜色 -``` - - -#### color(field, colors) - -参数: - -- `field`: stringfield 为映射至颜色属性的数据源字段名,也支持指定多个参数。 - --  `colors`: string | array | function - - -colors 的参数有以下情况: 如果为空,即未指定颜色的数组,那么使用内置的全局的颜色;如果需要指定颜色,则需要以数组格式传入,那么分类的颜色按照数组中的颜色确定。对于颜色的分配顺序。 - -```javascript -layer.color('name'); // 使用默认的颜色 -layer.color('name', [ 'red', 'blue' ]); // 使用传入的指定颜色 -``` - -- colors 如果是回调函数,则该回调函数的参数为对应字段的数值,具体使用如下,当 color 映射为多个字段时,参数按照字段声明的顺序传入: - - - -```javascript -layer.color('gender', (value) => { - if(value === 1) { - return 'red' - } - return 'blue'; -}); -layer.color('gender*age', (gender, age) => { - if(age === 20 && gender ==' 男' ) { - return 'red' - } - return 'blue'; -}); -``` - -### shape -将数据值映射到图形的形状上的方法。 - -**shape(shape)** - -参数`shape` string - -只支持接收一个参数,指定几何图像对象绘制的形状。下表列出了不同的 图层 几何图形对象支持的 shape 形状 - -| layer类型 | shape类型 | 备注 | -| --- | --- | --- | -| point | 2d:point,circle, square, triangle,hexagon,image,text 3d:circle,triangle,hexagon,square | | -| line | line,arc, arc3d, greatcircle | | -| polygon | fill,line, extrude | | - - -**shape(field, shapes)** - -**shape(field, callback)** - - -### style - -用于配置几何体显示图像属性目前支持以下属性,其他属性会逐步开放 - -- fill - -- opacity  设置透明度 - -- stroke 线填充颜色 - -- strokeWidth 线的宽度 - - -```javascript -layer.style({ - fill:'red', - opacity:0.8, - stroke:'white' -}) -``` - - -### show -图层显示 - -```javascript -layer.show(); -``` - - -### hide - -图层隐藏 - -```javascript -layer.hide(); -``` - - -### fitBounds - -缩放到图层范围 - -```javascript -layer.fitBounds() - -``` \ No newline at end of file diff --git a/docs/API/layer/linelayer.en.md b/docs/API/layer/linelayer.en.md deleted file mode 100644 index 90d7b56a43..0000000000 --- a/docs/API/layer/linelayer.en.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: LineLayer -order: 2 ---- -## 线图层 - -### shape - -线图层支持4种 shape - -- line 绘制路径图, -- arc 绘制弧线 通过贝塞尔曲线算法技术弧线 -- greatcircle 大圆航线,地图两个点的最近距离不是两个点连线,而是大圆航线 -- arc3d 3d弧线地图 3D视角 - -⚠️ 弧线只需要设置起始点坐标即可 - -``` - new LineLayer() - .source(data, { - parser: { - type: 'csv', - x: 'lng1', - y: 'lat1', - x1: 'lng2', - y1: 'lat2', - }, - }) -``` - -如果geojson 数据绘制弧线图 coordinates 第一对坐标为起点,第二对为终点 -``` -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": {}, - "geometry": { - "type": "LineString", - "coordinates": [ - [ - 106.5234375, - 57.51582286553883 - ], - [ - 136.40625, - 61.77312286453146 - ] - ] - } - } - ] -} - -``` - -### size - -线图层 可以设置高度 - -- size 类型为number 则表示 line的宽度 -- size 类型为 [number , number] 分别表示宽度和高度 - -```javascript - -lineLayer.size(1); // 线的宽度为 1 -lineLayer.size([1,2]); // 宽度为1,高度2 - -``` - - diff --git a/docs/API/layer/linelayer.zh.md b/docs/API/layer/linelayer.zh.md deleted file mode 100644 index 90d7b56a43..0000000000 --- a/docs/API/layer/linelayer.zh.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: LineLayer -order: 2 ---- -## 线图层 - -### shape - -线图层支持4种 shape - -- line 绘制路径图, -- arc 绘制弧线 通过贝塞尔曲线算法技术弧线 -- greatcircle 大圆航线,地图两个点的最近距离不是两个点连线,而是大圆航线 -- arc3d 3d弧线地图 3D视角 - -⚠️ 弧线只需要设置起始点坐标即可 - -``` - new LineLayer() - .source(data, { - parser: { - type: 'csv', - x: 'lng1', - y: 'lat1', - x1: 'lng2', - y1: 'lat2', - }, - }) -``` - -如果geojson 数据绘制弧线图 coordinates 第一对坐标为起点,第二对为终点 -``` -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": {}, - "geometry": { - "type": "LineString", - "coordinates": [ - [ - 106.5234375, - 57.51582286553883 - ], - [ - 136.40625, - 61.77312286453146 - ] - ] - } - } - ] -} - -``` - -### size - -线图层 可以设置高度 - -- size 类型为number 则表示 line的宽度 -- size 类型为 [number , number] 分别表示宽度和高度 - -```javascript - -lineLayer.size(1); // 线的宽度为 1 -lineLayer.size([1,2]); // 宽度为1,高度2 - -``` - - diff --git a/docs/API/layer/pointlayer.en.md b/docs/API/layer/pointlayer.en.md deleted file mode 100644 index 340d0d39d3..0000000000 --- a/docs/API/layer/pointlayer.en.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: PointLayer -order: 1 ---- -# PointLayer - - -## 简介 -点数据的展示,数据源支持JSON,GeoJSON,CSV 三种数据格式。 - -shape 支持 - -**3D类型 柱图** - -``` -'cylinder', 'triangleColumn', 'hexagonColumn', 'squareColumn' - -``` - -**2D 符号图** - -``` -'circle', 'square', 'hexagon', 'triangle', 'pentagon', 'octogon', 'hexagram','rhombus', 'vesica', - -``` - -**图片标注** - -通过 ```Scene.addImage()``` 可以添加图片资源, - - -### 代码示例 - - -#### 基本图形显示示例 - -```javascript -import { PointLayer } from "@antv/l7" - -const layer = PointLayer({ - zIndex: 2 - }) - .source(data.list, { - type: 'array', - x: 'j', - y: 'w', - }) - .shape('cylinder') - .size('t',(level)=> { - return [4,4,(level+40)]; - }) - .color('t', ["#002466","#105CB3","#2894E0","#CFF6FF","#FFF5B8","#FFAB5C","#F27049","#730D1C"]) - -``` - - -#### 符号图 - -使用图片添加地图标注 - -```javascript - -scene.addImage('local', 'https://gw.alipayobjects.com/zos/rmsportal/xZXhTxbglnuTmZEwqQrE.png'); - - -const layer = new PointLayer({ - zIndex: 4 - }) - .source(city) - .size(20.0) - .shape('local') - .color('#0D408C') - -``` - - - diff --git a/docs/API/layer/pointlayer.zh.md b/docs/API/layer/pointlayer.zh.md deleted file mode 100644 index 1381b60128..0000000000 --- a/docs/API/layer/pointlayer.zh.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: PointLayer -order: 1 ---- - -# PointLayer - - -## 简介 -点数据的展示,数据源支持JSON,GeoJSON,CSV 三种数据格式。 - -shape 支持 - -**3D类型 柱图** - -``` -'cylinder', 'triangleColumn', 'hexagonColumn', 'squareColumn' - -``` - -**2D 符号图** - -``` -'circle', 'square', 'hexagon', 'triangle', 'pentagon', 'octogon', 'hexagram','rhombus', 'vesica', - -``` - -**图片标注** - -通过 ```Scene.addImage()``` 可以添加图片资源, - - -### 代码示例 - - -#### 基本图形显示示例 - -```javascript -import { PointLayer } from "@antv/l7" - -const layer = PointLayer({ - zIndex: 2 - }) - .source(data.list, { - type: 'array', - x: 'j', - y: 'w', - }) - .shape('cylinder') - .size('t',(level)=> { - return [4,4,(level+40)]; - }) - .color('t', ["#002466","#105CB3","#2894E0","#CFF6FF","#FFF5B8","#FFAB5C","#F27049","#730D1C"]) - -``` - - -#### 符号图 - -使用图片添加地图标注 - -```javascript - -scene.addImage('local', 'https://gw.alipayobjects.com/zos/rmsportal/xZXhTxbglnuTmZEwqQrE.png'); - - -const layer = new PointLayer({ - zIndex: 4 - }) - .source(city) - .size(20.0) - .shape('local') - .color('#0D408C') - -``` - - - diff --git a/docs/API/layer/polygonlayer.en.md b/docs/API/layer/polygonlayer.en.md deleted file mode 100644 index bbfe14d1a3..0000000000 --- a/docs/API/layer/polygonlayer.en.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: PolygonLayer -order: 3 ---- -# 填充图 - -绘制 2D 多边形以及沿 Z 轴拉伸后的 3D 图形。 - -### shape - -填充图支持3种shape - -- fill 绘制填充面 不支持数据映射 -- line 绘制填充图描边 不支持数据映射 -- extrude 对填充图3D拉伸 不支持数据映射 - -``` javascript - PolyonLayer.shape('fill'); - PolyonLayer.shape('line').size(1); // size 表示线宽度 - PolyonLayer.shape('extrude'); // size 表示高度 - -``` - -其他方法,事件,同基类 [Layer](/zh/docs/api/layer/layer) - - diff --git a/docs/API/layer/polygonlayer.zh.md b/docs/API/layer/polygonlayer.zh.md deleted file mode 100644 index bbfe14d1a3..0000000000 --- a/docs/API/layer/polygonlayer.zh.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: PolygonLayer -order: 3 ---- -# 填充图 - -绘制 2D 多边形以及沿 Z 轴拉伸后的 3D 图形。 - -### shape - -填充图支持3种shape - -- fill 绘制填充面 不支持数据映射 -- line 绘制填充图描边 不支持数据映射 -- extrude 对填充图3D拉伸 不支持数据映射 - -``` javascript - PolyonLayer.shape('fill'); - PolyonLayer.shape('line').size(1); // size 表示线宽度 - PolyonLayer.shape('extrude'); // size 表示高度 - -``` - -其他方法,事件,同基类 [Layer](/zh/docs/api/layer/layer) - - diff --git a/docs/API/quickstart.en.md b/docs/API/quickstart.en.md deleted file mode 100644 index 91a02644b5..0000000000 --- a/docs/API/quickstart.en.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: quickStart -order: 0 -redirect_from: - - /en/docs/tutorial ---- -# 使用方法 - -L7 提供三种使用方式:CDN、Submodule 以及 React 组件。 - -## 通过 CDN 使用 - -首先在 `` 中引入 L7 CDN 版本的 JS 和 CSS 文件: -```html - - - - -``` - -如果使用 Mapbox,还需要额外引入 Mapbox 的 JS 和 CSS 文件,这一步可以参考 [Mapbox 文档](https://docs.mapbox.com/mapbox-gl-js/overview/#quickstart): -```html - - - - - -``` -⚠️高德采用异步加载,因此不需要引入任何额外静态文件。 - -然后在 `` 中定义一个容器并设置一个 `id`。通过全局 `L7` 这个命名空间可以获取场景 `L7.Scene` 和图层 `L7.PolygonLayer`: -⚠️需要获取高德或者 Mapbox 的使用 token 并传入 `L7.Scene` 的构造函数,获取方式如下: -* 高德地图开发者 Key [申请方法](https://lbs.amap.com/dev/key/) -* [Mapbox Access Tokens](https://docs.mapbox.com/help/how-mapbox-works/access-tokens/#creating-and-managing-access-tokens) - -## 通过 Submodule 使用 - -首先通过 `npm/yarn` 安装 `@l7/scene` 和 `@l7/layers`: -```bash -npm install --save @l7/scene @l7/layers -// or -yarn add @l7/scene @l7/layers -``` - -然后就可以使用其中包含的场景和各类图层: -```typescript -import { Scene } from '@l7/scene'; -import { PolygonLayer } from '@l7/layers'; - -(async function() { - // 获取数据 - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - - // 创建场景 - const scene = new Scene({ - center: [110.19382669582967, 50.258134], - id: 'map', - pitch: 0, - style: 'dark', - type: 'amap', - zoom: 3, - token: 'pg.xxx', // 高德或者 Mapbox 的 token - }); - - // 创建图层 - const layer = new PolygonLayer({}); - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - // 添加图层到场景中 - scene.addLayer(layer); - - // 渲染场景 - scene.render(); -})(); -``` - -最后在 `` 中引入 L7 CDN 版本的 CSS 文件: -```html - - - -``` - -L7 目前的文档都通过这种方式使用,可以参考项目中的 stories: -* [高德地图](https://github.com/antvis/L7/blob/next/stories/MapAdaptor/components/AMap.tsx) -* [Mapbox](https://github.com/antvis/L7/blob/next/stories/MapAdaptor/components/Mapbox.tsx) - - -## [WIP] React - -React 组件待开发,目前可以暂时以 Submodule 方式使用: -```tsx -import { Scene } from '@l7/scene'; -import { PolygonLayer } from '@l7/layers'; -import * as React from 'react'; - -export default class AMap extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - center: [110.19382669582967, 50.258134], - id: 'map', - pitch: 0, - style: 'dark', - type: 'amap', - zoom: 3, - token: 'pg.xxx', // 高德或者 Mapbox 的 token - }); - const layer = new PolygonLayer({}); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - scene.addLayer(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} -``` - -⚠️组件 Unmount 时需要通过 `scene.destroy()` 手动销毁场景。 - diff --git a/docs/API/quickstart.zh.md b/docs/API/quickstart.zh.md deleted file mode 100644 index 447a6baadc..0000000000 --- a/docs/API/quickstart.zh.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: 快速上手 -order: 0 -redirect_from: - - /zh/docs/tutorial ---- -# 使用方法 - -L7 提供三种使用方式:CDN、Submodule 以及 React 组件。 - -## 通过 CDN 使用 - -首先在 `` 中引入 L7 CDN 版本的 JS 和 CSS 文件: -```html - - - - -``` - -如果使用 Mapbox,还需要额外引入 Mapbox 的 JS 和 CSS 文件,这一步可以参考 [Mapbox 文档](https://docs.mapbox.com/mapbox-gl-js/overview/#quickstart): -```html - - - - - -``` -⚠️高德采用异步加载,因此不需要引入任何额外静态文件。 - -然后在 `` 中定义一个容器并设置一个 `id`。通过全局 `L7` 这个命名空间可以获取场景 `L7.Scene` 和图层 `L7.PolygonLayer`: -⚠️需要获取高德或者 Mapbox 的使用 token 并传入 `L7.Scene` 的构造函数,获取方式如下: -* 高德地图开发者 Key [申请方法](https://lbs.amap.com/dev/key/) -* [Mapbox Access Tokens](https://docs.mapbox.com/help/how-mapbox-works/access-tokens/#creating-and-managing-access-tokens) - -## 通过 Submodule 使用 - -首先通过 `npm/yarn` 安装 `@l7/scene` 和 `@l7/layers`: -```bash -npm install --save @l7/scene @l7/layers -// or -yarn add @l7/scene @l7/layers -``` - -然后就可以使用其中包含的场景和各类图层: -```typescript -import { Scene } from '@l7/scene'; -import { PolygonLayer } from '@l7/layers'; - -(async function() { - // 获取数据 - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - - // 创建场景 - const scene = new Scene({ - center: [110.19382669582967, 50.258134], - id: 'map', - pitch: 0, - style: 'dark', - type: 'amap', - zoom: 3, - token: 'pg.xxx', // 高德或者 Mapbox 的 token - }); - - // 创建图层 - const layer = new PolygonLayer({}); - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - // 添加图层到场景中 - scene.addLayer(layer); - - // 渲染场景 - scene.render(); -})(); -``` - -最后在 `` 中引入 L7 CDN 版本的 CSS 文件: -```html - - - -``` - -L7 目前的文档都通过这种方式使用,可以参考项目中的 stories: -* [高德地图](https://github.com/antvis/L7/blob/next/stories/MapAdaptor/components/AMap.tsx) -* [Mapbox](https://github.com/antvis/L7/blob/next/stories/MapAdaptor/components/Mapbox.tsx) - - -## [WIP] React - -React 组件待开发,目前可以暂时以 Submodule 方式使用: -```tsx -import { Scene } from '@l7/scene'; -import { PolygonLayer } from '@l7/layers'; -import * as React from 'react'; - -export default class AMap extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - center: [110.19382669582967, 50.258134], - id: 'map', - pitch: 0, - style: 'dark', - type: 'amap', - zoom: 3, - token: 'pg.xxx', // 高德或者 Mapbox 的 token - }); - const layer = new PolygonLayer({}); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - scene.addLayer(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} -``` - -⚠️组件 Unmount 时需要通过 `scene.destroy()` 手动销毁场景。 - diff --git a/docs/API/source/geojson.en.md b/docs/API/source/geojson.en.md deleted file mode 100644 index d6949d2fc5..0000000000 --- a/docs/API/source/geojson.en.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: geojson -order: 1 ---- - - -# geojson 数据介绍 - - -## 简介 - -GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。 - -[geojson详细文档]() - -## Geojson相关的JS库 - -### 地理统计分析工具 - -[turfjs](http://turfjs.org/):  地理数据计算,处理,统计,分析的Javascript 库 - - -### 在线工具: - -[http://geojson.io/](http://geojson.io/)    可以在线查看,绘制,修改GeoJSON数据 - -[https://mapshaper.org/](https://mapshaper.org/) 可以查看较大的geojson,还能够简化GeoJSON数据 diff --git a/docs/API/source/geojson.zh.md b/docs/API/source/geojson.zh.md deleted file mode 100644 index d6949d2fc5..0000000000 --- a/docs/API/source/geojson.zh.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: geojson -order: 1 ---- - - -# geojson 数据介绍 - - -## 简介 - -GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。 - -[geojson详细文档]() - -## Geojson相关的JS库 - -### 地理统计分析工具 - -[turfjs](http://turfjs.org/):  地理数据计算,处理,统计,分析的Javascript 库 - - -### 在线工具: - -[http://geojson.io/](http://geojson.io/)    可以在线查看,绘制,修改GeoJSON数据 - -[https://mapshaper.org/](https://mapshaper.org/) 可以查看较大的geojson,还能够简化GeoJSON数据 diff --git a/docs/API/source/source.en.md b/docs/API/source/source.en.md deleted file mode 100644 index 5487b1d723..0000000000 --- a/docs/API/source/source.en.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: Source -order: 0 ---- - - -# Source - - -### 概述 - -source 地理数据处理模块,主要包含数据解析(parser),和数据处理(transform); - -**parser:** - -不同数据类型处理成统一数据格式。矢量数据包括 GeoJON, CSV,Json等不同数据格式,栅格数据,包括Raster,Image数据。将来还会支持瓦片格式数据。 - -**transform** - -数据转换,数据统计,网格布局,数据聚合等数据操作。 - - -## API - -### parser - -空间数据分矢量数据和栅格数据两大类 - -- 矢量数据 支持 csv,geojson,json 三种数据类型 - -- 栅格数据 支持 image,Raster - - - -#### geojson - -[geojson](https://www.yuque.com/antv/l7/dm2zll) 数据为默认数据格式,可以 - -不需要设置parser 参数 - -```javascript -layer.source(data) -``` - - -#### json - -json 不是标准的地理数据结构,因此需要设置对应的经纬度字段 - -**点数据** - -x: 经度字段 - -y: 纬度字段 - -```javascript - -const data = [{ - lng:112.345, - lat:30.455, - value: 10 - },{ -  lng:114.345, - lat:31.455, - value: 10 -  } -] - -layer.source( - data, - { - parser: { - type:'json', - x:'lng', - y:'lat', - } -}) -``` - -**线段数据** - - type: json - -这里的直线表示有两个点组成的线段,主要绘制弧线的时候比较常用,只需指定线段的起始点坐标 - - x:经度字段 起点经度 - y:纬度字段 起点纬度 - x1:经度字段 终点经度 - y1:纬度字段 终点纬度 - -```javascript -const data = [{ - lng1:112.345, - lat1:30.455, -   lng2:112.345, - lat2:30.455, - value: 10 - },{ -  lng1:114.345, - lat1:31.455, -   lng2:112.345, - lat2:30.455, - value: 10 -  } -]; - -layer.source( - data, - { - parser:{ - type:'json', - x:'lng1', - y:'lat1' , -     x1:'lng1', - y1:'lat2' , - } - } -}) -``` - -**面数据** - -需要指定coordinates 字段, coordinates据格式 - -**注意面数据 coord  是三层数据结构** - -```javascript - -[ { - type: "Polygon", - 'geometryCoord': [ - [ - [ - 115.1806640625, - 30.637912028341123 - ], - [ - 114.9609375, - 29.152161283318915 - ], - [ - 117.79541015625001, - 27.430289738862594 - ], - [ - 118.740234375, - 29.420460341013133 - ], - [ - 117.46582031249999, - 31.50362930577303 - ], - [ - 115.1806640625, - 30.637912028341123 - ] - ] - ] - } - ] - - layer.source(data,{ - parser:{ - type:'json', - coordinates:'geometryCoord' - } - }) -``` - - - - -#### csv -点,线数据配置项同json数据类型 - -```javascript -layer.source( - data, - { - parser:{ - type:'csv', - x:'lng1', - y:'lat1' , -     x1:'lng1', - y1:'lat2' , - } -}) -``` - -**栅格数据类型**** - -#### image - 根据图片的经纬度范围,将图片添加到地图上。 配置项 - --  type: image --  extent: 图像的经纬度范围 [] - -```javascript -layer.source('https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg',{ - parser:{ - type:'image', - extent: [ 121.1680, 30.2828, 121.3840, 30.4219 ] - } - - }) -``` -  - -#### raster -栅格数据类型,主要表示遥感数据类型data 栅格数据的二维矩阵数据parser 配置项 - -- type  raster -- width  数据宽度二维矩阵 columns  -- height 数据高度 -- min 数据最大值 -- max 数据最小值 -- extent 经纬度范围 - -```javascript - source(values, { - parser: { - type: 'raster', - width: n, - height: m, - min: 0, - max: 8000, - extent: [ 73.482190241, 3.82501784112, 135.106618732, 57.6300459963 ] - } - }) -``` - - -### transforms -目前支持三种数据处理方法 map,grid,hexagon transform配置项 - -- type 数据处理类型 --  tansform cfg  数据处理配置项 - - -#### map -数据处理,支持自定义callback函数 - -- callback:function 回调函数 - -```javascript - layer.source(data, { - transforms:[ - { - type: 'map', - callback:function(item){ - const [x, y] = item.coordinates; - item.lat = item.lat*1; - item.lng = item.lng*1; - item.v = item.v *1; - item.coordinates = [x*1,y*1]; - return item; - } - - }, -``` - - -#### grid - -生成方格网布局,根据数据字段统计,主要在网格热力图中使用 - --  type: 'grid', --  size: 网格半径 --  field: 数据统计字段 --  method:聚合方法  count,max,min,sum,mean5个统计维度 - -```javascript - layer.source(data, { - transforms:[ - { - type: 'grid', - size: 15000, - field:'v', - method:'sum' - } - ] - } -``` - - -#### hexagon -生成六边形网格布局,根据数据字段统计 - --  type: 'hexagon', --  size: 网格半径 --  field: 数据统计字段 --  method:聚合方法  count,max,min,sum,mean5个统计维度 - - -``` - - - diff --git a/docs/API/source/source.zh.md b/docs/API/source/source.zh.md deleted file mode 100644 index e094d1f6a9..0000000000 --- a/docs/API/source/source.zh.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: Source -order: 0 ---- - - -# Source - - -### 概述 - -source 地理数据处理模块,主要包含数据解析(parser),和数据处理(transform); - -**parser:** - -不同数据类型处理成统一数据格式。矢量数据包括 GeoJON, CSV,Json等不同数据格式,栅格数据,包括Raster,Image数据。将来还会支持瓦片格式数据。 - -**transform:** - -数据转换,数据统计,网格布局,数据聚合等数据操作。 - - -## API - -### parser - -空间数据分矢量数据和栅格数据两大类 - -- 矢量数据 支持 csv,geojson,json 三种数据类型 - -- 栅格数据 支持 image,Raster - - - -#### geojson - -[geojson](https://www.yuque.com/antv/l7/dm2zll) 数据为默认数据格式,可以 - -不需要设置parser 参数 - -```javascript -layer.source(data); -``` - - -#### json - -json 不是标准的地理数据结构,因此需要设置对应的经纬度字段 - -**点数据** - -x: 经度字段 - -y: 纬度字段 - -```javascript - -const data = [{ - lng:112.345, - lat:30.455, - value: 10 - },{ -  lng:114.345, - lat:31.455, - value: 10 -  } -] - -layer.source( - data, - { - parser: { - type:'json', - x:'lng', - y:'lat', - } -}) -``` - -**线段数据** - - type: json - -这里的直线表示有两个点组成的线段,主要绘制弧线的时候比较常用,只需指定线段的起始点坐标 - - x:经度字段 起点经度 - y:纬度字段 起点纬度 - x1:经度字段 终点经度 - y1:纬度字段 终点纬度 - -```javascript -const data = [{ - lng1:112.345, - lat1:30.455, -   lng2:112.345, - lat2:30.455, - value: 10 - },{ -  lng1:114.345, - lat1:31.455, -   lng2:112.345, - lat2:30.455, - value: 10 -  } -]; - -layer.source( - data, - { - parser:{ - type:'json', - x:'lng1', - y:'lat1' , -     x1:'lng1', - y1:'lat2' , - } - } -}) -``` - -**面数据** - -需要指定coordinates 字段, coordinates据格式 - -**注意面数据 coord  是三层数据结构** - -```javascript - -[ { - type: "Polygon", - 'geometryCoord': [ - [ - [ - 115.1806640625, - 30.637912028341123 - ], - [ - 114.9609375, - 29.152161283318915 - ], - [ - 117.79541015625001, - 27.430289738862594 - ], - [ - 118.740234375, - 29.420460341013133 - ], - [ - 117.46582031249999, - 31.50362930577303 - ], - [ - 115.1806640625, - 30.637912028341123 - ] - ] - ] - } - ]; - - layer.source(data,{ - parser:{ - type:'json', - coordinates:'geometryCoord' - } - }); -``` - - - - -#### csv -点,线数据配置项同json数据类型 - -```javascript -layer.source( - data, - { - parser:{ - type:'csv', - x:'lng1', - y:'lat1' , -     x1:'lng1', - y1:'lat2' , - } -}) -``` - -**栅格数据类型**** - -#### image - 根据图片的经纬度范围,将图片添加到地图上。 配置项 - --  type: image --  extent: 图像的经纬度范围 [] - -```javascript -layer.source('https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg',{ - parser:{ - type:'image', - extent: [ 121.1680, 30.2828, 121.3840, 30.4219 ] - } - }); -``` -  - -#### raster -栅格数据类型,主要表示遥感数据类型data 栅格数据的二维矩阵数据parser 配置项 - -- type  raster -- width  数据宽度二维矩阵 columns  -- height 数据高度 -- min 数据最大值 -- max 数据最小值 -- extent 经纬度范围 - -```javascript - source(values, { - parser: { - type: 'raster', - width: n, - height: m, - min: 0, - max: 8000, - extent: [ 73.482190241, 3.82501784112, 135.106618732, 57.6300459963 ] - } - }); -``` - - -### transforms - -目前支持三种数据处理方法 map,grid,hexagon transform配置项 - -- type 数据处理类型 --  tansform cfg  数据处理配置项 - - -#### map -数据处理,支持自定义callback函数 - -- callback:function 回调函数 - -```javascript - layer.source(data, { - transforms:[ - { - type: 'map', - callback:function(item){ - const [x, y] = item.coordinates; - item.lat = item.lat*1; - item.lng = item.lng*1; - item.v = item.v *1; - item.coordinates = [x*1,y*1]; - return item; - } - } - ] - }); -``` - - -#### grid - -生成方格网布局,根据数据字段统计,主要在网格热力图中使用 - --  type: 'grid', --  size: 网格半径 --  field: 数据统计字段 --  method:聚合方法  count,max,min,sum,mean5个统计维度 - -```javascript - layer.source(data, { - transforms:[ - { - type: 'grid', - size: 15000, - field:'v', - method:'sum' - } - ], - }) -``` - - -#### hexagon -生成六边形网格布局,根据数据字段统计 - --  type: 'hexagon', --  size: 网格半径 --  field: 数据统计字段 --  method:聚合方法  count,max,min,sum,mean5个统计维度 - -``` - - - diff --git a/docs/manual/tutorial/data.en.md b/docs/manual/tutorial/data.en.md deleted file mode 100644 index f6ddefc5df..0000000000 --- a/docs/manual/tutorial/data.en.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: data -order: 1 ---- - -## 数据 - -目前L7支持的数据格式有GeoJson,CSV,JSon Image - -GeoJSON 支持点、线、面,等所有的空间数据格式。
CSV 支持,点,线段,弧线的支持。
JSON 支持简单的点、线,面,不支持多点,多线的,多面数据格式。 - - -## GeoJSON - -> GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。 - - - -```json -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": {}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 110.478515625, - 32.76880048488168 - ], - [ - 117.68554687499999, - 32.76880048488168 - ], - [ - 117.68554687499999, - 37.64903402157866 - ], - [ - 110.478515625, - 37.64903402157866 - ], - [ - 110.478515625, - 32.76880048488168 - ] - ] - ] - } - } - ] -} -``` - -## 地理统计分析工具 -[turfjs](http://turfjs.org/):  地理数据计算,处理,统计,分析的Javascript 库 - -## 在线工具 - -[http://geojson.io/](http://geojson.io/)    可以在线查看,绘制,修改GeoJSON数据 - -[https://mapshaper.org/](https://mapshaper.org/)  可以查看较大的geojson,还能够简化GeoJSON数据 diff --git a/docs/manual/tutorial/data.zh.md b/docs/manual/tutorial/data.zh.md deleted file mode 100644 index 781c763b24..0000000000 --- a/docs/manual/tutorial/data.zh.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: 数据 -order: 1 ---- - -## 数据 - -目前L7支持的数据格式有GeoJson,CSV,JSon Image - -GeoJSON 支持点、线、面,等所有的空间数据格式。
CSV 支持,点,线段,弧线的支持。
JSON 支持简单的点、线,面,不支持多点,多线的,多面数据格式。 - - -## GeoJSON - -> GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。 - - - -```json -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": {}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 110.478515625, - 32.76880048488168 - ], - [ - 117.68554687499999, - 32.76880048488168 - ], - [ - 117.68554687499999, - 37.64903402157866 - ], - [ - 110.478515625, - 37.64903402157866 - ], - [ - 110.478515625, - 32.76880048488168 - ] - ] - ] - } - } - ] -} -``` - -## 地理统计分析工具 -[turfjs](http://turfjs.org/):  地理数据计算,处理,统计,分析的Javascript 库 - -## 在线工具 - -[http://geojson.io/](http://geojson.io/)    可以在线查看,绘制,修改GeoJSON数据 - -[https://mapshaper.org/](https://mapshaper.org/)  可以查看较大的geojson,还能够简化GeoJSON数据 - -## 数据资源 - -#### 全国行政区划边界  -[支持 geojson, svg下载](http://datav.aliyun.com/tools/atlas/#&lat=33.50475906922609&lng=104.32617187499999&zoom=4) - -#### HighCharts 全球行政区划数据集 - -[https://img.hcharts.cn/mapdata/](https://img.hcharts.cn/mapdata/) diff --git a/examples/gallery/basic/demo/arcCircle.js b/examples/gallery/basic/demo/arcCircle.js deleted file mode 100644 index 1e3c6cf053..0000000000 --- a/examples/gallery/basic/demo/arcCircle.js +++ /dev/null @@ -1,33 +0,0 @@ -import { LineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'dark', - center: [ 107.77791556935472, 35.443286920228644 ], - zoom: 2.9142882493605033 -}); -window.mapScene = scene; -fetch('https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt') - .then(res => res.text()) - .then(data => { - const layer = new LineLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng1', - y: 'lat1', - x1: 'lng2', - y1: 'lat2' - } - }) - .size(1) - .shape('arc') - .color('#8C1EB2') - .style({ - opacity: 0.8, - blur: 0.99 - }); - scene.addLayer(layer); - }); diff --git a/examples/gallery/basic/demo/bus_dark.js b/examples/gallery/basic/demo/bus_dark.js deleted file mode 100644 index bac741e028..0000000000 --- a/examples/gallery/basic/demo/bus_dark.js +++ /dev/null @@ -1,45 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - center: [ 103.83735604457024, 1.360253881403068 ], - pitch: 4.00000000000001, - zoom: 10.210275860702593, - rotation: 19.313180925794313, - type: 'mapbox', - style: 'dark' -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/ee07641d-5490-4768-9826-25862e8019e1.json' -) - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data, { - parser: { - coordinates: 'path', - type: 'json' - } - }) - .size('level', level => { - return [ 1.0, level * 1 ]; - }) - .shape('line') - .color( - 'level', - [ - '#312B60', - '#4A457E', - '#615C99', - '#816CAD', - '#A67FB5', - '#C997C7', - '#DEB8D4', - '#F5D4E6', - '#FAE4F1', - '#FFF3FC' - ].slice(0, 8) - ); - scene.addLayer(layer); - }); diff --git a/examples/gallery/basic/demo/column_dark.js b/examples/gallery/basic/demo/column_dark.js deleted file mode 100644 index 42a1d405f8..0000000000 --- a/examples/gallery/basic/demo/column_dark.js +++ /dev/null @@ -1,44 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; - -const scene = new Scene({ - id: 'map', - pitch: 35.210526315789465, - type: 'amap', - style: 'dark', - center: [ 104.288144, 31.239692 ], - zoom: 4.4 -}); -window.mapScene = scene; -fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json') - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data.list, { - parser: { - type: 'json', - x: 'j', - y: 'w' - } - }) - .shape('cylinder') - .size('t', function(level) { - return [ 1, 2, level * 2 + 20 ]; - }) - .color('t', [ - '#094D4A', - '#146968', - '#1D7F7E', - '#289899', - '#34B6B7', - '#4AC5AF', - '#5FD3A6', - '#7BE39E', - '#A1EDB8', - '#CEF8D6' - ]) - .style({ - opacity: 1.0 - }); - scene.addLayer(pointLayer); - }); diff --git a/examples/gallery/basic/demo/light.js b/examples/gallery/basic/demo/light.js deleted file mode 100644 index b82b29bca7..0000000000 --- a/examples/gallery/basic/demo/light.js +++ /dev/null @@ -1,59 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 43, - center: [ 120.13383079335335, 29.651873105004427 ], - zoom: 7.068989519212174, - type: 'mapbox' -}); - -window.mapScene = scene; - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/a1a8158d-6fe3-424b-8e50-694ccf61c4d7.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms: [ - { - type: 'hexagon', - size: 2500, - field: 'v', - method: 'sum' - } - ] - }) - .size('sum', sum => { - return sum * 200; - }) - .shape('hexagonColumn') - .style({ - coverage: 0.8, - angle: 0, - opacity: 1.0 - }) - .color('sum', [ - '#094D4A', - '#146968', - '#1D7F7E', - '#289899', - '#34B6B7', - '#4AC5AF', - '#5FD3A6', - '#7BE39E', - '#A1EDB8', - '#C3F9CC', - '#DEFAC0', - '#ECFFB1' - ]); - scene.addLayer(layer); - }); diff --git a/examples/gallery/basic/demo/meta.json b/examples/gallery/basic/demo/meta.json deleted file mode 100644 index fd3ec679f1..0000000000 --- a/examples/gallery/basic/demo/meta.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "title": { - "zh": "图库", - "en": "Gallery" - }, - "demos": [ - { - "filename": "column_dark.js", - "title": "", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*WkpEQqzuM-oAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "arcCircle.js", - "title": "", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*FTp1Roy34qgAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "bus_dark.js", - "title": "", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*c80NRaMfGLAAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "light.js", - "title": "", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*HxpoRIcBA80AAAAAAAAAAABkARQnAQ" - }, - { - "filename": "point.js", - "title": "", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Xp7iRaORYuIAAAAAAAAAAABkARQnAQ" - } - , - { - "filename": "normal.js", - "title": "", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Kva7R7AimzsAAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/examples/gallery/basic/demo/normal.js b/examples/gallery/basic/demo/normal.js deleted file mode 100644 index 6111b8d699..0000000000 --- a/examples/gallery/basic/demo/normal.js +++ /dev/null @@ -1,30 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - type: 'amap', - style: 'dark', - center: [ 121.417463, 31.215175 ], - pitch: 0, - zoom: 11 -}); -window.mapScene = scene; -fetch('https://gw.alipayobjects.com/os/rmsportal/BElVQFEFvpAKzddxFZxJ.txt') - .then(res => res.text()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data, { - parser: { - type: 'csv', - y: 'lat', - x: 'lng' - } - }) - .size(0.5) - .color('#080298') - .style({ - opacity: 1 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/gallery/basic/demo/point.js b/examples/gallery/basic/demo/point.js deleted file mode 100644 index d9a622c9db..0000000000 --- a/examples/gallery/basic/demo/point.js +++ /dev/null @@ -1,37 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 64.88, - type: 'amap', - style: 'dark', - center: [ 114.060288, 22.53684 ], - zoom: 15.63 -}); -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/513add53-dcb2-4295-8860-9e7aa5236699.json' -) - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data) - .size(2) - .color('h8', [ - '#0A3663', - '#1558AC', - '#3771D9', - '#4D89E5', - '#64A5D3', - '#72BED6', - '#83CED6', - '#A6E1E0', - '#B8EFE2', - '#D7F9F0' - ]) - .style({ - opacity: 1 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/gallery/basic/index.en.md b/examples/gallery/basic/index.en.md deleted file mode 100644 index c779938cb0..0000000000 --- a/examples/gallery/basic/index.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Gallery -order: 0 -redirect_from: - - /en/examples ---- diff --git a/examples/gallery/basic/index.zh.md b/examples/gallery/basic/index.zh.md deleted file mode 100644 index 71b6406985..0000000000 --- a/examples/gallery/basic/index.zh.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Gallery -order: 0 -redirect_from: - - /zh/examples ---- diff --git a/examples/heatmap/grid/demo/china.js b/examples/heatmap/grid/demo/china.js deleted file mode 100644 index d4c8d255f6..0000000000 --- a/examples/heatmap/grid/demo/china.js +++ /dev/null @@ -1,62 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'light', - pitch: 0, - center: [ 107.054293, 35.246265 ], - zoom: 4.056, - type: 'amap' -}); -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/7359a5e9-3c5e-453f-b207-bc892fb23b84.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms: [ - { - type: 'grid', - size: 20000, - field: 'v', - method: 'sum' - } - ] - }) - .size('count', value => { - return value * 0; - }) - .shape('square') - .style({ - coverage: 1, - angle: 0 - }) - .color( - 'count', - [ - '#0B0030', - '#100243', - '#100243', - '#1B048B', - '#051FB7', - '#0350C1', - '#0350C1', - '#0072C4', - '#0796D3', - '#2BA9DF', - '#30C7C4', - '#6BD5A0', - '#A7ECB2', - '#D0F4CA' - ].reverse() - ); - - scene.addLayer(layer); - }); diff --git a/examples/heatmap/grid/demo/grid1.js b/examples/heatmap/grid/demo/grid1.js deleted file mode 100644 index 6e84814be9..0000000000 --- a/examples/heatmap/grid/demo/grid1.js +++ /dev/null @@ -1,53 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 0, - center: [ 110.097892, 33.853662 ], - zoom: 4.056, - type: 'amap' -}); -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/7359a5e9-3c5e-453f-b207-bc892fb23b84.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms: [ - { - type: 'grid', - size: 10000, - field: 'v', - method: 'sum' - } - ] - }) - .size('count', value => { - return value * 0; - }) - .shape('square') - .style({ - coverage: 1, - angle: 0 - }) - .color( - 'count', - [ - '#FF4818', - '#F7B74A', - '#FFF598', - '#FF40F3', - '#9415FF', - '#421EB2' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/grid/demo/heatmap3.js b/examples/heatmap/grid/demo/heatmap3.js deleted file mode 100644 index 7ba761b1b0..0000000000 --- a/examples/heatmap/grid/demo/heatmap3.js +++ /dev/null @@ -1,59 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'light', - pitch: 0, - center: [ 110.097892, 33.853662 ], - zoom: 4.056, - type: 'amap' -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/7359a5e9-3c5e-453f-b207-bc892fb23b84.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms: [ - { - type: 'grid', - size: 20000, - field: 'v', - method: 'sum' - } - ] - }) - .size('count', value => { - return value * 0; - }) - .shape('circle') - .style({ - coverage: 0.9, - angle: 0 - }) - .color( - 'count', - [ - '#8C1EB2', - '#8C1EB2', - '#DA05AA', - '#F0051A', - '#FF2A3C', - '#FF4818', - '#FF4818', - '#FF8B18', - '#F77B00', - '#ED9909', - '#ECC357', - '#EDE59C' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/grid/demo/meta.json b/examples/heatmap/grid/demo/meta.json deleted file mode 100644 index 78fceffda3..0000000000 --- a/examples/heatmap/grid/demo/meta.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "title": { - "zh": "网格热力图", - "en": "heatmap" - }, - "demos": [ - { - "filename": "china.js", - "title": "网格热力图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*anD-Q4u83R0AAAAAAAAAAABkARQnAQ" - }, - { - "filename": "grid1.js", - "title": "", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*tAGKS6EClQ4AAAAAAAAAAABkARQnAQ" - - }, - { - "filename": "heatmap3.js", - "title": "网格布局 圆形", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*6cA0R6us9osAAAAAAAAAAABkARQnAQ" - - }, - { - "filename": "world.js", - "title": "网格热力图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*6danQJDzkyoAAAAAAAAAAABkARQnAQ" - - } - - ] -} diff --git a/examples/heatmap/grid/demo/world.js b/examples/heatmap/grid/demo/world.js deleted file mode 100644 index 3dbd9c88eb..0000000000 --- a/examples/heatmap/grid/demo/world.js +++ /dev/null @@ -1,56 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 0, - center: [ 110.097892, 33.853662 ], - zoom: 4.056, - type: 'amap' -}); - -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/7359a5e9-3c5e-453f-b207-bc892fb23b84.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms: [ - { - type: 'grid', - size: 10000, - field: 'v', - method: 'sum' - } - ] - }) - .size('count', value => { - return value * 0; - }) - .shape('square') - .style({ - coverage: 1, - angle: 0 - }) - .color( - 'count', - [ - '#FF3417', - '#FF7412', - '#FFB02A', - '#FFE754', - '#46F3FF', - '#02BEFF', - '#1A7AFF', - '#0A1FB2' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/grid/index.en.md b/examples/heatmap/grid/index.en.md deleted file mode 100644 index c793d961b4..0000000000 --- a/examples/heatmap/grid/index.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Grid Map -order: 1 ---- - - diff --git a/examples/heatmap/grid/index.zh.md b/examples/heatmap/grid/index.zh.md deleted file mode 100644 index f27fed7fa8..0000000000 --- a/examples/heatmap/grid/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 网格热力图 -order: 1 ---- -热力图的变体,网格布局呈现数据分级分布的聚合现象。 \ No newline at end of file diff --git a/examples/heatmap/heatmap/demo/heatmap.js b/examples/heatmap/heatmap/demo/heatmap.js deleted file mode 100644 index 33371ea29d..0000000000 --- a/examples/heatmap/heatmap/demo/heatmap.js +++ /dev/null @@ -1,38 +0,0 @@ -import { Scene } from '@l7/scene'; -import { HeatmapLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 0, - center: [ 127.5671666579043, 7.445038892195569 ], - type: 'mapbox', - zoom: 2.632456779444394 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d3564b06-670f-46ea-8edb-842f7010a7c6.json' -) - .then(res => res.json()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data) - .shape('heatmap') - .size('mag', [ 0, 1.0 ]) // weight映射通道 - .style({ - intensity: 2, - radius: 20, - opacity: 1.0, - rampColors: { - colors: [ - '#FF4818', - '#F7B74A', - '#FFF598', - '#91EABC', - '#2EA9A1', - '#206C7C' - ].reverse(), - positions: [ 0, 0.2, 0.4, 0.6, 0.8, 1.0 ] - } - }); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/heatmap/demo/heatmap3d.js b/examples/heatmap/heatmap/demo/heatmap3d.js deleted file mode 100644 index b6c687f80f..0000000000 --- a/examples/heatmap/heatmap/demo/heatmap3d.js +++ /dev/null @@ -1,41 +0,0 @@ -import { Scene } from '@l7/scene'; -import { HeatmapLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 58.5, - center: [ 111.8759, 30.6942 ], - rotation: 0.519, - type: 'mapbox', - zoom: 3.6116 -}); -window.mapScene = scene; - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/337ddbb7-aa3f-4679-ab60-d64359241955.json' -) - .then(res => res.json()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data) - .size('capacity', [ 0, 1 ]) - .shape('heatmap3D') - // weight映射通道 - .style({ - intensity: 10, - radius: 5, - opacity: 1.0, - rampColors: { - colors: [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49' - ], - positions: [ 0, 0.2, 0.4, 0.6, 0.8, 1.0 ] - } - }); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/heatmap/demo/heatmap_purple.js b/examples/heatmap/heatmap/demo/heatmap_purple.js deleted file mode 100644 index 2c5214cb62..0000000000 --- a/examples/heatmap/heatmap/demo/heatmap_purple.js +++ /dev/null @@ -1,38 +0,0 @@ -import { Scene } from '@l7/scene'; -import { HeatmapLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 0, - center: [ 127.5671666579043, 7.445038892195569 ], - type: 'mapbox', - zoom: 2.632456779444394 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d3564b06-670f-46ea-8edb-842f7010a7c6.json' -) - .then(res => res.json()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data) - .shape('heatmap') - .size('mag', [ 0, 1.0 ]) // weight映射通道 - .style({ - intensity: 2, - radius: 20, - opacity: 1.0, - rampColors: { - colors: [ - '#FF4818', - '#F7B74A', - '#FFF598', - '#F27DEB', - '#8C1EB2', - '#421EB2' - ].reverse(), - positions: [ 0, 0.2, 0.4, 0.6, 0.8, 1.0 ] - } - }); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/heatmap/demo/meta.json b/examples/heatmap/heatmap/demo/meta.json deleted file mode 100644 index 48f26cb957..0000000000 --- a/examples/heatmap/heatmap/demo/meta.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "title": { - "zh": "经典热力图", - "en": "heatmap" - }, - "demos": [ - { - "filename": "heatmap.js", - "title": "经典热力图2D", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*9zUcSK07PHgAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "heatmap_purple.js", - "title": "经典热力图2D", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*DFwET7xJTA8AAAAAAAAAAABkARQnAQ" - }, - { - "filename": "heatmap3d.js", - "title": "经典热力图3D", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*K_nOTa1C7PoAAAAAAAAAAABkARQnAQ" - } - - ] -} diff --git a/examples/heatmap/heatmap/index.en.md b/examples/heatmap/heatmap/index.en.md deleted file mode 100644 index f71ebbe652..0000000000 --- a/examples/heatmap/heatmap/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: HeatMap -order: 0 ---- diff --git a/examples/heatmap/heatmap/index.zh.md b/examples/heatmap/heatmap/index.zh.md deleted file mode 100644 index 2cb7ecb9c5..0000000000 --- a/examples/heatmap/heatmap/index.zh.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 经典热力图 -order: 0 -redirect_from: - - /zh/examples/heatmap/ ---- -区域范围内数据具有的一定热度分级分布情况的聚合面状现象,常用于描述人群分布、密度和变化趋势等。 \ No newline at end of file diff --git a/examples/heatmap/hexagon/demo/china.js b/examples/heatmap/hexagon/demo/china.js deleted file mode 100644 index f6c7ee98ac..0000000000 --- a/examples/heatmap/hexagon/demo/china.js +++ /dev/null @@ -1,54 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 47.49999999999995, - center: [ 112.50447776627743, 30.830476390931125 ], - zoom: 3.9879693680088626, - type: 'mapbox' -}); -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/7359a5e9-3c5e-453f-b207-bc892fb23b84.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms: [ - { - type: 'hexagon', - size: 17000, - field: 'v', - method: 'sum' - } - ] - }) - .size('sum', value => { - return value * 20; - }) - .shape('hexagonColumn') - .color( - 'count', - [ - '#FF4818', - '#F7B74A', - '#FFF598', - '#FF40F3', - '#9415FF', - '#421EB2' - ].reverse() - ) - .style({ - coverage: 0.9, - angle: 0 - }); - - scene.addLayer(layer); - }); diff --git a/examples/heatmap/hexagon/demo/hexagon.js b/examples/heatmap/hexagon/demo/hexagon.js deleted file mode 100644 index 22309c9f7e..0000000000 --- a/examples/heatmap/hexagon/demo/hexagon.js +++ /dev/null @@ -1,52 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'light', - pitch: 56.499, - center: [ 114.07737552216226, 22.542656745583486 ], - rotation: 39.19, - zoom: 12.47985, - type: 'mapbox' -}); -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/513add53-dcb2-4295-8860-9e7aa5236699.json' -) - .then(res => res.json()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - transforms: [ - { - type: 'hexagon', - size: 100, - field: 'h12', - method: 'sum' - } - ] - }) - .size('sum', [ 0, 600 ]) - .shape('hexagonColumn') - .style({ - coverage: 0.8, - angle: 0, - opacity: 1.0 - }) - .color( - 'sum', - [ - '#094D4A', - '#146968', - '#1D7F7E', - '#289899', - '#34B6B7', - '#4AC5AF', - '#5FD3A6', - '#7BE39E', - '#A1EDB8', - '#CEF8D6' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/hexagon/demo/light.js b/examples/heatmap/hexagon/demo/light.js deleted file mode 100644 index b82b29bca7..0000000000 --- a/examples/heatmap/hexagon/demo/light.js +++ /dev/null @@ -1,59 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - style: 'dark', - pitch: 43, - center: [ 120.13383079335335, 29.651873105004427 ], - zoom: 7.068989519212174, - type: 'mapbox' -}); - -window.mapScene = scene; - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/a1a8158d-6fe3-424b-8e50-694ccf61c4d7.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng', - y: 'lat' - }, - transforms: [ - { - type: 'hexagon', - size: 2500, - field: 'v', - method: 'sum' - } - ] - }) - .size('sum', sum => { - return sum * 200; - }) - .shape('hexagonColumn') - .style({ - coverage: 0.8, - angle: 0, - opacity: 1.0 - }) - .color('sum', [ - '#094D4A', - '#146968', - '#1D7F7E', - '#289899', - '#34B6B7', - '#4AC5AF', - '#5FD3A6', - '#7BE39E', - '#A1EDB8', - '#C3F9CC', - '#DEFAC0', - '#ECFFB1' - ]); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/hexagon/demo/meta.json b/examples/heatmap/hexagon/demo/meta.json deleted file mode 100644 index 3671341cac..0000000000 --- a/examples/heatmap/hexagon/demo/meta.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "title": { - "zh": "蜂窝热力图", - "en": "heatmap" - }, - "demos": [ { - "filename": "china.js", - "title": "蜂窝热力图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*bx-9TqimungAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "light.js", - "title": "蜂窝热力图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*HxpoRIcBA80AAAAAAAAAAABkARQnAQ" - }, - { - "filename": "hexagon.js", - "title": "蜂窝热力图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*rjkiQLCoZxUAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "world.js", - "title": "蜂窝热力图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*C3V7ToIoEvkAAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/examples/heatmap/hexagon/demo/world.js b/examples/heatmap/hexagon/demo/world.js deleted file mode 100644 index 245eb6bc17..0000000000 --- a/examples/heatmap/hexagon/demo/world.js +++ /dev/null @@ -1,55 +0,0 @@ -import { Scene } from '@l7/scene'; -import { HeatmapLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - style: 'light', - pitch: 0, - center: [ 104.995156, 31.450658 ], - type: 'amap', - zoom: 3.79 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/337ddbb7-aa3f-4679-ab60-d64359241955.json' -) - .then(res => res.json()) - .then(data => { - const layer = new HeatmapLayer({}) - .source(data, { - transforms: [ - { - type: 'hexagon', - size: 90000, - field: 'capacity', - method: 'sum' - } - ] - }) - .size('sum', value => { - return value * 50; - }) - .shape('hexagon') - .style({ - coverage: 0.9, - angle: 0, - opacity: 1.0 - }) - .color( - 'sum', - [ - '#3F4BBA', - '#3F4BBA', - '#3F4BBA', - '#3F4BBA', - '#3C73DA', - '#3C73DA', - '#3C73DA', - '#0F62FF', - '#0F62FF', - '#30B2E9', - '#30B2E9', - '#40C4CE' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/heatmap/hexagon/index.en.md b/examples/heatmap/hexagon/index.en.md deleted file mode 100644 index b27d0e7208..0000000000 --- a/examples/heatmap/hexagon/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Hexagon Map -order: 1 ---- diff --git a/examples/heatmap/hexagon/index.zh.md b/examples/heatmap/hexagon/index.zh.md deleted file mode 100644 index 0a943ead55..0000000000 --- a/examples/heatmap/hexagon/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 蜂窝热力图 -order: 1 ---- -热力图的变体,蜂窝布局呈现数据分级分布的聚合现象。 \ No newline at end of file diff --git a/examples/line/arc/demo/arc.js b/examples/line/arc/demo/arc.js deleted file mode 100644 index 7d9330816a..0000000000 --- a/examples/line/arc/demo/arc.js +++ /dev/null @@ -1,38 +0,0 @@ -import { LineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'dark', - center: [ 0, 23.107329 ], - zoom: 0 -}); -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/b83699f9-a96d-49b8-b2ea-f99299faebaf.json' -) - .then(res => res.json()) - .then(data => { - function getAirportCoord(idx) { - return [ data.airports[idx][3], data.airports[idx][4] ]; - } - const routes = data.routes.map(function(airline) { - return { - coord: [ getAirportCoord(airline[1]), getAirportCoord(airline[2]) ] - }; - }); - const layer = new LineLayer({}) - .source(routes, { - parser: { - type: 'json', - coordinates: 'coord' - } - }) - .size(0.6) - .shape('arc') - .color('rgb(5, 5, 50)') - .style({ - opacity: 0.05 - }); - scene.addLayer(layer); - }); diff --git a/examples/line/arc/demo/arcCircle.js b/examples/line/arc/demo/arcCircle.js deleted file mode 100644 index 346a044551..0000000000 --- a/examples/line/arc/demo/arcCircle.js +++ /dev/null @@ -1,32 +0,0 @@ -import { LineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'dark', - center: [ 107.77791556935472, 35.443286920228644 ], - zoom: 2.9142882493605033 -}); -fetch('https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt') - .then(res => res.text()) - .then(data => { - const layer = new LineLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng1', - y: 'lat1', - x1: 'lng2', - y1: 'lat2' - } - }) - .size(1) - .shape('greatcircle') - .color('#8C1EB2') - .style({ - opacity: 0.8, - blur: 0.99 - }); - scene.addLayer(layer); - }); diff --git a/examples/line/arc/demo/meta.json b/examples/line/arc/demo/meta.json deleted file mode 100644 index aad9b67e22..0000000000 --- a/examples/line/arc/demo/meta.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "title": { - "zh": "弧线", - "en": "line" - }, - "demos": [ - { - "filename": "arcCircle.js", - "title": "大圆弧线", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*FTp1Roy34qgAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "arc.js", - "title": "弧线", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*gdcqTa6UCsYAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "trip_arc_dark.js", - "title": "3D 弧线", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*jXsbSYCqLu8AAAAAAAAAAABkARQnAQ" - - }, - { - "filename": "trip_arc.js", - "title": "3D 弧线", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*29BZTqIJkuEAAAAAAAAAAABkARQnAQ" - - } - ] -} diff --git a/examples/line/arc/demo/trip_arc.js b/examples/line/arc/demo/trip_arc.js deleted file mode 100644 index bfc2c62d81..0000000000 --- a/examples/line/arc/demo/trip_arc.js +++ /dev/null @@ -1,34 +0,0 @@ -import { LineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - pitch: 60, - type: 'mapbox', - style: 'light', - center: [ -74.06967, 40.720399 ], - zoom: 12.45977 -}); -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/bd33a685-a17e-4686-bc79-b0e6a89fd950.csv' -) - .then(res => res.text()) - .then(data => { - const layer = new LineLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'start station longitude', - y: 'start station latitude', - x1: 'end station longitude', - y1: 'end station latitude' - } - }) - .size(1) - .shape('arc3d') - .color('#0C47BF') - .style({ - opacity: 1, - blur: 0.9 - }); - scene.addLayer(layer); - }); diff --git a/examples/line/arc/demo/trip_arc_dark.js b/examples/line/arc/demo/trip_arc_dark.js deleted file mode 100644 index 05114d0faa..0000000000 --- a/examples/line/arc/demo/trip_arc_dark.js +++ /dev/null @@ -1,33 +0,0 @@ -import { LineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -const scene = new Scene({ - id: 'map', - pitch: 60, - type: 'mapbox', - style: 'dark', - center: [ 104.34278, 41.12554 ], - zoom: 2.94888, - rotation: 42.3999 -}); - -fetch('https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt') - .then(res => res.text()) - .then(data => { - const layer = new LineLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'lng1', - y: 'lat1', - x1: 'lng2', - y1: 'lat2' - } - }) - .size(1) - .shape('arc3d') - .color('#FF7C6A') - .style({ - opacity: 0.8 - }); - scene.addLayer(layer); - }); diff --git a/examples/line/arc/index.en.md b/examples/line/arc/index.en.md deleted file mode 100644 index f341a10f2b..0000000000 --- a/examples/line/arc/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Arc Line Map -order: 1 ---- diff --git a/examples/line/arc/index.zh.md b/examples/line/arc/index.zh.md deleted file mode 100644 index 3d926174f7..0000000000 --- a/examples/line/arc/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 弧线地图 -order: 1 ---- -将两个点的连线绘制成弧形,绘制的弧线可以是贝塞尔曲线,大圆航线,通常用来表示两种地理事物关系和联系,或者人口迁移,物流起点目的地等。 \ No newline at end of file diff --git a/examples/line/isoline/demo/ele.js b/examples/line/isoline/demo/ele.js deleted file mode 100644 index acb143d941..0000000000 --- a/examples/line/isoline/demo/ele.js +++ /dev/null @@ -1,40 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 53.6305, - type: 'amap', - style: 'light', - center: [ 102.600579, 23.114887 ], - zoom: 14.66 -}); - -fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data) - .size('ELEV', h => { - return [ h % 50 === 0 ? 1.0 : 0.5, (h - 1300) * 20 ]; - }) - .shape('line') - .scale('ELEV', { - type: 'quantize' - }) - .color( - 'ELEV', - [ - '#E4682F', - '#FF8752', - '#FFA783', - '#FFBEA8', - '#FFDCD6', - '#EEF3FF', - '#C8D7F5', - '#A5C1FC', - '#7FA7F9', - '#5F8AE5' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/line/isoline/demo/ele_dark.js b/examples/line/isoline/demo/ele_dark.js deleted file mode 100644 index a7e91d9ad4..0000000000 --- a/examples/line/isoline/demo/ele_dark.js +++ /dev/null @@ -1,37 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 26.842105263157915, - type: 'amap', - style: 'dark', - center: [ 102.599436, 23.116371 ], - zoom: 14.78 -}); - -fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data) - .size('ELEV', h => { - return [ h % 50 === 0 ? 1.0 : 0.5, (h - 1300) * 20 ]; - }) - .shape('line') - .scale('ELEV', { - type: 'quantize' - }) - .color('ELEV', [ - '#094D4A', - '#146968', - '#1D7F7E', - '#289899', - '#34B6B7', - '#4AC5AF', - '#5FD3A6', - '#7BE39E', - '#A1EDB8', - '#CEF8D6' - ]); - scene.addLayer(layer); - }); diff --git a/examples/line/isoline/demo/isoline.js b/examples/line/isoline/demo/isoline.js deleted file mode 100644 index efda905fc8..0000000000 --- a/examples/line/isoline/demo/isoline.js +++ /dev/null @@ -1,40 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 104.117492, 36.492696 ], - zoom: 3.89 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/9f6afbcd-3aec-4a26-bd4a-2276d3439e0d.json' -) - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data) - .scale('value', { - type: 'quantile' - }) - .size('value', [ 0.5, 1, 1.5, 2 ]) - .shape('line') - .color( - 'value', - [ - '#0A3663', - '#1558AC', - '#3771D9', - '#4D89E5', - '#64A5D3', - '#72BED6', - '#83CED6', - '#A6E1E0', - '#B8EFE2', - '#D7F9F0' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/line/isoline/demo/meta.json b/examples/line/isoline/demo/meta.json deleted file mode 100644 index 6d731b96d8..0000000000 --- a/examples/line/isoline/demo/meta.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "title": { - "zh": "线图层", - "en": "line" - }, - "demos": [ - { - "filename": "ele.js", - "title": "等高线", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*FGliTJ7eSBIAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "ele_dark.js", - "title": "等高线", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*X1LgSKQbrD0AAAAAAAAAAABkARQnAQ" - }, - { - "filename": "isoline.js", - "title": "等高线", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*YBNRRrk5IV4AAAAAAAAAAABkARQnAQ" - } - - ] -} diff --git a/examples/line/isoline/index.en.md b/examples/line/isoline/index.en.md deleted file mode 100644 index afbfabfb29..0000000000 --- a/examples/line/isoline/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Isoline Map -order: 2 ---- diff --git a/examples/line/isoline/index.zh.md b/examples/line/isoline/index.zh.md deleted file mode 100644 index 42af5d8f70..0000000000 --- a/examples/line/isoline/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 等值线地图 -order: 2 ---- -指需要用一连串首尾闭合相等数值点的连线的图层,表示连续分布且逐渐变化的数量特征的地图,常用于等高线图、等温线图等图。 \ No newline at end of file diff --git a/examples/line/line/demo/isoline.js b/examples/line/line/demo/isoline.js deleted file mode 100644 index aa9828a82d..0000000000 --- a/examples/line/line/demo/isoline.js +++ /dev/null @@ -1,40 +0,0 @@ -import { Scene } from './node_modules/@l7/scene'; -import { LineLayer } from './node_modules/@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 104.117492, 36.492696 ], - zoom: 3.89 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/9f6afbcd-3aec-4a26-bd4a-2276d3439e0d.json' -) - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data) - .scale('value', { - type: 'quantile' - }) - .size('value', [ 0.5, 1, 1.5, 2 ]) - .shape('line') - .color( - 'value', - [ - '#0A3663', - '#1558AC', - '#3771D9', - '#4D89E5', - '#64A5D3', - '#72BED6', - '#83CED6', - '#A6E1E0', - '#B8EFE2', - '#D7F9F0' - ].reverse() - ); - scene.addLayer(layer); - }); diff --git a/examples/line/path/demo/bus_dark.js b/examples/line/path/demo/bus_dark.js deleted file mode 100644 index f1df3747d3..0000000000 --- a/examples/line/path/demo/bus_dark.js +++ /dev/null @@ -1,45 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - center: [ 103.83735604457024, 1.360253881403068 ], - pitch: 4.00000000000001, - zoom: 10.210275860702593, - rotation: 19.313180925794313, - type: 'mapbox', - style: 'dark' -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/ee07641d-5490-4768-9826-25862e8019e1.json' -) - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data, { - parser: { - type: 'json', - coordinates: 'path' - } - }) - .size('level', level => { - return [ 0.8, level * 1 ]; - }) - .shape('line') - .color( - 'level', - [ - '#312B60', - '#4A457E', - '#615C99', - '#816CAD', - '#A67FB5', - '#C997C7', - '#DEB8D4', - '#F5D4E6', - '#FAE4F1', - '#FFF3FC' - ].slice(0, 8) - ); - scene.addLayer(layer); - }); diff --git a/examples/line/path/demo/bus_light.js b/examples/line/path/demo/bus_light.js deleted file mode 100644 index 5ed5a806c9..0000000000 --- a/examples/line/path/demo/bus_light.js +++ /dev/null @@ -1,47 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - center: [ 103.83735604457024, 1.360253881403068 ], - pitch: 4.00000000000001, - zoom: 10.210275860702593, - rotation: 19.313180925794313, - type: 'mapbox', - style: 'light' -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/ee07641d-5490-4768-9826-25862e8019e1.json' -) - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data, { - parser: { - type: 'json', - coordinates: 'path' - } - }) - .size('level', level => { - return [ 0.8, level * 1 ]; - }) - .shape('line') - .color( - 'level', - [ - '#0A3663', - '#1558AC', - '#3771D9', - '#4D89E5', - '#64A5D3', - '#72BED6', - '#83CED6', - '#A6E1E0', - '#B8EFE2', - '#D7F9F0' - ] - .reverse() - .slice(0, 8) - ); - scene.addLayer(layer); - }); diff --git a/examples/line/path/demo/meta.json b/examples/line/path/demo/meta.json deleted file mode 100644 index 26b7c15314..0000000000 --- a/examples/line/path/demo/meta.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "title": { - "zh": "线图层", - "en": "line" - }, - "demos": [ - { - "filename": "bus_light.js", - "title": "公交线路", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*fuSLRL8Ym4kAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "bus_dark.js", - "title": "公交线路", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*c80NRaMfGLAAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "road_light.js", - "title": "路径", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*1gddQ6x8Jq4AAAAAAAAAAABkARQnAQ" - }, - { - "filename": "road_dark.js", - "title": "路径", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*1FVsSLUncw4AAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/examples/line/path/demo/road_dark.js b/examples/line/path/demo/road_dark.js deleted file mode 100644 index 9c867c292d..0000000000 --- a/examples/line/path/demo/road_dark.js +++ /dev/null @@ -1,24 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - center: [ 116.3956, 39.9392 ], - pitch: 0, - zoom: 10, - rotation: 0, - type: 'mapbox', - style: 'dark' -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/0d2f0113-f48b-4db9-8adc-a3937243d5a3.json' -) - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data) - .size(1.5) - .shape('line') - .color('标准名称', [ '#5B8FF9', '#5CCEA1', '#F6BD16' ]); - scene.addLayer(layer); - }); diff --git a/examples/line/path/demo/road_light.js b/examples/line/path/demo/road_light.js deleted file mode 100644 index 01407c55c2..0000000000 --- a/examples/line/path/demo/road_light.js +++ /dev/null @@ -1,24 +0,0 @@ -import { Scene } from '@l7/scene'; -import { LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - center: [ 116.3956, 39.9392 ], - pitch: 0, - zoom: 10, - rotation: 0, - type: 'mapbox', - style: 'light' -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/0d2f0113-f48b-4db9-8adc-a3937243d5a3.json' -) - .then(res => res.json()) - .then(data => { - const layer = new LineLayer({}) - .source(data) - .size(1.5) - .shape('line') - .color('标准名称', [ '#5B8FF9', '#5CCEA1', '#5D7092' ]); - scene.addLayer(layer); - }); diff --git a/examples/line/path/index.en.md b/examples/line/path/index.en.md deleted file mode 100644 index d62b6f276a..0000000000 --- a/examples/line/path/index.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Path Map -order: 0 ---- - diff --git a/examples/line/path/index.zh.md b/examples/line/path/index.zh.md deleted file mode 100644 index d997c38a38..0000000000 --- a/examples/line/path/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 路径地图 -order: 0 ---- -指需要用一连串首尾不闭合的点坐标对来定位的线图层,通常用来表示轨迹,线路,道路等 \ No newline at end of file diff --git a/examples/point/bubble/demo/color.js b/examples/point/bubble/demo/color.js deleted file mode 100644 index bfd9450294..0000000000 --- a/examples/point/bubble/demo/color.js +++ /dev/null @@ -1,44 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 121.435159, 31.256971 ], - zoom: 14.89, - minZoom: 10 -}); -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json' -) - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data, { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude' - } - }) - .shape('name', [ - 'circle', - 'triangle', - 'square', - 'pentagon', - 'hexagon', - 'octogon', - 'hexagram', - 'rhombus', - 'vesica' - ]) - .size('unit_price', [ 10, 25 ]) - .color('name', [ '#5B8FF9', '#5CCEA1', '#5D7092', '#F6BD16', '#E86452' ]) - .style({ - opacity: 0.3, - strokeWidth: 2 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/bubble/demo/meta.json b/examples/point/bubble/demo/meta.json deleted file mode 100644 index 9c9bf0e4ca..0000000000 --- a/examples/point/bubble/demo/meta.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "point.js", - "title": "气泡图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*_9ETS5_1yCEAAAAAAAAAAABkARQnAQ" - - }, - { - "filename": "color.js", - "title": "形状映射", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*K8ACRr5TY7UAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "world.js", - "title": "气泡图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*DMREQYwsCF4AAAAAAAAAAABkARQnAQ" - - }, { - "filename": "scatter.js", - "title": "定点图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Jt3ZSb8VH98AAAAAAAAAAABkARQnAQ" - - } - - ] -} diff --git a/examples/point/bubble/demo/point.js b/examples/point/bubble/demo/point.js deleted file mode 100644 index e44d076368..0000000000 --- a/examples/point/bubble/demo/point.js +++ /dev/null @@ -1,31 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 140.067171, 36.26186 ], - zoom: 5.32, - maxZoom: 10 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d3564b06-670f-46ea-8edb-842f7010a7c6.json' -) - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data) - .shape('circle') - .size('mag', [ 1, 25 ]) - .color('mag', mag => { - return mag > 4.5 ? '#5B8FF9' : '#5CCEA1'; - }) - .style({ - opacity: 0.3, - strokeWidth: 1 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/bubble/demo/scatter.js b/examples/point/bubble/demo/scatter.js deleted file mode 100644 index 884dfedece..0000000000 --- a/examples/point/bubble/demo/scatter.js +++ /dev/null @@ -1,45 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - type: 'amap', - style: 'light', - center: [ -121.24357, 37.58264 ], - pitch: 0, - zoom: 6.45 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/6c4bb5f2-850b-419d-afc4-e46032fc9f94.csv' -) - .then(res => res.text()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data, { - parser: { - type: 'csv', - x: 'Longitude', - y: 'Latitude' - } - }) - .shape('circle') - .size(4) - .color('Magnitude', [ - '#0A3663', - '#1558AC', - '#3771D9', - '#4D89E5', - '#64A5D3', - '#72BED6', - '#83CED6', - '#A6E1E0', - '#B8EFE2', - '#D7F9F0' - ]) - .style({ - opacity: 0.5, - strokeWidth: 0 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/bubble/demo/world.js b/examples/point/bubble/demo/world.js deleted file mode 100644 index b89cae4e45..0000000000 --- a/examples/point/bubble/demo/world.js +++ /dev/null @@ -1,38 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'dark', - center: [ 96.99215001469588, 29.281597225674773 ], - zoom: 2.194613775109773, - maxZoom: 10 -}); -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/337ddbb7-aa3f-4679-ab60-d64359241955.json' -) - .then(res => res.json()) - .then(data => { - data.features = data.features.filter(item => { - return item.properties.capacity > 800; - }); - const pointLayer = new PointLayer({}) - .source(data) - .shape('circle') - .size('capacity', [ 0, 16 ]) - .color('capacity', [ - '#34B6B7', - '#4AC5AF', - '#5FD3A6', - '#7BE39E', - '#A1EDB8', - '#CEF8D6' - ]) - .style({ - opacity: 0.5, - strokeWidth: 0 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/bubble/index.en.md b/examples/point/bubble/index.en.md deleted file mode 100644 index d06551432b..0000000000 --- a/examples/point/bubble/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Bubble Map -order: 0 ---- diff --git a/examples/point/bubble/index.zh.md b/examples/point/bubble/index.zh.md deleted file mode 100644 index 38a626dc3b..0000000000 --- a/examples/point/bubble/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 气泡地图 -order: 0 ---- -指地图上可用一个形状相同、大小和与其代表的数值成固定比率的圆点符号来定位的点图层,用于表达离散现象分布特征的地图。 \ No newline at end of file diff --git a/examples/point/chart/demo/bar.js b/examples/point/chart/demo/bar.js deleted file mode 100644 index f0e43874db..0000000000 --- a/examples/point/chart/demo/bar.js +++ /dev/null @@ -1,78 +0,0 @@ -import { Scene } from '@l7/scene'; -import { Marker } from '@l7/component'; -import * as G2 from '@antv/g2'; -const scene = new Scene({ - id: 'map', - type: 'amap', - style: 'light', - center: [ 2.6125016864608597, 49.359131 ], - pitch: 0, - zoom: 4.19 -}); - -scene.on('loaded', () => { - addChart(); -}); -function addChart() { - fetch( - 'https://gw.alipayobjects.com/os/basement_prod/0b96cca4-7e83-449a-93d0-2a77053e74ab.json' - ) - .then(res => res.json()) - .then(data => { - data.nodes.forEach(function(item) { - const el = document.createElement('div'); - const total = - item.gdp.Agriculture + item.gdp.Industry + item.gdp.Service; - - const size = Math.min(parseInt(total / 30000, 10), 70); - if (size < 30) { - return; - } - const itemData = [ - { - item: 'Agriculture', - count: item.gdp.Agriculture, - percent: item.gdp.Agriculture / total - }, - { - item: 'Industry', - count: item.gdp.Industry, - percent: item.gdp.Industry / total - }, - { - item: 'Service', - count: item.gdp.Service, - percent: item.gdp.Service / total - } - ]; - - const chart = new G2.Chart({ - container: el, - width: size, - height: size, - render: 'svg', - padding: 0 - }); - chart.legend(false); - chart.source(itemData); - chart.tooltip(false); - chart.axis('count', { - grid: false - }); - chart - .interval() - .position('item*count') - .color('item', [ '#5CCEA1', '#5D7092', '#5B8FF9' ]) - .opacity(1); - chart.render(); - new Marker({ - element: el - }) - .setLnglat({ - lng: item.coordinates[0], - lat: item.coordinates[1] - }) - .addTo(scene); - }); - }); -} diff --git a/examples/point/chart/demo/chart.js b/examples/point/chart/demo/chart.js deleted file mode 100644 index bae4c58db9..0000000000 --- a/examples/point/chart/demo/chart.js +++ /dev/null @@ -1,101 +0,0 @@ -import { Scene } from '@l7/scene'; -import { Marker } from '@l7/component'; -import * as G2 from '@antv/g2'; -const scene = new Scene({ - id: 'map', - type: 'amap', - style: 'light', - center: [ 2.6125016864608597, 49.359131 ], - pitch: 0, - zoom: 4.19 -}); - -scene.on('loaded', () => { - addChart(); -}); -window.mapScene = scene; -function addChart() { - fetch( - 'https://gw.alipayobjects.com/os/basement_prod/0b96cca4-7e83-449a-93d0-2a77053e74ab.json' - ) - .then(res => res.json()) - .then(data => { - data.nodes.forEach(function(item) { - const el = document.createElement('div'); - const total = - item.gdp.Agriculture + item.gdp.Industry + item.gdp.Service; - - const size = Math.min(parseInt(total / 30000, 10), 70); - if (size < 30) { - return; - } - const itemData = [ - { - item: 'Agriculture', - count: item.gdp.Agriculture, - percent: item.gdp.Agriculture / total - }, - { - item: 'Industry', - count: item.gdp.Industry, - percent: item.gdp.Industry / total - }, - { - item: 'Service', - count: item.gdp.Service, - percent: item.gdp.Service / total - } - ]; - - const sliceNumber = 0.02; - - // 自定义 other 的图形,增加两条线 - G2.Shape.registerShape('interval', 'sliceShape', { - draw: function draw(cfg, container) { - const points = cfg.points; - let path = []; - path.push([ 'M', points[0].x, points[0].y ]); - path.push([ 'L', points[1].x, points[1].y - sliceNumber ]); - path.push([ 'L', points[2].x, points[2].y - sliceNumber ]); - path.push([ 'L', points[3].x, points[3].y ]); - path.push('Z'); - path = this.parsePath(path); - return container.addShape('path', { - attrs: { - fill: cfg.color, - path - } - }); - } - }); - - const chart = new G2.Chart({ - container: el, - width: size, - height: size, - render: 'svg', - padding: 0 - }); - chart.legend(false); - chart.source(itemData); - chart.coord('theta', { - innerRadius: 0.6 - }); - chart.tooltip(false); - chart - .intervalStack() - .position('percent') - .color('item', [ '#5CCEA1', '#5D7092', '#5B8FF9' ]) - .shape('sliceShape'); - chart.render(); - new Marker({ - element: el - }) - .setLnglat({ - lng: item.coordinates[0], - lat: item.coordinates[1] - }) - .addTo(scene); - }); - }); -} diff --git a/examples/point/chart/demo/meta.json b/examples/point/chart/demo/meta.json deleted file mode 100644 index 3a94fcf334..0000000000 --- a/examples/point/chart/demo/meta.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "bar.js", - "title": "柱图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*-Tw3TLzyJ5wAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "chart.js", - "title": "环图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Uq_RQqyMrbQAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "ring.js", - "title": "环图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*zUu0RYKaF28AAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/examples/point/chart/demo/ring.js b/examples/point/chart/demo/ring.js deleted file mode 100644 index 4401242d9d..0000000000 --- a/examples/point/chart/demo/ring.js +++ /dev/null @@ -1,111 +0,0 @@ -import { Scene } from '@l7/scene'; -import { Marker } from '@l7/component'; -import * as G2 from '@antv/g2'; - -const CSS = `.l7-marker .g2-guide-html { - width: 50px; - height: 50px; - vertical-align: middle; - text-align: center; - line-height: 0.1 -} - -l7-marker .g2-guide-html .title { - font-size: 12px; - color: #8c8c8c; - font-weight: 300; -} - -l7-marker .g2-guide-html .value { - font-size: 18px; - color: #000; - font-weight: bold; -} -`; -function loadCssCode(code) { - const style = document.createElement('style'); - style.type = 'text/css'; - style.rel = 'stylesheet'; - // for Chrome Firefox Opera Safari - style.appendChild(document.createTextNode(code)); - // for IE - // style.styleSheet.cssText = code; - const head = document.getElementsByTagName('head')[0]; - head.appendChild(style); -} -loadCssCode(CSS); - -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'dark', - center: [ 52.21496184144132, 24.121126851768906 ], - zoom: 3.802 -}); -window.mapScene = scene; -scene.on('loaded', () => { - Promise.all([ - fetch( - 'https://gw.alipayobjects.com/os/basement_prod/5b772136-a1f4-4fc5-9a80-9f9974b4b182.json' - ).then(d => d.json()), - fetch( - 'https://gw.alipayobjects.com/os/basement_prod/f3c467a4-9ae0-4f08-bb5f-11f9c869b2cb.json' - ).then(d => d.json()) - ]).then(function onLoad([ center, population ]) { - const popobj = {}; - population.forEach(element => { - popobj[element.Code] = - element['Population, female (% of total) (% of total)']; - }); - // 数据绑定 - - center.features = center.features.map(fe => { - fe.properties.female = popobj[fe.properties.id] * 1 || 0; - return fe; - }); - center.features.forEach(point => { - const el = document.createElement('div'); - const coord = point.geometry.coordinates; - const v = point.properties.female * 1; - if (v < 1 || (v > 46 && v < 54)) { return; } - const size = 60; - const data = [ - { - type: '男性', - value: 100.0 - v.toFixed(2) - }, - { - type: '女性', - value: v.toFixed(2) * 1 - } - ]; - const chart = new G2.Chart({ - container: el, - width: size, - height: size, - render: 'svg', - padding: 0 - }); - chart.source(data); - chart.legend(false); - chart.tooltip(false); - chart.coord('theta', { - radius: 0.9, - innerRadius: 0.6 - }); - chart - .intervalStack() - .position('value') - .color('type', [ '#5CCEA1', '#5B8FF9' ]) - .opacity(1); - chart.render(); - new Marker({ element: el }) - .setLnglat({ - lng: coord[0], - lat: coord[1] - }) - .addTo(scene); - }); - }); -}); diff --git a/examples/point/chart/index.en.md b/examples/point/chart/index.en.md deleted file mode 100644 index 683c5cf293..0000000000 --- a/examples/point/chart/index.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Chart Map -order: 6 ---- - diff --git a/examples/point/chart/index.zh.md b/examples/point/chart/index.zh.md deleted file mode 100644 index 0680f65140..0000000000 --- a/examples/point/chart/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 复合图表地图 -order: 6 ---- -使用二维统计图表代替点状符号的一种特殊复合形式,复合图表地图中常用扩展图形还有柱状图、曲线图、玫瑰图等 \ No newline at end of file diff --git a/examples/point/column/demo/clumn_shape.js b/examples/point/column/demo/clumn_shape.js deleted file mode 100644 index c1265e15c0..0000000000 --- a/examples/point/column/demo/clumn_shape.js +++ /dev/null @@ -1,42 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 66.02383, - type: 'amap', - style: 'dark', - center: [ 121.400257, 31.25287 ], - zoom: 14.55, - rotation: 134.9507 -}); -window.mapScene = scene; - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json' -) - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data, { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude' - } - }) - .shape('name', [ - 'cylinder', - 'triangleColumn', - 'hexagonColumn', - 'squareColumn' - ]) - .size('unit_price', h => { - return [ 6, 6, h / 500 ]; - }) - .color('name', [ '#739DFF', '#61FCBF', '#FFDE74', '#FF896F' ]) - .style({ - opacity: 1.0 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/column/demo/clumn_shape_light.js b/examples/point/column/demo/clumn_shape_light.js deleted file mode 100644 index 0cf8f527f0..0000000000 --- a/examples/point/column/demo/clumn_shape_light.js +++ /dev/null @@ -1,42 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 60, - type: 'mapbox', - style: 'light', - center: [ 121.412224, 31.26192438 ], - zoom: 13.13438, - rotation: 35.97133 -}); -window.mapScene = scene; - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json' -) - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data, { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude' - } - }) - .shape('name', [ - 'cylinder', - 'triangleColumn', - 'hexagonColumn', - 'squareColumn' - ]) - .size('unit_price', h => { - return [ 6, 6, h / 500 ]; - }) - .color('name', [ '#5B8FF9', '#70E3B5', '#FFD458', '#FF7C6A' ]) - .style({ - opacity: 1.0 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/column/demo/column_dark.js b/examples/point/column/demo/column_dark.js deleted file mode 100644 index 42a1d405f8..0000000000 --- a/examples/point/column/demo/column_dark.js +++ /dev/null @@ -1,44 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; - -const scene = new Scene({ - id: 'map', - pitch: 35.210526315789465, - type: 'amap', - style: 'dark', - center: [ 104.288144, 31.239692 ], - zoom: 4.4 -}); -window.mapScene = scene; -fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json') - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data.list, { - parser: { - type: 'json', - x: 'j', - y: 'w' - } - }) - .shape('cylinder') - .size('t', function(level) { - return [ 1, 2, level * 2 + 20 ]; - }) - .color('t', [ - '#094D4A', - '#146968', - '#1D7F7E', - '#289899', - '#34B6B7', - '#4AC5AF', - '#5FD3A6', - '#7BE39E', - '#A1EDB8', - '#CEF8D6' - ]) - .style({ - opacity: 1.0 - }); - scene.addLayer(pointLayer); - }); diff --git a/examples/point/column/demo/column_light.js b/examples/point/column/demo/column_light.js deleted file mode 100644 index 685999cff5..0000000000 --- a/examples/point/column/demo/column_light.js +++ /dev/null @@ -1,33 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 48.62562, - type: 'amap', - style: 'light', - center: [ 104.026043, 31.847 ], - rotation: -0.76, - zoom: 4.48 -}); -window.mapScene = scene; -fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json') - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data.list, { - parser: { - type: 'json', - x: 'j', - y: 'w' - } - }) - .shape('cylinder') - .size('t', function(level) { - return [ 1, 2, level * 2 + 20 ]; - }) - .color('#006CFF') - .style({ - opacity: 1.0 - }); - scene.addLayer(pointLayer); - }); diff --git a/examples/point/column/demo/meta.json b/examples/point/column/demo/meta.json deleted file mode 100644 index fbe1c8c40c..0000000000 --- a/examples/point/column/demo/meta.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "column_light.js", - "title": "3D柱图_浅色底图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*5WdiT7MmU_cAAAAAAAAAAABkARQnAQ" - - }, - { - "filename": "clumn_shape_light.js", - "title": "3D 浅色柱图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*pAKGQrCFSjAAAAAAAAAAAABkARQnAQ" - - }, - { - "filename": "column_dark.js", - "title": "3D柱图_深色底图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*WkpEQqzuM-oAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "clumn_shape.js", - "title": "3D 深色柱图", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*HNbARpUVOdYAAAAAAAAAAABkARQnAQ" - - } - ] -} diff --git a/examples/point/column/index.en.md b/examples/point/column/index.en.md deleted file mode 100644 index eb926efa8c..0000000000 --- a/examples/point/column/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Column Map -order: 4 ---- diff --git a/examples/point/column/index.zh.md b/examples/point/column/index.zh.md deleted file mode 100644 index 3c36daa306..0000000000 --- a/examples/point/column/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 3D 柱状地图 -order: 4 ---- -用形状大小相同的柱状体代替点状符号,高度与数值大小映射共同表达离散现象分布特征的地图 \ No newline at end of file diff --git a/examples/point/image/demo/image.js b/examples/point/image/demo/image.js deleted file mode 100644 index d9e6c56638..0000000000 --- a/examples/point/image/demo/image.js +++ /dev/null @@ -1,40 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 121.434765, 31.256735 ], - zoom: 14.83 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json' -) - .then(res => res.json()) - .then(data => { - scene.addImage( - '00', - 'https://gw.alipayobjects.com/zos/basement_prod/604b5e7f-309e-40db-b95b-4fac746c5153.svg' - ); - scene.addImage( - '01', - 'https://gw.alipayobjects.com/zos/basement_prod/30580bc9-506f-4438-8c1a-744e082054ec.svg' - ); - scene.addImage( - '02', - 'https://gw.alipayobjects.com/zos/basement_prod/7aa1f460-9f9f-499f-afdf-13424aa26bbf.svg' - ); - const imageLayer = new PointLayer() - .source(data, { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude' - } - }) - .shape('name', [ '00', '01', '02' ]) - .size(20); - scene.addLayer(imageLayer); - }); diff --git a/examples/point/image/demo/locate.js b/examples/point/image/demo/locate.js deleted file mode 100644 index a7443e4abd..0000000000 --- a/examples/point/image/demo/locate.js +++ /dev/null @@ -1,26 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 116.276227, 35.256776 ], - zoom: 6 -}); - -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/e2fc6e0a-af2a-4320-96e5-d9f5a5fda442.json' -) - .then(res => res.json()) - .then(data => { - scene.addImage( - 'marker', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*BJ6cTpDcuLcAAAAAAAAAAABkARQnAQ' - ); - const imageLayer = new PointLayer() - .source(data) - .shape('marker') - .size(12); - scene.addLayer(imageLayer); - }); diff --git a/examples/point/image/demo/meta.json b/examples/point/image/demo/meta.json deleted file mode 100644 index c6fe6cae81..0000000000 --- a/examples/point/image/demo/meta.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "image.js", - "title": "气泡图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*c0IDRIg_n4MAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "locate.js", - "title": "顶点符号", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*jrFoQrZNL3wAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "weather.js", - "title": "天气", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*a_rnSI6p6RoAAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/examples/point/image/demo/weather.js b/examples/point/image/demo/weather.js deleted file mode 100644 index a8ab5e55ff..0000000000 --- a/examples/point/image/demo/weather.js +++ /dev/null @@ -1,72 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - type: 'amap', - style: 'dark', - center: [ 120.5969, 29.7918 ], - pitch: 35, - zoom: 7, - rotation: 4.183582 -}); -scene.addImage( - '00', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*kzTMQqS2QdUAAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '01', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*jH1XRb7F7hMAAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '02', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*YaKSTr3L5i8AAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '04', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*dmniQrDpCYwAAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '11', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*YaKSTr3L5i8AAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '15', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*YNlXQYCIzroAAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '07', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*DccRTI6ZRLoAAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '16', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*iQKoS6I-rO8AAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '06', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*f-wyS7ad5p0AAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '08', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*lHhzQrOW4AQAAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '17', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*9Q0QS4GdaYcAAAAAAAAAAABkARQnAQ' -); -scene.addImage( - '05', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*LyuVRowl6nAAAAAAAAAAAABkARQnAQ' -); -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/c6042c6b-45fd-4e2e-adf8-fdbf060441e8.json' -) - .then(res => res.json()) - .then(data => { - const imageLayer = new PointLayer() - .source(data) - .shape('w', function(w) { - return w; - }) - .size(15); - scene.addLayer(imageLayer); - }); diff --git a/examples/point/image/index.en.md b/examples/point/image/index.en.md deleted file mode 100644 index 0f0394e583..0000000000 --- a/examples/point/image/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Symbol Map -order: 2 ---- diff --git a/examples/point/image/index.zh.md b/examples/point/image/index.zh.md deleted file mode 100644 index ec8ba9c381..0000000000 --- a/examples/point/image/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 符号地图 -order: 2 ---- -以形状变量中具象的图标映射的点图层,将真实地物具化为利于直观识别的图标,常用于突出信息的突出表达。 \ No newline at end of file diff --git a/examples/point/marker/demo/marker.js b/examples/point/marker/demo/marker.js deleted file mode 100644 index 5c9c428122..0000000000 --- a/examples/point/marker/demo/marker.js +++ /dev/null @@ -1,54 +0,0 @@ -import { Scene } from '@l7/scene'; -import { Marker } from '@l7/component'; -const scene = new Scene({ - id: 'map', - type: 'amap', - style: 'light', - center: [ 105.790327, 36.495636 ], - pitch: 0, - zoom: 4 -}); - -scene.on('loaded', () => { - addMarkers(); -}); - -function addMarkers() { - fetch( - 'https://gw.alipayobjects.com/os/basement_prod/67f47049-8787-45fc-acfe-e19924afe032.json' - ) - .then(res => res.json()) - .then(nodes => { - for (let i = 0; i < nodes.length; i++) { - if (nodes[i].g !== '1' || nodes[i].v === '') { continue; } - const el = document.createElement('label'); - el.className = 'lableclass'; - el.textContent = nodes[i].v + '℃'; - el.style.background = getColor(nodes[i].v); - el.style.borderColor = getColor(nodes[i].v); - new Marker({ - element: el - }) - .setLnglat({ lng: nodes[i].x * 1, lat: nodes[i].y }) - .addTo(scene); - } - }); -} - -function getColor(v) { - return v > 50 - ? '#800026' - : v > 40 - ? '#BD0026' - : v > 30 - ? '#E31A1C' - : v > 20 - ? '#FC4E2A' - : v > 10 - ? '#FD8D3C' - : v > 5 - ? '#FEB24C' - : v > 0 - ? '#FED976' - : '#FFEDA0'; -} diff --git a/examples/point/marker/demo/meta.json b/examples/point/marker/demo/meta.json deleted file mode 100644 index c09db23baa..0000000000 --- a/examples/point/marker/demo/meta.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "marker.js", - "title": "温度", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*oPofT5YBOksAAAAAAAAAAABkARQnAQ" - - } - ] -} diff --git a/examples/point/marker/index.en.md b/examples/point/marker/index.en.md deleted file mode 100644 index 68e443a8c7..0000000000 --- a/examples/point/marker/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Custom Marker -order: 7 ---- diff --git a/examples/point/marker/index.zh.md b/examples/point/marker/index.zh.md deleted file mode 100644 index 7ebaa62a10..0000000000 --- a/examples/point/marker/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 自定义 Marker -order: 7 ---- -可自定义点符号,通过自定义dom实现地图标注,富文本、动态点状符号都可用于地图上信息的标记。 \ No newline at end of file diff --git a/examples/point/scatter/demo/meta.json b/examples/point/scatter/demo/meta.json deleted file mode 100644 index f592a11c51..0000000000 --- a/examples/point/scatter/demo/meta.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "normal2.js", - "title": "城市亮度图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Xp7iRaORYuIAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "normal.js", - "title": "海量点", - "screenshot":"https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Kva7R7AimzsAAAAAAAAAAABkARQnAQ" - } - - ] -} diff --git a/examples/point/scatter/demo/normal.js b/examples/point/scatter/demo/normal.js deleted file mode 100644 index 6111b8d699..0000000000 --- a/examples/point/scatter/demo/normal.js +++ /dev/null @@ -1,30 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - type: 'amap', - style: 'dark', - center: [ 121.417463, 31.215175 ], - pitch: 0, - zoom: 11 -}); -window.mapScene = scene; -fetch('https://gw.alipayobjects.com/os/rmsportal/BElVQFEFvpAKzddxFZxJ.txt') - .then(res => res.text()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data, { - parser: { - type: 'csv', - y: 'lat', - x: 'lng' - } - }) - .size(0.5) - .color('#080298') - .style({ - opacity: 1 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/scatter/demo/normal2.js b/examples/point/scatter/demo/normal2.js deleted file mode 100644 index d9a622c9db..0000000000 --- a/examples/point/scatter/demo/normal2.js +++ /dev/null @@ -1,37 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PointLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 64.88, - type: 'amap', - style: 'dark', - center: [ 114.060288, 22.53684 ], - zoom: 15.63 -}); -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/513add53-dcb2-4295-8860-9e7aa5236699.json' -) - .then(res => res.json()) - .then(data => { - const pointLayer = new PointLayer({}) - .source(data) - .size(2) - .color('h8', [ - '#0A3663', - '#1558AC', - '#3771D9', - '#4D89E5', - '#64A5D3', - '#72BED6', - '#83CED6', - '#A6E1E0', - '#B8EFE2', - '#D7F9F0' - ]) - .style({ - opacity: 1 - }); - - scene.addLayer(pointLayer); - }); diff --git a/examples/point/scatter/index.en.md b/examples/point/scatter/index.en.md deleted file mode 100644 index 0db3c39e7c..0000000000 --- a/examples/point/scatter/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Scatter Map -order: 1 ---- diff --git a/examples/point/scatter/index.zh.md b/examples/point/scatter/index.zh.md deleted file mode 100644 index faf3bf0a17..0000000000 --- a/examples/point/scatter/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "散点地图" -order: 1 ---- -指地图上可用一个形状大小相同的点状符号来定位,用表达离散现象分布特征的地图,如人口、农作物、动植物等的分布。 \ No newline at end of file diff --git a/examples/polygon/3d/demo/meta.json b/examples/polygon/3d/demo/meta.json deleted file mode 100644 index 9d69303a8c..0000000000 --- a/examples/polygon/3d/demo/meta.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "polygon.js", - "title": "3D 建筑面", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*JgXVSoV03n4AAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/examples/polygon/3d/demo/polygon.js b/examples/polygon/3d/demo/polygon.js deleted file mode 100644 index 1edfcbda7c..0000000000 --- a/examples/polygon/3d/demo/polygon.js +++ /dev/null @@ -1,35 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PolygonLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'dark', - center: [ 114.050008, 22.529272 ], - zoom: 14.1 -}); - -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/972566c5-a2b9-4a7e-8da1-bae9d0eb0117.json' -) - .then(res => res.json()) - .then(data => { - const layer = new PolygonLayer({}) - .source(data) - .shape('extrude') - .size('h20', [ 100, 120, 160, 200, 260, 500 ]) - .color('h20', [ - '#816CAD', - '#A67FB5', - '#C997C7', - '#DEB8D4', - '#F5D4E6', - '#FAE4F1', - '#FFF3FC' - ]) - .style({ - opacity: 1.0 - }); - scene.addLayer(layer); - }); diff --git a/examples/polygon/3d/index.en.md b/examples/polygon/3d/index.en.md deleted file mode 100644 index bc3ca8ef68..0000000000 --- a/examples/polygon/3d/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Extrude Map -order: 0 ---- diff --git a/examples/polygon/3d/index.zh.md b/examples/polygon/3d/index.zh.md deleted file mode 100644 index 7a97e3407c..0000000000 --- a/examples/polygon/3d/index.zh.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 3D填充图 -order: 0 -redirect_from: - - /zh/examples/polygon/ ---- -填充地图的增强实现,通过三维视角中的高度体现数据差异。 \ No newline at end of file diff --git a/examples/polygon/fill/demo/fill.js b/examples/polygon/fill/demo/fill.js deleted file mode 100644 index 9745bfb83c..0000000000 --- a/examples/polygon/fill/demo/fill.js +++ /dev/null @@ -1,50 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PolygonLayer, LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 116.368652, 39.93866 ], - zoom: 10.07 -}); -window.mapScene = scene; -fetch( - 'https://gw.alipayobjects.com/os/basement_prod/1d27c363-af3a-469e-ab5b-7a7e1ce4f311.json' -) - .then(res => res.json()) - .then(data => { - const layer = new PolygonLayer({}) - .source(data) - .color( - 'unit_price', - [ - '#1A4397', - '#2555B7', - '#3165D1', - '#467BE8', - '#6296FE', - '#7EA6F9', - '#98B7F7', - '#BDD0F8', - '#DDE6F7', - '#F2F5FC' - ].reverse() - ) - .shape('fill') - .style({ - opacity: 1 - }); - const layer2 = new LineLayer({ - zIndex: 2 - }) - .source(data) - .color('#fff') - .size(0.3) - .style({ - opacity: 1 - }); - - scene.addLayer(layer); - scene.addLayer(layer2); - }); diff --git a/examples/polygon/fill/demo/meta.json b/examples/polygon/fill/demo/meta.json deleted file mode 100644 index 2f3a2bb710..0000000000 --- a/examples/polygon/fill/demo/meta.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": { - "zh": "中文分类", - "en": "Category" - }, - "demos": [ - { - "filename": "polygon.js", - "title": "全国地图行政区划", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*AoD6SZ4kz0wAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "fill.js", - "title": "连续填充图", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*g93EQYYz9HEAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "population.js", - "title": "世界地图 女性人口比例", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*j6OrT7kgAnAAAAAAAAAAAABkARQnAQ" - } - ] -} diff --git a/examples/polygon/fill/demo/polygon.js b/examples/polygon/fill/demo/polygon.js deleted file mode 100644 index 5bda22aa84..0000000000 --- a/examples/polygon/fill/demo/polygon.js +++ /dev/null @@ -1,45 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PolygonLayer, LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 107.042225, 37.66565 ], - zoom: 3.87 -}); - -fetch('https://gw.alipayobjects.com/os/rmsportal/JToMOWvicvJOISZFCkEI.json') - .then(res => res.json()) - .then(data => { - const colors = [ - '#D7F9F0', - '#A6E1E0', - '#72BED6', - '#5B8FF9', - '#3474DB', - '#005CBE', - '#00419F', - '#00287E' - ]; - const layer = new PolygonLayer({}) - .source(data) - .color('name', colors) - .shape('fill') - .style({ - opacity: 0.9 - }); - - const layer2 = new LineLayer({ - zIndex: 2 - }) - .source(data) - .color('#fff') - .size(0.3) - .style({ - opacity: 1 - }); - - scene.addLayer(layer); - scene.addLayer(layer2); - }); diff --git a/examples/polygon/fill/demo/population.js b/examples/polygon/fill/demo/population.js deleted file mode 100644 index 4dffd60a8a..0000000000 --- a/examples/polygon/fill/demo/population.js +++ /dev/null @@ -1,64 +0,0 @@ -import { Scene } from '@l7/scene'; -import { PolygonLayer, LineLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'light', - center: [ 3.438, 40.16797 ], - zoom: 0.51329 -}); -Promise.all([ - fetch( - 'https://gw.alipayobjects.com/os/antvdemo/assets/data/world.geo.json' - ).then(d => d.json()), - fetch( - 'https://gw.alipayobjects.com/os/basement_prod/f3c467a4-9ae0-4f08-bb5f-11f9c869b2cb.json' - ).then(d => d.json()) -]).then(function onLoad([ world, population ]) { - const popobj = {}; - population.forEach(element => { - popobj[element.Code] = - element['Population, female (% of total) (% of total)']; - }); - // 数据绑定 - world.features = world.features.map(fe => { - fe.properties.female = popobj[fe.id] * 1 || 0; - return fe; - }); - const colors = [ - '#0A3663', - '#1558AC', - '#3771D9', - '#4D89E5', - '#64A5D3', - '#72BED6', - '#83CED6', - '#A6E1E0', - '#B8EFE2', - '#D7F9F0' - ]; - const layer = new PolygonLayer({}) - .source(world) - .scale('female', { - type: 'quantile' - }) - .color('female', colors) - .shape('fill') - .style({ - opacity: 0.9 - }); - - const layer2 = new LineLayer({ - zIndex: 2 - }) - .source(world) - .color('#fff') - .size(0.3) - .style({ - opacity: 1 - }); - - scene.addLayer(layer); - scene.addLayer(layer2); -}); diff --git a/examples/polygon/fill/index.en.md b/examples/polygon/fill/index.en.md deleted file mode 100644 index c8e3fe60e2..0000000000 --- a/examples/polygon/fill/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Choropleth Map -order: 0 ---- diff --git a/examples/polygon/fill/index.zh.md b/examples/polygon/fill/index.zh.md deleted file mode 100644 index 800d015675..0000000000 --- a/examples/polygon/fill/index.zh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 填充地图 -order: 0 ---- -填充图,也叫分级统计图,指用一连串首尾闭合的点坐标对来表达的面图层,常用表达区域范围具有分类现象的面状分布。 \ No newline at end of file diff --git a/examples/raster/basic/data/ndviundefined.be75.tif b/examples/raster/basic/data/ndviundefined.be75.tif deleted file mode 100755 index b4205d18e4..0000000000 Binary files a/examples/raster/basic/data/ndviundefined.be75.tif and /dev/null differ diff --git a/examples/raster/basic/demo/image.js b/examples/raster/basic/demo/image.js deleted file mode 100644 index 49ab82e123..0000000000 --- a/examples/raster/basic/demo/image.js +++ /dev/null @@ -1,24 +0,0 @@ -import { Scene } from '@l7/scene'; -import { ImageLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'light', - center: [ 121.268, 30.3628 ], - zoom: 13 -}); - -const layer = new ImageLayer({}); -layer.source( - 'https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg', - { - parser: { - type: 'image', - extent: [ 121.168, 30.2828, 121.384, 30.4219 ] - } - } -); -scene.on('loaded', () => { - scene.addLayer(layer); -}); diff --git a/examples/raster/basic/demo/meta.json b/examples/raster/basic/demo/meta.json deleted file mode 100644 index 9a2b724e4a..0000000000 --- a/examples/raster/basic/demo/meta.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "title": { - "zh": "栅格图层", - "en": "Gallery" - }, - "demos": [ - { - "filename": "image.js", - "title": "图片", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*ZrCaR53185IAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "radar.js", - "title": "地形", - "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*ZiMnSZlmblIAAAAAAAAAAABkARQnAQ" - }, - { - "filename": "light.js", - "title": "夜光图" - } - ] -} diff --git a/examples/raster/basic/demo/radar.js b/examples/raster/basic/demo/radar.js deleted file mode 100644 index e5b1486ad7..0000000000 --- a/examples/raster/basic/demo/radar.js +++ /dev/null @@ -1,24 +0,0 @@ -import { Scene } from '@l7/scene'; -import { ImageLayer } from '@l7/layers'; -const scene = new Scene({ - id: 'map', - pitch: 0, - type: 'amap', - style: 'dark', - center: [ 115.5268, 34.3628 ], - zoom: 7 -}); - -const layer = new ImageLayer({}); -layer.source( - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*8SUaRr7bxNsAAAAAAAAAAABkARQnAQ', - { - parser: { - type: 'image', - extent: [ 113.1277263548, 32.3464238863, 118.1365790452, 36.4786759137 ] - } - } -); -scene.on('loaded', () => { - scene.addLayer(layer); -}); diff --git a/examples/raster/basic/index.en.md b/examples/raster/basic/index.en.md deleted file mode 100644 index 39ed3aaf30..0000000000 --- a/examples/raster/basic/index.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Raster Map -order: 0 ---- diff --git a/examples/raster/basic/index.zh.md b/examples/raster/basic/index.zh.md deleted file mode 100644 index 29cc71a8e1..0000000000 --- a/examples/raster/basic/index.zh.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: 栅格图层 -order: 0 -redirect_from: - - /zh/examples/raster/ ---- diff --git a/gatsby-browser.js b/gatsby-browser.js deleted file mode 100644 index d8b2a8344b..0000000000 --- a/gatsby-browser.js +++ /dev/null @@ -1,9 +0,0 @@ - -require('./site/css/demo.css'); -require('./packages/component/src/css/l7.css'); -window.geotiff = require('geotiff/dist/geotiff.bundle.min.js'); -window.scene = require('./packages/scene/src'); -window.layers = require('./packages/layers/src'); -window.component = require('./packages/component/src'); -window.g2 = require('@antv/g2'); -// diff --git a/gatsby-config.js b/gatsby-config.js deleted file mode 100644 index 94405ca5e5..0000000000 --- a/gatsby-config.js +++ /dev/null @@ -1,147 +0,0 @@ -module.exports = { - plugins: [ - { - resolve: '@antv/gatsby-theme-antv', - options: { - GATrackingId: 'UA-148148901-7', - pathPrefix: '/L7' - } - } - ], - siteMetadata: { - title: 'L7', - description: 'Large-scale WebGL-powered Geospatial data visualization analysis framework', - githubUrl: 'https://github.com/antvis/L7', - navs: [ - { - slug: 'docs/api', - title: { - zh: '文档', - en: 'Document' - }, - redirect: 'api/l7' - }, - { - slug: 'examples', - title: { - zh: '图表演示', - en: 'Examples' - }, - redirect: 'gallery/basic' - } - // target: '_blank', - ], - docs: [ - { - slug: 'api/l7', - title: { - zh: '简介 L7', - en: 'Introduction' - }, - order: 0 - }, - { - slug: 'api/quickstart', - title: { - zh: '快速入门', - en: 'quickstart' - }, - order: 0 - }, - { - slug: 'api/scene', - title: { - zh: '场景 Scene', - en: 'Scene' - }, - order: 1 - }, - { - slug: 'api/layer', - title: { - zh: '图层 Layer', - en: 'Layer' - }, - order: 2 - }, - { - slug: 'api/source', - title: { - zh: '数据 Source', - en: 'Source' - }, - order: 3 - }, - { - slug: 'api/component', - title: { - zh: '组件 Component', - en: 'Component' - }, - order: 4 - } - ], - examples: [ - { - slug: 'gallery', - icon: 'gallery', - title: { - zh: 'Gallery', - en: 'Gallery' - } - }, - { - slug: 'point', - icon: 'point', - title: { - zh: '点图层', - en: 'Point Layer' - } - }, - { - slug: 'line', - icon: 'line', - title: { - zh: '线图层', - en: 'Line Layer' - } - }, - { - slug: 'polygon', - icon: 'polygon', - title: { - zh: '面图层', - en: 'Polygon Layer' - } - }, - { - slug: 'heatmap', - icon: 'heatmap', - title: { - zh: '热力图', - en: 'HeatMap Layer' - }, - order: 5 - }, - { - slug: 'raster', - icon: 'raster', - title: { - zh: '栅格图层', - en: 'Raster Layer' - } - }, - { - slug: 'tutorial', - icon: 'map', - title: { - zh: '教程示例', - en: 'Tutorial demo' - } - } - ], - playground: { - container: '
' - } - } -}; diff --git a/gatsby-node.js b/gatsby-node.js deleted file mode 100644 index 6c3b894361..0000000000 --- a/gatsby-node.js +++ /dev/null @@ -1,16 +0,0 @@ -const path = require('path'); -exports.onCreateWebpackConfig = ({ getConfig }) => { - const config = getConfig(); - config.resolve.extensions.push('.glsl'); - config.resolve.alias = { - ...config.resolve.alias, - '@l7/core': path.resolve(__dirname, 'packages/core/src'), - '@l7/component': path.resolve(__dirname, 'packages/component/src'), - '@l7/layers': path.resolve(__dirname, 'packages/layers/src'), - '@l7/maps': path.resolve(__dirname, 'packages/maps/src'), - '@l7/renderer': path.resolve(__dirname, 'packages/renderer/src'), - '@l7/scene': path.resolve(__dirname, 'packages/scene/src'), - '@l7/source': path.resolve(__dirname, 'packages/source/src'), - '@l7/utils': path.resolve(__dirname, 'packages/utils/src') - }; -}; diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 5eb81a6ac9..0000000000 --- a/jest.config.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - preset: 'ts-jest', - clearMocks: true, - collectCoverageFrom: [ - 'packages/**/*.{ts,tsx}', - '!**/node_modules/**', - '!**/__tests__/**', - '!**/*.d.ts' - ], - coverageDirectory: 'coverage', - coverageReporters: [ 'text', 'clover' ], - coverageThreshold: { - global: { - branches: 80, - functions: 80, - lines: 80, - statements: 80 - } - }, - // globals: { - // 'ts-jest': { - // // @see https://github.com/kulshekhar/ts-jest/issues/933#issuecomment-479821844 - // babelConfig: require('./babel.config.js'), - // }, - // }, - moduleFileExtensions: [ 'ts', 'tsx', 'js' ], - modulePathIgnorePatterns: [ 'dist' ], - moduleNameMapper: { - '@l7/(.+)$': 'packages/$1/src' - }, - notify: true, - notifyMode: 'always', - roots: [ 'packages' ], - testMatch: [ '**/__tests__/*.spec.+(ts|tsx|js)', '**/*.test.+(ts|tsx|js)', '**/__tests__/*/*.spec.+(ts|tsx|js)' ], - transform: { - // '^.+\\.(ts|tsx)$': 'ts-jest', - // @see https://github.com/kulshekhar/ts-jest/issues/1130 - '^.+\\.(ts|tsx)$': 'babel-jest' - }, - setupFilesAfterEnv: [ 'jest/setupTests.ts' ], - snapshotSerializers: [ 'enzyme-to-json/serializer' ] -}; diff --git a/jest/setupTests.ts b/jest/setupTests.ts deleted file mode 100644 index 10bb359f03..0000000000 --- a/jest/setupTests.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Enzyme from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; -import 'jest-styled-components'; - -Enzyme.configure({ adapter: new Adapter() }); diff --git a/lerna.json b/lerna.json deleted file mode 100644 index 9d523790c5..0000000000 --- a/lerna.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "packages": [ - "packages/*" - ], - "command": { - "publish": { - "ignoreChanges": ["*.md"], - "allowBranch": [ - "master", - "develop", - "next" - ], - "message": "chore: publish" - } - }, - "version": "0.0.1", - "npmClient": "yarn", - "useWorkspaces": true, - "publishConfig": { - "access": "public" - } -} \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index 0bfd8c2720..0000000000 --- a/package.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "private": true, - "repository": { - "type": "git", - "url": "https://github.com/antvis/L7" - }, - "devDependencies": { - "@antv/g2": "^3.5.9", - "@antv/gatsby-theme-antv": "^0.9.52", - "@babel/cli": "^7.6.4", - "@babel/core": "^7.6.4", - "@babel/plugin-proposal-decorators": "^7.6.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.4.4", - "@babel/plugin-proposal-optional-chaining": "^7.6.0", - "@babel/preset-env": "^7.5.5", - "@babel/preset-react": "^7.0.0", - "@babel/preset-typescript": "^7.3.3", - "@commitlint/cli": "^8.1.0", - "@commitlint/config-conventional": "^8.1.0", - "@rollup/plugin-alias": "^2.2.0", - "@rollup/plugin-json": "^4.0.0", - "@storybook/addon-actions": "^5.1.9", - "@storybook/addon-console": "^1.2.1", - "@storybook/addon-info": "^5.1.9", - "@storybook/addon-knobs": "^5.1.9", - "@storybook/addon-notes": "^5.1.9", - "@storybook/addon-storysource": "^5.1.11", - "@storybook/react": "^5.1.9", - "@types/dat.gui": "^0.7.1", - "@types/enzyme": "^3.1.14", - "@types/enzyme-adapter-react-16": "^1.0.3", - "@types/gl": "^4.1.0", - "@types/jest": "^24.0.18", - "@types/node": "^12.7.3", - "@types/storybook__react": "^4.0.2", - "@types/supercluster": "^5.0.1", - "awesome-typescript-loader": "^5.2.1", - "babel-jest": "^24.9.0", - "babel-loader": "^8.0.6", - "babel-plugin-const-enum": "^0.0.2", - "babel-plugin-css-modules-transform": "^1.6.2", - "babel-plugin-inline-import": "^3.0.0", - "babel-plugin-inline-webgl-constants": "^1.0.1", - "babel-plugin-lodash": "^3.3.4", - "babel-plugin-transform-postcss": "^0.3.0", - "babel-preset-gatsby": "^0.2.20", - "clean-webpack-plugin": "^0.1.19", - "commitizen": "^4.0.3", - "copy-webpack-plugin": "^4.5.2", - "coveralls": "^3.0.7", - "css-loader": "^3.2.0", - "cz-conventional-changelog": "^3.0.2", - "dat.gui": "^0.7.2", - "enzyme": "^3.6.0", - "enzyme-adapter-react-16": "^1.5.0", - "enzyme-to-json": "^3.0.0-beta6", - "eslint-config-egg": "^7.5.1", - "eslint-plugin-html": "^6.0.0", - "gatsby": "^2.17.7", - "gatsby-plugin-google-analytics": "^2.1.27", - "gatsby-remark-prettier": "^1.0.0", - "geotiff": "^1.0.0-beta.6", - "gh-pages": "^2.1.1", - "gl": "^4.4.0", - "glsl-minifier": "^0.0.13", - "html-webpack-plugin": "^3.2.0", - "husky": "^3.0.9", - "jest": "^24.9.0", - "jest-styled-components": "^6.2.1", - "lerna": "^3.16.4", - "lint-staged": "^9.2.4", - "node-sass": "^4.12.0", - "npm-run-all": "^4.1.5", - "postcss": "^7.0.18", - "postcss-plugin": "^1.0.0", - "prettier": "^1.19.1", - "raw-loader": "^1.0.0", - "react": "^16.8.6", - "react-docgen-typescript-loader": "^3.1.0", - "react-dom": "^16.12.0", - "react-i18next": "^11.0.1", - "rimraf": "^2.6.2", - "rollup": "^1.27.0", - "rollup-plugin-analyzer": "^3.2.2", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-commonjs": "^10.1.0", - "rollup-plugin-node-resolve": "^5.2.0", - "rollup-plugin-terser": "^5.1.2", - "rollup-pluginutils": "^2.8.2", - "sass-loader": "^7.1.0", - "style-loader": "^1.0.0", - "styled-components": "^3.4.6", - "stylelint": "^9.5.0", - "stylelint-config-recommended": "^2.1.0", - "stylelint-config-standard": "^18.2.0", - "stylelint-config-styled-components": "^0.1.1", - "stylelint-processor-styled-components": "^1.3.2", - "ts-jest": "^24.0.2", - "tslint": "^5.11.0", - "tslint-config-prettier": "^1.15.0", - "tslint-plugin-prettier": "^1.3.0", - "tslint-react": "^3.6.0", - "typescript": "^3.7.0-beta", - "webpack": "^4.17.1", - "webpack-cli": "^3.1.0", - "webpack-dev-server": "^3.1.7", - "webpack-merge": "^4.1.4", - "worker-loader": "^2.0.0" - }, - "scripts": { - "start": "NODE_ENV=site npm run site:develop", - "build_site": "NODE_ENV=site npm run site:build", - "site:develop": "gatsby develop --open -H 0.0.0.0", - "site:build": "npm run site:clean && NODE_ENV=site gatsby build --prefix-paths", - "site:clean": "gatsby clean", - "site:deploy": "NODE_ENV=site npm run site:build && gh-pages -d public", - "site:publish": "gh-pages -d public", - "lint-fix:examples": "prettier --write examples/**/**/*.js", - "lint:site": "eslint examples/**/**/*.js --fix", - "prebuild": "run-p tsc lint", - "build": "yarn clean && lerna run build", - "todo:postbuild": "yarn build:declarations", - "fix": "run-p -c 'lint:ts-* --fix'", - "lint:css": "stylelint 'packages/**/*.js{,x}'", - "lint:ts-prod": "tslint --config tslint.prod.json 'packages/**/*.ts{,x}'", - "lint:ts-test": "tslint --config tslint.test.json 'packages/**/*.{spec,story}.ts{,x}'", - "lint:ts": "run-p -c lint:ts-*", - "lint": "run-p -c lint:*", - "commit": "git-cz", - "version": "lerna version --conventional-commits", - "prerelease": "yarn build", - "release": "lerna publish from-package --registry https://registry.npmjs.com/", - "storybook": "start-storybook -p 6006", - "test": "BABEL_ENV=test jest", - "coveralls": "jest --coverage && cat ./tests/coverage/lcov.info | coveralls", - "tsc": "tsc", - "build:declarations": "lerna exec --stream --no-bail 'tsc --project ./tsconfig.build.json'", - "watch": "yarn clean && lerna exec --parallel 'BABEL_ENV=cjs babel --watch src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments'", - "bundle": "BABEL_ENV=bundle node_modules/.bin/rollup -c ./build/rollup.config.js", - "glsl-minify": "node_modules/.bin/glsl-minifier -i ./build/example.frag -o ./build/example.min.frag", - "clean": "lerna run clean" - }, - "workspaces": [ - "packages/*", - "stories/*" - ], - "husky": { - "hooks": { - "pre-commit": "npm run lint", - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" - } - }, - "config": { - "commitizen": { - "path": "cz-conventional-changelog" - } - } -} diff --git a/packages/component/.gitignore b/packages/component/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/component/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/component/package.json b/packages/component/package.json deleted file mode 100644 index ad36ea2dc2..0000000000 --- a/packages/component/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@l7/component", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": true, - "files": [ - "lib", - "es", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "lint:ts": "run-p -c lint:ts-*", - "test": "jest" - }, - "author": "lzxue", - "license": "ISC", - "dependencies": { - "@l7/core": "0.0.1", - "@l7/utils": "0.0.1", - "@turf/distance": "^6.0.1", - "eventemitter3": "^4.0.0", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "inversify-logging": "^0.2.1" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/component/src/control/BaseControl.ts b/packages/component/src/control/BaseControl.ts deleted file mode 100644 index 6911adb15a..0000000000 --- a/packages/component/src/control/BaseControl.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { - IControlService, - ILayerService, - IMapService, - IRendererService, - lazyInject, - TYPES, -} from '@l7/core'; -import { DOM } from '@l7/utils'; -import { EventEmitter } from 'eventemitter3'; - -export enum PositionType { - 'TOPRIGHT' = 'topright', - 'TOPLEFT' = 'topleft', - 'BOTTOMRIGHT' = 'bottomright', - 'BOTTOMLEFT' = 'bottomleft', -} -export type PositionName = - | 'topright' - | 'topleft' - | 'bottomright' - | 'bottomleft'; -export interface IControlOption { - position: PositionName; - [key: string]: any; -} -export default class Control extends EventEmitter { - public controlOption: IControlOption; - protected mapsService: IMapService; - protected container: HTMLElement; - - @lazyInject(TYPES.IRendererService) - protected readonly renderService: IRendererService; - @lazyInject(TYPES.ILayerService) - protected readonly layerService: ILayerService; - @lazyInject(TYPES.IControlService) - private readonly controlService: IControlService; - - private isShow: boolean; - - constructor(cfg?: Partial) { - super(); - this.controlOption = { - ...this.getDefault(), - ...(cfg || {}), - }; - } - public getDefault() { - return { - position: PositionType.TOPRIGHT, - }; - } - public setPosition(position: PositionName) { - const controlService = this.controlService; - if (controlService) { - controlService.removeControl(this); - } - this.controlOption.position = position; - if (controlService) { - controlService.addControl(this, this.mapsService); - } - return this; - } - public addTo(mapService: IMapService) { - this.remove(); - this.isShow = true; - this.mapsService = mapService; - this.container = this.onAdd(mapService); - const container = this.container; - const pos = this.controlOption.position; - const corner = this.controlService.controlCorners[pos]; - DOM.addClass(container, 'l7-control'); - - if (pos.indexOf('bottom') !== -1) { - corner.insertBefore(container, corner.firstChild); - } else { - corner.appendChild(container); - } - return this; - } - public onAdd(Map: IMapService): HTMLElement { - throw new Error('Method not implemented.'); - } - public hide() { - const container = this.container; - DOM.addClass(container, 'l7-control-hide'); - this.isShow = false; - } - public show() { - const container = this.container; - DOM.removeClass(container, 'l7-control-hide'); - this.isShow = true; - } - public remove() { - if (!this.mapsService) { - return this; - } - DOM.remove(this.container); - } - public _refocusOnMap(e: MouseEvent) { - // if map exists and event is not a keyboard event - if (this.mapsService && e && e.screenX > 0 && e.screenY > 0) { - const container = this.mapsService.getContainer(); - if (container !== null) { - container.focus(); - } - } - } -} diff --git a/packages/component/src/control/layer.ts b/packages/component/src/control/layer.ts deleted file mode 100644 index 05ae2c5b05..0000000000 --- a/packages/component/src/control/layer.ts +++ /dev/null @@ -1,312 +0,0 @@ -import { IMapService } from '@l7/core'; -import { bindAll, DOM, lnglatDistance } from '@l7/utils'; -import Control, { - IControlOption, - PositionName, - PositionType, -} from './BaseControl'; -export interface ILayerControlOption extends IControlOption { - collapsed: boolean; - autoZIndex: boolean; - hideSingleBase: boolean; - sortLayers: boolean; - - sortFunction: (...args: any[]) => any; -} -interface IInputItem extends HTMLInputElement { - layerId: string; -} -export default class Layers extends Control { - private layerControlInputs: any[]; - private layers: any[]; - private lastZIndex: number; - private handlingClick: boolean; - private layersLink: HTMLElement; - private baseLayersList: HTMLElement; - private separator: HTMLElement; - private overlaysList: HTMLElement; - private form: HTMLElement; - - constructor(cfg: Partial) { - super(cfg); - this.layerControlInputs = []; - this.layers = []; - this.lastZIndex = 0; - this.handlingClick = false; - const { baseLayers = {}, overlayers = {} } = this.controlOption; - - Object.keys(baseLayers).forEach((name: string, index: number) => { - this.addLayer(baseLayers[name], name, false); - }); - Object.keys(overlayers).forEach((name: any, index: number) => { - this.addLayer(overlayers[name], name, true); - }); - bindAll( - [ - 'checkDisabledLayers', - 'onLayerChange', - 'collapse', - 'extend', - 'expand', - 'onInputClick', - ], - this, - ); - } - - public getDefault() { - return { - collapsed: true, - position: PositionType.TOPRIGHT, - autoZIndex: true, - hideSingleBase: false, - sortLayers: false, - }; - } - public onAdd(MapService: IMapService) { - this.initLayout(); - this.update(); - this.mapsService.on('zoomend', this.checkDisabledLayers); - this.layers.forEach((layerItem) => { - layerItem.layer.on('remove', this.onLayerChange); - layerItem.layer.on('add', this.onLayerChange); - }); - return this.container; - } - - public addVisualLayer(layer: any, name: string | number) { - this.addLayer(layer, name, true); - return this.mapsService ? this.update() : this; - } - public expand() { - const { height } = this.renderService.getViewportSize(); - DOM.addClass(this.container, 'l7-control-layers-expanded'); - this.form.style.height = 'null'; - const acceptableHeight = height - (this.container.offsetTop + 50); - if (acceptableHeight < this.form.clientHeight) { - DOM.addClass(this.form, 'l7-control-layers-scrollbar'); - this.form.style.height = acceptableHeight + 'px'; - } else { - DOM.removeClass(this.form, 'l7-control-layers-scrollbar'); - } - this.checkDisabledLayers(); - return this; - } - - public collapse() { - DOM.removeClass(this.container, 'l7-control-layers-expanded'); - return this; - } - - private initLayout() { - const className = 'l7-control-layers'; - const container = (this.container = DOM.create('div', className)); - const { collapsed } = this.controlOption; - - // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released - container.setAttribute('aria-haspopup', 'true'); - - const form = (this.form = DOM.create( - 'form', - className + '-list', - ) as HTMLElement); - - // if (collapsed) { - // this.mapsService.on('click', this.collapse); - // container.addEventListener('mouseenter', this.expand); - // container.addEventListener('mouseleave', this.collapse); - // } - - this.layersLink = DOM.create('a', className + '-toggle', container); - const link = this.layersLink; - // link.href = '#'; - link.title = 'Layers'; - if (!collapsed) { - this.expand(); - } - this.expand(); - - this.baseLayersList = DOM.create('div', className + '-base', form); - this.separator = DOM.create('div', className + '-separator', form); - this.overlaysList = DOM.create('div', className + '-overlays', form); - container.appendChild(form); - } - - private update() { - if (!this.container) { - return this; - } - - DOM.empty(this.baseLayersList); - DOM.empty(this.overlaysList); - - this.layerControlInputs = []; - let baseLayersPresent; - let overlaysPresent; - let i; - let obj; - let baseLayersCount = 0; - - for (i = 0; i < this.layers.length; i++) { - obj = this.layers[i]; - this.addItem(obj); - overlaysPresent = overlaysPresent || obj.overlay; - baseLayersPresent = baseLayersPresent || !obj.overlay; - baseLayersCount += !obj.overlay ? 1 : 0; - } - - // Hide base layers section if there's only one layer. - if (this.controlOption.hideSingleBase) { - baseLayersPresent = baseLayersPresent && baseLayersCount > 1; - this.baseLayersList.style.display = baseLayersPresent ? '' : 'none'; - } - - this.separator.style.display = - overlaysPresent && baseLayersPresent ? '' : 'none'; - - return this; - } - - private checkDisabledLayers() { - const inputs = this.layerControlInputs; - let input: IInputItem; - let layer; - const zoom = this.mapsService.getZoom(); - - for (let i = inputs.length - 1; i >= 0; i--) { - input = inputs[i]; - layer = this.layerService.getLayer(input.layerId); - if (layer) { - input.disabled = layer.visible && !layer.isVisible(); - } - } - } - - private addLayer(layer: any, name: string | number, overlay: boolean) { - if (this.mapsService) { - layer.on('add', this.onLayerChange); - layer.on('remove', this.onLayerChange); - } - this.layers.push({ - layer, - name, - overlay, - }); - const { sortLayers, sortFunction, autoZIndex } = this.controlOption; - if (sortLayers) { - this.layers.sort((a, b) => { - return sortFunction(a.layer, b.layer, a.name, b.name); - }); - } - - if (autoZIndex && layer.setZIndex) { - this.lastZIndex++; - layer.setZIndex(this.lastZIndex); - } - - this.expandIfNotCollapsed(); - } - - private expandIfNotCollapsed() { - if (this.mapsService && !this.controlOption.collapsed) { - this.expand(); - } - return this; - } - - private onLayerChange(e: any) { - if (!this.handlingClick) { - this.update(); - } - - const obj = this.layerService.getLayer(e.target.layerId); - - // @ts-ignore - const type = obj?.overlay - ? e.type === 'add' - ? 'overlayadd' - : 'overlayremove' - : e.type === 'add' - ? 'baselayerchange' - : null; - - if (type) { - this.emit(type, obj); // TODO:图 - } - } - - private createRadioElement(name: string, checked: boolean): ChildNode { - const radioHtml = - ''; - - const radioFragment = document.createElement('div'); - radioFragment.innerHTML = radioHtml; - - return radioFragment.firstChild as ChildNode; - } - - private addItem(obj: any) { - const label = document.createElement('label'); - const checked = - this.layerService.getLayer(obj.layer.id) && obj.layer.isVisible(); - let input: IInputItem; - - if (obj.overlay) { - input = document.createElement('input') as IInputItem; - input.type = 'checkbox'; - input.className = 'l7-control-layers-selector'; - input.defaultChecked = checked; - } else { - input = this.createRadioElement('l7-base-layers', checked) as IInputItem; - } - this.layerControlInputs.push(input); - input.layerId = obj.layer.id; - input.addEventListener('click', this.onInputClick); - - const name = document.createElement('span'); - name.innerHTML = ' ' + obj.name; - - const holder = document.createElement('div'); - - label.appendChild(holder); - holder.appendChild(input); - holder.appendChild(name); - - const container = obj.overlay ? this.overlaysList : this.baseLayersList; - container.appendChild(label); - - this.checkDisabledLayers(); - return label; - } - - private onInputClick() { - const inputs = this.layerControlInputs; - let input; - let layer; - const addedLayers = []; - const removedLayers = []; - this.handlingClick = true; - for (let i = inputs.length - 1; i >= 0; i--) { - input = inputs[i]; - layer = this.layerService.getLayer(input.layerId); - - if (input.checked) { - addedLayers.push(layer); - } else if (!input.checked) { - removedLayers.push(layer); - } - } - removedLayers.forEach((l: any) => { - l.hide(); - }); - addedLayers.forEach((l: any) => { - l.show(); - }); - - this.handlingClick = false; - } -} diff --git a/packages/component/src/control/logo.ts b/packages/component/src/control/logo.ts deleted file mode 100644 index 75b07eda59..0000000000 --- a/packages/component/src/control/logo.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { IMapService } from '@l7/core'; -import { bindAll, DOM } from '@l7/utils'; -import Control, { IControlOption, PositionType } from './BaseControl'; -export default class Logo extends Control { - public getDefault() { - return { - position: PositionType.BOTTOMLEFT, - }; - } - public onAdd(MapService: IMapService) { - const className = 'l7-control-logo'; - const container = DOM.create('div', className); - const anchor: HTMLLinkElement = DOM.create( - 'a', - 'l7-ctrl-logo', - ) as HTMLLinkElement; - anchor.target = '_blank'; - anchor.rel = 'noopener nofollow'; - anchor.href = 'https://antv.alipay.com/l7'; - anchor.setAttribute('aria-label', 'AntV logo'); - anchor.setAttribute('rel', 'noopener nofollow'); - container.appendChild(anchor); - return container; - } -} diff --git a/packages/component/src/control/scale.ts b/packages/component/src/control/scale.ts deleted file mode 100644 index 345f1ae220..0000000000 --- a/packages/component/src/control/scale.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { IMapService } from '@l7/core'; -import { bindAll, DOM, lnglatDistance } from '@l7/utils'; -import Control, { IControlOption, PositionType } from './BaseControl'; -export interface IScaleControlOption extends IControlOption { - maxWidth: number; - metric: boolean; - updateWhenIdle: boolean; - imperial: boolean; -} -export default class Scale extends Control { - private mScale: HTMLElement; - private iScale: HTMLElement; - constructor(cfg?: Partial) { - super(cfg); - bindAll(['update'], this); - } - - public getDefault() { - return { - position: PositionType.BOTTOMLEFT, - maxWidth: 100, - metric: true, - updateWhenIdle: false, - imperial: false, - }; - } - - public onAdd(MapService: IMapService) { - const className = 'l7-control-scale'; - const container = DOM.create('div', className); - this.addScales(className + '-line', container); - const { updateWhenIdle } = this.controlOption; - // TODO: 高德地图和MapBox地图事件不一致问题 - this.mapsService.on(updateWhenIdle ? 'moveend' : 'mapmove', this.update); - this.update(); - - return container; - } - public onRemove(MapService: IMapService) { - const { updateWhenIdle } = this.controlOption; - this.mapsService.off(updateWhenIdle ? 'moveend' : 'mapmove', this.update); - } - public update() { - const mapsService = this.mapsService; - const { maxWidth } = this.controlOption; - const y = mapsService.getSize()[1] / 2; - - const p1 = mapsService.containerToLngLat([0, y]); - const p2 = mapsService.containerToLngLat([maxWidth, y]); - const maxMeters = lnglatDistance([p1.lng, p1.lat], [p2.lng, p2.lat]); - this.updateScales(maxMeters); - } - public updateScales(maxMeters: number) { - const { metric, imperial } = this.controlOption; - if (metric && maxMeters) { - this.updateMetric(maxMeters); - } - if (imperial && maxMeters) { - this.updateImperial(maxMeters); - } - } - private updateMetric(maxMeters: number) { - const meters = this.getRoundNum(maxMeters); - const label = meters < 1000 ? meters + ' m' : meters / 1000 + ' km'; - this.updateScale(this.mScale, label, meters / maxMeters); - } - private updateImperial(maxMeters: number) { - const maxFeet = maxMeters * 3.2808399; - let maxMiles: number; - let miles: number; - let feet: number; - - if (maxFeet > 5280) { - maxMiles = maxFeet / 5280; - miles = this.getRoundNum(maxMiles); - this.updateScale(this.iScale, miles + ' mi', miles / maxMiles); - } else { - feet = this.getRoundNum(maxFeet); - this.updateScale(this.iScale, feet + ' ft', feet / maxFeet); - } - } - private updateScale(scale: HTMLElement, text: string, ratio: number) { - const { maxWidth } = this.controlOption; - scale.style.width = Math.round(maxWidth * ratio) + 'px'; - scale.innerHTML = text; - } - private getRoundNum(num: number) { - const pow10 = Math.pow(10, (Math.floor(num) + '').length - 1); - let d = num / pow10; - - d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : 1; - - return pow10 * d; - } - private addScales(className: string, container: HTMLElement) { - const { metric, imperial } = this.controlOption; - if (metric) { - this.mScale = DOM.create('div', className, container); - } - if (imperial) { - this.iScale = DOM.create('div', className, container); - } - } -} diff --git a/packages/component/src/control/zoom.ts b/packages/component/src/control/zoom.ts deleted file mode 100644 index d5b64c8136..0000000000 --- a/packages/component/src/control/zoom.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { IMapService } from '@l7/core'; -import { bindAll, DOM } from '@l7/utils'; -import Control, { IControlOption, PositionType } from './BaseControl'; -export interface IZoomControlOption extends IControlOption { - zoomInText: string; - zoomInTitle: string; - zoomOutText: string; - zoomOutTitle: string; -} -export default class Zoom extends Control { - private disabled: boolean; - private zoomInButton: HTMLElement; - private zoomOutButton: HTMLElement; - - constructor(cfg?: Partial) { - super(cfg); - bindAll(['updateDisabled', 'zoomIn', 'zoomOut'], this); - } - public getDefault() { - return { - position: PositionType.TOPLEFT, - zoomInText: '+', - zoomInTitle: 'Zoom in', - zoomOutText: '−', - zoomOutTitle: 'Zoom out', - }; - } - - public onAdd(MapService: IMapService) { - const zoomName = 'l7-control-zoom'; - const container = DOM.create('div', zoomName + ' l7-bar'); - - this.zoomInButton = this.createButton( - this.controlOption.zoomInText, - this.controlOption.zoomInTitle, - zoomName + '-in', - container, - this.zoomIn, - ); - this.zoomOutButton = this.createButton( - this.controlOption.zoomOutText, - this.controlOption.zoomOutTitle, - zoomName + '-out', - container, - this.zoomOut, - ); - this.mapsService.on('zoomend', this.updateDisabled); - this.mapsService.on('zoomchange', this.updateDisabled); - this.updateDisabled(); - return container; - } - - public onRemove() { - this.mapsService.off('zoomend', this.updateDisabled); - this.mapsService.off('zoomchange', this.updateDisabled); - } - - public disable() { - this.disabled = true; - this.updateDisabled(); - return this; - } - - public enable() { - this.disabled = false; - this.updateDisabled(); - return this; - } - - private zoomIn() { - if ( - !this.disabled && - this.mapsService.getZoom() < this.mapsService.getMaxZoom() - ) { - this.mapsService.zoomIn(); - } - } - private zoomOut() { - if ( - !this.disabled && - this.mapsService.getZoom() > this.mapsService.getMinZoom() - ) { - this.mapsService.zoomOut(); - } - } - private createButton( - html: string, - tile: string, - className: string, - container: HTMLElement, - fn: (...arg: any[]) => any, - ) { - const link = DOM.create('a', className, container) as HTMLLinkElement; - link.innerHTML = html; - link.href = '#'; - link.addEventListener('click', fn); - return link; - } - private updateDisabled() { - const mapsService = this.mapsService; - const className = 'l7-disabled'; - DOM.removeClass(this.zoomInButton, className); - DOM.removeClass(this.zoomOutButton, className); - if (this.disabled || mapsService.getZoom() <= mapsService.getMinZoom()) { - DOM.addClass(this.zoomOutButton, className); - } - if (this.disabled || mapsService.getZoom() >= mapsService.getMaxZoom()) { - DOM.addClass(this.zoomInButton, className); - } - } -} diff --git a/packages/component/src/css/l7.css b/packages/component/src/css/l7.css deleted file mode 100644 index 055368d14a..0000000000 --- a/packages/component/src/css/l7.css +++ /dev/null @@ -1,790 +0,0 @@ -.l7-marker-container { - position: absolute; - width: 100%; - height: 100%; - overflow: hidden; - } - -.l7-marker { - position: absolute !important; - top: 0; - left: 0; - z-index: 5; - -} -.l7-popup-anchor-top, -.l7-popup-anchor-top-left, -.l7-popup-anchor-top-right { - -webkit-flex-direction: column; - flex-direction: column; -} - -.l7-popup-anchor-bottom, -.l7-popup-anchor-bottom-left, -.l7-popup-anchor-bottom-right { - -webkit-flex-direction: column-reverse; - flex-direction: column-reverse; -} - -.l7-popup-anchor-left { - -webkit-flex-direction: row; - flex-direction: row; -} - -.l7-popup-anchor-right { - -webkit-flex-direction: row-reverse; - flex-direction: row-reverse; -} -.l7-popup { - position: absolute; - top: 0; - left: 0; - display: -webkit-flex; - display: flex; - will-change: transform; - pointer-events: none; - z-index: 5; -} -.l7-popup-tip { - width: 0; - height: 0; - border: 10px solid transparent; - z-index: 1; -} -.l7-popup-anchor-top .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-top: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-top: none; - border-left: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-top: none; - border-right: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-bottom .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-bottom: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-bottom: none; - border-left: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-bottom: none; - border-right: none; - border-top-color: #fff; -} - -.l7-popup-anchor-left .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-left: none; - border-right-color: #fff; -} - -.l7-popup-anchor-right .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-right: none; - border-left-color: #fff; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - padding: 0; - font-size: 25px; - line-height: 20px; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -.l7-popup-anchor-top-left .l7-popup-content { - border-top-left-radius: 0; -} - -.l7-popup-anchor-top-right .l7-popup-content { - border-top-right-radius: 0; -} - -.l7-popup-anchor-bottom-left .l7-popup-content { - border-bottom-left-radius: 0; -} - -.l7-popup-anchor-bottom-right .l7-popup-content { - border-bottom-right-radius: 0; -} - -.l7-popup-track-pointer { - display: none; -} - -.l7-popup-track-pointer * { - pointer-events: none; - user-select: none; -} - -.l7-map:hover .l7-popup-track-pointer { - display: flex; -} - -.l7-map:active .l7-popup-track-pointer { - display: none; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -/* general toolbar styles */ - -.l7-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.l7-bar a, -.l7-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } -.l7-bar a, -.l7-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.l7-bar a:hover { - background-color: #f4f4f4; - } -.l7-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.l7-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.l7-bar a.l7-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - - -/* control positioning */ - -.l7-control-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; -} -.l7-control-hide { - display: none; -} -.l7-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.l7-top, -.l7-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.l7-top { - top: 0; - } -.l7-right { - right: 0; - } -.l7-bottom { - bottom: 0; - } -.l7-left { - left: 0; - } -.l7-control { - float: left; - clear: both; - } -.l7-right .l7-control { - float: right; - } -.l7-top .l7-control { - margin-top: 10px; - } -.l7-bottom .l7-control { - margin-bottom: 10px; - } -.l7-left .l7-control { - margin-left: 10px; - } -.l7-right .l7-control { - margin-right: 10px; - } - - /* attribution and scale controls */ - -.l7-control-container .l7-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } -.l7-control-attribution, -.l7-control-scale-line { - padding: 0 5px; - color: #333; - } -.l7-control-attribution a { - text-decoration: none; - } -.l7-control-attribution a:hover { - text-decoration: underline; - } -.l7-container .l7-control-attribution, -.l7-container .l7-control-scale { - font-size: 11px; - } -.l7-left .l7-control-scale { - margin-left: 5px; - } -.l7-bottom .l7-control-scale { - margin-bottom: 5px; - } -.l7-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: border-box; - box-sizing: border-box; - - background: #fff; - background: rgba(255, 255, 255, 0.5); - } -.l7-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.l7-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.l7-touch .l7-control-attribution, -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - box-shadow: none; - } -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - - /* layers control */ - -.l7-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.l7-control-layers-toggle { - background-image: url(../images/layers.png); - width: 36px; - height: 36px; - } -.l7-cont.l7-marker { - position: absolute !important; - top: 0; - left: 0; - z-index: 5; -} -.l7-popup-anchor-top, -.l7-popup-anchor-top-left, -.l7-popup-anchor-top-right { - -webkit-flex-direction: column; - flex-direction: column; -} - -.l7-popup-anchor-bottom, -.l7-popup-anchor-bottom-left, -.l7-popup-anchor-bottom-right { - -webkit-flex-direction: column-reverse; - flex-direction: column-reverse; -} - -.l7-popup-anchor-left { - -webkit-flex-direction: row; - flex-direction: row; -} - -.l7-popup-anchor-right { - -webkit-flex-direction: row-reverse; - flex-direction: row-reverse; -} -.l7-popup { - position: absolute; - top: 0; - left: 0; - display: -webkit-flex; - display: flex; - will-change: transform; - pointer-events: none; - z-index: 5; -} -.l7-popup-tip { - width: 0; - height: 0; - border: 10px solid transparent; - z-index: 1; -} -.l7-popup-anchor-top .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-top: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-top: none; - border-left: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-top: none; - border-right: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-bottom .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-bottom: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-bottom: none; - border-left: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-bottom: none; - border-right: none; - border-top-color: #fff; -} - -.l7-popup-anchor-left .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-left: none; - border-right-color: #fff; -} - -.l7-popup-anchor-right .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-right: none; - border-left-color: #fff; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - padding: 0; - font-size: 25px; - line-height: 20px; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -.l7-popup-anchor-top-left .l7-popup-content { - border-top-left-radius: 0; -} - -.l7-popup-anchor-top-right .l7-popup-content { - border-top-right-radius: 0; -} - -.l7-popup-anchor-bottom-left .l7-popup-content { - border-bottom-left-radius: 0; -} - -.l7-popup-anchor-bottom-right .l7-popup-content { - border-bottom-right-radius: 0; -} - -.l7-popup-track-pointer { - display: none; -} - -.l7-popup-track-pointer * { - pointer-events: none; - user-select: none; -} - -.l7-map:hover .l7-popup-track-pointer { - display: flex; -} - -.l7-map:active .l7-popup-track-pointer { - display: none; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -/* general toolbar styles */ - -.l7-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.l7-bar a, -.l7-bar a:hover { - background-color: #fff; - width: 36px; - height: 36px; - line-height: 30px; - font-size: 30px; - display: block; - text-align: center; - text-decoration: none; - color: #8E9DAB; - } -.l7-bar a, -.l7-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.l7-bar a:hover { - background-color: #f4f4f4; - } -.l7-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.l7-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.l7-bar a.l7-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - - -/* control positioning */ - -.l7-control-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; -} -.l7-control-hide { - display: none; -} -.l7-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.l7-top, -.l7-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.l7-top { - top: 0; - } -.l7-right { - right: 0; - } -.l7-bottom { - bottom: 0; - } -.l7-left { - left: 0; - } -.l7-control { - float: left; - clear: both; - } -.l7-right .l7-control { - float: right; - } -.l7-top .l7-control { - margin-top: 10px; - } -.l7-bottom .l7-control { - margin-bottom: 10px; - } -.l7-left .l7-control { - margin-left: 10px; - } -.l7-right .l7-control { - margin-right: 10px; - } - - /* attribution and scale controls */ - -.l7-control-container .l7-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } -.l7-control-attribution, -.l7-control-scale-line { - padding: 0 5px; - color: #333; - } -.l7-control-attribution a { - text-decoration: none; - } -.l7-control-attribution a:hover { - text-decoration: underline; - } -.l7-container .l7-control-attribution, -.l7-container .l7-control-scale { - font-size: 11px; - padding: 5px 5px 2px 5px; - background: rgba(255, 255, 255, 0.7); - } -.l7-left .l7-control-scale { - margin-left: 5px; - } -.l7-bottom .l7-control-scale { - margin-bottom: 5px; - } -.l7-control-scale-line { - border: 2px solid #8E9DAB; - border-top: none; - color: #8e9dab; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: border-box; - box-sizing: border-box; - - background: #fff; - background: rgba(255, 255, 255, 0.8); - } -.l7-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.l7-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.l7-touch .l7-control-attribution, -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - box-shadow: none; - } -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - /*logo */ - - .l7-ctrl-logo { - background-size: 100% 100%; - width: 89px; - height: 16px; - margin: 0 0 -3px -3px; - display: block; - background-repeat: no-repeat; - cursor: pointer; - background-image: url('../images/logo.png'); -} - - - /* layers control */ - -.l7-control-layers { - box-shadow: 0 1px 8px rgba(0,0,0,0.4); - background: #fff; - border-radius: 2px; - } -.l7-control-layers-toggle { - background-image: url(../images/layers.svg); - width: 36px; - height: 36px; - } -.l7-retina .l7-control-layers-toggle { - background-image: url(../images/layers.svg); - background-size: 26px 26px; - } -.l7-touch .l7-control-layers-toggle { - width: 44px; - height: 44px; - } -.l7-control-layers .l7-control-layers-list, -.l7-control-layers-expanded .l7-control-layers-toggle { - display: none; - } -.l7-control-layers-expanded .l7-control-layers-list { - display: block; - position: relative; - } -.l7-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #59626B; - background: #fff; - } -.l7-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } -.l7-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.l7-control-layers label { - display: block; - padding: 8px; - } -.l7-control-layers label input[type="radio"], input[type="checkbox"]{ - width: 14px; - height: 14px; - margin: 0; - vertical-align: middle; -} -.l7-control-layers-separator { - height: 0; - border-top: 1px solid #D8D8D8; - margin: 5px -10px 5px -6px; -} - -.l7-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } - diff --git a/packages/component/src/images/layers.png b/packages/component/src/images/layers.png deleted file mode 100644 index 4e9f67b6d2..0000000000 Binary files a/packages/component/src/images/layers.png and /dev/null differ diff --git a/packages/component/src/images/layers.svg b/packages/component/src/images/layers.svg deleted file mode 100644 index 615f4172d7..0000000000 --- a/packages/component/src/images/layers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/component/src/images/logo.png b/packages/component/src/images/logo.png deleted file mode 100644 index 7599f280a0..0000000000 Binary files a/packages/component/src/images/logo.png and /dev/null differ diff --git a/packages/component/src/index.ts b/packages/component/src/index.ts deleted file mode 100644 index 21eaa07aae..0000000000 --- a/packages/component/src/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import Control from './control/BaseControl'; -import Layers from './control/layer'; -import Logo from './control/logo'; -import Scale from './control/scale'; -import Zoom from './control/zoom'; -import Marker from './marker'; -import Popup from './popup'; - -export { Control, Logo, Scale, Zoom, Layers, Marker, Popup }; diff --git a/packages/component/src/marker.ts b/packages/component/src/marker.ts deleted file mode 100644 index 083471e94d..0000000000 --- a/packages/component/src/marker.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { ILngLat, IMapService, IMarkerScene, IPopup } from '@l7/core'; -import { bindAll, DOM } from '@l7/utils'; -import { anchorTranslate, anchorType, applyAnchorClass } from './utils/anchor'; -// marker 支持 dragger 未完成 - -export interface IMarkerOption { - element: HTMLElement | undefined; - anchor: anchorType; - color: string; - offset: number[]; - draggable: boolean; -} -export default class Marker { - private markerOption: IMarkerOption; - private defaultMarker: boolean; - private popup: IPopup; // TODO: POPup - private mapservice: IMapService; - private lngLat: ILngLat; - private scene: IMarkerScene; - constructor(option?: Partial) { - this.markerOption = { - ...this.getDefault(), - ...option, - }; - bindAll(['update', 'onMove', 'onUp', 'addDragHandler', 'onMapClick'], this); - this.init(); - } - - public getDefault() { - return { - element: undefined, // DOM element - anchor: anchorType.BOTTOM, - offset: [0, 0], - color: '#5B8FF9', - draggable: false, - }; - } - - public addTo(scene: IMarkerScene) { - this.scene = scene; - const mapService = scene.getMapService(); - const { element, draggable } = this.markerOption; - this.remove(); - this.mapservice = mapService; - mapService.getMarkerContainer().appendChild(element as HTMLElement); - mapService.on('camerachange', this.update); - // this.setDraggable(draggable); - this.update(); - return this; - } - - public remove() { - if (this.mapservice) { - this.mapservice.off('click', this.onMapClick); - this.mapservice.off('move', this.update); - this.mapservice.off('moveend', this.update); - this.mapservice.off('mousedown', this.addDragHandler); - this.mapservice.off('touchstart', this.addDragHandler); - this.mapservice.off('mouseup', this.onUp); - this.mapservice.off('touchend', this.onUp); - delete this.mapservice; - } - const { element } = this.markerOption; - if (element) { - DOM.remove(element); - } - if (this.popup) { - this.popup.remove(); - } - return this; - } - - public setLnglat(lngLat: ILngLat) { - this.lngLat = lngLat; - if (this.popup) { - this.popup.setLnglat(this.lngLat); - } - return this; - } - - public getLnglat(): ILngLat { - return this.lngLat; - } - - public getElement(): HTMLElement { - return this.markerOption.element as HTMLElement; - } - - public togglePopup() { - const popup = this.popup; - if (!popup) { - return this; - } else if (popup.isOpen()) { - popup.remove(); - } else { - popup.addTo(this.scene); - } - return this; - } - - public getPopup() { - return this.popup; - } - - public getOffset(): number[] { - return this.markerOption.offset; - } - - public setDraggable(draggable: boolean) { - throw new Error('Method not implemented.'); - } - - public isDraggable() { - return this.markerOption.draggable; - } - - private update() { - if (!this.mapservice) { - return; - } - const { element, anchor } = this.markerOption; - this.updatePosition(); - DOM.setTransform(element as HTMLElement, `${anchorTranslate[anchor]}`); - } - - private onMapClick(e: MouseEvent) { - const { element } = this.markerOption; - if (this.popup && element) { - this.togglePopup(); - } - } - - private updatePosition() { - if (!this.mapservice) { - return; - } - const { element } = this.markerOption; - const { lng, lat } = this.lngLat; - const pos = this.mapservice.lngLatToContainer([lng, lat]); - if (element) { - element.style.left = pos.x + 'px'; - element.style.top = pos.y + 'px'; - } - } - - private init() { - let { element } = this.markerOption; - const { color, anchor } = this.markerOption; - if (!element) { - this.defaultMarker = true; - element = DOM.create('div'); - this.markerOption.element = element; - const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); - svg.setAttributeNS(null, 'display', 'block'); - svg.setAttributeNS(null, 'height', '48px'); - svg.setAttributeNS(null, 'width', '48px'); - svg.setAttributeNS(null, 'viewBox', '0 0 1024 1024'); - - const path = document.createElementNS( - 'http://www.w3.org/2000/svg', - 'path', - ); - path.setAttributeNS( - null, - 'd', - 'M512 490.666667C453.12 490.666667 405.333333 442.88 405.333333 384 405.333333 325.12 453.12 277.333333 512 277.333333 570.88 277.333333 618.666667 325.12 618.666667 384 618.666667 442.88 570.88 490.666667 512 490.666667M512 85.333333C346.88 85.333333 213.333333 218.88 213.333333 384 213.333333 608 512 938.666667 512 938.666667 512 938.666667 810.666667 608 810.666667 384 810.666667 218.88 677.12 85.333333 512 85.333333Z', - ); - path.setAttributeNS(null, 'fill', color); - svg.appendChild(path); - element.appendChild(svg); - } - DOM.addClass(element, 'l7-marker'); - element.addEventListener('click', (e: MouseEvent) => { - this.onMapClick(e); - }); - applyAnchorClass(element, anchor, 'marker'); - } - - private addDragHandler(e: MouseEvent) { - throw new Error('Method not implemented.'); - } - - private onUp(e: MouseEvent) { - throw new Error('Method not implemented.'); - } -} diff --git a/packages/component/src/popup.ts b/packages/component/src/popup.ts deleted file mode 100644 index 8e0dd2ed35..0000000000 --- a/packages/component/src/popup.ts +++ /dev/null @@ -1,210 +0,0 @@ -import { ILngLat, IMapService, IMarkerScene, IPopup } from '@l7/core'; -import { bindAll, DOM } from '@l7/utils'; -import { EventEmitter } from 'eventemitter3'; -import { anchorTranslate, anchorType, applyAnchorClass } from './utils/anchor'; - -/** colse event */ - -export interface IPopupOption { - closeButton: boolean; - closeOnClick: boolean; - maxWidth: string; - anchor: anchorType; - className: string; - offsets: number[]; -} -export default class Popup extends EventEmitter implements IPopup { - private popupOption: IPopupOption; - private mapservice: IMapService; - private lngLat: ILngLat; - private content: HTMLElement; - private closeButton: HTMLElement; - private timeoutInstance: any; - private container: HTMLElement; - private tip: HTMLElement; - - constructor(cfg?: Partial) { - super(); - this.popupOption = { - ...this.getdefault(), - ...cfg, - }; - bindAll(['update', 'onClickClose', 'remove'], this); - } - - public addTo(scene: IMarkerScene) { - const mapService = scene.getMapService(); - this.mapservice = mapService; - this.mapservice.on('camerachange', this.update); - this.update(); - if (this.popupOption.closeOnClick) { - this.timeoutInstance = setTimeout(() => { - this.mapservice.on('click', this.onClickClose); - }, 30); - } - return this; - } - - public setHTML(html: string) { - const frag = window.document.createDocumentFragment(); - const temp = window.document.createElement('body'); - let child: ChildNode | null; - temp.innerHTML = html; - while (true) { - child = temp.firstChild; - if (!child) { - break; - } - frag.appendChild(child); - } - - return this.setDOMContent(frag); - } - - public setLnglat(lngLat: ILngLat): this { - this.lngLat = lngLat; - if (this.mapservice) { - this.mapservice.on('camerachange', this.update); - } - this.update(); - return this; - } - public getLnglat(): ILngLat { - return this.lngLat; - } - public setText(text: string) { - return this.setDOMContent(window.document.createTextNode(text)); - } - - public setMaxWidth(maxWidth: string): this { - this.popupOption.maxWidth = maxWidth; - this.update(); - return this; - } - - public setDOMContent(htmlNode: ChildNode | DocumentFragment) { - this.createContent(); - this.content.appendChild(htmlNode); - this.update(); - return this; - } - - // 移除popup - public remove() { - if (this.content) { - this.removeDom(this.content); - } - - if (this.container) { - this.removeDom(this.container); - delete this.container; - } - if (this.mapservice) { - // TODO: mapbox AMap 事件同步 - this.mapservice.off('camerachange', this.update); - this.mapservice.off('click', this.onClickClose); - delete this.mapservice; - } - clearTimeout(this.timeoutInstance); - this.emit('close'); - return this; - } - public isOpen() { - return !!this.mapservice; - } - - private createContent() { - if (this.content) { - DOM.remove(this.content); - } - this.content = DOM.create('div', 'l7-popup-content', this.container); - if (this.popupOption.closeButton) { - this.closeButton = DOM.create( - 'button', - 'l7-popup-close-button', - this.content, - ); - // this.closeButton.type = 'button'; - this.closeButton.setAttribute('aria-label', 'Close popup'); - this.closeButton.innerHTML = '×'; - this.closeButton.addEventListener('click', this.onClickClose); - } - } - - private creatDom(tagName: string, className: string, container: HTMLElement) { - const el = window.document.createElement(tagName); - if (className !== undefined) { - el.className = className; - } - if (container) { - container.appendChild(el); - } - return el; - } - - private removeDom(node: ChildNode) { - if (node.parentNode) { - node.parentNode.removeChild(node); - } - } - - private getdefault() { - return { - closeButton: true, - closeOnClick: true, - maxWidth: '240px', - offsets: [0, 0], - anchor: anchorType.BOTTOM, - className: '', - }; - } - - private onClickClose() { - this.remove(); - } - - private update() { - const hasPosition = this.lngLat; - const { className, maxWidth, anchor } = this.popupOption; - if (!this.mapservice || !hasPosition || !this.content) { - return; - } - const markerContainer = this.mapservice.getMarkerContainer(); - if (!this.container && markerContainer) { - this.container = this.creatDom( - 'div', - 'l7-popup', - markerContainer.parentNode as HTMLElement, - ); - - this.tip = this.creatDom('div', 'l7-popup-tip', this.container); - this.container.appendChild(this.content); - if (className) { - className - .split(' ') - .forEach((name) => this.container.classList.add(name)); - } - this.container.addEventListener('mousedown', (e) => { - e.stopPropagation(); - }); - } - if (maxWidth && this.container.style.maxWidth !== maxWidth) { - this.container.style.maxWidth = maxWidth; - } - - this.updatePosition(); - DOM.setTransform(this.container, `${anchorTranslate[anchor]}`); - applyAnchorClass(this.container, anchor, 'popup'); - } - - private updatePosition() { - if (!this.mapservice) { - return; - } - const { lng, lat } = this.lngLat; - const { offsets } = this.popupOption; - const pos = this.mapservice.lngLatToContainer([lng, lat]); - this.container.style.left = pos.x + offsets[0] + 'px'; - this.container.style.top = pos.y - offsets[1] + 'px'; - } -} diff --git a/packages/component/src/utils/anchor.ts b/packages/component/src/utils/anchor.ts deleted file mode 100644 index 2b1e301c51..0000000000 --- a/packages/component/src/utils/anchor.ts +++ /dev/null @@ -1,36 +0,0 @@ -export enum anchorType { - 'CENTER' = 'center', - 'TOP' = 'top', - 'TOP-LEFT' = 'top-left', - 'TOP-RIGHT' = 'top-right', - 'BOTTOM' = 'bottom', - 'BOTTOM-LEFT' = 'bottom-left', - 'LEFT' = 'left', - 'RIGHT' = 'right', -} - -export const anchorTranslate = { - center: 'translate(-50%,-50%)', - top: 'translate(-50%,0)', - 'top-left': 'translate(0,0)', - 'top-right': 'translate(-100%,0)', - bottom: 'translate(-50%,-100%)', - 'bottom-left': 'translate(0,-100%)', - 'bottom-right': 'translate(-100%,-100%)', - left: 'translate(0,-50%)', - right: 'translate(-100%,-50%)', -}; - -export function applyAnchorClass( - element: HTMLElement, - anchor: string, - prefix: string, -) { - const classList = element.classList; - for (const key in anchorTranslate) { - if (anchorTranslate.hasOwnProperty(key)) { - classList.remove(`l7-${prefix}-anchor-${key}`); - } - } - classList.add(`l7-${prefix}-anchor-${anchor}`); -} diff --git a/packages/component/tsconfig.build.json b/packages/component/tsconfig.build.json deleted file mode 100644 index 99200a9677..0000000000 --- a/packages/component/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} diff --git a/packages/core/.gitignore b/packages/core/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/core/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/core/package.json b/packages/core/package.json deleted file mode 100644 index eb97425d06..0000000000 --- a/packages/core/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "@l7/core", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": true, - "files": [ - "lib", - "es", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments" - }, - "author": "xiaoiver", - "license": "ISC", - "dependencies": { - "@l7/utils": "0.0.1", - "@mapbox/tiny-sdf": "^1.1.1", - "ajv": "^6.10.2", - "eventemitter3": "^4.0.0", - "gl-matrix": "^3.1.0", - "hammerjs": "^2.0.8", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "lodash": "^4.17.15", - "mapbox-gl": "^1.2.1", - "merge-json-schemas": "^1.0.0", - "probe.gl": "^3.1.1", - "reflect-metadata": "^0.1.13", - "tapable": "^2.0.0-beta.8", - "viewport-mercator-project": "^6.2.1" - }, - "devDependencies": { - "@types/gl-matrix": "^2.4.5", - "@types/hammerjs": "^2.0.36", - "@types/lodash": "^4.14.138", - "@types/viewport-mercator-project": "^6.1.0" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts deleted file mode 100644 index 4dacd4ef46..0000000000 --- a/packages/core/src/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -import container, { lazyInject, lazyMultiInject } from './inversify.config'; -import ClearPass from './services/renderer/passes/ClearPass'; -import MultiPassRenderer from './services/renderer/passes/MultiPassRenderer'; -import PixelPickingPass from './services/renderer/passes/PixelPickingPass'; -import RenderPass from './services/renderer/passes/RenderPass'; -import TAAPass from './services/renderer/passes/TAAPass'; -import { TYPES } from './types'; -import { packCircleVertex } from './utils/vertex-compression'; - -export { - /** - * IoC 容器 - */ - container, - /** - * lazy inject,供各个 Layer 使用 - */ - lazyInject, - lazyMultiInject, - /** - * 各个 Service 接口标识符 - */ - TYPES, - packCircleVertex, - /** pass */ - MultiPassRenderer, - ClearPass, - RenderPass, - PixelPickingPass, - TAAPass, -}; - -/** 暴露服务接口供其他 packages 实现 */ -export * from './services/layer/ILayerService'; -export * from './services/layer/IStyleAttributeService'; -export * from './services/source/ISourceService'; -export * from './services/map/IMapService'; -export * from './services/coordinate/ICoordinateSystemService'; -export * from './services/renderer/IRendererService'; -export * from './services/camera/ICameraService'; -export * from './services/config/IConfigService'; -export * from './services/scene/ISceneService'; -export * from './services/shader/IShaderModuleService'; -export * from './services/asset/IIconService'; -export * from './services/asset/IFontService'; -export * from './services/component/IControlService'; -export * from './services/component/IMarkerService'; -export * from './services/component/IPopUpService'; -export * from './services/log/ILogService'; -export * from './services/interaction/IInteractionService'; - -/** 全部渲染服务接口 */ -export * from './services/renderer/IAttribute'; -export * from './services/renderer/IBuffer'; -export * from './services/renderer/IElements'; -export * from './services/renderer/IFramebuffer'; -export * from './services/renderer/IModel'; -export * from './services/renderer/IMultiPassRenderer'; -export * from './services/renderer/IRenderbuffer'; -export * from './services/renderer/ITexture2D'; -export * from './services/renderer/IUniform'; -export * from './services/renderer/gl'; diff --git a/packages/core/src/inversify.config.ts b/packages/core/src/inversify.config.ts deleted file mode 100644 index 6249fa31f5..0000000000 --- a/packages/core/src/inversify.config.ts +++ /dev/null @@ -1,205 +0,0 @@ -import 'reflect-metadata'; - -import { EventEmitter } from 'eventemitter3'; -import { Container, decorate, injectable, interfaces } from 'inversify'; -import getDecorators from 'inversify-inject-decorators'; -import { TYPES } from './types'; - -/** Service interfaces */ -import { IFontService } from './services/asset/IFontService'; -import { IIconService } from './services/asset/IIconService'; -import { ICameraService } from './services/camera/ICameraService'; -import { IControlService } from './services/component/IControlService'; -import { IGlobalConfigService } from './services/config/IConfigService'; -import { ICoordinateSystemService } from './services/coordinate/ICoordinateSystemService'; -import { IInteractionService } from './services/interaction/IInteractionService'; -import { ILayerService } from './services/layer/ILayerService'; -import { IStyleAttributeService } from './services/layer/IStyleAttributeService'; -import { ILogService } from './services/log/ILogService'; -import { ISceneService } from './services/scene/ISceneService'; -import { IShaderModuleService } from './services/shader/IShaderModuleService'; - -/** Service implements */ -import FontService from './services/asset/FontService'; -import IconService from './services/asset/IconService'; -import CameraService from './services/camera/CameraService'; -import ControlService from './services/component/ControlService'; -import GlobalConfigService from './services/config/ConfigService'; -import CoordinateSystemService from './services/coordinate/CoordinateSystemService'; -import InteractionService from './services/interaction/InteractionService'; -import LayerService from './services/layer/LayerService'; -import StyleAttributeService from './services/layer/StyleAttributeService'; -import LogService from './services/log/LogService'; -import SceneService from './services/scene/SceneService'; -import ShaderModuleService from './services/shader/ShaderModuleService'; - -/** PostProcessing passes */ -import { IPostProcessingPass } from './services/renderer/IMultiPassRenderer'; -import BlurHPass from './services/renderer/passes/post-processing/BlurHPass'; -import BlurVPass from './services/renderer/passes/post-processing/BlurVPass'; -import ColorHalfTonePass from './services/renderer/passes/post-processing/ColorHalfTonePass'; -import CopyPass from './services/renderer/passes/post-processing/CopyPass'; -import HexagonalPixelatePass from './services/renderer/passes/post-processing/HexagonalPixelatePass'; -import InkPass from './services/renderer/passes/post-processing/InkPass'; -import NoisePass from './services/renderer/passes/post-processing/NoisePass'; -import SepiaPass from './services/renderer/passes/post-processing/SepiaPass'; - -// @see https://github.com/inversify/InversifyJS/blob/master/wiki/container_api.md#defaultscope -const container = new Container(); - -/** - * bind services - */ -container - .bind(TYPES.ISceneService) - .to(SceneService) - .inTransientScope(); -container - .bind(TYPES.IGlobalConfigService) - .to(GlobalConfigService) - .inSingletonScope(); -container - .bind(TYPES.ILayerService) - .to(LayerService) - .inSingletonScope(); -container - .bind(TYPES.IStyleAttributeService) - .to(StyleAttributeService) - .inRequestScope(); -container - .bind(TYPES.ICameraService) - .to(CameraService) - .inSingletonScope(); -container - .bind(TYPES.ICoordinateSystemService) - .to(CoordinateSystemService) - .inSingletonScope(); -container - .bind(TYPES.IIconService) - .to(IconService) - .inSingletonScope(); -container - .bind(TYPES.IShaderModuleService) - .to(ShaderModuleService) - .inSingletonScope(); -container - .bind(TYPES.ILogService) - .to(LogService) - .inSingletonScope(); -container - .bind(TYPES.IInteractionService) - .to(InteractionService) - .inSingletonScope(); -container - .bind(TYPES.IFontService) - .to(FontService) - .inSingletonScope(); -container - .bind(TYPES.IControlService) - .to(ControlService) - .inSingletonScope(); - -// @see https://github.com/inversify/InversifyJS/blob/master/wiki/inheritance.md#what-can-i-do-when-my-base-class-is-provided-by-a-third-party-module -decorate(injectable(), EventEmitter); -container.bind(TYPES.IEventEmitter).to(EventEmitter); -// 支持 L7 使用 new 而非容器实例化的场景,同时禁止 lazyInject cache -// @see https://github.com/inversify/inversify-inject-decorators#caching-vs-non-caching-behaviour -const DECORATORS = getDecorators(container, false); - -interface IBabelPropertyDescriptor extends PropertyDescriptor { - initializer(): any; -} -// Add babel legacy decorators support -// @see https://github.com/inversify/InversifyJS/issues/1050 -// @see https://github.com/inversify/InversifyJS/issues/1026#issuecomment-504936034 -export const lazyInject = ( - serviceIdentifier: interfaces.ServiceIdentifier, -) => { - const original = DECORATORS.lazyInject(serviceIdentifier); - // the 'descriptor' parameter is actually always defined for class fields for Babel, but is considered undefined for TSC - // so we just hack it with ?/! combination to avoid "TS1240: Unable to resolve signature of property decorator when called as an expression" - return function( - this: any, - proto: any, - key: string, - descriptor?: IBabelPropertyDescriptor, - ): void { - // make it work as usual - original.call(this, proto, key); - // return link to proto, so own value wont be 'undefined' after component's creation - if (descriptor) { - descriptor.initializer = () => { - return proto[key]; - }; - } - }; -}; -export const lazyMultiInject = ( - serviceIdentifier: interfaces.ServiceIdentifier, -) => { - const original = DECORATORS.lazyMultiInject(serviceIdentifier); - // the 'descriptor' parameter is actually always defined for class fields for Babel, but is considered undefined for TSC - // so we just hack it with ?/! combination to avoid "TS1240: Unable to resolve signature of property decorator when called as an expression" - return function( - this: any, - proto: any, - key: string, - descriptor?: IBabelPropertyDescriptor, - ): void { - // make it work as usual - original.call(this, proto, key); - if (descriptor) { - // return link to proto, so own value wont be 'undefined' after component's creation - descriptor!.initializer = () => { - return proto[key]; - }; - } - }; -}; - -// 绑定 post processing passes -container - .bind>(TYPES.IPostProcessingPass) - .to(CopyPass) - .whenTargetNamed('copy'); -container - .bind>(TYPES.IPostProcessingPass) - .to(BlurHPass) - .whenTargetNamed('blurH'); -container - .bind>(TYPES.IPostProcessingPass) - .to(BlurVPass) - .whenTargetNamed('blurV'); -container - .bind>(TYPES.IPostProcessingPass) - .to(NoisePass) - .whenTargetNamed('noise'); -container - .bind>(TYPES.IPostProcessingPass) - .to(SepiaPass) - .whenTargetNamed('sepia'); -container - .bind>(TYPES.IPostProcessingPass) - .to(ColorHalfTonePass) - .whenTargetNamed('colorHalftone'); -container - .bind>(TYPES.IPostProcessingPass) - .to(HexagonalPixelatePass) - .whenTargetNamed('hexagonalPixelate'); -container - .bind>(TYPES.IPostProcessingPass) - .to(InkPass) - .whenTargetNamed('ink'); - -container - .bind>>( - TYPES.IFactoryPostProcessingPass, - ) - .toFactory>((context) => (named: string) => - context.container.getNamed>( - TYPES.IPostProcessingPass, - named, - ), - ); - -export default container; diff --git a/packages/core/src/services/asset/FontService.ts b/packages/core/src/services/asset/FontService.ts deleted file mode 100644 index 656fffc5e2..0000000000 --- a/packages/core/src/services/asset/FontService.ts +++ /dev/null @@ -1,244 +0,0 @@ -import { LRUCache } from '@l7/utils'; -// @ts-ignore -import TinySDF from '@mapbox/tiny-sdf'; -import { inject, injectable } from 'inversify'; -import { buildMapping } from '../../utils/font_util'; -import { - IFontAtlas, - IFontMapping, - IFontMappingItem, - IFontOptions, - IFontService, -} from './IFontService'; -export const DEFAULT_CHAR_SET = getDefaultCharacterSet(); -export const DEFAULT_FONT_FAMILY = 'sans-serif'; -export const DEFAULT_FONT_WEIGHT = 'normal'; -export const DEFAULT_FONT_SIZE = 24; -export const DEFAULT_BUFFER = 3; -export const DEFAULT_CUTOFF = 0.25; -export const DEFAULT_RADIUS = 8; -const MAX_CANVAS_WIDTH = 1024; -const BASELINE_SCALE = 1.0; -const HEIGHT_SCALE = 1.0; -const CACHE_LIMIT = 3; -const VALID_PROPS = [ - 'fontFamily', - 'fontWeight', - 'characterSet', - 'fontSize', - 'sdf', - 'buffer', - 'cutoff', - 'radius', -]; -function getDefaultCharacterSet() { - const charSet = []; - for (let i = 32; i < 128; i++) { - charSet.push(String.fromCharCode(i)); - } - return charSet; -} - -function setTextStyle( - ctx: CanvasRenderingContext2D, - fontFamily: string, - fontSize: number, - fontWeight: string, -) { - ctx.font = `${fontWeight} ${fontSize}px ${fontFamily}`; - ctx.fillStyle = 'black'; - ctx.textBaseline = 'middle'; - // ctx.textAlign = 'left'; -} -function populateAlphaChannel(alphaChannel: number[], imageData: ImageData) { - // populate distance value from tinySDF to image alpha channel - for (let i = 0; i < alphaChannel.length; i++) { - imageData.data[4 * i + 3] = alphaChannel[i]; - } -} - -@injectable() -export default class FontService implements IFontService { - public fontAtlas: IFontAtlas; - private fontOptions: IFontOptions; - private key: string; - private cache: LRUCache = new LRUCache(CACHE_LIMIT); - public init() { - this.cache.clear(); - this.fontOptions = { - fontFamily: DEFAULT_FONT_FAMILY, - fontWeight: DEFAULT_FONT_WEIGHT, - characterSet: DEFAULT_CHAR_SET, - fontSize: DEFAULT_FONT_SIZE, - buffer: DEFAULT_BUFFER, - sdf: true, - cutoff: DEFAULT_CUTOFF, - radius: DEFAULT_RADIUS, - }; - this.key = ''; - } - - public get scale() { - return HEIGHT_SCALE; - } - - public get canvas(): HTMLCanvasElement { - const data = this.cache.get(this.key); - return data && data.data; - } - - public get mapping(): IFontMapping { - const data = this.cache.get(this.key); - return data && data.mapping; - } - - public setFontOptions(option: Partial) { - this.fontOptions = { - ...this.fontOptions, - ...option, - }; - - // const oldKey = this.key; - this.key = this.getKey(); - - const charSet = this.getNewChars(this.key, this.fontOptions.characterSet); - const cachedFontAtlas = this.cache.get(this.key); - - if (cachedFontAtlas && charSet.length === 0) { - // update texture with cached fontAtlas - return; - } - // update fontAtlas with new settings - const fontAtlas = this.generateFontAtlas( - this.key, - charSet, - cachedFontAtlas, - ); - this.fontAtlas = fontAtlas; - - // update cache - this.cache.set(this.key, fontAtlas); - } - - public destroy(): void { - this.cache.clear(); - } - - private generateFontAtlas( - key: string, - characterSet: string[], - cachedFontAtlas: IFontAtlas, - ): IFontAtlas { - const { - fontFamily, - fontWeight, - fontSize, - buffer, - sdf, - radius, - cutoff, - } = this.fontOptions; - let canvas = cachedFontAtlas && cachedFontAtlas.data; - if (!canvas) { - canvas = document.createElement('canvas'); - canvas.width = MAX_CANVAS_WIDTH; - } - const ctx = canvas.getContext('2d') as CanvasRenderingContext2D; - setTextStyle(ctx, fontFamily, fontSize, fontWeight); - - // 1. build mapping - const { mapping, canvasHeight, xOffset, yOffset } = buildMapping({ - getFontWidth: (char) => ctx.measureText(char).width, - fontHeight: fontSize * HEIGHT_SCALE, - buffer, - characterSet, - maxCanvasWidth: MAX_CANVAS_WIDTH, - ...(cachedFontAtlas && { - mapping: cachedFontAtlas.mapping, - xOffset: cachedFontAtlas.xOffset, - yOffset: cachedFontAtlas.yOffset, - }), - }); - - // 2. update canvas - // copy old canvas data to new canvas only when height changed - if (canvas.height !== canvasHeight) { - const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - canvas.height = canvasHeight; - ctx.putImageData(imageData, 0, 0); - } - setTextStyle(ctx, fontFamily, fontSize, fontWeight); - - // 3. layout characters - if (sdf) { - const tinySDF = new TinySDF( - fontSize, - buffer, - radius, - cutoff, - fontFamily, - fontWeight, - ); - // used to store distance values from tinySDF - // tinySDF.size equals `fontSize + buffer * 2` - const imageData = ctx.getImageData(0, 0, tinySDF.size, tinySDF.size); - - for (const char of characterSet) { - populateAlphaChannel(tinySDF.draw(char), imageData); - // 考虑到描边,需要保留 sdf 的 buffer,不能像 deck.gl 一样直接减去 - ctx.putImageData(imageData, mapping[char].x, mapping[char].y); - } - } else { - for (const char of characterSet) { - ctx.fillText( - char, - mapping[char].x, - mapping[char].y + fontSize * BASELINE_SCALE, - ); - } - } - return { - xOffset, - yOffset, - mapping, - data: canvas, - width: canvas.width, - height: canvas.height, - }; - } - - private getKey() { - const { - fontFamily, - fontWeight, - fontSize, - buffer, - sdf, - radius, - cutoff, - } = this.fontOptions; - if (sdf) { - return `${fontFamily} ${fontWeight} ${fontSize} ${buffer} ${radius} ${cutoff}`; - } - return `${fontFamily} ${fontWeight} ${fontSize} ${buffer}`; - } - - private getNewChars(key: string, characterSet: string[]): string[] { - const cachedFontAtlas = this.cache.get(key); - if (!cachedFontAtlas) { - return characterSet; - } - - const newChars: string[] = []; - const cachedMapping = cachedFontAtlas.mapping; - const cachedCharSet = new Set(Object.keys(cachedMapping)); - const charSet = new Set(characterSet); - charSet.forEach((char: string) => { - if (!cachedCharSet.has(char)) { - newChars.push(char); - } - }); - - return newChars; - } -} diff --git a/packages/core/src/services/asset/IFontService.ts b/packages/core/src/services/asset/IFontService.ts deleted file mode 100644 index 208988c535..0000000000 --- a/packages/core/src/services/asset/IFontService.ts +++ /dev/null @@ -1,48 +0,0 @@ -export interface IFontOptions { - fontFamily: string; - fontWeight: string; - characterSet: string[]; - fontSize: number; - buffer: number; - sdf: boolean; - cutoff: number; - radius: number; -} -export interface IFontMappingOption { - characterSet: string[]; - getFontWidth: (char: string, i: number) => number; - fontHeight: number; - buffer: number; - maxCanvasWidth: number; - mapping: IFontMapping; - xOffset: number; - yOffset: number; -} -export interface IFontMappingItem { - x: number; - y: number; - width: number; - height: number; - advance: number; -} -export interface IFontMapping { - [key: string]: IFontMappingItem; - [key: number]: IFontMappingItem; -} -export interface IFontAtlas { - xOffset: number; - yOffset: number; - mapping: IFontMapping; - data: HTMLCanvasElement; - width: number; - height: number; -} -export interface IFontService { - mapping: IFontMapping; - fontAtlas: IFontAtlas; - canvas: HTMLCanvasElement; - scale: number; - init(): void; - setFontOptions(option: Partial): void; - destroy(): void; -} diff --git a/packages/core/src/services/asset/IIconService.ts b/packages/core/src/services/asset/IIconService.ts deleted file mode 100644 index f71632015f..0000000000 --- a/packages/core/src/services/asset/IIconService.ts +++ /dev/null @@ -1,30 +0,0 @@ -import EventEmitter from 'eventemitter3'; -import { ITexture2D } from '../renderer/ITexture2D'; -export type IImage = HTMLImageElement | File | string; -export type Listener = (...args: any[]) => void; -export interface IIconValue { - x: number; - y: number; - image?: HTMLImageElement; -} -export interface IIcon { - id: string; - image?: HTMLImageElement; - height: number; - width: number; -} -export interface IICONMap { - [key: string]: IIconValue; -} -export interface IIconService { - canvasHeight: number; - on(event: string, fn: EventEmitter.ListenerFn, context?: any): this; - init(): void; - addImage(id: string, image: IImage): void; - hasImage(id: string): boolean; - removeImage(id: string): void; - getTexture(): ITexture2D; - getIconMap(): IICONMap; - getCanvas(): HTMLCanvasElement; - destroy(): void; -} diff --git a/packages/core/src/services/asset/IconService.ts b/packages/core/src/services/asset/IconService.ts deleted file mode 100644 index 2b593388a8..0000000000 --- a/packages/core/src/services/asset/IconService.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { EventEmitter } from 'eventemitter3'; -import { inject, injectable } from 'inversify'; -import { TYPES } from '../../types'; -import { buildIconMaping } from '../../utils/font_util'; -import { ITexture2D } from '../renderer/ITexture2D'; -import { - IIcon, - IICONMap, - IIconService, - IIconValue, - IImage, -} from './IIconService'; -const BUFFER = 3; -const MAX_CANVAS_WIDTH = 1024; -const imageSize = 64; -@injectable() -export default class IconService extends EventEmitter implements IIconService { - public canvasHeight: number; - private textrure: ITexture2D; - private canvas: HTMLCanvasElement; - private iconData: IIcon[]; - private iconMap: IICONMap; - private ctx: CanvasRenderingContext2D; - public init() { - this.iconData = []; - this.iconMap = {}; - this.canvas = document.createElement('canvas'); - this.ctx = this.canvas.getContext('2d') as CanvasRenderingContext2D; - } - - public addImage(id: string, image: IImage) { - let imagedata = new Image(); - if (this.hasImage(id)) { - throw new Error('Image Id already exists'); - } - this.iconData.push({ - id, - width: imageSize, - height: imageSize, - }); - this.updateIconMap(); - this.loadImage(image).then((img) => { - imagedata = img as HTMLImageElement; - const iconImage = this.iconData.find((icon: IIcon) => { - return icon.id === id; - }); - if (iconImage) { - iconImage.image = imagedata; - } - // this.iconData.push({ - // id, - // image: imagedata, - // width: imageSize, - // height: imageSize, - // }); - this.update(); - }); - } - - public getTexture(): ITexture2D { - return this.textrure; - } - - public getIconMap() { - return this.iconMap; - } - - public getCanvas() { - return this.canvas; - } - - public hasImage(id: string): boolean { - return this.iconMap.hasOwnProperty(id); - } - - public removeImage(id: string): void { - if (this.hasImage(id)) { - this.iconData = this.iconData.filter((icon) => { - return icon.id !== id; - }); - delete this.iconMap[id]; - this.update(); - } - } - public destroy(): void { - this.iconData = []; - this.iconMap = {}; - } - private update() { - this.updateIconMap(); - this.updateIconAtlas(); - this.emit('imageUpdate'); - } - - private updateIconAtlas() { - this.canvas.width = MAX_CANVAS_WIDTH; - this.canvas.height = this.canvasHeight; - Object.keys(this.iconMap).forEach((item: string) => { - const { x, y, image } = this.iconMap[item]; - if (image) { - this.ctx.drawImage(image, x, y, imageSize, imageSize); - } - }); - } - - private updateIconMap() { - const { mapping, canvasHeight } = buildIconMaping( - this.iconData, - BUFFER, - MAX_CANVAS_WIDTH, - ); - this.iconMap = mapping; - this.canvasHeight = canvasHeight; - } - - private loadImage(url: IImage) { - return new Promise((resolve, reject) => { - if (url instanceof HTMLImageElement) { - resolve(url); - return; - } - const image = new Image(); - image.crossOrigin = 'anonymous'; - image.onload = () => { - resolve(image); - }; - image.onerror = () => { - reject(new Error('Could not load image at ' + url)); - }; - image.src = url instanceof File ? URL.createObjectURL(url) : url; - }); - } -} diff --git a/packages/core/src/services/camera/Camera.ts b/packages/core/src/services/camera/Camera.ts deleted file mode 100644 index baae21af70..0000000000 --- a/packages/core/src/services/camera/Camera.ts +++ /dev/null @@ -1,620 +0,0 @@ -import { mat3, mat4, quat, vec3, vec4 } from 'gl-matrix'; -import { createVec3, getAngle } from '../../utils/math'; -// import Landmark from './Landmark'; - -export enum CAMERA_TYPE { - ORBITING = 'ORBITING', - EXPLORING = 'EXPLORING', - TRACKING = 'TRACKING', -} - -export enum CAMERA_TRACKING_MODE { - DEFAULT = 'DEFAULT', - ROTATIONAL = 'ROTATIONAL', - TRANSLATIONAL = 'TRANSLATIONAL', - CINEMATIC = 'CINEMATIC', -} - -const DEG_2_RAD = Math.PI / 180; -const RAD_2_DEG = 180 / Math.PI; - -/** - * 参考「WebGL Insights - 23.Designing Cameras for WebGL Applications」,基于 Responsible Camera 思路设计 - * 保存相机参数,定义相机动作: - * 1. dolly 沿 n 轴移动 - * 2. pan 沿 u v 轴移动 - * 3. rotate 以方位角旋转 - * 4. 移动到 Landmark,具有平滑的动画效果,其间禁止其他用户交互 - */ -export default class Camera { - /** - * 相机矩阵 - */ - public matrix = mat4.create(); - - /** - * u 轴 - * @see http://learnwebgl.brown37.net/07_cameras/camera_introduction.html#a-camera-definition - */ - public right = vec3.fromValues(1, 0, 0); - - /** - * v 轴 - */ - public up = vec3.fromValues(0, 1, 0); - - /** - * n 轴 - */ - public forward = vec3.fromValues(0, 0, 1); - - /** - * 相机位置 - */ - public position = vec3.fromValues(0, 0, 1); - - /** - * 视点位置 - */ - public focalPoint = vec3.fromValues(0, 0, 0); - - /** - * 相机位置到视点向量 - * focalPoint - position - */ - public distanceVector = vec3.fromValues(0, 0, 0); - - /** - * 相机位置到视点距离 - * length(focalPoint - position) - */ - public distance = 1; - - /** - * @see https://en.wikipedia.org/wiki/Azimuth - */ - public azimuth = 0; - public elevation = 0; - public roll = 0; - public relAzimuth = 0; - public relElevation = 0; - public relRoll = 0; - - /** - * 沿 n 轴移动时,保证移动速度从快到慢 - */ - public dollyingStep = 0; - - /** - * invert the horizontal coordinate system HCS - */ - public rotateWorld = false; - - /** - * 投影矩阵参数 - */ - - /** - * field of view [0-360] - * @see http://en.wikipedia.org/wiki/Angle_of_view - */ - private fov = 30; - private near = 0.1; - private far = 10000; - private aspect = 1; - - /** - * 投影矩阵 - */ - private perspective = mat4.create(); - - private following = undefined; - - private type = CAMERA_TYPE.EXPLORING; - private trackingMode = CAMERA_TRACKING_MODE.DEFAULT; - - constructor(type: CAMERA_TYPE) { - this.setType(type, undefined); - } - - public setType( - type: CAMERA_TYPE, - trackingMode: CAMERA_TRACKING_MODE | undefined, - ) { - this.type = type; - if (this.type === CAMERA_TYPE.EXPLORING) { - this.setWorldRotation(true); - } else { - this.setWorldRotation(false); - } - this._getAngles(); - - if (this.type === CAMERA_TYPE.TRACKING && trackingMode !== undefined) { - this.setTrackingMode(trackingMode); - } - } - - public setTrackingMode(trackingMode: CAMERA_TRACKING_MODE) { - if (this.type !== CAMERA_TYPE.TRACKING) { - throw new Error( - 'Impossible to set a tracking mode if the camera is not of tracking type', - ); - } - this.trackingMode = trackingMode; - } - - /** - * If flag is true, it reverses the azimuth and elevation angles. - * Subsequent calls to rotate, setAzimuth, setElevation, - * changeAzimuth or changeElevation will cause the inverted effect. - * setRoll or changeRoll is not affected by this method. - * - * This inversion is useful when one wants to simulate that the world - * is moving, instead of the camera. - * - * By default the camera angles are not reversed. - * @param {Boolean} flag the boolean flag to reverse the angles. - */ - public setWorldRotation(flag: boolean) { - this.rotateWorld = flag; - this._getAngles(); - } - - /** - * 计算 MV 矩阵,为相机矩阵的逆矩阵 - */ - public getViewTransform(): mat4 | null { - return mat4.invert(mat4.create(), this.matrix); - } - - /** - * 设置相机矩阵 - */ - public setMatrix(matrix: mat4) { - this.matrix = matrix; - this._update(); - } - - public setPerspective( - near: number, - far: number, - angle: number, - aspect: number, - ) { - this.fov = angle; - this.near = near; - this.far = far; - this.aspect = aspect; - this.updatePerspective(); - } - - public updatePerspective() { - mat4.perspective( - this.perspective, - this.fov * DEG_2_RAD, - this.aspect, - this.near, - this.far, - ); - } - - /** - * 设置相机位置 - */ - public setPosition(x: number, y: number, z: number) { - this._setPosition(x, y, z); - this.setFocalPoint(this.focalPoint); - return this; - } - - /** - * 设置视点位置 - */ - public setFocalPoint(x: number | vec3, y?: number, z?: number) { - let up = vec3.fromValues(0, 1, 0); - this.focalPoint = createVec3(x, y, z); - - if (this.trackingMode === CAMERA_TRACKING_MODE.CINEMATIC) { - const d = vec3.subtract(vec3.create(), this.focalPoint, this.position); - x = d[0]; - y = d[1] as number; - z = d[2] as number; - const r = vec3.length(d); - const el = Math.asin(y / r) * RAD_2_DEG; - const az = 90 + Math.atan2(z, x) * RAD_2_DEG; - const m = mat4.create(); - mat4.rotateY(m, m, az * DEG_2_RAD); - mat4.rotateX(m, m, el * DEG_2_RAD); - up = vec3.transformMat4(vec3.create(), [0, 1, 0], m); - } - - mat4.invert( - this.matrix, - mat4.lookAt(mat4.create(), this.position, this.focalPoint, up), - ); - - this._getAxes(); - this._getDistance(); - this._getAngles(); - return this; - } - - /** - * 固定当前视点,按指定距离放置相机 - */ - public setDistance(d: number) { - if (this.distance === d || d < 0) { - return; - } - - this.distance = d; - this.dollyingStep = this.distance / 100; - - const pos = vec3.create(); - const n = this.forward; - const f = this.focalPoint; - - pos[0] = d * n[0] + f[0]; - pos[1] = d * n[1] + f[1]; - pos[2] = d * n[2] + f[2]; - - this._setPosition(pos); - return this; - } - - /** - * Changes the initial azimuth of the camera - */ - public changeAzimuth(az: number) { - this.setAzimuth(this.azimuth + az); - return this; - } - - /** - * Changes the initial elevation of the camera - */ - public changeElevation(el: number) { - this.setElevation(this.elevation + el); - return this; - } - - /** - * Changes the initial roll of the camera - */ - public changeRoll(rl: number) { - this.setRoll(this.roll + rl); - return this; - } - - /** - * 设置相机方位角,不同相机模式下需要重新计算相机位置或者是视点位置 - * @param {Number} el the azimuth in degrees - */ - public setAzimuth(az: number) { - this.azimuth = getAngle(az); - this.computeMatrix(); - - this._getAxes(); - if ( - this.type === CAMERA_TYPE.ORBITING || - this.type === CAMERA_TYPE.EXPLORING - ) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - return this; - } - - public getAzimuth() { - return this.azimuth; - } - - /** - * 设置相机方位角,不同相机模式下需要重新计算相机位置或者是视点位置 - * @param {Number} el the elevation in degrees - */ - public setElevation(el: number) { - this.elevation = getAngle(el); - this.computeMatrix(); - - this._getAxes(); - if ( - this.type === CAMERA_TYPE.ORBITING || - this.type === CAMERA_TYPE.EXPLORING - ) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - return this; - } - - /** - * 设置相机方位角,不同相机模式下需要重新计算相机位置或者是视点位置 - * @param {Number} angle the roll angle - */ - public setRoll(angle: number) { - this.roll = getAngle(angle); - this.computeMatrix(); - - this._getAxes(); - if ( - this.type === CAMERA_TYPE.ORBITING || - this.type === CAMERA_TYPE.EXPLORING - ) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - return this; - } - - /** - * Changes the azimuth and elevation with respect to the current camera axes - * @param {Number} azimuth the relative azimuth - * @param {Number} elevation the relative elevation - * @param {Number} roll the relative roll - */ - public rotate(azimuth: number, elevation: number, roll: number) { - if (this.type === CAMERA_TYPE.EXPLORING) { - azimuth = getAngle(azimuth); - elevation = getAngle(elevation); - roll = getAngle(roll); - - const rotX = quat.setAxisAngle( - quat.create(), - [1, 0, 0], - (this.rotateWorld ? 1 : -1) * elevation * DEG_2_RAD, - ); - const rotY = quat.setAxisAngle( - quat.create(), - [0, 1, 0], - (this.rotateWorld ? 1 : -1) * azimuth * DEG_2_RAD, - ); - - const rotZ = quat.setAxisAngle( - quat.create(), - [0, 0, 1], - roll * DEG_2_RAD, - ); - let rotQ = quat.multiply(quat.create(), rotY, rotX); - rotQ = quat.multiply(quat.create(), rotQ, rotZ); - const rotMatrix = mat4.fromQuat(mat4.create(), rotQ); - mat4.translate(this.matrix, this.matrix, [0, 0, -this.distance]); - mat4.multiply(this.matrix, this.matrix, rotMatrix); - mat4.translate(this.matrix, this.matrix, [0, 0, this.distance]); - } else { - if (Math.abs(this.elevation + elevation) > 90) { - return; - } - this.relElevation = getAngle(elevation); - this.relAzimuth = getAngle(azimuth); - this.relRoll = getAngle(roll); - this.elevation += this.relElevation; - this.azimuth += this.relAzimuth; - this.roll += this.relRoll; - - this.computeMatrix(); - } - - this._getAxes(); - if ( - this.type === CAMERA_TYPE.ORBITING || - this.type === CAMERA_TYPE.EXPLORING - ) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - - this._update(); - return this; - } - - /** - * 沿水平(right) & 垂直(up)平移相机 - */ - public pan(tx: number, ty: number) { - const coords = createVec3(tx, ty, 0); - const pos = vec3.clone(this.position); - - vec3.add(pos, pos, vec3.scale(vec3.create(), this.right, coords[0])); - vec3.add(pos, pos, vec3.scale(vec3.create(), this.up, coords[1])); - - this._setPosition(pos); - - return this; - } - - /** - * 沿 n 轴移动,当距离视点远时移动速度较快,离视点越近速度越慢 - */ - public dolly(value: number) { - const n = this.forward; - const pos = vec3.clone(this.position); - const step = value * this.dollyingStep; - pos[0] += step * n[0]; - pos[1] += step * n[1]; - pos[2] += step * n[2]; - - this._setPosition(pos); - if ( - this.type === CAMERA_TYPE.ORBITING || - this.type === CAMERA_TYPE.EXPLORING - ) { - // 重新计算视点距离 - this._getDistance(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - // 保持视距,移动视点位置 - vec3.add(this.focalPoint, pos, this.distanceVector); - } - return this; - } - - // public createLandmark(name: string): Landmark { - // return new Landmark(name, this); - // } - - /** - * 根据相机矩阵重新计算各种相机参数 - */ - private _update() { - this._getAxes(); - this._getPosition(); - this._getDistance(); - this._getAngles(); - } - - /** - * 计算相机矩阵 - */ - private computeMatrix() { - let rotX; - let rotY; - // 使用四元数描述 3D 旋转 - // @see https://xiaoiver.github.io/coding/2018/12/28/Camera-%E8%AE%BE%E8%AE%A1-%E4%B8%80.html - const rotZ = quat.setAxisAngle( - quat.create(), - [0, 0, 1], - this.roll * DEG_2_RAD, - ); - - mat4.identity(this.matrix); - - // only consider HCS for EXPLORING and ORBITING cameras - rotX = quat.setAxisAngle( - quat.create(), - [1, 0, 0], - (this.rotateWorld || this.type === CAMERA_TYPE.TRACKING ? 1 : -1) * - this.elevation * - DEG_2_RAD, - ); - rotY = quat.setAxisAngle( - quat.create(), - [0, 1, 0], - (this.rotateWorld ? 1 : -1) * this.azimuth * DEG_2_RAD, - ); - - let rotQ = quat.multiply(quat.create(), rotY, rotX); - rotQ = quat.multiply(quat.create(), rotQ, rotZ); - const rotMatrix = mat4.fromQuat(mat4.create(), rotQ); - - if ( - this.type === CAMERA_TYPE.ORBITING || - this.type === CAMERA_TYPE.EXPLORING - ) { - mat4.translate(this.matrix, this.matrix, this.focalPoint); - mat4.multiply(this.matrix, this.matrix, rotMatrix); - mat4.translate(this.matrix, this.matrix, [0, 0, this.distance]); - } else if (this.type === CAMERA_TYPE.TRACKING) { - mat4.translate(this.matrix, this.matrix, this.position); - mat4.multiply(this.matrix, this.matrix, rotMatrix); - } - } - - /** - * Sets the camera position in the camera matrix - */ - private _setPosition(x: number | vec3, y?: number, z?: number) { - this.position = createVec3(x, y, z); - const m = this.matrix; - m[12] = this.position[0]; - m[13] = this.position[1]; - m[14] = this.position[2]; - m[15] = 1; - } - - /** - * Recalculates axes based on the current matrix - */ - private _getAxes() { - vec3.copy( - this.right, - createVec3(vec4.transformMat4(vec4.create(), [1, 0, 0, 0], this.matrix)), - ); - vec3.copy( - this.up, - createVec3(vec4.transformMat4(vec4.create(), [0, 1, 0, 0], this.matrix)), - ); - vec3.copy( - this.forward, - createVec3(vec4.transformMat4(vec4.create(), [0, 0, 1, 0], this.matrix)), - ); - vec3.normalize(this.right, this.right); - vec3.normalize(this.up, this.up); - vec3.normalize(this.forward, this.forward); - } - - /** - * Recalculates euler angles based on the current state - */ - private _getAngles() { - // Recalculates angles - const x = this.distanceVector[0]; - const y = this.distanceVector[1]; - const z = this.distanceVector[2]; - const r = vec3.length(this.distanceVector); - - // FAST FAIL: If there is no distance we cannot compute angles - if (r === 0) { - this.elevation = 0; - this.azimuth = 0; - return; - } - - if (this.type === CAMERA_TYPE.TRACKING) { - this.elevation = Math.asin(y / r) * RAD_2_DEG; - this.azimuth = Math.atan2(-x, -z) * RAD_2_DEG; - } else { - if (this.rotateWorld) { - this.elevation = Math.asin(y / r) * RAD_2_DEG; - this.azimuth = Math.atan2(-x, -z) * RAD_2_DEG; - } else { - this.elevation = -Math.asin(y / r) * RAD_2_DEG; - this.azimuth = -Math.atan2(-x, -z) * RAD_2_DEG; - } - } - } - - /** - * 重新计算相机位置,只有 ORBITING 模式相机位置才会发生变化 - */ - private _getPosition() { - vec3.copy( - this.position, - createVec3(vec4.transformMat4(vec4.create(), [0, 0, 0, 1], this.matrix)), - ); - - // 相机位置变化,需要重新计算视距 - this._getDistance(); - } - - /** - * 重新计算视点,只有 TRACKING 模式视点才会发生变化 - */ - private _getFocalPoint() { - vec3.transformMat3( - this.distanceVector, - [0, 0, -this.distance], - mat3.fromMat4(mat3.create(), this.matrix), - ); - vec3.add(this.focalPoint, this.position, this.distanceVector); - - // 视点变化,需要重新计算视距 - this._getDistance(); - } - - /** - * 重新计算视距 - */ - private _getDistance() { - this.distanceVector = vec3.subtract( - vec3.create(), - this.focalPoint, - this.position, - ); - this.distance = vec3.length(this.distanceVector); - this.dollyingStep = this.distance / 100; - } -} diff --git a/packages/core/src/services/camera/CameraService.ts b/packages/core/src/services/camera/CameraService.ts deleted file mode 100644 index 6c9febcb34..0000000000 --- a/packages/core/src/services/camera/CameraService.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { mat4 } from 'gl-matrix'; -import { inject, injectable } from 'inversify'; -import { ICameraService, IViewport } from './ICameraService'; - -@injectable() -export default class CameraService implements ICameraService { - private viewport: IViewport; - - /** - * 不使用 Viewport 计算的 VP 矩阵,例如偏移坐标系场景 - */ - private overridedViewProjectionMatrix: number[] | undefined; - - /** - * 抖动后的 VP 矩阵 - */ - private jitteredViewProjectionMatrix: number[] | undefined; - - /** - * 抖动后的 Projection 矩阵 - */ - private jitteredProjectionMatrix: number[] | undefined; - - /** - * ViewMatrix 逆矩阵,用于计算相机位置 - */ - private viewMatrixInverse: number[]; - - /** - * 相机位置 - */ - private cameraPosition: number[]; - - public init() { - // - } - - /** - * 同步根据相机参数创建的视口 - */ - public update(viewport: IViewport) { - this.viewport = viewport; - - // 计算逆矩阵 - this.viewMatrixInverse = (mat4.invert( - mat4.create(), - (this.getViewMatrix() as unknown) as mat4, - ) as unknown) as number[]; - - this.cameraPosition = [ - this.viewMatrixInverse[12], - this.viewMatrixInverse[13], - this.viewMatrixInverse[14], - ]; - } - - public getProjectionMatrix(): number[] { - // 优先返回抖动后的 ProjectionMatrix - return this.jitteredProjectionMatrix || this.viewport.getProjectionMatrix(); - } - - public getViewMatrix(): number[] { - return this.viewport.getViewMatrix(); - } - - public getViewMatrixUncentered(): number[] { - return this.viewport.getViewMatrixUncentered(); - } - - public getViewProjectionMatrix(): number[] { - return ( - this.overridedViewProjectionMatrix || - this.jitteredViewProjectionMatrix || - this.viewport.getViewProjectionMatrix() - ); - } - - public getZoom(): number { - return this.viewport.getZoom(); - } - - public getZoomScale(): number { - return this.viewport.getZoomScale(); - } - - public getCenter(): [number, number] { - const [lng, lat] = this.viewport.getCenter(); - return [lng, lat]; - } - - public getFocalDistance() { - return this.viewport.getFocalDistance(); - } - - public getCameraPosition() { - return this.cameraPosition; - } - - public projectFlat( - lngLat: [number, number], - scale?: number | undefined, - ): [number, number] { - return this.viewport.projectFlat(lngLat, scale); - } - - /** - * 支持外部计算 VP 矩阵的场景,例如:在偏移坐标系场景中,需要重新计算 VP 矩阵 - */ - public setViewProjectionMatrix(viewProjectionMatrix: number[] | undefined) { - this.overridedViewProjectionMatrix = viewProjectionMatrix; - } - - public jitterProjectionMatrix(x: number, y: number) { - const translation = mat4.fromTranslation(mat4.create(), [x, y, 0]); - - this.jitteredProjectionMatrix = (mat4.multiply( - mat4.create(), - translation, - (this.viewport.getProjectionMatrix() as unknown) as mat4, - ) as unknown) as number[]; - - this.jitteredViewProjectionMatrix = (mat4.multiply( - mat4.create(), - (this.jitteredProjectionMatrix as unknown) as mat4, - (this.viewport.getViewMatrix() as unknown) as mat4, - ) as unknown) as number[]; - } - - public clearJitterProjectionMatrix() { - this.jitteredProjectionMatrix = undefined; - this.jitteredViewProjectionMatrix = undefined; - } -} diff --git a/packages/core/src/services/camera/ICameraService.ts b/packages/core/src/services/camera/ICameraService.ts deleted file mode 100644 index fab7a35f30..0000000000 --- a/packages/core/src/services/camera/ICameraService.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { IMapCamera } from '../map/IMapService'; - -// 后续传入 Shader 的变量 -export const CameraUniform = { - ProjectionMatrix: 'u_ProjectionMatrix', - ViewMatrix: 'u_ViewMatrix', - ViewProjectionMatrix: 'u_ViewProjectionMatrix', - Zoom: 'u_Zoom', - ZoomScale: 'u_ZoomScale', - FocalDistance: 'u_FocalDistance', - CameraPosition: 'u_CameraPosition', -}; - -export interface IViewport { - syncWithMapCamera(mapCamera: Partial): void; - getProjectionMatrix(): number[]; - getViewMatrix(): number[]; - getViewMatrixUncentered(): number[]; - getViewProjectionMatrix(): number[]; - getZoom(): number; - getZoomScale(): number; - getFocalDistance(): number; - getCenter(): [number, number]; - projectFlat( - lngLat: [number, number], - scale?: number | undefined, - ): [number, number]; -} - -export interface ICameraService extends Omit { - init(): void; - update(viewport: IViewport): void; - getCameraPosition(): number[]; - setViewProjectionMatrix(viewProjectionMatrix: number[] | undefined): void; - jitterProjectionMatrix(x: number, y: number): void; - clearJitterProjectionMatrix(): void; -} diff --git a/packages/core/src/services/camera/Landmark.ts b/packages/core/src/services/camera/Landmark.ts deleted file mode 100644 index 0279aa3a7e..0000000000 --- a/packages/core/src/services/camera/Landmark.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { mat3, mat4, quat, vec3, vec4 } from 'gl-matrix'; -import Camera from './Camera'; - -/** - * 保存相机状态,便于后续在多个 Landmark 间移动 - */ -export default class Landmark { - public name: string; - - private matrix: mat4; - private right: vec3; - private up: vec3; - private forward: vec3; - private position: vec3; - private focalPoint: vec3; - private distanceVector: vec3; - private distance: number; - private dollyingStep: number; - private azimuth = 0; - private elevation = 0; - private roll = 0; - private relAzimuth = 0; - private relElevation = 0; - private relRoll = 0; - - constructor(name: string, c: Camera) { - this.name = name; - - this.matrix = mat4.clone(c.matrix); - this.right = vec3.clone(c.right); - this.up = vec3.clone(c.up); - this.forward = vec3.clone(c.forward); - this.position = vec3.clone(c.position); - this.focalPoint = vec3.clone(c.focalPoint); - this.distanceVector = vec3.clone(c.distanceVector); - - this.azimuth = c.azimuth; - this.elevation = c.elevation; - this.roll = c.roll; - this.relAzimuth = c.relAzimuth; - this.relElevation = c.relElevation; - this.relRoll = c.relRoll; - this.dollyingStep = c.dollyingStep; - this.distance = c.distance; - } - - public retrieve(c: Camera) { - c.matrix = mat4.copy(c.matrix, this.matrix); - c.right = vec3.copy(c.right, this.right); - c.up = vec3.copy(c.up, this.up); - c.forward = vec3.copy(c.forward, this.forward); - c.position = vec3.copy(c.position, this.position); - c.focalPoint = vec3.copy(c.focalPoint, this.focalPoint); - c.distanceVector = vec3.copy(c.distanceVector, this.distanceVector); - - c.azimuth = this.azimuth; - c.elevation = this.elevation; - c.roll = this.roll; - c.relAzimuth = this.relAzimuth; - c.relElevation = this.relElevation; - c.relRoll = this.relRoll; - c.dollyingStep = this.dollyingStep; - c.distance = this.distance; - } -} diff --git a/packages/core/src/services/component/ControlService.ts b/packages/core/src/services/component/ControlService.ts deleted file mode 100644 index f2024d4fe4..0000000000 --- a/packages/core/src/services/component/ControlService.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { DOM } from '@l7/utils'; -import { inject, injectable } from 'inversify'; -import { IMapService } from '../map/IMapService'; -import { - IControl, - IControlCorners, - IControlService, - IControlServiceCfg, -} from './IControlService'; - -@injectable() -export default class ControlService implements IControlService { - public container: HTMLElement; - public controlCorners: IControlCorners; - public controlContainer: HTMLElement; - private controls: IControl[] = []; - public init(cfg: IControlServiceCfg) { - this.destroy(); - this.container = cfg.container; - this.initControlPos(); - } - - public addControl(ctr: IControl, mapService: IMapService): void { - ctr.addTo(mapService); // scene对象 - this.controls.push(ctr); - } - public removeControl(ctr: IControl): this { - const index = this.controls.indexOf(ctr); - if (index > -1) { - this.controls.splice(index, 1); - } - ctr.remove(); - return this; - } - - public destroy(): void { - for (const ctr of this.controls) { - ctr.remove(); - } - this.controls = []; - this.clearControlPos(); - } - - private initControlPos() { - const corners: IControlCorners = (this.controlCorners = {}); - const l = 'l7-'; - const container = (this.controlContainer = DOM.create( - 'div', - l + 'control-container', - this.container, - )); - - function createCorner(vSide: string, hSide: string) { - const className = l + vSide + ' ' + l + hSide; - - corners[vSide + hSide] = DOM.create('div', className, container); - } - - createCorner('top', 'left'); - createCorner('top', 'right'); - createCorner('bottom', 'left'); - createCorner('bottom', 'right'); - } - - private clearControlPos() { - for (const i in this.controlCorners) { - if (this.controlCorners[i]) { - DOM.remove(this.controlCorners[i]); - } - } - if (this.controlContainer) { - DOM.remove(this.controlContainer); - } - delete this.controlCorners; - delete this.controlContainer; - } -} diff --git a/packages/core/src/services/component/IControlService.ts b/packages/core/src/services/component/IControlService.ts deleted file mode 100644 index 2a86f66c41..0000000000 --- a/packages/core/src/services/component/IControlService.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { IMapService } from '../map/IMapService'; -export enum PositionType { - 'TOPRIGHT' = 'topright', - 'TOPLEFT' = 'topleft', - 'BOTTOMRIGHT' = 'bottomright', - 'BOTTOMLEFT' = 'bottomleft', -} -export interface IControlOption { - position: PositionType; -} -export interface IControlServiceCfg { - container: HTMLElement; -} -export interface IControlCorners { - [key: string]: HTMLElement; -} -export interface IControl { - setPosition(pos: PositionType): void; - addTo(map: IMapService): void; - onAdd(map: IMapService): HTMLElement; - hide(): void; - show(): void; - remove(): void; -} -export interface IControlService { - container: HTMLElement; - controlCorners: IControlCorners; - controlContainer: HTMLElement; - init(cfg: IControlServiceCfg): void; - addControl(ctr: IControl, map: IMapService): void; - removeControl(ctr: IControl): void; - destroy(): void; -} diff --git a/packages/core/src/services/component/IMarkerService.ts b/packages/core/src/services/component/IMarkerService.ts deleted file mode 100644 index a20a190a2e..0000000000 --- a/packages/core/src/services/component/IMarkerService.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ILngLat, IMapService } from '../map/IMapService'; -export interface IMarkerScene { - getMapService(): IMapService; - [key: string]: any; -} -export interface IMarker { - addTo(scene: IMarkerScene): void; - remove(): void; - setLnglat(lngLat: ILngLat): this; - getLnglat(): ILngLat; - getElement(): HTMLElement; - togglePopup(): this; -} diff --git a/packages/core/src/services/component/IPopUpService.ts b/packages/core/src/services/component/IPopUpService.ts deleted file mode 100644 index af4d3a1c36..0000000000 --- a/packages/core/src/services/component/IPopUpService.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ILngLat, IMapService } from '../map/IMapService'; -import { IMarkerScene } from './IMarkerService'; -export interface IPopup { - addTo(scene: IMarkerScene): this; - remove(): void; - setLnglat(lngLat: ILngLat): this; - getLnglat(): ILngLat; - setHTML(html: string): this; - setText(text: string): this; - setMaxWidth(maxWidth: string): this; - isOpen(): boolean; -} diff --git a/packages/core/src/services/config/ConfigService.ts b/packages/core/src/services/config/ConfigService.ts deleted file mode 100644 index 0cebe61a09..0000000000 --- a/packages/core/src/services/config/ConfigService.ts +++ /dev/null @@ -1,101 +0,0 @@ -import Ajv from 'ajv'; -import { injectable } from 'inversify'; -import { IGlobalConfig, IGlobalConfigService } from './IConfigService'; - -const defaultGlobalConfig: Partial = { - type: 'amap', - zoom: 5, - center: [107.622, 39.266], - pitch: 0, - // minZoom: 3, - // maxZoom: 18, - colors: [ - 'rgb(103,0,31)', - 'rgb(178,24,43)', - 'rgb(214,96,77)', - 'rgb(244,165,130)', - 'rgb(253,219,199)', - 'rgb(247,247,247)', - 'rgb(209,229,240)', - 'rgb(146,197,222)', - 'rgb(67,147,195)', - 'rgb(33,102,172)', - 'rgb(5,48,97)', - ], - size: 10, - shape: 'circle', - scales: {}, - shape2d: [ - 'circle', - 'triangle', - 'square', - 'pentagon', - 'hexagon', - 'octogon', - 'hexagram', - 'rhombus', - 'vesica', - ], - shape3d: ['cylinder', 'triangleColumn', 'hexagonColumn', 'squareColumn'], -}; - -// @see https://github.com/epoberezkin/ajv#options -const ajv = new Ajv({ - allErrors: true, - verbose: true, -}); - -@injectable() -export default class GlobalConfigService implements IGlobalConfigService { - private config: Partial = defaultGlobalConfig; - - /** - * 保存每个 Layer 配置项的校验器 - */ - private layerConfigValidatorCache: { - [layerName: string]: Ajv.ValidateFunction; - } = {}; - - public getConfig() { - return this.config; - } - - public setAndCheckConfig(config: Partial) { - this.config = { - ...this.config, - ...config, - }; - // TODO: validate config with JSON schema - // @see https://github.com/webpack/schema-utils - return true; - } - - public reset() { - this.config = defaultGlobalConfig; - } - - public registerLayerConfigSchemaValidator(layerName: string, schema: object) { - if (!this.layerConfigValidatorCache[layerName]) { - this.layerConfigValidatorCache[layerName] = ajv.compile(schema); - } - } - - public validateLayerConfig(layerName: string, data: object) { - const validate = this.layerConfigValidatorCache[layerName]; - if (validate) { - const valid = validate(data); - if (!valid) { - return { - valid, - errors: validate.errors, - errorText: ajv.errorsText(validate.errors), - }; - } - } - return { - valid: true, - errors: null, - errorText: null, - }; - } -} diff --git a/packages/core/src/services/config/IConfigService.ts b/packages/core/src/services/config/IConfigService.ts deleted file mode 100644 index f0ac68d7bf..0000000000 --- a/packages/core/src/services/config/IConfigService.ts +++ /dev/null @@ -1,21 +0,0 @@ -import Ajv from 'ajv'; -import { ILayerGlobalConfig } from '../layer/ILayerService'; -import { IMapConfig } from '../map/IMapService'; -import { IRenderConfig } from '../renderer/IRendererService'; - -export type IGlobalConfig = IMapConfig & IRenderConfig & ILayerGlobalConfig; - -export interface IGlobalConfigService { - getConfig(): Partial; - setAndCheckConfig(config: Partial): boolean; - reset(): void; - registerLayerConfigSchemaValidator(layerName: string, schema: object): void; - validateLayerConfig( - layerName: string, - data: object, - ): { - valid: boolean; - errors: Ajv.ErrorObject[] | null | undefined; - errorText: string | null; - }; -} diff --git a/packages/core/src/services/config/__tests__/schema.spec.ts b/packages/core/src/services/config/__tests__/schema.spec.ts deleted file mode 100644 index 565bad951b..0000000000 --- a/packages/core/src/services/config/__tests__/schema.spec.ts +++ /dev/null @@ -1,57 +0,0 @@ -import 'reflect-metadata'; -import ConfigService from '../ConfigService'; -import { IGlobalConfigService } from '../IConfigService'; - -describe('ConfigService', () => { - let configService: IGlobalConfigService; - - beforeEach(() => { - configService = new ConfigService(); - }); - - it("should validate layer's options according to JSON schema", () => { - configService.registerLayerConfigSchemaValidator('testLayer', { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - enablePicking: { - type: 'boolean', - }, - }, - }); - - const { valid, errorText } = configService.validateLayerConfig( - 'testLayer', - { opacity: 'invalid' }, - ); - expect(valid).toBeFalsy(); - expect(errorText).toMatch('opacity should be number'); - - expect( - configService.validateLayerConfig('testLayer', { - opacity: 1.5, - }).valid, - ).toBeFalsy(); - - expect( - configService.validateLayerConfig('testLayer', { - enablePicking: 1.5, - }).valid, - ).toBeFalsy(); - - expect( - configService.validateLayerConfig('testLayer', { - opacity: 1.0, - }).valid, - ).toBeTruthy(); - - expect( - configService.validateLayerConfig('testLayer', { - opacity: 0.0, - }).valid, - ).toBeTruthy(); - }); -}); diff --git a/packages/core/src/services/coordinate/CoordinateSystemService.ts b/packages/core/src/services/coordinate/CoordinateSystemService.ts deleted file mode 100644 index 227aa8c7ad..0000000000 --- a/packages/core/src/services/coordinate/CoordinateSystemService.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { mat4, vec4 } from 'gl-matrix'; -import { inject, injectable } from 'inversify'; -import { TYPES } from '../../types'; -import { getDistanceScales } from '../../utils/project'; -import { ICameraService } from '../camera/ICameraService'; -import { - CoordinateSystem, - ICoordinateSystemService, -} from './ICoordinateSystemService'; - -const VECTOR_TO_POINT_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]; - -@injectable() -export default class CoordinateSystemService - implements ICoordinateSystemService { - @inject(TYPES.ICameraService) - private readonly cameraService: ICameraService; - - /** - * 1. Web 墨卡托坐标系 - * 2. 偏移经纬度,用于解决高精度抖动问题 - * 3. 瓦片坐标,用于数据瓦片 - * 4. 常规世界坐标系,用于常规 2D/3D 可视化场景 - * 5. P20 坐标系,高德地图使用 - * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91 - */ - private coordinateSystem: CoordinateSystem; - - /** - * 屏幕中心点 [lng, lat] - */ - private viewportCenter: [number, number]; - - /** - * 屏幕中心点的最终投影结果,在 CPU 侧计算后传入 Shader - * @see https://zhuanlan.zhihu.com/p/57469121 - */ - private viewportCenterProjection: [number, number, number, number]; - - /** - * 像素单位 -> 经纬度 [x, y, z] - */ - private pixelsPerDegree: [number, number, number]; - - /** - * 像素单位 -> 经纬度 [lng, lat] 使用泰勒级数展开 - * 通过墨卡托坐标系下的差值估计世界坐标系下的差值 - * @see https://zhuanlan.zhihu.com/p/57469121 - */ - private pixelsPerDegree2: [number, number, number]; - - /** - * 像素单位 -> 米 - */ - private pixelsPerMeter: [number, number, number]; - - /** - * 重新计算当前坐标系参数 - * TODO: 使用 memoize 缓存参数以及计算结果 - */ - public refresh(): void { - const zoom = this.cameraService.getZoom(); - const zoomScale = this.cameraService.getZoomScale(); - const center = this.cameraService.getCenter(); - - // 计算像素到米以及经纬度之间的转换 - const { pixelsPerMeter, pixelsPerDegree } = getDistanceScales({ - // longitude: center[0], - latitude: center[1], - zoom, - }); - this.viewportCenter = center; - this.viewportCenterProjection = [0, 0, 0, 0]; - this.pixelsPerMeter = pixelsPerMeter; - this.pixelsPerDegree = pixelsPerDegree; - this.pixelsPerDegree2 = [0, 0, 0]; - - if ( - this.coordinateSystem === CoordinateSystem.LNGLAT || - this.coordinateSystem === CoordinateSystem.P20 - ) { - // 继续使用相机服务计算的 VP 矩阵 - this.cameraService.setViewProjectionMatrix(undefined); - } else if (this.coordinateSystem === CoordinateSystem.LNGLAT_OFFSET) { - this.calculateLnglatOffset(center, zoom); - } else if (this.coordinateSystem === CoordinateSystem.P20_OFFSET) { - this.calculateLnglatOffset(center, zoom, zoomScale, true); - } - - // TODO: 判断是否应用瓦片 & 常规坐标系 - } - - public getCoordinateSystem(): CoordinateSystem { - return this.coordinateSystem; - } - - public setCoordinateSystem(coordinateSystem: CoordinateSystem) { - this.coordinateSystem = coordinateSystem; - } - - public getViewportCenter(): [number, number] { - return this.viewportCenter; - } - - public getViewportCenterProjection(): [number, number, number, number] { - return this.viewportCenterProjection; - } - - public getPixelsPerDegree(): [number, number, number] { - return this.pixelsPerDegree; - } - - public getPixelsPerDegree2(): [number, number, number] { - return this.pixelsPerDegree2; - } - - public getPixelsPerMeter(): [number, number, number] { - return this.pixelsPerMeter; - } - - private calculateLnglatOffset( - center: [number, number], - zoom: number, - scale?: number, - flipY?: boolean, - ) { - // http://uber-common.github.io/viewport-mercator-project/docs/api-reference/web-mercator-utils#code-classlanguage-textgetdistancescalesviewportcode - const { - pixelsPerMeter: ppm, - pixelsPerDegree: ppd, - pixelsPerDegree2, - } = getDistanceScales({ - // longitude: center[0], - latitude: center[1], - zoom, - scale, - flipY, - highPrecision: true, - }); - - let viewMatrix = this.cameraService.getViewMatrix(); - const projectionMatrix = this.cameraService.getProjectionMatrix(); - let viewProjectionMatrix = mat4.multiply( - ([] as unknown) as mat4, - (projectionMatrix as unknown) as mat4, - (viewMatrix as unknown) as mat4, - ); - - // 经纬度投影到 Web 墨卡托坐标系 - const positionPixels = this.cameraService.projectFlat( - [Math.fround(center[0]), Math.fround(center[1])], - Math.pow(2, zoom), - ); - - // Web 墨卡托坐标系通过 VP 矩阵变换到世界坐标系 - this.viewportCenterProjection = (vec4.transformMat4( - ([] as unknown) as vec4, - [positionPixels[0], positionPixels[1], 0.0, 1.0], - (viewProjectionMatrix as unknown) as mat4, - ) as unknown) as [number, number, number, number]; - - // Always apply uncentered projection matrix if available (shader adds center) - viewMatrix = this.cameraService.getViewMatrixUncentered() || viewMatrix; - - // Zero out 4th coordinate ("after" model matrix) - avoids further translations - viewProjectionMatrix = mat4.multiply( - ([] as unknown) as mat4, - (projectionMatrix as unknown) as mat4, - (viewMatrix as unknown) as mat4, - ); - viewProjectionMatrix = mat4.multiply( - ([] as unknown) as mat4, - viewProjectionMatrix, - (VECTOR_TO_POINT_MATRIX as unknown) as mat4, - ); - - // 重新计算相机 VP 矩阵 - this.cameraService.setViewProjectionMatrix( - (viewProjectionMatrix as unknown) as number[], - ); - - this.pixelsPerMeter = ppm; - this.pixelsPerDegree = ppd; - this.pixelsPerDegree2 = pixelsPerDegree2; - } -} diff --git a/packages/core/src/services/coordinate/ICoordinateSystemService.ts b/packages/core/src/services/coordinate/ICoordinateSystemService.ts deleted file mode 100644 index 96b763777b..0000000000 --- a/packages/core/src/services/coordinate/ICoordinateSystemService.ts +++ /dev/null @@ -1,41 +0,0 @@ -/** - * 支持以下坐标系: - * 1. 经纬度 - * 2. 偏移经纬度,用于解决高精度抖动问题 - * 3. 瓦片坐标,用于数据瓦片 - * 4. 常规世界坐标系,用于常规 2D/3D 可视化场景 - * 5. P20 - * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91 - */ - -// TODO:自动注入 Shader 中 -export enum CoordinateSystem { - LNGLAT = 1.0, - LNGLAT_OFFSET = 2.0, - VECTOR_TILE = 3.0, - IDENTITY = 4.0, - P20 = 5.0, - P20_OFFSET = 6.0, - METER_OFFSET = 7.0, -} - -// 后续传入 Shader 的变量 -export const CoordinateUniform = { - CoordinateSystem: 'u_CoordinateSystem', - ViewportCenter: 'u_ViewportCenter', - ViewportCenterProjection: 'u_ViewportCenterProjection', - PixelsPerDegree: 'u_PixelsPerDegree', - PixelsPerDegree2: 'u_PixelsPerDegree2', - PixelsPerMeter: 'u_PixelsPerMeter', -}; - -export interface ICoordinateSystemService { - refresh(): void; - getCoordinateSystem(): CoordinateSystem; - setCoordinateSystem(coordinateSystem: CoordinateSystem): void; - getViewportCenter(): [number, number]; - getViewportCenterProjection(): [number, number, number, number]; - getPixelsPerDegree(): [number, number, number]; - getPixelsPerDegree2(): [number, number, number]; - getPixelsPerMeter(): [number, number, number]; -} diff --git a/packages/core/src/services/interaction/IInteractionService.ts b/packages/core/src/services/interaction/IInteractionService.ts deleted file mode 100644 index df77a1d265..0000000000 --- a/packages/core/src/services/interaction/IInteractionService.ts +++ /dev/null @@ -1,14 +0,0 @@ -export enum InteractionEvent { - Hover = 'hover', - Click = 'click', -} - -export interface IInteractionService { - init(): void; - destroy(): void; - on( - eventName: InteractionEvent, - callback: (params: { x: number; y: number }) => void, - ): void; - triggerHover({ x, y }: { x: number; y: number }): void; -} diff --git a/packages/core/src/services/interaction/InteractionService.ts b/packages/core/src/services/interaction/InteractionService.ts deleted file mode 100644 index b4a8d064b2..0000000000 --- a/packages/core/src/services/interaction/InteractionService.ts +++ /dev/null @@ -1,79 +0,0 @@ -import EventEmitter from 'eventemitter3'; -import Hammer from 'hammerjs'; -import { inject, injectable } from 'inversify'; -import { TYPES } from '../../types'; -import { ILogService } from '../log/ILogService'; -import { IMapService } from '../map/IMapService'; -import { IInteractionService, InteractionEvent } from './IInteractionService'; - -/** - * 由于目前 L7 与地图结合的方案为双 canvas 而非共享 WebGL Context,事件监听注册在地图底图上。 - * 除此之外,后续如果支持非地图场景,事件监听就需要注册在 L7 canvas 上。 - */ -@injectable() -export default class InteractionService extends EventEmitter - implements IInteractionService { - @inject(TYPES.IMapService) - private readonly mapService: IMapService; - - @inject(TYPES.ILogService) - private readonly logger: ILogService; - - private hammertime: HammerManager; - - public init() { - // 注册事件在地图底图上 - this.clear(); - this.addEventListenerOnMap(); - } - - public destroy() { - if (this.hammertime) { - this.hammertime.destroy(); - } - this.removeEventListenerOnMap(); - this.off(InteractionEvent.Hover); - } - - public triggerHover({ x, y }: { x: number; y: number }) { - this.emit(InteractionEvent.Hover, { x, y }); - } - - private addEventListenerOnMap() { - const $containter = this.mapService.getMapContainer(); - if ($containter) { - const hammertime = new Hammer($containter); - hammertime.get('pan').set({ direction: Hammer.DIRECTION_ALL }); - hammertime.get('pinch').set({ enable: true }); - - // hammertime.on('panstart', this.onPanstart); - // hammertime.on('panmove', this.onPanmove); - // hammertime.on('panend', this.onPanend); - // hammertime.on('pinch', this.onPinch); - - $containter.addEventListener('mousemove', this.onHover); - this.hammertime = hammertime; - - // TODO: 根据场景注册事件到 L7 canvas 上 - this.logger.info('add event listeners on canvas'); - } - } - - private removeEventListenerOnMap() { - const $containter = this.mapService.getMapContainer(); - if ($containter) { - $containter.removeEventListener('mousemove', this.onHover); - } - } - - private onHover = ({ x, y }: MouseEvent) => { - this.emit(InteractionEvent.Hover, { x, y }); - }; - private clear() { - if (this.hammertime) { - this.hammertime.destroy(); - } - this.removeEventListenerOnMap(); - this.off(InteractionEvent.Hover); - } -} diff --git a/packages/core/src/services/layer/ILayerService.ts b/packages/core/src/services/layer/ILayerService.ts deleted file mode 100644 index 16959dcdc3..0000000000 --- a/packages/core/src/services/layer/ILayerService.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { SyncBailHook, SyncHook } from 'tapable'; -import Clock from '../../utils/clock'; -import { IGlobalConfigService } from '../config/IConfigService'; -import { IModel, IModelInitializationOptions } from '../renderer/IModel'; -import { IMultiPassRenderer } from '../renderer/IMultiPassRenderer'; -import { IUniform } from '../renderer/IUniform'; -import { ISource, ISourceCFG } from '../source/ISourceService'; -import { - IAnimateOption, - IEncodeFeature, - IScale, - IScaleOptions, - IStyleAttributeService, - StyleAttrField, - StyleAttributeOption, - Triangulation, -} from './IStyleAttributeService'; - -export interface ILayerGlobalConfig { - colors: string[]; - size: number; - shape: string; - shape2d: string[]; - shape3d: string[]; - scales: { - [key: string]: IScale; - }; -} -export interface ILayerModelInitializationOptions { - moduleName: string; - vertexShader: string; - fragmentShader: string; - triangulation: Triangulation; -} -export interface ILayerModel { - render(): void; - getUninforms(): IModelUniform; - buildModels(): IModel[]; -} -export interface IModelUniform { - [key: string]: IUniform; -} - -export interface IPickedFeature { - x: number; - y: number; - lnglat?: { lng: number; lat: number }; - feature?: unknown; -} - -export interface ILayer { - id: string; // 一个场景中同一类型 Layer 可能存在多个 - name: string; // 代表 Layer 的类型 - visible: boolean; - zIndex: number; - minZoom: number; - maxZoom: number; - configService: IGlobalConfigService; - plugins: ILayerPlugin[]; - hooks: { - init: SyncBailHook; - beforeRender: SyncBailHook; - afterRender: SyncHook; - beforePickingEncode: SyncHook; - afterPickingEncode: SyncHook; - beforeHighlight: SyncHook<[number[]]>; - afterHighlight: SyncHook; - beforeDestroy: SyncHook; - afterDestroy: SyncHook; - }; - models: IModel[]; - sourceOption: { - data: any; - options?: ISourceCFG; - }; - multiPassRenderer: IMultiPassRenderer; - styleAttributeService: IStyleAttributeService; - buildLayerModel( - options: ILayerModelInitializationOptions & - Partial, - ): IModel; - init(): ILayer; - size(field: StyleAttrField, value?: StyleAttributeOption): ILayer; - color(field: StyleAttrField, value?: StyleAttributeOption): ILayer; - shape(field: StyleAttrField, value?: StyleAttributeOption): ILayer; - label(field: StyleAttrField, value?: StyleAttributeOption): ILayer; - animate(option: IAnimateOption): ILayer; - // pattern(field: string, value: StyleAttributeOption): ILayer; - // filter(field: string, value: StyleAttributeOption): ILayer; - // active(option: ActiveOption): ILayer; - style(options: unknown): ILayer; - hide(): ILayer; - show(): ILayer; - setIndex(index: number): ILayer; - isVisible(): boolean; - setMaxZoom(min: number): ILayer; - setMinZoom(max: number): ILayer; - // animate(field: string, option: any): ILayer; - render(): ILayer; - destroy(): void; - source(data: any, option?: ISourceCFG): ILayer; - addPlugin(plugin: ILayerPlugin): ILayer; - getSource(): ISource; - setSource(source: ISource): void; - setEncodedData(encodedData: IEncodeFeature[]): void; - getEncodedData(): IEncodeFeature[]; - getStyleOptions(): Partial; - getScaleOptions(): IScaleOptions; - /** - * 事件 - */ - on(type: string, hander: (...args: any[]) => void): void; - off(type: string, hander: (...args: any[]) => void): void; - once(type: string, hander: (...args: any[]) => void): void; - /** - * JSON Schema 用于校验配置项 - */ - getConfigSchemaForValidation(): object; - isDirty(): boolean; - /** - * 直接调用拾取方法,在非鼠标交互场景中使用 - */ - pick(query: { x: number; y: number }): void; -} - -/** - * Layer 插件 - */ -export interface ILayerPlugin { - apply(layer: ILayer): void; -} - -/** - * Layer 初始化参数 - */ -export interface ILayerInitializationOptions { - minZoom: number; - maxZoom: number; - visible: boolean; - zIndex: number; - enableMultiPassRenderer: boolean; - passes: Array; - - /** - * 开启拾取 - */ - enablePicking: boolean; - /** - * 开启高亮 - */ - enableHighlight: boolean; - /** - * 高亮颜色 - */ - highlightColor: string | number[]; - /** - * 开启 TAA - */ - enableTAA: boolean; - /** - * 相机抖动程度 - */ - jitterScale: number; - onHover(pickedFeature: IPickedFeature): void; - onClick(pickedFeature: IPickedFeature): void; -} - -/** - * 提供 Layer 管理服务 - */ -export interface ILayerService { - clock: Clock; - add(layer: ILayer): void; - initLayers(): void; - startAnimate(): void; - stopAnimate(): void; - getLayers(): ILayer[]; - getLayer(name: string): ILayer | undefined; - remove(layer: ILayer): void; - updateRenderOrder(): void; - renderLayers(): void; - destroy(): void; -} diff --git a/packages/core/src/services/layer/IStyleAttributeService.ts b/packages/core/src/services/layer/IStyleAttributeService.ts deleted file mode 100644 index c6584232b9..0000000000 --- a/packages/core/src/services/layer/IStyleAttributeService.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { - IAttribute, - IAttributeInitializationOptions, -} from '../renderer/IAttribute'; -import { IBufferInitializationOptions } from '../renderer/IBuffer'; -import { IElements } from '../renderer/IElements'; -import { IParseDataItem, IParserData } from '../source/ISourceService'; -import { ILayer } from './ILayerService'; - -/** - * 1. 提供各个 Layer 样式属性初始值的注册服务 - * 2. 当 Layer 通过 style() 改变某些样式属性时,需要感知并标记该属性已经失效, - * 随后当 Layer 重绘时通过 dirty 标记进行脏检查。重新传入 uniform 或者构建顶点数据(更新 Buffer 中的指定位置)。 - * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/qfuzg8 - */ - -export enum ScaleTypes { - LINEAR = 'linear', - POWER = 'power', - LOG = 'log', - IDENTITY = 'identity', - TIME = 'time', - QUANTILE = 'quantile', - QUANTIZE = 'quantize', - THRESHOLD = 'threshold', - CAT = 'cat', -} - -export interface IScale { - type: ScaleTypes; - ticks?: any[]; - nice?: boolean; - format?: () => any; - domain?: any[]; -} - -export enum StyleScaleType { - CONSTANT = 'constant', - VARIABLE = 'variable', -} -export interface IScaleOption { - field?: string; - type: ScaleTypes; - ticks?: any[]; - nice?: boolean; - format?: () => any; - domain?: any[]; -} -export interface IScaleOptions { - [key: string]: IScale; -} -export interface IStyleScale { - scale: any; - field: string; - type: StyleScaleType; - option: IScaleOption | undefined; -} -export enum AttributeType { - Attribute, - InstancedAttribute, - Uniform, -} - -export interface IAnimateOption { - enable: boolean; - interval?: number; - duration?: number; - trailLength?: number; -} - -export interface IEncodeFeature { - color?: Color; - size?: number | number[]; - shape?: string | number; - pattern?: string; - id?: number; - coordinates: Position | Position[] | Position[][]; - [key: string]: any; -} - -export interface IVertexAttributeDescriptor - extends Omit { - /** - * attribute name in vertex shader - */ - name: string; - /** - * 创建 buffer 的参数 - */ - buffer: IBufferInitializationOptions; - update?: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - normal: number[], - ) => number[]; -} - -type Position = number[]; -type Color = [number, number, number, number]; -type CallBack = (...args: any[]) => any; -export type StyleAttributeField = string | string[]; -export type StyleAttributeOption = string | number | boolean | any[] | CallBack; -export type StyleAttrField = string | string[] | number | number[]; - -export interface IStyleAttributeInitializationOptions { - name: string; - type: AttributeType; - scale?: { - field: StyleAttributeField; - values: unknown[]; - names: string[]; - type: StyleScaleType; - callback?: (...args: any[]) => []; - scalers?: Array<{ - field: string; - func: unknown; - }>; - }; - descriptor: IVertexAttributeDescriptor; -} - -export interface IFeatureRange { - startIndex: number; - endIndex: number; -} - -export interface IStyleAttribute extends IStyleAttributeInitializationOptions { - needRescale: boolean; - needRemapping: boolean; - needRegenerateVertices: boolean; - featureRange: IFeatureRange; - /** - * 保存渲染层 IAttribute 引用 - */ - vertexAttribute: IAttribute; - mapping?(...params: unknown[]): unknown[]; - setProps(props: Partial): void; -} - -export type Triangulation = ( - feature: IEncodeFeature, -) => { - vertices: number[]; - indices: number[]; - size: number; - normals?: number[]; -}; - -export interface IStyleAttributeUpdateOptions { - featureRange: IFeatureRange; -} - -export interface IStyleAttributeService { - // registerDefaultStyleOptions( - // layerName: string, - // options: ILayerStyleOptions, - // ): void; - registerStyleAttribute( - options: Partial, - ): IStyleAttribute; - updateStyleAttribute( - attributeName: string, - attributeOptions: Partial, - updateOptions: IStyleAttributeUpdateOptions, - ): void; - getLayerStyleAttributes(): IStyleAttribute[] | undefined; - getLayerStyleAttribute(attributeName: string): IStyleAttribute | undefined; - createAttributesAndIndices( - encodedFeatures: IEncodeFeature[], - triangulation: Triangulation, - ): { - attributes: { - [attributeName: string]: IAttribute; - }; - elements: IElements; - }; - /** - * 根据 feature range 更新指定属性 - */ - updateAttributeByFeatureRange( - attributeName: string, - features: IEncodeFeature[], - startFeatureIdx?: number, - endFeatureIdx?: number, - ): void; - /** - * 清除当前管理的所有属性 - */ - clearAllAttributes(): void; -} diff --git a/packages/core/src/services/layer/LayerService.ts b/packages/core/src/services/layer/LayerService.ts deleted file mode 100644 index 9dafcc1356..0000000000 --- a/packages/core/src/services/layer/LayerService.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { container, ILayer } from '../..'; -import { TYPES } from '../../types'; -import Clock from '../../utils/clock'; -import { IGlobalConfigService } from '../config/IConfigService'; -import { IRendererService } from '../renderer/IRendererService'; -import { ILayerService } from './ILayerService'; - -@injectable() -export default class LayerService implements ILayerService { - public clock = new Clock(); - - private layers: ILayer[] = []; - - private layerRenderID: number; - - private animateInstanceCount: number = 0; - - @inject(TYPES.IRendererService) - private readonly renderService: IRendererService; - - @inject(TYPES.IGlobalConfigService) - private readonly configService: IGlobalConfigService; - - public add(layer: ILayer) { - this.layers.push(layer); - this.initPlugin(layer); - layer.init(); - } - - public initLayers() { - this.layers.forEach((layer) => { - // register plugins in every layer - for (const plugin of layer.plugins) { - plugin.apply(layer); - } - layer.init(); - }); - } - - public getLayers(): ILayer[] { - return this.layers; - } - - public getLayer(id: string): ILayer | undefined { - return this.layers.find((layer) => layer.id === id); - } - - public remove(layer: ILayer): void { - const layerIndex = this.layers.indexOf(layer); - if (layerIndex > -1) { - this.layers.splice(layerIndex, 1); - } - layer.destroy(); - this.renderLayers(); - } - - public renderLayers() { - // TODO:脏检查,只渲染发生改变的 Layer - // - this.clear(); - this.layers - .filter((layer) => layer.isVisible()) - .forEach((layer) => { - // trigger hooks - layer.hooks.beforeRender.call(); - layer.render(); - layer.hooks.afterRender.call(); - }); - } - - public updateRenderOrder() { - this.layers.sort((pre: ILayer, next: ILayer) => { - return pre.zIndex - next.zIndex; - }); - this.renderLayers(); - } - - public destroy() { - this.layers.forEach((layer) => layer.destroy()); - this.layers = []; - } - - public startAnimate() { - if (this.animateInstanceCount++ === 0) { - this.runRender(); - } - } - - public stopAnimate() { - if (--this.animateInstanceCount === 0) { - this.stopRender(); - } - } - - private initPlugin(layer: ILayer) { - for (const plugin of layer.plugins) { - plugin.apply(layer); - } - } - - private clear() { - this.renderService.clear({ - color: [0, 0, 0, 0], - depth: 1, - framebuffer: null, - }); - } - - private runRender() { - this.renderLayers(); - this.layerRenderID = requestAnimationFrame(this.renderLayers.bind(this)); - } - - private stopRender() { - cancelAnimationFrame(this.layerRenderID); - } -} diff --git a/packages/core/src/services/layer/StyleAttribute.ts b/packages/core/src/services/layer/StyleAttribute.ts deleted file mode 100644 index 71b742d4da..0000000000 --- a/packages/core/src/services/layer/StyleAttribute.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { isNil } from 'lodash'; -import { - IStyleAttribute, - StyleScaleType, -} from '../layer/IStyleAttributeService'; -import { IAttribute } from '../renderer/IAttribute'; -import { - AttributeType, - IEncodeFeature, - IFeatureRange, - IStyleAttributeInitializationOptions, - IStyleScale, - IVertexAttributeDescriptor, -} from './IStyleAttributeService'; - -export default class StyleAttribute implements IStyleAttribute { - public name: string; - public type: AttributeType; - public scale?: { - type: StyleScaleType.CONSTANT; - names: string[]; - field: string | string[]; - values: unknown[]; - callback?: (...args: any[]) => []; - scalers?: Array<{ - field: string; - func: unknown; - }>; - }; - public descriptor: IVertexAttributeDescriptor; - public featureBufferLayout: Array<{ - feature: IEncodeFeature; - featureIdx: number; - bufferOffset: number; - length: number; - }> = []; - - public needRescale: boolean = false; - public needRemapping: boolean = false; - public needRegenerateVertices: boolean = false; - public featureRange: IFeatureRange = { - startIndex: 0, - endIndex: Infinity, - }; - public vertexAttribute: IAttribute; - - constructor(options: Partial) { - this.setProps(options); - } - - public setProps(options: Partial) { - Object.assign(this, options); - } - - public mapping(params: unknown[]): unknown[] { - /** - * 当用户设置的 callback 返回 null 时, 应该返回默认 callback 中的值 - */ - if (this.scale?.callback) { - // 使用用户返回的值处理 - const ret = this.scale?.callback(params); - if (!isNil(ret)) { - return [ret]; - } - } - - // 没有 callback 或者用户 callback 返回值为空,则使用默认的逻辑处理 - return this.defaultCallback(params); - } - - private defaultCallback = (params: unknown[]): unknown[] => { - // 没有 params 的情况,是指没有指定 fields,直接返回配置的 values 常量 - if (params.length === 0) { - return this.scale?.values || []; - } - return params.map((param, idx) => { - const scaleFunc = this.scale?.scalers![idx].func; - // @ts-ignore - const value = scaleFunc(param); - return value; - }); - }; -} diff --git a/packages/core/src/services/layer/StyleAttributeService.ts b/packages/core/src/services/layer/StyleAttributeService.ts deleted file mode 100644 index 94dbbe3ce4..0000000000 --- a/packages/core/src/services/layer/StyleAttributeService.ts +++ /dev/null @@ -1,292 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { TYPES } from '../../types'; -import { gl } from '../renderer/gl'; -import { IAttribute } from '../renderer/IAttribute'; -import { IElements } from '../renderer/IElements'; -import { IRendererService } from '../renderer/IRendererService'; -import { IParseDataItem } from '../source/ISourceService'; -import { ILayer } from './ILayerService'; -import { - IEncodeFeature, - IStyleAttribute, - IStyleAttributeInitializationOptions, - IStyleAttributeService, - IStyleAttributeUpdateOptions, - IVertexAttributeDescriptor, - Triangulation, -} from './IStyleAttributeService'; -import StyleAttribute from './StyleAttribute'; - -const bytesPerElementMap = { - [gl.FLOAT]: 4, - [gl.UNSIGNED_BYTE]: 1, - [gl.UNSIGNED_SHORT]: 2, -}; - -let counter = 0; - -/** - * 每个 Layer 都拥有一个,用于管理样式属性的注册和更新 - */ -@injectable() -export default class StyleAttributeService implements IStyleAttributeService { - @inject(TYPES.IRendererService) - private readonly rendererService: IRendererService; - - private attributes: IStyleAttribute[] = []; - - private c = counter++; - - private featureLayout: { - sizePerElement: number; - elements: Array<{ - featureIdx: number; - vertices: number[]; - normals: number[]; - offset: number; - }>; - } = { - sizePerElement: 0, - elements: [], - }; - - public registerStyleAttribute( - options: Partial, - ) { - let attributeToUpdate = this.getLayerStyleAttribute(options.name || ''); - if (attributeToUpdate) { - attributeToUpdate.setProps(options); - } else { - attributeToUpdate = new StyleAttribute(options); - this.attributes.push(attributeToUpdate); - } - return attributeToUpdate; - } - - public updateStyleAttribute( - attributeName: string, - options: Partial, - updateOptions?: Partial, - ) { - let attributeToUpdate = this.getLayerStyleAttribute(attributeName); - if (!attributeToUpdate) { - attributeToUpdate = this.registerStyleAttribute({ - ...options, - name: attributeName, - }); - } - const { scale } = options; - if (scale && attributeToUpdate) { - // TODO: 需要比较新旧值确定是否需要 rescale - // 需要重新 scale,肯定也需要重新进行数据映射 - attributeToUpdate.scale = scale; - attributeToUpdate.needRescale = true; - attributeToUpdate.needRemapping = true; - attributeToUpdate.needRegenerateVertices = true; - if (updateOptions && updateOptions.featureRange) { - attributeToUpdate.featureRange = updateOptions.featureRange; - } - } - } - - public getLayerStyleAttributes(): IStyleAttribute[] | undefined { - return this.attributes; - } - - public getLayerStyleAttribute( - attributeName: string, - ): IStyleAttribute | undefined { - return this.attributes.find( - (attribute) => attribute.name === attributeName, - ); - } - - public updateAttributeByFeatureRange( - attributeName: string, - features: IEncodeFeature[], - startFeatureIdx: number = 0, - endFeatureIdx?: number, - ) { - const attributeToUpdate = this.attributes.find( - (attribute) => attribute.name === attributeName, - ); - if (attributeToUpdate && attributeToUpdate.descriptor) { - const { descriptor } = attributeToUpdate; - const { update, buffer, size = 0 } = descriptor; - const bytesPerElement = bytesPerElementMap[buffer.type || gl.FLOAT]; - if (update) { - const { elements, sizePerElement } = this.featureLayout; - // 截取待更新的 feature 范围 - const featuresToUpdate = elements.slice(startFeatureIdx, endFeatureIdx); - - // [n, n] 中断更新 - if (!featuresToUpdate.length) { - return; - } - const { offset } = featuresToUpdate[0]; - // 以 byte 为单位计算 buffer 中的偏移 - const bufferOffsetInBytes = offset * size * bytesPerElement; - const updatedBufferData = featuresToUpdate - .map(({ featureIdx, vertices, normals }, attributeIdx) => { - const verticesNumForCurrentFeature = - vertices.length / sizePerElement; - const featureData: number[] = []; - for ( - let vertexIdx = 0; - vertexIdx < verticesNumForCurrentFeature; - vertexIdx++ - ) { - const normal = normals - ? normals!.slice(vertexIdx * 3, vertexIdx * 3 + 3) - : []; - featureData.push( - ...update( - features[featureIdx], - featureIdx, - vertices.slice( - vertexIdx * sizePerElement, - vertexIdx * sizePerElement + sizePerElement, - ), - attributeIdx, - normal, - ), - ); - } - return featureData; - }) - .reduce((prev, cur) => { - prev.push(...cur); - return prev; - }, []); - - // 更新底层 IAttribute 中包含的 IBuffer,使用 subdata - attributeToUpdate.vertexAttribute.updateBuffer({ - data: updatedBufferData, - offset: bufferOffsetInBytes, - }); - } - } - } - - public createAttributesAndIndices( - features: IEncodeFeature[], - triangulation: Triangulation, - ): { - attributes: { - [attributeName: string]: IAttribute; - }; - elements: IElements; - } { - const descriptors = this.attributes.map((attr) => attr.descriptor); - let verticesNum = 0; - const vertices: number[] = []; - const indices: number[] = []; - const normals: number[] = []; - let size = 3; - - features.forEach((feature, featureIdx) => { - // 逐 feature 进行三角化 - const { - indices: indicesForCurrentFeature, - vertices: verticesForCurrentFeature, - normals: normalsForCurrentFeature, - size: vertexSize, - } = triangulation(feature); - indices.push(...indicesForCurrentFeature.map((i) => i + verticesNum)); - vertices.push(...verticesForCurrentFeature); - if (normalsForCurrentFeature) { - normals.push(...normalsForCurrentFeature); - } - size = vertexSize; - const verticesNumForCurrentFeature = - verticesForCurrentFeature.length / vertexSize; - - // 记录三角化结果,用于后续精确更新指定 feature - this.featureLayout.sizePerElement = size; - this.featureLayout.elements.push({ - featureIdx, - vertices: verticesForCurrentFeature, - normals: normalsForCurrentFeature as number[], - offset: verticesNum, - }); - - verticesNum += verticesNumForCurrentFeature; - - // 根据 position 顶点生成其他顶点数据 - for ( - let vertexIdx = 0; - vertexIdx < verticesNumForCurrentFeature; - vertexIdx++ - ) { - descriptors.forEach((descriptor, attributeIdx) => { - if (descriptor && descriptor.update) { - const normal = - normalsForCurrentFeature?.slice( - vertexIdx * 3, - vertexIdx * 3 + 3, - ) || []; - (descriptor.buffer.data as number[]).push( - ...descriptor.update( - feature, - featureIdx, - verticesForCurrentFeature.slice( - vertexIdx * vertexSize, - vertexIdx * vertexSize + vertexSize, - ), - vertexIdx, // 当前顶点所在feature索引 - normal, - // TODO: 传入顶点索引 vertexIdx - ), - ); - } // end if - }); // end for each - } // end for - }); // end features for Each - const { - createAttribute, - createBuffer, - createElements, - } = this.rendererService; - - const attributes: { - [attributeName: string]: IAttribute; - } = {}; - descriptors.forEach((descriptor, attributeIdx) => { - if (descriptor) { - // IAttribute 参数透传 - const { buffer, update, name, ...rest } = descriptor; - - const vertexAttribute = createAttribute({ - // IBuffer 参数透传 - buffer: createBuffer(buffer), - ...rest, - }); - attributes[descriptor.name || ''] = vertexAttribute; - - // 在 StyleAttribute 上保存对 VertexAttribute 的引用 - this.attributes[attributeIdx].vertexAttribute = vertexAttribute; - } - }); - - const elements = createElements({ - data: indices, - type: gl.UNSIGNED_INT, - count: indices.length, - }); - - return { - attributes, - elements, - }; - } - - public clearAllAttributes() { - // 销毁关联的 vertex attribute buffer objects - this.attributes.forEach((attribute) => { - if (attribute.vertexAttribute) { - attribute.vertexAttribute.destroy(); - } - }); - this.attributes = []; - } -} diff --git a/packages/core/src/services/log/ILogService.ts b/packages/core/src/services/log/ILogService.ts deleted file mode 100644 index 6532d5a8e1..0000000000 --- a/packages/core/src/services/log/ILogService.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface ILogService { - error(message: string): void; - warn(message: string): void; - info(message: string): void; -} diff --git a/packages/core/src/services/log/LogService.ts b/packages/core/src/services/log/LogService.ts deleted file mode 100644 index 92c739bc20..0000000000 --- a/packages/core/src/services/log/LogService.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { injectable } from 'inversify'; -import { Log } from 'probe.gl'; -import { ILogService } from './ILogService'; - -const Logger = new Log({ id: 'L7' }).enable(false); - -@injectable() -export default class LogService implements ILogService { - public error(message: string): void { - Logger.error(message)(); - } - - public warn(message: string): void { - Logger.warn(message)(); - } - - public info(message: string): void { - Logger.info(message)(); - } -} diff --git a/packages/core/src/services/map/IMapService.ts b/packages/core/src/services/map/IMapService.ts deleted file mode 100644 index 2f97133edb..0000000000 --- a/packages/core/src/services/map/IMapService.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { Map } from 'mapbox-gl'; -import { IViewport } from '../camera/ICameraService'; -export type Point = [number, number]; -export type Bounds = [[number, number], [number, number]]; -export interface ILngLat { - lng: number; - lat: number; -} -export interface IPoint { - x: number; - y: number; -} -export interface IMapService { - map: AMap.Map | Map; - init(config: Partial): void; - destroy(): void; - onCameraChanged(callback: (viewport: IViewport) => void): void; - // init map - addMarkerContainer(): void; - getMarkerContainer(): HTMLElement; - // MapEvent // 定义事件类型 - - on(type: string, handler: (...args: any[]) => void): void; - off(type: string, handler: (...args: any[]) => void): void; - once(type: string, handler: (...args: any[]) => void): void; - // get dom - getContainer(): HTMLElement | null; - getSize(): [number, number]; - // get map status method - getMinZoom(): number; - getMaxZoom(): number; - // get map params - getType(): MapType; - getZoom(): number; - getCenter(): ILngLat; - getPitch(): number; - getRotation(): number; - getBounds(): Bounds; - getMapContainer(): HTMLElement | null; - - // control with raw map - setRotation(rotation: number): void; - zoomIn(): void; - zoomOut(): void; - panTo(p: Point): void; - panBy(pixel: Point): void; - fitBounds(bound: Bounds): void; - setZoomAndCenter(zoom: number, center: Point): void; - setMapStyle(style: string): void; - - // coordinates methods - pixelToLngLat(pixel: Point): ILngLat; - lngLatToPixel(lnglat: Point): IPoint; - containerToLngLat(pixel: Point): ILngLat; - lngLatToContainer(lnglat: Point): IPoint; -} - -export enum MapType { - amap = 'amap', - mapbox = 'mapbox', -} - -export const MapServiceEvent = ['mapload']; - -/** - * 地图初始化配置项 - */ -export interface IMapConfig { - type: MapType | keyof typeof MapType; - - /** - * 容器 DOM id - */ - id: string; - - /** - * 地图 - */ - token?: string; - - /** - * 中心点 - */ - center?: [number, number]; - - /** - * 地图倾角 - */ - pitch?: number; - - /** - * 地图旋转角度 - */ - rotation?: number; - - /** - * 缩放等级 - */ - zoom?: number; - - /** - * 底图样式 - */ - style?: string; - /** - * 最小缩放等级 - */ - minZoom?: number; - - /** - * 最大缩放等级 - */ - maxZoom?: number; - - attributionControl?: boolean; -} - -/** - * 地图相机参数 - * @see - */ -export interface IMapCamera { - // Perspective 相机常规参数 - // @see https://threejs.org/docs/#api/en/cameras/PerspectiveCamera - aspect: number; - fov: number; - near: number; - far: number; - - viewportWidth: number; - viewportHeight: number; - - // 地图相机特有参数 - // @see https://docs.mapbox.com/mapbox-gl-js/api/#map - pitch: number; - bearing: number; - zoom: number; - center: [number, number]; - // 相机高度 - cameraHeight: number; - // 偏移原点,例如 P20 坐标系下 - offsetOrigin: [number, number]; -} diff --git a/packages/core/src/services/renderer/IAttribute.ts b/packages/core/src/services/renderer/IAttribute.ts deleted file mode 100644 index ac99d6ba09..0000000000 --- a/packages/core/src/services/renderer/IAttribute.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { IBuffer } from './IBuffer'; - -export interface IAttributeInitializationOptions { - buffer: IBuffer; - - /** - * vertexAttribPointer 单位为 byte,默认值均为 0 - */ - offset?: number; - stride?: number; - - /** - * 每个顶点数据块大小,取值范围为 [1..4] - */ - size?: number; - - /** - * 是否需要归一化 [-1,1] 或者 [0,1],默认值 false - */ - normalized?: boolean; - - /** - * gl.vertexAttribDivisorANGLE,自动开启 ANGLE_instanced_arrays 扩展 - */ - divisor?: number; -} - -export interface IAttribute { - updateBuffer(options: { - // 用于替换的数据 - data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array; - // 原 Buffer 替换位置,单位为 byte - offset: number; - }): void; - destroy(): void; -} diff --git a/packages/core/src/services/renderer/IBuffer.ts b/packages/core/src/services/renderer/IBuffer.ts deleted file mode 100644 index 60d47352c4..0000000000 --- a/packages/core/src/services/renderer/IBuffer.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { gl } from './gl'; - -export interface IBufferInitializationOptions { - data: - | number[] - | number[][] - | Uint8Array - | Uint16Array - | Uint32Array - | Float32Array; - - /** - * gl.DRAW_STATIC | gl.DYNAMIC_DRAW | gl.STREAM_DRAW - */ - usage?: gl.STATIC_DRAW | gl.DYNAMIC_DRAW | gl.STREAM_DRAW; - - /** - * gl.Float | gl.UNSIGNED_BYTE | ... - */ - type?: gl.FLOAT | gl.UNSIGNED_BYTE; - length?: number; -} - -export interface IBuffer { - /** - * gl.bufferSubData - */ - subData(options: { - // 用于替换的数据 - data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array; - // 原 Buffer 替换位置,单位为 byte - offset: number; - }): void; - - /** - * gl.deleteBuffer - */ - destroy(): void; -} diff --git a/packages/core/src/services/renderer/IElements.ts b/packages/core/src/services/renderer/IElements.ts deleted file mode 100644 index a1b9402958..0000000000 --- a/packages/core/src/services/renderer/IElements.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { gl } from './gl'; - -export interface IElementsInitializationOptions { - data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array; - - /** - * gl.DRAW_STATIC | gl.DYNAMIC_DRAW | gl.STREAM_DRAW - */ - usage?: gl; - - /** - * gl.UNSIGNED_BYTE | gl.UNSIGNED_SHORT | gl.UNSIGNED_INT(开启 OES_element_index_uint 扩展) - */ - type?: gl.UNSIGNED_BYTE | gl.UNSIGNED_SHORT | gl.UNSIGNED_INT; - length?: number; - primitive?: - | gl.POINTS - | gl.LINES - | gl.LINE_STRIP - | gl.LINE_LOOP - | gl.TRIANGLES - | gl.TRIANGLE_STRIP - | gl.TRIANGLE_FAN; - count?: number; -} - -export interface IElements { - /** - * gl.bufferSubData - */ - subData(options: { - // 用于替换的数据 - data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array; - // 原 Buffer 替换位置,单位为 byte - offset: number; - }): void; - - /** - * gl.deleteBuffer - */ - destroy(): void; -} diff --git a/packages/core/src/services/renderer/IFramebuffer.ts b/packages/core/src/services/renderer/IFramebuffer.ts deleted file mode 100644 index ef6b043750..0000000000 --- a/packages/core/src/services/renderer/IFramebuffer.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { IRenderbuffer } from './IRenderbuffer'; -import { ITexture2D } from './ITexture2D'; - -export interface IFramebufferInitializationOptions { - width?: number; - height?: number; - - /** - * 布尔值用于开关 depth attachment, - * 同时也支持 attach 一个 Texture2D 或者 RenderBuffer - */ - depth?: boolean | ITexture2D | IRenderbuffer; - - /** - * 布尔值用于开关 color attachment, - * 同时也支持 attach 一个/一组 Texture2D 或者 RenderBuffer - */ - color?: boolean | ITexture2D | IRenderbuffer; - colors?: Array; - - /** - * 布尔值用于开关 depth attachment, - * 同时也支持 attach 一个 RenderBuffer - */ - stencil?: boolean | IRenderbuffer; -} - -export interface IFramebuffer { - resize(options: { width: number; height: number }): void; - - /** - * gl.deleteRenderbuffer - */ - destroy(): void; -} diff --git a/packages/core/src/services/renderer/IModel.ts b/packages/core/src/services/renderer/IModel.ts deleted file mode 100644 index 280491fc2d..0000000000 --- a/packages/core/src/services/renderer/IModel.ts +++ /dev/null @@ -1,199 +0,0 @@ -import { gl } from './gl'; -import { IAttribute } from './IAttribute'; -import { IElements } from './IElements'; -import { IUniform } from './IUniform'; - -type stencilOp = - | gl.ZERO - | gl.KEEP - | gl.REPLACE - | gl.INVERT - | gl.INCR - | gl.DECR - | gl.INCR_WRAP - | gl.DECR_WRAP; - -export interface IModelInitializationOptions { - /** - * Shader 字符串,假设此时已经经过 ShaderLib 处理 - */ - vs: string; - fs: string; - - uniforms?: { - [key: string]: IUniform; - }; - - attributes: { - [key: string]: IAttribute; - }; - - /** - * gl.POINTS | gl.TRIANGLES | ... - * 默认值 gl.TRIANGLES - */ - primitive?: - | gl.POINTS - | gl.LINES - | gl.LINE_LOOP - | gl.LINE_STRIP - | gl.TRIANGLES - | gl.TRIANGLE_FAN - | gl.TRIANGLE_STRIP; - // 绘制的顶点数目 - count?: number; - // 默认值为 0 - offset?: number; - - /** - * gl.drawElements - */ - elements?: IElements; - /** - * 绘制实例数目 - */ - instances?: number; - - colorMask?: [boolean, boolean, boolean, boolean]; - - /** - * depth buffer - */ - depth?: Partial<{ - // gl.enable(gl.DEPTH_TEST) - enable: boolean; - // gl.depthMask - mask: boolean; - // gl.depthFunc - func: - | gl.NEVER - | gl.ALWAYS - | gl.LESS - | gl.LEQUAL - | gl.GREATER - | gl.GEQUAL - | gl.EQUAL - | gl.NOTEQUAL; - // gl.depthRange - range: [0, 1]; - }>; - - /** - * blending - */ - blend?: Partial<{ - // gl.enable(gl.BLEND) - enable: boolean; - // gl.blendFunc - func: Partial<{ - srcRGB: - | gl.ZERO - | gl.ONE - | gl.SRC_COLOR - | gl.ONE_MINUS_SRC_COLOR - | gl.SRC_ALPHA - | gl.ONE_MINUS_SRC_ALPHA - | gl.DST_COLOR - | gl.ONE_MINUS_DST_COLOR - | gl.DST_ALPHA - | gl.ONE_MINUS_DST_ALPHA - | gl.CONSTANT_COLOR - | gl.ONE_MINUS_CONSTANT_COLOR - | gl.CONSTANT_ALPHA - | gl.ONE_MINUS_CONSTANT_ALPHA - | gl.SRC_ALPHA_SATURATE; - srcAlpha: number; - dstRGB: - | gl.ZERO - | gl.ONE - | gl.SRC_COLOR - | gl.ONE_MINUS_SRC_COLOR - | gl.SRC_ALPHA - | gl.ONE_MINUS_SRC_ALPHA - | gl.DST_COLOR - | gl.ONE_MINUS_DST_COLOR - | gl.DST_ALPHA - | gl.ONE_MINUS_DST_ALPHA - | gl.CONSTANT_COLOR - | gl.ONE_MINUS_CONSTANT_COLOR - | gl.CONSTANT_ALPHA - | gl.ONE_MINUS_CONSTANT_ALPHA - | gl.SRC_ALPHA_SATURATE; - dstAlpha: number; - }>; - // gl.blendEquation - equation: { - // TODO: EXT_blend_minmax - rgb: gl.FUNC_ADD | gl.FUNC_SUBTRACT | gl.FUNC_REVERSE_SUBTRACT; - alpha: gl.FUNC_ADD | gl.FUNC_SUBTRACT | gl.FUNC_REVERSE_SUBTRACT; - }; - // gl.blendColor - color: [number, number, number, number]; - }>; - - /** - * stencil - */ - stencil?: { - // gl.enable(gl.STENCIL_TEST) - enable: boolean; - // gl.stencilMask - mask: number; - func: { - cmp: - | gl.NEVER - | gl.ALWAYS - | gl.LESS - | gl.LEQUAL - | gl.GREATER - | gl.GEQUAL - | gl.EQUAL - | gl.NOTEQUAL; - ref: number; - mask: number; - }; - opFront: { - fail: stencilOp; - zfail: stencilOp; - zpass: stencilOp; - }; - opBack: { - fail: stencilOp; - zfail: stencilOp; - zpass: stencilOp; - }; - }; - - /** - * cull - */ - cull?: { - // gl.enable(gl.CULL_FACE) - enable: boolean; - // gl.cullFace - face: gl.FRONT | gl.BACK; - }; -} - -export interface IModelDrawOptions { - uniforms?: { - [key: string]: IUniform; - }; - - attributes?: { - [key: string]: IAttribute; - }; -} - -/** - * 类似 THREE.Mesh,不同之处在于可以不依赖 THREE.Scene,单独执行封装的渲染命令。 - * 这些命令包括: - * * 执行 Shader Program - * * 开启/控制 WebGL 状态(gl.enable)例如 depth/stencil buffer、blending、cull 等 - * * 销毁资源,例如 buffer texture 等 - */ -export interface IModel { - addUniforms(uniforms: { [key: string]: IUniform }): void; - draw(options: IModelDrawOptions): void; - destroy(): void; -} diff --git a/packages/core/src/services/renderer/IMultiPassRenderer.ts b/packages/core/src/services/renderer/IMultiPassRenderer.ts deleted file mode 100644 index c934f0e717..0000000000 --- a/packages/core/src/services/renderer/IMultiPassRenderer.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { ILayer } from '../layer/ILayerService'; -import { IFramebuffer } from './IFramebuffer'; - -export enum PassType { - Normal = 'normal', - PostProcessing = 'post-processing', -} - -/** - * Pass 分两类: - * 1. 渲染相关 eg. ClearPass、RenderPass、PickingPass、ShadowPass - * 2. PostProcessing eg. CopyPass、BlurPass - * 另外考虑到 Pass 之间严格的执行顺序,render 方法必须是异步的 - */ -export interface IPass { - getName(): string; - getType(): PassType; - init(layer: ILayer, config?: Partial): void; - render(layer: ILayer): void; -} - -/** - * PostProcessing,自动切换 renderTarget - * 例如最后一个 PostProcessingPass 自动切换 renderTarget 为屏幕 - */ -export interface IPostProcessingPass - extends IPass { - setRenderToScreen(renderToScreen: boolean): void; - isEnabled(): boolean; - setEnabled(enabled: boolean): void; - updateOptions(config: Partial): void; -} - -export interface IPostProcessor { - getReadFBO(): IFramebuffer; - getWriteFBO(): IFramebuffer; - resize(viewportWidth: number, viewportHeight: number): void; - add( - pass: IPostProcessingPass, - layer: ILayer, - config?: Partial, - ): void; - render(layer: ILayer): Promise; - getPostProcessingPassByName( - name: string, - ): IPostProcessingPass | undefined; -} - -export interface IMultiPassRenderer { - getPostProcessor(): IPostProcessor; - resize(viewportWidth: number, viewportHeight: number): void; - add(pass: IPass): void; - render(): void; - getRenderFlag(): boolean; - setRenderFlag(enabled: boolean): void; -} diff --git a/packages/core/src/services/renderer/IRenderbuffer.ts b/packages/core/src/services/renderer/IRenderbuffer.ts deleted file mode 100644 index 06cc32ff59..0000000000 --- a/packages/core/src/services/renderer/IRenderbuffer.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { gl } from './gl'; - -export interface IRenderbufferInitializationOptions { - width: number; - height: number; - - /** - * gl.RGBA4 | gl.DEPTH_COMPONENT16... - */ - format: - | gl.RGBA4 - | gl.RGB565 - | gl.RGB5_A1 - | gl.DEPTH_COMPONENT16 - | gl.STENCIL_INDEX8 - | gl.DEPTH_STENCIL; -} - -export interface IRenderbuffer { - resize(options: { width: number; height: number }): void; - - /** - * gl.deleteRenderbuffer - */ - destroy(): void; -} diff --git a/packages/core/src/services/renderer/IRendererService.ts b/packages/core/src/services/renderer/IRendererService.ts deleted file mode 100644 index d0f09b2d06..0000000000 --- a/packages/core/src/services/renderer/IRendererService.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { ILayer } from '../layer/ILayerService'; -import { IAttribute, IAttributeInitializationOptions } from './IAttribute'; -import { IBuffer, IBufferInitializationOptions } from './IBuffer'; -import { IElements, IElementsInitializationOptions } from './IElements'; -import { - IFramebuffer, - IFramebufferInitializationOptions, -} from './IFramebuffer'; -import { IModel, IModelInitializationOptions } from './IModel'; -import { IMultiPassRenderer, IPass } from './IMultiPassRenderer'; -import { ITexture2D, ITexture2DInitializationOptions } from './ITexture2D'; - -export interface IRenderConfig { - /** - * 是否开启 multi pass - */ - enableMultiPassRenderer?: boolean; - passes?: Array>; -} - -export interface IClearOptions { - // gl.clearColor - color?: [number, number, number, number]; - // gl.clearDepth 默认值为 1 - depth?: number; - // gl.clearStencil 默认值为 0 - stencil?: number; - // gl.bindFrameBuffer - framebuffer?: IFramebuffer | null; -} - -export interface IReadPixelsOptions { - x: number; - y: number; - width: number; - height: number; - // gl.bindFrameBuffer - framebuffer?: IFramebuffer; - data?: Uint8Array; -} - -export interface IRendererService { - init($container: HTMLDivElement): Promise; - clear(options: IClearOptions): void; - createModel(options: IModelInitializationOptions): IModel; - createAttribute(options: IAttributeInitializationOptions): IAttribute; - createBuffer(options: IBufferInitializationOptions): IBuffer; - createElements(options: IElementsInitializationOptions): IElements; - createTexture2D(options: ITexture2DInitializationOptions): ITexture2D; - createFramebuffer(options: IFramebufferInitializationOptions): IFramebuffer; - useFramebuffer( - framebuffer: IFramebuffer | null, - drawCommands: () => void, - ): void; - getViewportSize(): { width: number; height: number }; - getContainer(): HTMLElement | null; - viewport(size: { x: number; y: number; width: number; height: number }): void; - readPixels(options: IReadPixelsOptions): Uint8Array; - destroy(): void; -} diff --git a/packages/core/src/services/renderer/ITexture2D.ts b/packages/core/src/services/renderer/ITexture2D.ts deleted file mode 100644 index a10da7566c..0000000000 --- a/packages/core/src/services/renderer/ITexture2D.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { gl } from './gl'; - -export interface ITexture2DInitializationOptions { - /** - * 纹理尺寸 - */ - width: number; - height: number; - - /** - * 纹理格式 - * @see https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D - */ - format?: - | gl.ALPHA - | gl.LUMINANCE - | gl.LUMINANCE_ALPHA - | gl.RGB - | gl.RGBA - | gl.RGBA4 - | gl.RGB5_A1 - | gl.RGB565 - | gl.DEPTH_COMPONENT - | gl.DEPTH_STENCIL; - - /** - * 纹理数据类型,可能需要引入扩展,例如 ext.HALF_FLOAT_OES - */ - type?: gl.UNSIGNED_BYTE | gl.UNSIGNED_SHORT | gl.UNSIGNED_INT | gl.FLOAT; - - /** - * 纹理 pixel source - */ - data?: - | undefined - | HTMLCanvasElement - | HTMLImageElement - | number[] - | number[][] - | Uint8Array - | Uint16Array - | Uint32Array - | Uint8ClampedArray; - - /** - * 纹理参数 - * @see https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/texParameter - */ - /* Sets magnification filter. Default: 'nearest' */ - mag?: gl.NEAREST | gl.LINEAR; - /* Sets minification filter. Default: 'nearest' */ - min?: - | gl.NEAREST - | gl.LINEAR - | gl.LINEAR_MIPMAP_LINEAR - | gl.NEAREST_MIPMAP_LINEAR - | gl.LINEAR_MIPMAP_NEAREST - | gl.NEAREST_MIPMAP_NEAREST; - /* Sets wrap mode on S axis. Default: 'clamp' */ - wrapS?: gl.REPEAT | gl.CLAMP_TO_EDGE | gl.MIRRORED_REPEAT; - /* Sets wrap mode on T axis. Default: 'clamp' */ - wrapT?: gl.REPEAT | gl.CLAMP_TO_EDGE | gl.MIRRORED_REPEAT; - aniso?: number; - - /** - * 以下为 gl.pixelStorei 参数 - * @see https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/pixelStorei - */ - /* Flips textures vertically when uploading. Default: false */ - flipY?: boolean; - /* Sets unpack alignment per row. 1, 2, 4, 8 Default: 1 */ - alignment?: 1 | 2 | 4 | 8; - /* Premultiply alpha when unpacking. Default: false */ - premultiplyAlpha?: boolean; - /* color space flag for pixel unpacking. gl.BROWSER_DEFAULT_WEBGL | gl.NONE */ - colorSpace?: gl.NONE | gl.BROWSER_DEFAULT_WEBGL; - - mipmap?: boolean | gl.DONT_CARE | gl.NICEST | gl.FASTEST; -} - -export interface ITexture2D { - resize(options: { width: number; height: number }): void; - - /** - * 写入 subimage - * gl.texSubImage2D gl.copyTexSubImage2D - */ - // subImageData(options: { - // pixels, - // x, - // y, - // width, - // height, - // level, - // type, - // format - // }); - - /** - * gl.deleteTexture - */ - destroy(): void; -} diff --git a/packages/core/src/services/renderer/IUniform.ts b/packages/core/src/services/renderer/IUniform.ts deleted file mode 100644 index 965c740917..0000000000 --- a/packages/core/src/services/renderer/IUniform.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { IFramebuffer } from './IFramebuffer'; -import { ITexture2D } from './ITexture2D'; - -export type IUniform = number | number[] | boolean | IFramebuffer | ITexture2D; diff --git a/packages/core/src/services/renderer/gl.ts b/packages/core/src/services/renderer/gl.ts deleted file mode 100644 index 37bdcd96b4..0000000000 --- a/packages/core/src/services/renderer/gl.ts +++ /dev/null @@ -1,422 +0,0 @@ -/** - * WebGL 枚举值 - * @see http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14 - * 使用 babel 插件对常量进行内联,以减少最终打包产物大小 - * @see https://github.com/uber/deck.gl/blob/7.1-release/dev-docs/roadmaps/dist-size-roadmap.md#inline-gl-constants - */ -export enum gl { - /* ClearBufferMask */ - DEPTH_BUFFER_BIT = 0x00000100, - STENCIL_BUFFER_BIT = 0x00000400, - COLOR_BUFFER_BIT = 0x00004000, - - /* BeginMode */ - POINTS = 0x0000, - LINES = 0x0001, - LINE_LOOP = 0x0002, - LINE_STRIP = 0x0003, - TRIANGLES = 0x0004, - TRIANGLE_STRIP = 0x0005, - TRIANGLE_FAN = 0x0006, - - /* AlphaFunction (not supported in ES20) */ - /* NEVER */ - /* LESS */ - /* EQUAL */ - /* LEQUAL */ - /* GREATER */ - /* NOTEQUAL */ - /* GEQUAL */ - /* ALWAYS */ - - /* BlendingFactorDest */ - ZERO = 0, - ONE = 1, - SRC_COLOR = 0x0300, - ONE_MINUS_SRC_COLOR = 0x0301, - SRC_ALPHA = 0x0302, - ONE_MINUS_SRC_ALPHA = 0x0303, - DST_ALPHA = 0x0304, - ONE_MINUS_DST_ALPHA = 0x0305, - - /* BlendingFactorSrc */ - /* ZERO */ - /* ONE */ - DST_COLOR = 0x0306, - ONE_MINUS_DST_COLOR = 0x0307, - SRC_ALPHA_SATURATE = 0x0308, - /* SRC_ALPHA */ - /* ONE_MINUS_SRC_ALPHA */ - /* DST_ALPHA */ - /* ONE_MINUS_DST_ALPHA */ - - /* BlendEquationSeparate */ - FUNC_ADD = 0x8006, - BLEND_EQUATION = 0x8009, - BLEND_EQUATION_RGB = 0x8009 /* same as BLEND_EQUATION */, - BLEND_EQUATION_ALPHA = 0x883d, - - /* BlendSubtract */ - FUNC_SUBTRACT = 0x800a, - FUNC_REVERSE_SUBTRACT = 0x800b, - - /* Separate Blend Functions */ - BLEND_DST_RGB = 0x80c8, - BLEND_SRC_RGB = 0x80c9, - BLEND_DST_ALPHA = 0x80ca, - BLEND_SRC_ALPHA = 0x80cb, - CONSTANT_COLOR = 0x8001, - ONE_MINUS_CONSTANT_COLOR = 0x8002, - CONSTANT_ALPHA = 0x8003, - ONE_MINUS_CONSTANT_ALPHA = 0x8004, - BLEND_COLOR = 0x8005, - - /* Buffer Objects */ - ARRAY_BUFFER = 0x8892, - ELEMENT_ARRAY_BUFFER = 0x8893, - ARRAY_BUFFER_BINDING = 0x8894, - ELEMENT_ARRAY_BUFFER_BINDING = 0x8895, - - STREAM_DRAW = 0x88e0, - STATIC_DRAW = 0x88e4, - DYNAMIC_DRAW = 0x88e8, - - BUFFER_SIZE = 0x8764, - BUFFER_USAGE = 0x8765, - - CURRENT_VERTEX_ATTRIB = 0x8626, - - /* CullFaceMode */ - FRONT = 0x0404, - BACK = 0x0405, - FRONT_AND_BACK = 0x0408, - - /* DepthFunction */ - /* NEVER */ - /* LESS */ - /* EQUAL */ - /* LEQUAL */ - /* GREATER */ - /* NOTEQUAL */ - /* GEQUAL */ - /* ALWAYS */ - - /* EnableCap */ - /* TEXTURE_2D */ - CULL_FACE = 0x0b44, - BLEND = 0x0be2, - DITHER = 0x0bd0, - STENCIL_TEST = 0x0b90, - DEPTH_TEST = 0x0b71, - SCISSOR_TEST = 0x0c11, - POLYGON_OFFSET_FILL = 0x8037, - SAMPLE_ALPHA_TO_COVERAGE = 0x809e, - SAMPLE_COVERAGE = 0x80a0, - - /* ErrorCode */ - NO_ERROR = 0, - INVALID_ENUM = 0x0500, - INVALID_VALUE = 0x0501, - INVALID_OPERATION = 0x0502, - OUT_OF_MEMORY = 0x0505, - - /* FrontFaceDirection */ - CW = 0x0900, - CCW = 0x0901, - - /* GetPName */ - LINE_WIDTH = 0x0b21, - ALIASED_POINT_SIZE_RANGE = 0x846d, - ALIASED_LINE_WIDTH_RANGE = 0x846e, - CULL_FACE_MODE = 0x0b45, - FRONT_FACE = 0x0b46, - DEPTH_RANGE = 0x0b70, - DEPTH_WRITEMASK = 0x0b72, - DEPTH_CLEAR_VALUE = 0x0b73, - DEPTH_FUNC = 0x0b74, - STENCIL_CLEAR_VALUE = 0x0b91, - STENCIL_FUNC = 0x0b92, - STENCIL_FAIL = 0x0b94, - STENCIL_PASS_DEPTH_FAIL = 0x0b95, - STENCIL_PASS_DEPTH_PASS = 0x0b96, - STENCIL_REF = 0x0b97, - STENCIL_VALUE_MASK = 0x0b93, - STENCIL_WRITEMASK = 0x0b98, - STENCIL_BACK_FUNC = 0x8800, - STENCIL_BACK_FAIL = 0x8801, - STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802, - STENCIL_BACK_PASS_DEPTH_PASS = 0x8803, - STENCIL_BACK_REF = 0x8ca3, - STENCIL_BACK_VALUE_MASK = 0x8ca4, - STENCIL_BACK_WRITEMASK = 0x8ca5, - VIEWPORT = 0x0ba2, - SCISSOR_BOX = 0x0c10, - /* SCISSOR_TEST */ - COLOR_CLEAR_VALUE = 0x0c22, - COLOR_WRITEMASK = 0x0c23, - UNPACK_ALIGNMENT = 0x0cf5, - PACK_ALIGNMENT = 0x0d05, - MAX_TEXTURE_SIZE = 0x0d33, - MAX_VIEWPORT_DIMS = 0x0d3a, - SUBPIXEL_BITS = 0x0d50, - RED_BITS = 0x0d52, - GREEN_BITS = 0x0d53, - BLUE_BITS = 0x0d54, - ALPHA_BITS = 0x0d55, - DEPTH_BITS = 0x0d56, - STENCIL_BITS = 0x0d57, - POLYGON_OFFSET_UNITS = 0x2a00, - /* POLYGON_OFFSET_FILL */ - POLYGON_OFFSET_FACTOR = 0x8038, - TEXTURE_BINDING_2D = 0x8069, - SAMPLE_BUFFERS = 0x80a8, - SAMPLES = 0x80a9, - SAMPLE_COVERAGE_VALUE = 0x80aa, - SAMPLE_COVERAGE_INVERT = 0x80ab, - - /* GetTextureParameter */ - /* TEXTURE_MAG_FILTER */ - /* TEXTURE_MIN_FILTER */ - /* TEXTURE_WRAP_S */ - /* TEXTURE_WRAP_T */ - - COMPRESSED_TEXTURE_FORMATS = 0x86a3, - - /* HintMode */ - DONT_CARE = 0x1100, - FASTEST = 0x1101, - NICEST = 0x1102, - - /* HintTarget */ - GENERATE_MIPMAP_HINT = 0x8192, - - /* DataType */ - BYTE = 0x1400, - UNSIGNED_BYTE = 0x1401, - SHORT = 0x1402, - UNSIGNED_SHORT = 0x1403, - INT = 0x1404, - UNSIGNED_INT = 0x1405, - FLOAT = 0x1406, - - /* PixelFormat */ - DEPTH_COMPONENT = 0x1902, - ALPHA = 0x1906, - RGB = 0x1907, - RGBA = 0x1908, - LUMINANCE = 0x1909, - LUMINANCE_ALPHA = 0x190a, - - /* PixelType */ - /* UNSIGNED_BYTE */ - UNSIGNED_SHORT_4_4_4_4 = 0x8033, - UNSIGNED_SHORT_5_5_5_1 = 0x8034, - UNSIGNED_SHORT_5_6_5 = 0x8363, - - /* Shaders */ - FRAGMENT_SHADER = 0x8b30, - VERTEX_SHADER = 0x8b31, - MAX_VERTEX_ATTRIBS = 0x8869, - MAX_VERTEX_UNIFORM_VECTORS = 0x8dfb, - MAX_VARYING_VECTORS = 0x8dfc, - MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8b4d, - MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8b4c, - MAX_TEXTURE_IMAGE_UNITS = 0x8872, - MAX_FRAGMENT_UNIFORM_VECTORS = 0x8dfd, - SHADER_TYPE = 0x8b4f, - DELETE_STATUS = 0x8b80, - LINK_STATUS = 0x8b82, - VALIDATE_STATUS = 0x8b83, - ATTACHED_SHADERS = 0x8b85, - ACTIVE_UNIFORMS = 0x8b86, - ACTIVE_ATTRIBUTES = 0x8b89, - SHADING_LANGUAGE_VERSION = 0x8b8c, - CURRENT_PROGRAM = 0x8b8d, - - /* StencilFunction */ - NEVER = 0x0200, - LESS = 0x0201, - EQUAL = 0x0202, - LEQUAL = 0x0203, - GREATER = 0x0204, - NOTEQUAL = 0x0205, - GEQUAL = 0x0206, - ALWAYS = 0x0207, - - /* StencilOp */ - /* ZERO */ - KEEP = 0x1e00, - REPLACE = 0x1e01, - INCR = 0x1e02, - DECR = 0x1e03, - INVERT = 0x150a, - INCR_WRAP = 0x8507, - DECR_WRAP = 0x8508, - - /* StringName */ - VENDOR = 0x1f00, - RENDERER = 0x1f01, - VERSION = 0x1f02, - - /* TextureMagFilter */ - NEAREST = 0x2600, - LINEAR = 0x2601, - - /* TextureMinFilter */ - /* NEAREST */ - /* LINEAR */ - NEAREST_MIPMAP_NEAREST = 0x2700, - LINEAR_MIPMAP_NEAREST = 0x2701, - NEAREST_MIPMAP_LINEAR = 0x2702, - LINEAR_MIPMAP_LINEAR = 0x2703, - - /* TextureParameterName */ - TEXTURE_MAG_FILTER = 0x2800, - TEXTURE_MIN_FILTER = 0x2801, - TEXTURE_WRAP_S = 0x2802, - TEXTURE_WRAP_T = 0x2803, - - /* TextureTarget */ - TEXTURE_2D = 0x0de1, - TEXTURE = 0x1702, - - TEXTURE_CUBE_MAP = 0x8513, - TEXTURE_BINDING_CUBE_MAP = 0x8514, - TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515, - TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516, - TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517, - TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518, - TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519, - TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851a, - MAX_CUBE_MAP_TEXTURE_SIZE = 0x851c, - - /* TextureUnit */ - TEXTURE0 = 0x84c0, - TEXTURE1 = 0x84c1, - TEXTURE2 = 0x84c2, - TEXTURE3 = 0x84c3, - TEXTURE4 = 0x84c4, - TEXTURE5 = 0x84c5, - TEXTURE6 = 0x84c6, - TEXTURE7 = 0x84c7, - TEXTURE8 = 0x84c8, - TEXTURE9 = 0x84c9, - TEXTURE10 = 0x84ca, - TEXTURE11 = 0x84cb, - TEXTURE12 = 0x84cc, - TEXTURE13 = 0x84cd, - TEXTURE14 = 0x84ce, - TEXTURE15 = 0x84cf, - TEXTURE16 = 0x84d0, - TEXTURE17 = 0x84d1, - TEXTURE18 = 0x84d2, - TEXTURE19 = 0x84d3, - TEXTURE20 = 0x84d4, - TEXTURE21 = 0x84d5, - TEXTURE22 = 0x84d6, - TEXTURE23 = 0x84d7, - TEXTURE24 = 0x84d8, - TEXTURE25 = 0x84d9, - TEXTURE26 = 0x84da, - TEXTURE27 = 0x84db, - TEXTURE28 = 0x84dc, - TEXTURE29 = 0x84dd, - TEXTURE30 = 0x84de, - TEXTURE31 = 0x84df, - ACTIVE_TEXTURE = 0x84e0, - - /* TextureWrapMode */ - REPEAT = 0x2901, - CLAMP_TO_EDGE = 0x812f, - MIRRORED_REPEAT = 0x8370, - - /* Uniform Types */ - FLOAT_VEC2 = 0x8b50, - FLOAT_VEC3 = 0x8b51, - FLOAT_VEC4 = 0x8b52, - INT_VEC2 = 0x8b53, - INT_VEC3 = 0x8b54, - INT_VEC4 = 0x8b55, - BOOL = 0x8b56, - BOOL_VEC2 = 0x8b57, - BOOL_VEC3 = 0x8b58, - BOOL_VEC4 = 0x8b59, - FLOAT_MAT2 = 0x8b5a, - FLOAT_MAT3 = 0x8b5b, - FLOAT_MAT4 = 0x8b5c, - SAMPLER_2D = 0x8b5e, - SAMPLER_CUBE = 0x8b60, - - /* Vertex Arrays */ - VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622, - VERTEX_ATTRIB_ARRAY_SIZE = 0x8623, - VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624, - VERTEX_ATTRIB_ARRAY_TYPE = 0x8625, - VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886a, - VERTEX_ATTRIB_ARRAY_POINTER = 0x8645, - VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889f, - - /* Shader Source */ - COMPILE_STATUS = 0x8b81, - - /* Shader Precision-Specified Types */ - LOW_FLOAT = 0x8df0, - MEDIUM_FLOAT = 0x8df1, - HIGH_FLOAT = 0x8df2, - LOW_INT = 0x8df3, - MEDIUM_INT = 0x8df4, - HIGH_INT = 0x8df5, - - /* Framebuffer Object. */ - FRAMEBUFFER = 0x8d40, - RENDERBUFFER = 0x8d41, - - RGBA4 = 0x8056, - RGB5_A1 = 0x8057, - RGB565 = 0x8d62, - DEPTH_COMPONENT16 = 0x81a5, - STENCIL_INDEX = 0x1901, - STENCIL_INDEX8 = 0x8d48, - DEPTH_STENCIL = 0x84f9, - - RENDERBUFFER_WIDTH = 0x8d42, - RENDERBUFFER_HEIGHT = 0x8d43, - RENDERBUFFER_INTERNAL_FORMAT = 0x8d44, - RENDERBUFFER_RED_SIZE = 0x8d50, - RENDERBUFFER_GREEN_SIZE = 0x8d51, - RENDERBUFFER_BLUE_SIZE = 0x8d52, - RENDERBUFFER_ALPHA_SIZE = 0x8d53, - RENDERBUFFER_DEPTH_SIZE = 0x8d54, - RENDERBUFFER_STENCIL_SIZE = 0x8d55, - - FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8cd0, - FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8cd1, - FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8cd2, - FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8cd3, - - COLOR_ATTACHMENT0 = 0x8ce0, - DEPTH_ATTACHMENT = 0x8d00, - STENCIL_ATTACHMENT = 0x8d20, - DEPTH_STENCIL_ATTACHMENT = 0x821a, - - NONE = 0, - - FRAMEBUFFER_COMPLETE = 0x8cd5, - FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8cd6, - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8cd7, - FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8cd9, - FRAMEBUFFER_UNSUPPORTED = 0x8cdd, - - FRAMEBUFFER_BINDING = 0x8ca6, - RENDERBUFFER_BINDING = 0x8ca7, - MAX_RENDERBUFFER_SIZE = 0x84e8, - - INVALID_FRAMEBUFFER_OPERATION = 0x0506, - - /* WebGL-specific enums */ - UNPACK_FLIP_Y_WEBGL = 0x9240, - UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241, - CONTEXT_LOST_WEBGL = 0x9242, - UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243, - BROWSER_DEFAULT_WEBGL = 0x9244, -} diff --git a/packages/core/src/services/renderer/passes/BasePostProcessingPass.ts b/packages/core/src/services/renderer/passes/BasePostProcessingPass.ts deleted file mode 100644 index 52bcb3eda8..0000000000 --- a/packages/core/src/services/renderer/passes/BasePostProcessingPass.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { - gl, - IModel, - IRendererService, - IShaderModuleService, -} from '../../../index'; -import { TYPES } from '../../../types'; -import { ILayer } from '../../layer/ILayerService'; -import { IPostProcessingPass, PassType } from '../IMultiPassRenderer'; -import { IUniform } from '../IUniform'; - -/** - * 后处理 Pass 基类,通过 PostProcessor 驱动。 - * - * 约定使用 u_Texture 传递渲染纹理。 - */ -@injectable() -export default class BasePostProcessingPass - implements IPostProcessingPass { - @inject(TYPES.IShaderModuleService) - protected readonly shaderModule: IShaderModuleService; - - @inject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - protected config: Partial | undefined; - - /** - * 启用开关 - */ - private enabled: boolean = true; - - /** - * 是否渲染到屏幕 - */ - private renderToScreen: boolean = false; - - /** - * 渲染命令 - */ - private model: IModel; - - private optionsToUpdate: Partial = {}; - - public getName() { - return ''; - } - - public getType() { - return PassType.PostProcessing; - } - - public init(layer: ILayer, config?: Partial) { - this.config = config; - - const { createAttribute, createBuffer, createModel } = this.rendererService; - const { vs, fs, uniforms } = this.setupShaders(); - - this.model = createModel({ - vs, - fs, - attributes: { - // 使用一个全屏三角形,相比 Quad 顶点数目更少 - a_Position: createAttribute({ - buffer: createBuffer({ - data: [-4, -4, 4, -4, 0, 4], - type: gl.FLOAT, - }), - size: 2, - }), - }, - // @ts-ignore - uniforms: { - u_Texture: null, - ...uniforms, - ...(this.config && this.convertOptionsToUniforms(this.config)), - }, - depth: { - enable: false, - }, - count: 3, - }); - } - - public render(layer: ILayer) { - const postProcessor = layer.multiPassRenderer.getPostProcessor(); - const { useFramebuffer, getViewportSize } = this.rendererService; - const { width, height } = getViewportSize(); - useFramebuffer( - this.renderToScreen ? null : postProcessor.getWriteFBO(), - () => { - this.model.draw({ - uniforms: { - u_Texture: postProcessor.getReadFBO(), - u_ViewportSize: [width, height], - ...this.convertOptionsToUniforms(this.optionsToUpdate), - }, - }); - }, - ); - } - - public isEnabled() { - return this.enabled; - } - - public setEnabled(enabled: boolean) { - this.enabled = enabled; - } - - public setRenderToScreen(renderToScreen: boolean) { - this.renderToScreen = renderToScreen; - } - - public updateOptions(config: Partial) { - this.optionsToUpdate = { - ...this.optionsToUpdate, - ...config, - }; - } - - protected setupShaders(): { - vs: string; - fs: string; - uniforms?: { [key: string]: IUniform }; - } { - throw new Error('Method not implemented.'); - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - throw new Error('Method not implemented.'); - } -} diff --git a/packages/core/src/services/renderer/passes/ClearPass.ts b/packages/core/src/services/renderer/passes/ClearPass.ts deleted file mode 100644 index ec0163c4f7..0000000000 --- a/packages/core/src/services/renderer/passes/ClearPass.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { lazyInject } from '../../../index'; -import { TYPES } from '../../../types'; -import { IPass, PassType } from '../IMultiPassRenderer'; -import { IRendererService } from '../IRendererService'; - -/** - * ClearPass - */ -@injectable() -export default class ClearPass - implements IPass { - @lazyInject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - public getType() { - return PassType.Normal; - } - - public getName() { - return 'clear'; - } - - public init() { - // - } - - public render() { - this.rendererService.clear({ - color: [0, 0, 0, 0], - depth: 1, - framebuffer: null, - }); - } -} diff --git a/packages/core/src/services/renderer/passes/MultiPassRenderer.ts b/packages/core/src/services/renderer/passes/MultiPassRenderer.ts deleted file mode 100644 index 587f3661d0..0000000000 --- a/packages/core/src/services/renderer/passes/MultiPassRenderer.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { injectable } from 'inversify'; -import { ILayer } from '../../layer/ILayerService'; -import { - IMultiPassRenderer, - IPass, - IPostProcessingPass, - IPostProcessor, - PassType, -} from '../IMultiPassRenderer'; -import PostProcessor from './PostProcessor'; - -/** - * ported from Three.js EffectComposer - * @example - * const renderer = new MultiPassRenderer([ - * new ClearPass(), - * new RenderPass({ - * models: [ - * new Model(), - * new Model(), - * ], - * }), - * new CopyPass({ - * renderToScreen: true, - * }), - * new TAAPass(), - * ]); - * renderer.render(); - * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/apuvbf#dRM8W - */ -@injectable() -export default class MultiPassRenderer implements IMultiPassRenderer { - private passes: Array> = []; - private postProcessor: IPostProcessor; - - private layer: ILayer; - private renderFlag: boolean; - - constructor(layer: ILayer) { - this.layer = layer; - this.postProcessor = new PostProcessor(); - } - - public setRenderFlag(renderFlag: boolean) { - this.renderFlag = renderFlag; - } - - public getRenderFlag() { - return this.renderFlag; - } - - public getPostProcessor() { - return this.postProcessor; - } - - public async render() { - for (const pass of this.passes) { - await pass.render(this.layer); - } - await this.postProcessor.render(this.layer); - } - - public resize(width: number, height: number) { - this.postProcessor.resize(width, height); - } - - public add(pass: IPass, config?: Partial) { - if (pass.getType() === PassType.PostProcessing) { - this.postProcessor.add( - pass as IPostProcessingPass, - this.layer, - config, - ); - } else { - pass.init(this.layer, config); - this.passes.push(pass); - } - } - - public insert(pass: IPass, config: Partial, index: number) { - pass.init(this.layer, config); - this.passes.splice(index, 0, pass); - } -} diff --git a/packages/core/src/services/renderer/passes/PixelPickingPass.ts b/packages/core/src/services/renderer/passes/PixelPickingPass.ts deleted file mode 100644 index 08df995baf..0000000000 --- a/packages/core/src/services/renderer/passes/PixelPickingPass.ts +++ /dev/null @@ -1,246 +0,0 @@ -import { injectable } from 'inversify'; -import { lazyInject } from '../../../index'; -import { TYPES } from '../../../types'; -import { - IInteractionService, - InteractionEvent, -} from '../../interaction/IInteractionService'; -import { ILayer } from '../../layer/ILayerService'; -import { ILogService } from '../../log/ILogService'; -import { gl } from '../gl'; -import { IFramebuffer } from '../IFramebuffer'; -import { IPass, PassType } from '../IMultiPassRenderer'; -import { IRendererService } from '../IRendererService'; - -function decodePickingColor(color: Uint8Array): number { - const [i1, i2, i3] = color; - // 1 was added to seperate from no selection - const index = i1 + i2 * 256 + i3 * 65536 - 1; - return index; -} - -/** - * color-based PixelPickingPass - * @see https://github.com/antvis/L7/blob/next/dev-docs/PixelPickingEngine.md - */ -@injectable() -export default class PixelPickingPass - implements IPass { - @lazyInject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - @lazyInject(TYPES.IInteractionService) - protected readonly interactionService: IInteractionService; - - @lazyInject(TYPES.ILogService) - protected readonly logger: ILogService; - - /** - * picking framebuffer,供 attributes 颜色编码后输出 - */ - private pickingFBO: IFramebuffer; - - /** - * 保存 layer 引用 - */ - private layer: ILayer; - - /** - * 简单的 throttle,防止连续触发 hover 时导致频繁渲染到 picking framebuffer - */ - private alreadyInRendering: boolean = false; - - public getType() { - return PassType.Normal; - } - - public getName() { - return 'pixelPicking'; - } - - public init(layer: ILayer) { - this.layer = layer; - const { createTexture2D, createFramebuffer } = this.rendererService; - - // 创建 picking framebuffer,后续实时 resize - this.pickingFBO = createFramebuffer({ - color: createTexture2D({ - width: 1, - height: 1, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - }), - }); - - // 监听 hover 事件 - this.interactionService.on(InteractionEvent.Hover, this.pickFromPickingFBO); - } - - public render(layer: ILayer) { - if (this.alreadyInRendering) { - return; - } - - const { getViewportSize, useFramebuffer, clear } = this.rendererService; - const { width, height } = getViewportSize(); - - // throttled - this.alreadyInRendering = true; - - // resize first, fbo can't be resized in use - this.pickingFBO.resize({ width, height }); - - useFramebuffer(this.pickingFBO, () => { - clear({ - framebuffer: this.pickingFBO, - color: [0, 0, 0, 0], - stencil: 0, - depth: 1, - }); - - // this.logger.info(`picking fbo cleared ${width} ${height}`); - - /** - * picking pass 不需要 multipass,原因如下: - * 1. 已经 clear,无需 ClearPass - * 2. 只需要 RenderPass - * 3. 后处理 pass 需要跳过 - */ - const originRenderFlag = this.layer.multiPassRenderer.getRenderFlag(); - this.layer.multiPassRenderer.setRenderFlag(false); - // trigger hooks - layer.hooks.beforePickingEncode.call(); - layer.render(); - layer.hooks.afterPickingEncode.call(); - this.layer.multiPassRenderer.setRenderFlag(originRenderFlag); - - this.alreadyInRendering = false; - }); - } - - /** - * 拾取视口指定坐标属于的要素 - * TODO:支持区域拾取 - */ - private pickFromPickingFBO = ({ x, y }: { x: number; y: number }) => { - const { - getViewportSize, - readPixels, - useFramebuffer, - } = this.rendererService; - const { width, height } = getViewportSize(); - const { enableHighlight } = this.layer.getStyleOptions(); - - const xInDevicePixel = x * window.devicePixelRatio; - const yInDevicePixel = y * window.devicePixelRatio; - if ( - xInDevicePixel > width || - xInDevicePixel < 0 || - yInDevicePixel > height || - yInDevicePixel < 0 - ) { - return; - } - - let pickedColors: Uint8Array | undefined; - useFramebuffer(this.pickingFBO, () => { - // avoid realloc - pickedColors = readPixels({ - x: Math.round(xInDevicePixel), - // 视口坐标系原点在左上,而 WebGL 在左下,需要翻转 Y 轴 - y: Math.round(height - (y + 1) * window.devicePixelRatio), - width: 1, - height: 1, - data: new Uint8Array(1 * 1 * 4), - framebuffer: this.pickingFBO, - }); - - if ( - pickedColors[0] !== 0 || - pickedColors[1] !== 0 || - pickedColors[2] !== 0 - ) { - this.logger.info('picked'); - const pickedFeatureIdx = decodePickingColor(pickedColors); - const rawFeature = this.layer.getSource()?.data?.dataArray[ - pickedFeatureIdx - ]; - - // trigger onHover/Click callback on layer - this.triggerHoverOnLayer({ x, y, feature: rawFeature }); - } - }); - - if (enableHighlight) { - this.highlightPickedFeature(pickedColors); - } - }; - - private triggerHoverOnLayer({ - x, - y, - feature, - }: { - x: number; - y: number; - feature: unknown; - }) { - const { onHover, onClick } = this.layer.getStyleOptions(); - if (onHover) { - onHover({ - x, - y, - feature, - }); - } - if (onClick) { - onClick({ - x, - y, - feature, - }); - } - } - - /** - * highlight 如果直接修改选中 feature 的 buffer,存在两个问题: - * 1. 鼠标移走时无法恢复 - * 2. 无法实现高亮颜色与原始原色的 alpha 混合 - * 因此高亮还是放在 shader 中做比较好 - * @example - * this.layer.color('name', ['#000000'], { - * featureRange: { - * startIndex: pickedFeatureIdx, - * endIndex: pickedFeatureIdx + 1, - * }, - * }); - */ - private highlightPickedFeature(pickedColors: Uint8Array | undefined) { - const [r, g, b] = pickedColors; - const { clear, useFramebuffer } = this.rendererService; - - // 先输出到 PostProcessor - const readFBO = this.layer.multiPassRenderer - .getPostProcessor() - .getReadFBO(); - this.layer.hooks.beforeRender.call(); - useFramebuffer(readFBO, () => { - clear({ - color: [0, 0, 0, 0], - depth: 1, - stencil: 0, - framebuffer: readFBO, - }); - - // TODO: highlight pass 需要 multipass - const originRenderFlag = this.layer.multiPassRenderer.getRenderFlag(); - this.layer.multiPassRenderer.setRenderFlag(false); - this.layer.hooks.beforeHighlight.call([r, g, b]); - this.layer.render(); - this.layer.hooks.afterHighlight.call(); - this.layer.hooks.afterRender.call(); - this.layer.multiPassRenderer.setRenderFlag(originRenderFlag); - }); - this.layer.multiPassRenderer.getPostProcessor().render(this.layer); - } -} diff --git a/packages/core/src/services/renderer/passes/PostProcessor.ts b/packages/core/src/services/renderer/passes/PostProcessor.ts deleted file mode 100644 index f76437f3e5..0000000000 --- a/packages/core/src/services/renderer/passes/PostProcessor.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { injectable } from 'inversify'; -import { lazyInject } from '../../../index'; -import { TYPES } from '../../../types'; -import { ILayer } from '../../layer/ILayerService'; -import { gl } from '../gl'; -import { IFramebuffer } from '../IFramebuffer'; -import { IPostProcessingPass, IPostProcessor } from '../IMultiPassRenderer'; -import { IRendererService } from '../IRendererService'; - -/** - * ported from Three.js EffectComposer - * 后处理负责 pingpong read/write framebuffer,最后一个 pass 默认输出到屏幕 - */ -@injectable() -export default class PostProcessor implements IPostProcessor { - @lazyInject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - private passes: Array> = []; - private readFBO: IFramebuffer; - private writeFBO: IFramebuffer; - - constructor() { - const { createFramebuffer, createTexture2D } = this.rendererService; - this.readFBO = createFramebuffer({ - color: createTexture2D({ - width: 1, - height: 1, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - }), - }); - - this.writeFBO = createFramebuffer({ - color: createTexture2D({ - width: 1, - height: 1, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - }), - }); - } - - public getReadFBO() { - return this.readFBO; - } - - public getWriteFBO() { - return this.writeFBO; - } - - public async render(layer: ILayer) { - for (let i = 0; i < this.passes.length; i++) { - const pass = this.passes[i]; - // last pass should render to screen - pass.setRenderToScreen(this.isLastEnabledPass(i)); - await pass.render(layer); - - // pingpong - if (i !== this.passes.length - 1) { - this.swap(); - } - } - } - - public resize(width: number, height: number) { - this.readFBO.resize({ - width, - height, - }); - this.writeFBO.resize({ - width, - height, - }); - } - - public add( - pass: IPostProcessingPass, - layer: ILayer, - config?: Partial, - ) { - pass.init(layer, config); - this.passes.push(pass); - } - - public insert( - pass: IPostProcessingPass, - index: number, - layer: ILayer, - config?: Partial, - ) { - pass.init(layer, config); - this.passes.splice(index, 0, pass); - } - - public getPostProcessingPassByName( - name: string, - ): IPostProcessingPass | undefined { - return this.passes.find((p) => p.getName() === name); - } - - private isLastEnabledPass(index: number): boolean { - for (let i = index + 1; i < this.passes.length; i++) { - if (this.passes[i].isEnabled()) { - return false; - } - } - return true; - } - - private swap() { - const tmp = this.readFBO; - this.readFBO = this.writeFBO; - this.writeFBO = tmp; - } -} diff --git a/packages/core/src/services/renderer/passes/RenderPass.ts b/packages/core/src/services/renderer/passes/RenderPass.ts deleted file mode 100644 index c5f7b19704..0000000000 --- a/packages/core/src/services/renderer/passes/RenderPass.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { injectable } from 'inversify'; -import { lazyInject } from '../../../index'; -import { TYPES } from '../../../types'; -import { ILayer } from '../../layer/ILayerService'; -import { IPass, PassType } from '../IMultiPassRenderer'; -import { IRendererService } from '../IRendererService'; - -/** - * RenderPass,负责输出到后续 PostProcessor 的 readFBO 中 - */ -@injectable() -export default class RenderPass - implements IPass { - @lazyInject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - public getType() { - return PassType.Normal; - } - - public getName() { - return 'render'; - } - - public init(layer: ILayer) { - // - } - - public render(layer: ILayer) { - const { useFramebuffer, clear } = this.rendererService; - const readFBO = layer.multiPassRenderer.getPostProcessor().getReadFBO(); - useFramebuffer(readFBO, () => { - clear({ - color: [0, 0, 0, 0], - depth: 1, - stencil: 0, - framebuffer: readFBO, - }); - - // render to post processor - layer.multiPassRenderer.setRenderFlag(false); - layer.render(); - layer.multiPassRenderer.setRenderFlag(true); - }); - } -} diff --git a/packages/core/src/services/renderer/passes/TAAPass.ts b/packages/core/src/services/renderer/passes/TAAPass.ts deleted file mode 100644 index 0a33a02a49..0000000000 --- a/packages/core/src/services/renderer/passes/TAAPass.ts +++ /dev/null @@ -1,341 +0,0 @@ -import { injectable } from 'inversify'; -import { lazyInject } from '../../../index'; -import blendFS from '../../../shaders/post-processing/blend.glsl'; -import copyFS from '../../../shaders/post-processing/copy.glsl'; -import quadVS from '../../../shaders/post-processing/quad.glsl'; -import { TYPES } from '../../../types'; -import { ICameraService } from '../../camera/ICameraService'; -import { ILayer } from '../../layer/ILayerService'; -import { ILogService } from '../../log/ILogService'; -import { IShaderModuleService } from '../../shader/IShaderModuleService'; -import { gl } from '../gl'; -import { IFramebuffer } from '../IFramebuffer'; -import { IModel, IModelInitializationOptions } from '../IModel'; -import { IPass, PassType } from '../IMultiPassRenderer'; -import { IRendererService } from '../IRendererService'; - -// Generate halton sequence -// https://en.wikipedia.org/wiki/Halton_sequence -function halton(index: number, base: number) { - let result = 0; - let f = 1 / base; - let i = index; - while (i > 0) { - result = result + f * (i % base); - i = Math.floor(i / base); - f = f / base; - } - return result; -} - -// 累加计数器 -let accumulatingId = 1; - -/** - * TAA(Temporal Anti-Aliasing) - * 在需要后处理的场景中(例如 L7 的热力图需要 blur pass、PBR 中的 SSAO 环境光遮蔽),无法使用浏览器内置的 MSAA, - * 只能使用 TAA - * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/ri52hv - */ -@injectable() -export default class TAAPass - implements IPass { - @lazyInject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - @lazyInject(TYPES.IShaderModuleService) - protected readonly shaderModule: IShaderModuleService; - - @lazyInject(TYPES.ICameraService) - protected readonly cameraService: ICameraService; - - @lazyInject(TYPES.ILogService) - protected readonly logger: ILogService; - - /** - * 低差异序列 - */ - private haltonSequence: Array<[number, number]> = []; - - /** - * 当前累加任务 ID,例如用户连续拖拽时上一次累加很有可能没有结束,此时在开启新一轮累加之前需要结束掉之前未完成的 - */ - private accumulatingId: number = 0; - - /** - * 每一轮累加中的 frameID - */ - private frame: number = 0; - - /** - * 每一轮累加中的 frame 定时器 - */ - private timer: number | undefined = undefined; - - private sampleRenderTarget: IFramebuffer; - private prevRenderTarget: IFramebuffer; - private outputRenderTarget: IFramebuffer; - private copyRenderTarget: IFramebuffer; - - private blendModel: IModel; - private outputModel: IModel; - private copyModel: IModel; - - public getType() { - return PassType.Normal; - } - - public getName() { - return 'taa'; - } - - public init(layer: ILayer) { - const { createFramebuffer, createTexture2D } = this.rendererService; - this.sampleRenderTarget = createFramebuffer({ - color: createTexture2D({ - width: 1, - height: 1, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - }), - }); - this.prevRenderTarget = createFramebuffer({ - color: createTexture2D({ - width: 1, - height: 1, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - }), - }); - this.outputRenderTarget = createFramebuffer({ - color: createTexture2D({ - width: 1, - height: 1, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - }), - }); - this.copyRenderTarget = createFramebuffer({ - color: createTexture2D({ - width: 1, - height: 1, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - }), - }); - - for (let i = 0; i < 30; i++) { - this.haltonSequence.push([halton(i, 2), halton(i, 3)]); - } - - this.blendModel = this.createTriangleModel('blend-pass', blendFS); - this.outputModel = this.createTriangleModel('copy-pass', copyFS, { - blend: { - enable: true, - func: { - srcRGB: gl.ONE, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - srcAlpha: gl.ONE, - dstAlpha: gl.ONE_MINUS_SRC_ALPHA, - }, - equation: { - rgb: gl.FUNC_ADD, - alpha: gl.FUNC_ADD, - }, - }, - }); - this.copyModel = this.createTriangleModel('copy-pass', copyFS); - } - - public render(layer: ILayer) { - const { clear, getViewportSize, useFramebuffer } = this.rendererService; - const { width, height } = getViewportSize(); - this.sampleRenderTarget.resize({ width, height }); - this.prevRenderTarget.resize({ width, height }); - this.outputRenderTarget.resize({ width, height }); - this.copyRenderTarget.resize({ width, height }); - - this.resetFrame(); - // 首先停止上一次的累加 - this.stopAccumulating(); - - // 先输出到 PostProcessor - const readFBO = layer.multiPassRenderer.getPostProcessor().getReadFBO(); - useFramebuffer(readFBO, () => { - clear({ - color: [0, 0, 0, 0], - depth: 1, - stencil: 0, - framebuffer: readFBO, - }); - - // render to post processor - layer.multiPassRenderer.setRenderFlag(false); - layer.render(); - layer.multiPassRenderer.setRenderFlag(true); - }); - - const accumulate = (id: number) => { - // 在开启新一轮累加之前,需要先结束掉之前的累加 - if (!this.accumulatingId || id !== this.accumulatingId) { - return; - } - - if (!this.isFinished()) { - this.doRender(layer); - - requestAnimationFrame(() => { - accumulate(id); - }); - } - }; - - this.accumulatingId = accumulatingId++; - this.timer = window.setTimeout(() => { - accumulate(this.accumulatingId); - }, 50); - } - - private doRender(layer: ILayer) { - this.logger.info(`accumulatingId: ${this.accumulatingId}`); - - const { clear, getViewportSize, useFramebuffer } = this.rendererService; - const { width, height } = getViewportSize(); - const { jitterScale = 1 } = layer.getStyleOptions(); - - // 使用 Halton 序列抖动投影矩阵 - const offset = this.haltonSequence[this.frame % this.haltonSequence.length]; - this.cameraService.jitterProjectionMatrix( - ((offset[0] * 2.0 - 1.0) / width) * jitterScale, - ((offset[1] * 2.0 - 1.0) / height) * jitterScale, - ); - - // 按抖动后的投影矩阵渲染 - layer.multiPassRenderer.setRenderFlag(false); - layer.hooks.beforeRender.call(); - useFramebuffer(this.sampleRenderTarget, () => { - clear({ - color: [0, 0, 0, 0], - depth: 1, - stencil: 0, - framebuffer: this.sampleRenderTarget, - }); - - layer.render(); - }); - layer.hooks.afterRender.call(); - layer.multiPassRenderer.setRenderFlag(true); - - // 混合 - const layerStyleOptions = layer.getStyleOptions(); - useFramebuffer(this.outputRenderTarget, () => { - this.blendModel.draw({ - uniforms: { - // @ts-ignore - u_opacity: layerStyleOptions.opacity || 1, - u_MixRatio: this.frame === 0 ? 1 : 0.9, - u_Diffuse1: this.sampleRenderTarget, - u_Diffuse2: - this.frame === 0 - ? layer.multiPassRenderer.getPostProcessor().getReadFBO() - : this.prevRenderTarget, - }, - }); - }); - - // 输出累加结果 - if (this.frame === 0) { - clear({ - color: [0, 0, 0, 0], - depth: 1, - stencil: 0, - framebuffer: this.copyRenderTarget, - }); - } - - if (this.frame >= 1) { - useFramebuffer(this.copyRenderTarget, () => { - this.outputModel.draw({ - uniforms: { - u_Texture: this.outputRenderTarget, - }, - }); - }); - - useFramebuffer( - layer.multiPassRenderer.getPostProcessor().getReadFBO(), - () => { - this.copyModel.draw({ - uniforms: { - u_Texture: this.copyRenderTarget, - }, - }); - }, - ); - layer.multiPassRenderer.getPostProcessor().render(layer); - } - - // 保存前序帧结果 - const tmp = this.prevRenderTarget; - this.prevRenderTarget = this.outputRenderTarget; - this.outputRenderTarget = tmp; - - this.frame++; - - // 恢复 jitter 后的相机 - this.cameraService.clearJitterProjectionMatrix(); - } - - /** - * 是否已经完成累加 - * @return {boolean} isFinished - */ - private isFinished() { - return this.frame >= this.haltonSequence.length; - } - - private resetFrame() { - this.frame = 0; - } - - private stopAccumulating() { - this.accumulatingId = 0; - window.clearTimeout(this.timer); - } - - private createTriangleModel( - shaderModuleName: string, - fragmentShader: string, - options?: Partial, - ) { - this.shaderModule.registerModule(shaderModuleName, { - vs: quadVS, - fs: fragmentShader, - }); - - const { vs, fs, uniforms } = this.shaderModule.getModule(shaderModuleName); - const { createAttribute, createBuffer, createModel } = this.rendererService; - return createModel({ - vs, - fs, - attributes: { - // 使用一个全屏三角形,相比 Quad 顶点数目更少 - a_Position: createAttribute({ - buffer: createBuffer({ - data: [-4, -4, 4, -4, 0, 4], - type: gl.FLOAT, - }), - size: 2, - }), - }, - uniforms: { - ...uniforms, - }, - depth: { - enable: false, - }, - count: 3, - ...options, - }); - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/BlurHPass.ts b/packages/core/src/services/renderer/passes/post-processing/BlurHPass.ts deleted file mode 100644 index 9188ba221d..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/BlurHPass.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { isNil } from 'lodash'; -import blur from '../../../../shaders/post-processing/blur.glsl'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import { TYPES } from '../../../../types'; -import { IRendererService } from '../../IRendererService'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -export interface IBlurHPassConfig { - blurRadius: number; -} - -@injectable() -export default class BlurHPass extends BasePostProcessingPass< - IBlurHPassConfig -> { - @inject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - public getName() { - return 'blurH'; - } - - protected setupShaders() { - this.shaderModule.registerModule('blur-pass', { - vs: quad, - fs: blur, - }); - - const { vs, fs, uniforms } = this.shaderModule.getModule('blur-pass'); - const { width, height } = this.rendererService.getViewportSize(); - - return { - vs, - fs, - uniforms: { - ...uniforms, - u_ViewportSize: [width, height], - }, - }; - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - const uniforms: { - [key: string]: IUniform; - } = {}; - - if (!isNil(options.blurRadius)) { - uniforms.u_BlurDir = [options.blurRadius, 0]; - } - - return uniforms; - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/BlurVPass.ts b/packages/core/src/services/renderer/passes/post-processing/BlurVPass.ts deleted file mode 100644 index 906feafa73..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/BlurVPass.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { isNil } from 'lodash'; -import blur from '../../../../shaders/post-processing/blur.glsl'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import { TYPES } from '../../../../types'; -import { IRendererService } from '../../IRendererService'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -export interface IBlurVPassConfig { - blurRadius: number; -} - -@injectable() -export default class BlurVPass extends BasePostProcessingPass< - IBlurVPassConfig -> { - @inject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - public getName() { - return 'blurV'; - } - - public setupShaders() { - this.shaderModule.registerModule('blur-pass', { - vs: quad, - fs: blur, - }); - - const { vs, fs, uniforms } = this.shaderModule.getModule('blur-pass'); - const { width, height } = this.rendererService.getViewportSize(); - - return { - vs, - fs, - uniforms: { - ...uniforms, - u_ViewportSize: [width, height], - }, - }; - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - const uniforms: { - [key: string]: IUniform; - } = {}; - - if (!isNil(options.blurRadius)) { - uniforms.u_BlurDir = [0, options.blurRadius]; - } - - return uniforms; - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/ColorHalfTonePass.ts b/packages/core/src/services/renderer/passes/post-processing/ColorHalfTonePass.ts deleted file mode 100644 index 80b322f467..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/ColorHalfTonePass.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { isNil } from 'lodash'; -import colorHalftone from '../../../../shaders/post-processing/colorhalftone.glsl'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import { TYPES } from '../../../../types'; -import { IRendererService } from '../../IRendererService'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -export interface IColorHalftonePassConfig { - center: [number, number]; - angle: number; - size: number; -} - -@injectable() -export default class ColorHalftonePass extends BasePostProcessingPass< - IColorHalftonePassConfig -> { - @inject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - public getName() { - return 'colorHalftone'; - } - - protected setupShaders() { - this.shaderModule.registerModule('colorhalftone-pass', { - vs: quad, - fs: colorHalftone, - }); - - const { vs, fs, uniforms } = this.shaderModule.getModule( - 'colorhalftone-pass', - ); - const { width, height } = this.rendererService.getViewportSize(); - - return { - vs, - fs, - uniforms: { - ...uniforms, - u_ViewportSize: [width, height], - }, - }; - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - const uniforms: { - [key: string]: IUniform; - } = {}; - - if (!isNil(options.center)) { - uniforms.u_Center = options.center; - } - - if (!isNil(options.angle)) { - uniforms.u_Angle = options.angle; - } - - if (!isNil(options.size)) { - uniforms.u_Size = options.size; - } - - return uniforms; - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/CopyPass.ts b/packages/core/src/services/renderer/passes/post-processing/CopyPass.ts deleted file mode 100644 index 0b0e18a736..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/CopyPass.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { injectable } from 'inversify'; -import copy from '../../../../shaders/post-processing/copy.glsl'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -@injectable() -export default class CopyPass extends BasePostProcessingPass { - public getName() { - return 'copy'; - } - - public setupShaders() { - this.shaderModule.registerModule('copy-pass', { - vs: quad, - fs: copy, - }); - - return this.shaderModule.getModule('copy-pass'); - } - - protected convertOptionsToUniforms( - options: Partial<{}>, - ): { - [uniformName: string]: IUniform; - } | void { - return {}; - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/HexagonalPixelatePass.ts b/packages/core/src/services/renderer/passes/post-processing/HexagonalPixelatePass.ts deleted file mode 100644 index 16aa7d1b3e..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/HexagonalPixelatePass.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { isNil } from 'lodash'; -import hexagonalPixelate from '../../../../shaders/post-processing/hexagonalpixelate.glsl'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import { TYPES } from '../../../../types'; -import { IRendererService } from '../../IRendererService'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -export interface IHexagonalPixelatePassConfig { - center: [number, number]; - scale: number; -} - -@injectable() -export default class HexagonalPixelatePass extends BasePostProcessingPass< - IHexagonalPixelatePassConfig -> { - @inject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - public getName() { - return 'hexagonalPixelate'; - } - - protected setupShaders() { - this.shaderModule.registerModule('hexagonalpixelate-pass', { - vs: quad, - fs: hexagonalPixelate, - }); - - const { vs, fs, uniforms } = this.shaderModule.getModule( - 'hexagonalpixelate-pass', - ); - const { width, height } = this.rendererService.getViewportSize(); - - return { - vs, - fs, - uniforms: { - ...uniforms, - u_ViewportSize: [width, height], - }, - }; - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - const uniforms: { - [key: string]: IUniform; - } = {}; - - if (!isNil(options.center)) { - uniforms.u_Center = options.center; - } - - if (!isNil(options.scale)) { - uniforms.u_Scale = options.scale; - } - - return uniforms; - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/InkPass.ts b/packages/core/src/services/renderer/passes/post-processing/InkPass.ts deleted file mode 100644 index d9032ffa33..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/InkPass.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { isNil } from 'lodash'; -import ink from '../../../../shaders/post-processing/ink.glsl'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import { TYPES } from '../../../../types'; -import { IRendererService } from '../../IRendererService'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -export interface IInkPassConfig { - strength: number; -} - -@injectable() -export default class InkPass extends BasePostProcessingPass { - @inject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - public getName() { - return 'ink'; - } - - protected setupShaders() { - this.shaderModule.registerModule('ink-pass', { - vs: quad, - fs: ink, - }); - - const { vs, fs, uniforms } = this.shaderModule.getModule('ink-pass'); - const { width, height } = this.rendererService.getViewportSize(); - - return { - vs, - fs, - uniforms: { - ...uniforms, - u_ViewportSize: [width, height], - }, - }; - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - const uniforms: { - [key: string]: IUniform; - } = {}; - - if (!isNil(options.strength)) { - uniforms.u_Strength = options.strength; - } - - return uniforms; - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/NoisePass.ts b/packages/core/src/services/renderer/passes/post-processing/NoisePass.ts deleted file mode 100644 index 5c1eaaa9aa..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/NoisePass.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { injectable } from 'inversify'; -import { isNil } from 'lodash'; -import noise from '../../../../shaders/post-processing/noise.glsl'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -export interface INoisePassConfig { - amount: number; -} - -@injectable() -export default class NoisePass extends BasePostProcessingPass< - INoisePassConfig -> { - public getName() { - return 'noise'; - } - - public setupShaders() { - this.shaderModule.registerModule('noise-pass', { - vs: quad, - fs: noise, - }); - - return this.shaderModule.getModule('noise-pass'); - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - const uniforms: { - [key: string]: IUniform; - } = {}; - - if (!isNil(options.amount)) { - uniforms.u_Amount = options.amount; - } - - return uniforms; - } -} diff --git a/packages/core/src/services/renderer/passes/post-processing/SepiaPass.ts b/packages/core/src/services/renderer/passes/post-processing/SepiaPass.ts deleted file mode 100644 index 7bcc318be9..0000000000 --- a/packages/core/src/services/renderer/passes/post-processing/SepiaPass.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { injectable } from 'inversify'; -import { isNil } from 'lodash'; -import quad from '../../../../shaders/post-processing/quad.glsl'; -import sepia from '../../../../shaders/post-processing/sepia.glsl'; -import { IUniform } from '../../IUniform'; -import BasePostProcessingPass from '../BasePostProcessingPass'; - -export interface ISepiaPassConfig { - amount: number; -} - -@injectable() -export default class SepiaPass extends BasePostProcessingPass< - ISepiaPassConfig -> { - public getName() { - return 'sepia'; - } - - public setupShaders() { - this.shaderModule.registerModule('sepia-pass', { - vs: quad, - fs: sepia, - }); - - return this.shaderModule.getModule('sepia-pass'); - } - - protected convertOptionsToUniforms( - options: Partial, - ): { - [uniformName: string]: IUniform; - } | void { - const uniforms: { - [key: string]: IUniform; - } = {}; - - if (!isNil(options.amount)) { - uniforms.u_Amount = options.amount; - } - - return uniforms; - } -} diff --git a/packages/core/src/services/scene/ISceneService.ts b/packages/core/src/services/scene/ISceneService.ts deleted file mode 100644 index 373238cf55..0000000000 --- a/packages/core/src/services/scene/ISceneService.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ILayer } from '../layer/ILayerService'; -import { IMapConfig } from '../map/IMapService'; -import { IRenderConfig } from '../renderer/IRendererService'; - -export interface ISceneService { - on(type: string, hander: (...args: any[]) => void): void; - off(type: string, hander: (...args: any[]) => void): void; - removeAllListeners(event?: string): this; - init(config: IMapConfig & IRenderConfig): void; - addLayer(layer: ILayer): void; - render(): void; - destroy(): void; -} -// scene 事件 -export const SceneEventList = ['loaded', 'maploaded', 'resize', 'destroy']; diff --git a/packages/core/src/services/scene/SceneService.ts b/packages/core/src/services/scene/SceneService.ts deleted file mode 100644 index 89d66acefa..0000000000 --- a/packages/core/src/services/scene/SceneService.ts +++ /dev/null @@ -1,225 +0,0 @@ -import { EventEmitter } from 'eventemitter3'; -import { inject, injectable } from 'inversify'; -import { AsyncParallelHook, AsyncSeriesHook } from 'tapable'; -import { TYPES } from '../../types'; -import { createRendererContainer } from '../../utils/dom'; -import { IFontService } from '../asset/IFontService'; -import { IIconService, IImage } from '../asset/IIconService'; -import { ICameraService, IViewport } from '../camera/ICameraService'; -import { IControlService } from '../component/IControlService'; -import { IGlobalConfig, IGlobalConfigService } from '../config/IConfigService'; -import { IInteractionService } from '../interaction/IInteractionService'; -import { ILayer, ILayerService } from '../layer/ILayerService'; -import { ILogService } from '../log/ILogService'; -import { IMapCamera, IMapService } from '../map/IMapService'; -import { IRendererService } from '../renderer/IRendererService'; -import { IShaderModuleService } from '../shader/IShaderModuleService'; -import { ISceneService } from './ISceneService'; -/** - * will emit `loaded` `resize` `destroy` event - */ -@injectable() -export default class Scene extends EventEmitter implements ISceneService { - /** - * 使用各种 Service - */ - @inject(TYPES.IIconService) - private readonly iconService: IIconService; - - @inject(TYPES.IFontService) - private readonly fontService: IFontService; - - @inject(TYPES.IControlService) - private readonly controlService: IControlService; - - @inject(TYPES.ILogService) - private readonly logger: ILogService; - - @inject(TYPES.IGlobalConfigService) - private readonly configService: IGlobalConfigService; - - @inject(TYPES.IMapService) - private readonly map: IMapService; - - @inject(TYPES.IRendererService) - private readonly rendererService: IRendererService; - - @inject(TYPES.ILayerService) - private readonly layerService: ILayerService; - - @inject(TYPES.ICameraService) - private readonly cameraService: ICameraService; - - @inject(TYPES.IInteractionService) - private readonly interactionService: IInteractionService; - - @inject(TYPES.IShaderModuleService) - private readonly shaderModule: IShaderModuleService; - - /** - * 是否首次渲染 - */ - private inited: boolean = false; - private initPromise: Promise; - - /** - * canvas 容器 - */ - private $container: HTMLDivElement | null; - - private hooks: { - init: AsyncParallelHook; - }; - - public constructor() { - super(); - // @see https://github.com/webpack/tapable#usage - this.hooks = { - /** - * 初始化异步任务,可并行: - * 1. initMap:初始化地图底图、相机 - * 2. initRenderer:初始化渲染引擎 - * 3. initWorker:初始化 Worker - */ - init: new AsyncParallelHook(['config']), - }; - } - - public init(globalConfig: IGlobalConfig) { - this.initClear(); - this.configService.setAndCheckConfig(globalConfig); - // 初始化 ShaderModule - this.shaderModule.registerBuiltinModules(); - - // 初始化资源管理 图片 - this.iconService.init(); - // 字体资源 - this.fontService.init(); - - this.controlService.init({ - container: document.getElementById( - this.configService.getConfig().id || 'map', - ) as HTMLElement, - }); - - /** - * 初始化底图 - */ - this.hooks.init.tapPromise('initMap', async (config: unknown) => { - // 等待首次相机同步 - await new Promise((resolve) => { - this.map.onCameraChanged((viewport: IViewport) => { - this.cameraService.init(); - this.cameraService.update(viewport); - resolve(); - }); - this.map.init(config as Partial); - }); - - // 重新绑定非首次相机更新事件 - this.map.onCameraChanged(this.handleMapCameraChanged); - this.logger.info('map loaded'); - - // scene 创建完成自动调用render 方法 - this.render(); - }); - - /** - * 初始化渲染引擎 - */ - this.hooks.init.tapPromise('initRenderer', async () => { - // 创建底图之上的 container - const $container = createRendererContainer( - this.configService.getConfig().id || '', - ); - this.$container = $container; - if ($container) { - await this.rendererService.init($container); - window.addEventListener('resize', this.handleWindowResized, false); - } else { - this.logger.error('容器 id 不存在'); - } - - // 初始化 container 上的交互 - this.interactionService.init(); - - this.logger.info('renderer loaded'); - }); - - // TODO:init worker, fontAtlas... - - // 执行异步并行初始化任务 - this.initPromise = this.hooks.init.promise(this.configService.getConfig()); - } - - public addLayer(layer: ILayer) { - this.logger.info(`add layer ${layer.name}`); - this.layerService.add(layer); - } - - public async render() { - // 首次初始化,或者地图的容器被强制销毁的需要重新初始化 - if (!this.inited) { - // 还未初始化完成需要等待 - await this.initPromise; - // 初始化 marker 容器 TODO: 可以放到 map 初始化方法中? - this.map.addMarkerContainer(); - this.logger.info(' render inited'); - this.inited = true; - this.emit('loaded'); - } - - this.layerService.renderLayers(); - this.logger.info('render'); - } - - public destroy() { - this.emit('destroy'); - this.inited = false; - this.layerService.destroy(); - this.configService.reset(); - this.interactionService.destroy(); - this.controlService.destroy(); - this.removeAllListeners(); - this.rendererService.destroy(); - this.map.destroy(); - window.removeEventListener('resize', this.handleWindowResized, false); - } - private handleWindowResized = () => { - this.emit('resize'); - if (this.$container) { - // recalculate the viewport's size and call gl.viewport - // @see https://github.com/regl-project/regl/blob/master/lib/webgl.js#L24-L38 - const pixelRatio = window.devicePixelRatio; - let w = window.innerWidth; - let h = window.innerHeight; - if (this.$container !== document.body) { - const bounds = this.$container.getBoundingClientRect(); - w = bounds.right - bounds.left; - h = bounds.bottom - bounds.top; - } - this.rendererService.viewport({ - x: 0, - y: 0, - width: pixelRatio * w, - height: pixelRatio * h, - }); - // repaint layers - this.render(); - } - }; - private handleMapCameraChanged = (viewport: IViewport) => { - this.cameraService.update(viewport); - this.render(); - }; - private initClear() { - this.inited = false; - this.layerService.destroy(); - this.configService.reset(); - this.interactionService.destroy(); - this.controlService.destroy(); - this.removeAllListeners(); - this.map.destroy(); - window.removeEventListener('resize', this.handleWindowResized, false); - } -} diff --git a/packages/core/src/services/shader/IShaderModuleService.ts b/packages/core/src/services/shader/IShaderModuleService.ts deleted file mode 100644 index 7a0a4089ed..0000000000 --- a/packages/core/src/services/shader/IShaderModuleService.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { IUniform } from '../renderer/IUniform'; - -/** - * 提供 ShaderModule 管理服务 - */ - -export interface IModuleParams { - vs: string; - fs: string; - uniforms?: { - [key: string]: IUniform; - }; -} - -export interface IShaderModuleService { - registerModule(moduleName: string, moduleParams: IModuleParams): void; - getModule(moduleName: string): IModuleParams; - - /** - * 注册 L7 内置 shader module - */ - registerBuiltinModules(): void; - destroy(): void; -} diff --git a/packages/core/src/services/shader/ShaderModuleService.ts b/packages/core/src/services/shader/ShaderModuleService.ts deleted file mode 100644 index f35163ab03..0000000000 --- a/packages/core/src/services/shader/ShaderModuleService.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { inject, injectable } from 'inversify'; -import { uniq } from 'lodash'; -import { extractUniforms } from '../../utils/shader-module'; -import { IModuleParams, IShaderModuleService } from './IShaderModuleService'; - -import common from '../../shaders/common.glsl'; -import decode from '../../shaders/decode.glsl'; -import light from '../../shaders/light2.glsl'; -import lighting from '../../shaders/lighting.glsl'; -import pickingFrag from '../../shaders/picking.frag.glsl'; -import pickingVert from '../../shaders/picking.vert.glsl'; -import project from '../../shaders/project.glsl'; -import projection from '../../shaders/projection.glsl'; -import sdf2d from '../../shaders/sdf_2d.glsl'; - -const precisionRegExp = /precision\s+(high|low|medium)p\s+float/; -const globalDefaultprecision = - '#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n#endif\n'; -const includeRegExp = /#pragma include (["^+"]?["\ "[a-zA-Z_0-9](.*)"]*?)/g; - -@injectable() -export default class ShaderModuleService implements IShaderModuleService { - private moduleCache: { [key: string]: IModuleParams } = {}; - private rawContentCache: { [key: string]: IModuleParams } = {}; - - public registerBuiltinModules() { - this.destroy(); - this.registerModule('common', { vs: common, fs: common }); - this.registerModule('decode', { vs: decode, fs: '' }); - this.registerModule('projection', { vs: projection, fs: '' }); - this.registerModule('project', { vs: project, fs: '' }); - this.registerModule('sdf_2d', { vs: '', fs: sdf2d }); - this.registerModule('lighting', { vs: lighting, fs: '' }); - this.registerModule('light', { vs: light, fs: '' }); - this.registerModule('picking', { vs: pickingVert, fs: pickingFrag }); - } - - public registerModule(moduleName: string, moduleParams: IModuleParams) { - // prevent registering the same module multiple times - if (this.rawContentCache[moduleName]) { - return; - } - - const { vs, fs, uniforms: declaredUniforms } = moduleParams; - const { content: extractedVS, uniforms: vsUniforms } = extractUniforms(vs); - const { content: extractedFS, uniforms: fsUniforms } = extractUniforms(fs); - - this.rawContentCache[moduleName] = { - fs: extractedFS, - uniforms: { - ...vsUniforms, - ...fsUniforms, - ...declaredUniforms, - }, - vs: extractedVS, - }; - } - public destroy() { - this.moduleCache = {}; - this.rawContentCache = {}; - } - public getModule(moduleName: string): IModuleParams { - if (this.moduleCache[moduleName]) { - return this.moduleCache[moduleName]; - } - - const rawVS = this.rawContentCache[moduleName].vs; - const rawFS = this.rawContentCache[moduleName].fs; - - const { content: vs, includeList: vsIncludeList } = this.processModule( - rawVS, - [], - 'vs', - ); - const { content: fs, includeList: fsIncludeList } = this.processModule( - rawFS, - [], - 'fs', - ); - let compiledFs = fs; - // TODO: extract uniforms and their default values from GLSL - const uniforms: { - [key: string]: any; - } = uniq(vsIncludeList.concat(fsIncludeList).concat(moduleName)).reduce( - (prev, cur: string) => { - return { - ...prev, - ...this.rawContentCache[cur].uniforms, - }; - }, - {}, - ); - - /** - * set default precision for fragment shader - * https://stackoverflow.com/questions/28540290/why-it-is-necessary-to-set-precision-for-the-fragment-shader - */ - if (!precisionRegExp.test(fs)) { - compiledFs = globalDefaultprecision + fs; - } - - this.moduleCache[moduleName] = { - fs: compiledFs.trim(), - uniforms, - vs: vs.trim(), - }; - return this.moduleCache[moduleName]; - } - - private processModule( - rawContent: string, - includeList: string[], - type: 'vs' | 'fs', - ): { - content: string; - includeList: string[]; - } { - const compiled = rawContent.replace(includeRegExp, (_, strMatch) => { - const includeOpt = strMatch.split(' '); - const includeName = includeOpt[0].replace(/"/g, ''); - - if (includeList.indexOf(includeName) > -1) { - return ''; - } - - const txt = this.rawContentCache[includeName][type]; - includeList.push(includeName); - - const { content } = this.processModule(txt, includeList, type); - return content; - }); - - return { - content: compiled, - includeList, - }; - } -} diff --git a/packages/core/src/services/shader/__tests__/shader.spec.ts b/packages/core/src/services/shader/__tests__/shader.spec.ts deleted file mode 100644 index b81fdf9eec..0000000000 --- a/packages/core/src/services/shader/__tests__/shader.spec.ts +++ /dev/null @@ -1,30 +0,0 @@ -import 'reflect-metadata'; -import { IShaderModuleService } from '../IShaderModuleService'; -import ShaderModuleService from '../ShaderModuleService'; - -describe('ShaderService', () => { - let shaderService: IShaderModuleService; - - beforeEach(() => { - shaderService = new ShaderModuleService(); - }); - - it('should register common module correctly and generate proper fragment/vertex shader code', () => { - const rawShaderCode = ` - #define PI 3.14 - `; - - const commonModule = { - fs: rawShaderCode, - vs: rawShaderCode, - }; - shaderService.registerModule('common', commonModule); - - const { vs, fs } = shaderService.getModule('common'); - - expect(vs).toMatch(/3\.14/); - expect(fs).toMatch(/3\.14/); - - expect(fs).toMatch(/precision mediump float;/); - }); -}); diff --git a/packages/core/src/services/shader/glsl.d.ts b/packages/core/src/services/shader/glsl.d.ts deleted file mode 100644 index 88eb5a0d56..0000000000 --- a/packages/core/src/services/shader/glsl.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.glsl' { - const value: string; - export default value; -} \ No newline at end of file diff --git a/packages/core/src/services/source/ISourceService.ts b/packages/core/src/services/source/ISourceService.ts deleted file mode 100644 index c04b21a931..0000000000 --- a/packages/core/src/services/source/ISourceService.ts +++ /dev/null @@ -1,63 +0,0 @@ -export type DataType = string | object[] | object; -export interface IParserCfg { - type: string; - x?: string; - y?: string; - x1?: string; - y1?: string; - coordinates?: string; - [key: string]: any; -} -type CallBack = (...args: any[]) => any; -export interface ITransform { - type: string; - [key: string]: any; - callback?: CallBack; -} - -export interface ISourceCFG { - parser?: IParserCfg; - transforms?: ITransform[]; -} -export interface IDictionary { - [key: string]: TValue; -} -export interface IFeatureKey { - [key: string]: { - index: number; - idField: any; - }; -} -// 解析后返回数据类型 -export interface IParseDataItem { - coordinates: any[]; - _id: number; - [key: string]: any; -} -export interface IParserData { - [key: string]: any; - dataArray: IParseDataItem[]; - // 瓦片地图数据字典 - featureKeys?: IFeatureKey; -} -export interface IJsonItem { - [key: string]: any; -} -export type IJsonData = IJsonItem[]; - -export interface ISource { - data: IParserData; -} -export interface IRasterCfg { - extent: [number, number, number, number]; - width: number; - height: number; - max: number; - min: number; -} - -export interface IRasterParserDataItem extends IParseDataItem { - data: number[]; - width: number; - height: number; -} diff --git a/packages/core/src/shaders/common.glsl b/packages/core/src/shaders/common.glsl deleted file mode 100644 index d4b6e8dbaf..0000000000 --- a/packages/core/src/shaders/common.glsl +++ /dev/null @@ -1 +0,0 @@ -#define PI 3.14159265359 \ No newline at end of file diff --git a/packages/core/src/shaders/decode.glsl b/packages/core/src/shaders/decode.glsl deleted file mode 100644 index 07818873f9..0000000000 --- a/packages/core/src/shaders/decode.glsl +++ /dev/null @@ -1,30 +0,0 @@ -#define SHIFT_RIGHT17 1.0 / 131072.0 -#define SHIFT_RIGHT18 1.0 / 262144.0 -#define SHIFT_RIGHT19 1.0 / 524288.0 -#define SHIFT_RIGHT20 1.0 / 1048576.0 -#define SHIFT_RIGHT21 1.0 / 2097152.0 -#define SHIFT_RIGHT22 1.0 / 4194304.0 -#define SHIFT_RIGHT23 1.0 / 8388608.0 -#define SHIFT_RIGHT24 1.0 / 16777216.0 - -#define SHIFT_LEFT17 131072.0 -#define SHIFT_LEFT18 262144.0 -#define SHIFT_LEFT19 524288.0 -#define SHIFT_LEFT20 1048576.0 -#define SHIFT_LEFT21 2097152.0 -#define SHIFT_LEFT22 4194304.0 -#define SHIFT_LEFT23 8388608.0 -#define SHIFT_LEFT24 16777216.0 - -vec2 unpack_float(const float packedValue) { - int packedIntValue = int(packedValue); - int v0 = packedIntValue / 256; - return vec2(v0, packedIntValue - v0 * 256); -} - -vec4 decode_color(const vec2 encodedColor) { - return vec4( - unpack_float(encodedColor[0]) / 255.0, - unpack_float(encodedColor[1]) / 255.0 - ); -} \ No newline at end of file diff --git a/packages/core/src/shaders/light2.glsl b/packages/core/src/shaders/light2.glsl deleted file mode 100644 index a22101d161..0000000000 --- a/packages/core/src/shaders/light2.glsl +++ /dev/null @@ -1,25 +0,0 @@ -#define ambientRatio 0.5 -#define diffuseRatio 0.3 -#define specularRatio 0.2 - - -float calc_lighting(vec4 pos) { - - vec3 worldPos = vec3(pos * u_ModelMatrix); - - vec3 worldNormal = a_Normal; - // //cal light weight - vec3 viewDir = normalize(u_CameraPosition - worldPos); - - vec3 lightDir = normalize(reverse_offset_normal(vec3(1, 10.5, 12))); - - vec3 halfDir = normalize(viewDir+lightDir); - // //lambert - float lambert = dot(worldNormal, lightDir); - //specular - float specular = pow(max(0.0, dot(worldNormal, halfDir)), 32.0); - //sum to light weight - float lightWeight = ambientRatio + diffuseRatio * lambert + specularRatio * specular; - - return lightWeight; -} diff --git a/packages/core/src/shaders/lighting.glsl b/packages/core/src/shaders/lighting.glsl deleted file mode 100644 index fa4d2911e5..0000000000 --- a/packages/core/src/shaders/lighting.glsl +++ /dev/null @@ -1,97 +0,0 @@ -// Blinn-Phong model -// apply lighting in vertex shader instead of fragment shader -// @see https://learnopengl.com/Advanced-Lighting/Advanced-Lighting -uniform float u_Ambient : 1.0; -uniform float u_Diffuse : 1.0; -uniform float u_Specular : 1.0; -uniform int u_NumOfDirectionalLights : 1; -uniform int u_NumOfSpotLights : 0; - -#define SHININESS 32.0 -#define MAX_NUM_OF_DIRECTIONAL_LIGHTS 3 -#define MAX_NUM_OF_SPOT_LIGHTS 3 - -struct DirectionalLight { - vec3 direction; - vec3 ambient; - vec3 diffuse; - vec3 specular; -}; - -struct SpotLight { - vec3 position; - vec3 direction; - vec3 ambient; - vec3 diffuse; - vec3 specular; - float constant; - float linear; - float quadratic; - float angle; - float blur; - float exponent; -}; - -uniform DirectionalLight u_DirectionalLights[MAX_NUM_OF_DIRECTIONAL_LIGHTS]; -uniform SpotLight u_SpotLights[MAX_NUM_OF_SPOT_LIGHTS]; - -vec3 calc_directional_light(DirectionalLight light, vec3 normal, vec3 viewDir) { - vec3 lightDir = normalize(light.direction); - // diffuse shading - float diff = max(dot(normal, lightDir), 0.0); - // Blinn-Phong specular shading - vec3 halfwayDir = normalize(lightDir + viewDir); - float spec = pow(max(dot(normal, halfwayDir), 0.0), SHININESS); - - vec3 ambient = light.ambient * u_Ambient; - vec3 diffuse = light.diffuse * diff * u_Diffuse; - vec3 specular = light.specular * spec * u_Specular; - - return ambient + diffuse + specular; -} - -// vec3 calc_spot_light(SpotLight light, vec3 normal, vec3 fragPos, vec3 viewDir) { -// vec3 lightDir = normalize(light.position - fragPos); -// // diffuse shading -// float diff = max(dot(normal, lightDir), 0.0); -// // specular shading -// vec3 reflectDir = reflect(-lightDir, normal); -// float spec = pow(max(dot(viewDir, reflectDir), 0.0), SHININESS); -// // attenuation -// float distance = length(light.position - fragPos); -// float attenuation = 1.0 / (light.constant + light.linear * distance + -// light.quadratic * (distance * distance)); - -// vec3 ambient = light.ambient * u_Ambient; -// vec3 diffuse = light.diffuse * diff * u_Diffuse; -// vec3 specular = light.specular * spec * u_Specular; - -// float spotEffect = dot(normalize(light.direction), -lightDir); -// float spotCosCutoff = cos(light.angle / 180.0 * PI); -// float spotCosOuterCutoff = cos((light.angle + light.blur) / 180.0 * PI); -// float spotCosInnerCutoff = cos((light.angle - light.blur) / 180.0 * PI); -// if (spotEffect > spotCosCutoff) { -// spotEffect = pow(smoothstep(spotCosOuterCutoff, spotCosInnerCutoff, spotEffect), light.exponent); -// } else { -// spotEffect = 0.0; -// } - -// return ambient + attenuation * (spotEffect * diffuse + specular); -// } - -vec3 calc_lighting(vec3 position, vec3 normal, vec3 viewDir) { - vec3 weight = vec3(0.0); - for (int i = 0; i < MAX_NUM_OF_DIRECTIONAL_LIGHTS; i++) { - if (i >= u_NumOfDirectionalLights) { - break; - } - weight += calc_directional_light(u_DirectionalLights[i], normal, viewDir); - } - // for (int i = 0; i < MAX_NUM_OF_SPOT_LIGHTS; i++) { - // if (i >= u_NumOfSpotLights) { - // break; - // } - // weight += calc_spot_light(u_SpotLights[i], normal, position, viewDir); - // } - return weight; -} \ No newline at end of file diff --git a/packages/core/src/shaders/picking.frag.glsl b/packages/core/src/shaders/picking.frag.glsl deleted file mode 100644 index 66e78052ac..0000000000 --- a/packages/core/src/shaders/picking.frag.glsl +++ /dev/null @@ -1,46 +0,0 @@ -varying vec4 v_PickingResult; -uniform vec4 u_HighlightColor : [0, 0, 0, 0]; -uniform float u_PickingStage : 0.0; - -#define PICKING_NONE 0.0 -#define PICKING_ENCODE 1.0 -#define PICKING_HIGHLIGHT 2.0 -#define COLOR_SCALE 1. / 255. - -/* - * Returns highlight color if this item is selected. - */ -vec4 filterHighlightColor(vec4 color) { - bool selected = bool(v_PickingResult.a); - - if (selected) { - vec4 highLightColor = u_HighlightColor * COLOR_SCALE; - - float highLightAlpha = highLightColor.a; - float highLightRatio = highLightAlpha / (highLightAlpha + color.a * (1.0 - highLightAlpha)); - - vec3 resultRGB = mix(color.rgb, highLightColor.rgb, highLightRatio); - return vec4(resultRGB, color.a); - } else { - return color; - } -} - -/* - * Returns picking color if picking enabled else unmodified argument. - */ -vec4 filterPickingColor(vec4 color) { - vec3 pickingColor = v_PickingResult.rgb; - if (u_PickingStage == PICKING_ENCODE && length(pickingColor) < 0.001) { - discard; - } - return u_PickingStage == PICKING_ENCODE ? vec4(pickingColor, 1.0) : color; -} - -/* - * Returns picking color if picking is enabled if not - * highlight color if this item is selected, otherwise unmodified argument. - */ -vec4 filterColor(vec4 color) { - return filterPickingColor(filterHighlightColor(color)); -} \ No newline at end of file diff --git a/packages/core/src/shaders/picking.vert.glsl b/packages/core/src/shaders/picking.vert.glsl deleted file mode 100644 index 7b1f2c8b5a..0000000000 --- a/packages/core/src/shaders/picking.vert.glsl +++ /dev/null @@ -1,27 +0,0 @@ -attribute vec3 a_PickingColor; -varying vec4 v_PickingResult; - -uniform vec3 u_PickingColor : [0, 0, 0]; -uniform vec4 u_HighlightColor : [0, 0, 0, 0]; -uniform float u_PickingStage : 0.0; -uniform float u_PickingThreshold : 1.0; - -#define PICKING_NONE 0.0 -#define PICKING_ENCODE 1.0 -#define PICKING_HIGHLIGHT 2.0 -#define COLOR_SCALE 1. / 255. - -bool isVertexPicked(vec3 vertexColor) { - return - abs(vertexColor.r - u_PickingColor.r) < u_PickingThreshold && - abs(vertexColor.g - u_PickingColor.g) < u_PickingThreshold && - abs(vertexColor.b - u_PickingColor.b) < u_PickingThreshold; -} - -void setPickingColor(vec3 pickingColor) { - // compares only in highlight stage - v_PickingResult.a = float((u_PickingStage == PICKING_HIGHLIGHT) && isVertexPicked(pickingColor)); - - // Stores the picking color so that the fragment shader can render it during picking - v_PickingResult.rgb = pickingColor * COLOR_SCALE; -} diff --git a/packages/core/src/shaders/post-processing/blend.glsl b/packages/core/src/shaders/post-processing/blend.glsl deleted file mode 100644 index 2a8cbf98dd..0000000000 --- a/packages/core/src/shaders/post-processing/blend.glsl +++ /dev/null @@ -1,13 +0,0 @@ -uniform float u_opacity : 1.0; -uniform float u_MixRatio : 0.5; - -uniform sampler2D u_Diffuse1; -uniform sampler2D u_Diffuse2; - -varying vec2 v_UV; - -void main() { - vec4 texel1 = texture2D(u_Diffuse1, v_UV); - vec4 texel2 = texture2D(u_Diffuse2, v_UV); - gl_FragColor = u_opacity * mix(texel1, texel2, u_MixRatio); -} diff --git a/packages/core/src/shaders/post-processing/blur.glsl b/packages/core/src/shaders/post-processing/blur.glsl deleted file mode 100644 index 988f625841..0000000000 --- a/packages/core/src/shaders/post-processing/blur.glsl +++ /dev/null @@ -1,23 +0,0 @@ -varying vec2 v_UV; - -uniform sampler2D u_Texture; - -uniform vec2 u_ViewportSize: [1.0, 1.0]; -uniform vec2 u_BlurDir: [1.0, 0.0]; - -// https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl -vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) { - vec4 color = vec4(0.0); - vec2 off1 = vec2(1.3846153846) * direction; - vec2 off2 = vec2(3.2307692308) * direction; - color += texture2D(image, uv) * 0.2270270270; - color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162; - color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162; - color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703; - color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703; - return color; -} - -void main() { - gl_FragColor = blur9(u_Texture, v_UV, u_ViewportSize, u_BlurDir); -} \ No newline at end of file diff --git a/packages/core/src/shaders/post-processing/colorhalftone.glsl b/packages/core/src/shaders/post-processing/colorhalftone.glsl deleted file mode 100644 index dd43c37d90..0000000000 --- a/packages/core/src/shaders/post-processing/colorhalftone.glsl +++ /dev/null @@ -1,44 +0,0 @@ -varying vec2 v_UV; - -uniform sampler2D u_Texture; -uniform vec2 u_ViewportSize: [1.0, 1.0]; -uniform vec2 u_Center : [0.5, 0.5]; -uniform float u_Angle : 0; -uniform float u_Size : 8; - -#pragma include "common" - -float scale = PI / u_Size; - -float pattern(float u_Angle, vec2 texSize, vec2 texCoord) { - float s = sin(u_Angle), c = cos(u_Angle); - vec2 tex = texCoord * texSize - u_Center * texSize; - vec2 point = vec2( - c * tex.x - s * tex.y, - s * tex.x + c * tex.y - ) * scale; - return (sin(point.x) * sin(point.y)) * 4.0; -} - -// https://github.com/evanw/glfx.js/blob/master/src/filters/fun/colorhalftone.js -vec4 colorHalftone_filterColor(vec4 color, vec2 texSize, vec2 texCoord) { - vec3 cmy = 1.0 - color.rgb; - float k = min(cmy.x, min(cmy.y, cmy.z)); - cmy = (cmy - k) / (1.0 - k); - cmy = clamp( - cmy * 10.0 - 3.0 + vec3( - pattern(u_Angle + 0.26179, texSize, texCoord), - pattern(u_Angle + 1.30899, texSize, texCoord), - pattern(u_Angle, texSize, texCoord) - ), - 0.0, - 1.0 - ); - k = clamp(k * 10.0 - 5.0 + pattern(u_Angle + 0.78539, texSize, texCoord), 0.0, 1.0); - return vec4(1.0 - cmy - k, color.a); -} - -void main() { - gl_FragColor = vec4(texture2D(u_Texture, v_UV)); - gl_FragColor = colorHalftone_filterColor(gl_FragColor, u_ViewportSize, v_UV); -} \ No newline at end of file diff --git a/packages/core/src/shaders/post-processing/copy.glsl b/packages/core/src/shaders/post-processing/copy.glsl deleted file mode 100644 index 6f5eeab786..0000000000 --- a/packages/core/src/shaders/post-processing/copy.glsl +++ /dev/null @@ -1,7 +0,0 @@ -varying vec2 v_UV; - -uniform sampler2D u_Texture; - -void main() { - gl_FragColor = vec4(texture2D(u_Texture, v_UV)); -} \ No newline at end of file diff --git a/packages/core/src/shaders/post-processing/hexagonalpixelate.glsl b/packages/core/src/shaders/post-processing/hexagonalpixelate.glsl deleted file mode 100644 index 1892e29991..0000000000 --- a/packages/core/src/shaders/post-processing/hexagonalpixelate.glsl +++ /dev/null @@ -1,44 +0,0 @@ -varying vec2 v_UV; - -uniform sampler2D u_Texture; -uniform vec2 u_ViewportSize: [1.0, 1.0]; -uniform vec2 u_Center : [0.5, 0.5]; -uniform float u_Scale : 10; - -// https://github.com/evanw/glfx.js/blob/master/src/filters/fun/hexagonalpixelate.js -vec4 hexagonalPixelate_sampleColor(sampler2D texture, vec2 texSize, vec2 texCoord) { - vec2 tex = (texCoord * texSize - u_Center * texSize) / u_Scale; - tex.y /= 0.866025404; - tex.x -= tex.y * 0.5; - vec2 a; - if (tex.x + tex.y - floor(tex.x) - floor(tex.y) < 1.0) { - a = vec2(floor(tex.x), floor(tex.y)); - } - else a = vec2(ceil(tex.x), ceil(tex.y)); - vec2 b = vec2(ceil(tex.x), floor(tex.y)); - vec2 c = vec2(floor(tex.x), ceil(tex.y)); - vec3 TEX = vec3(tex.x, tex.y, 1.0 - tex.x - tex.y); - vec3 A = vec3(a.x, a.y, 1.0 - a.x - a.y); - vec3 B = vec3(b.x, b.y, 1.0 - b.x - b.y); - vec3 C = vec3(c.x, c.y, 1.0 - c.x - c.y); - float alen = length(TEX - A); - float blen = length(TEX - B); - float clen = length(TEX - C); - vec2 choice; - if (alen < blen) { - if (alen < clen) choice = a; - else choice = c; - } else { - if (blen < clen) choice = b; - else choice = c; - } - choice.x += choice.y * 0.5; - choice.y *= 0.866025404; - choice *= u_Scale / texSize; - return texture2D(texture, choice + u_Center); -} - -void main() { - gl_FragColor = vec4(texture2D(u_Texture, v_UV)); - gl_FragColor = hexagonalPixelate_sampleColor(u_Texture, u_ViewportSize, v_UV); -} \ No newline at end of file diff --git a/packages/core/src/shaders/post-processing/ink.glsl b/packages/core/src/shaders/post-processing/ink.glsl deleted file mode 100644 index 3d5e76777b..0000000000 --- a/packages/core/src/shaders/post-processing/ink.glsl +++ /dev/null @@ -1,34 +0,0 @@ -varying vec2 v_UV; - -uniform sampler2D u_Texture; -uniform vec2 u_ViewportSize: [1.0, 1.0]; -uniform float u_Strength : 0.6; - -vec4 ink_sampleColor(sampler2D texture, vec2 texSize, vec2 texCoord) { - vec2 dx = vec2(1.0 / texSize.x, 0.0); - vec2 dy = vec2(0.0, 1.0 / texSize.y); - vec4 color = texture2D(texture, texCoord); - float bigTotal = 0.0; - float smallTotal = 0.0; - vec3 bigAverage = vec3(0.0); - vec3 smallAverage = vec3(0.0); - for (float x = -2.0; x <= 2.0; x += 1.0) { - for (float y = -2.0; y <= 2.0; y += 1.0) { - vec3 sample = texture2D(texture, texCoord + dx * x + dy * y).rgb; - bigAverage += sample; - bigTotal += 1.0; - if (abs(x) + abs(y) < 2.0) { - smallAverage += sample; - smallTotal += 1.0; - } - } - } - vec3 edge = max(vec3(0.0), bigAverage / bigTotal - smallAverage / smallTotal); - float power = u_Strength * u_Strength * u_Strength * u_Strength * u_Strength; - return vec4(color.rgb - dot(edge, edge) * power * 100000.0, color.a); -} - -void main() { - gl_FragColor = vec4(texture2D(u_Texture, v_UV)); - gl_FragColor = ink_sampleColor(u_Texture, u_ViewportSize, v_UV); -} \ No newline at end of file diff --git a/packages/core/src/shaders/post-processing/noise.glsl b/packages/core/src/shaders/post-processing/noise.glsl deleted file mode 100644 index e66109f029..0000000000 --- a/packages/core/src/shaders/post-processing/noise.glsl +++ /dev/null @@ -1,22 +0,0 @@ -varying vec2 v_UV; - -uniform sampler2D u_Texture; -uniform float u_Amount : 0.5; - -float rand(vec2 co) { - return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); -} - -// https://github.com/evanw/glfx.js/blob/master/src/filters/adjust/noise.js -vec4 noise_filterColor(vec4 color, vec2 texCoord) { - float diff = (rand(texCoord) - 0.5) * u_Amount; - color.r += diff; - color.g += diff; - color.b += diff; - return color; -} - -void main() { - gl_FragColor = vec4(texture2D(u_Texture, v_UV)); - gl_FragColor = noise_filterColor(gl_FragColor, v_UV); -} \ No newline at end of file diff --git a/packages/core/src/shaders/post-processing/quad.glsl b/packages/core/src/shaders/post-processing/quad.glsl deleted file mode 100644 index 040e54efe1..0000000000 --- a/packages/core/src/shaders/post-processing/quad.glsl +++ /dev/null @@ -1,8 +0,0 @@ -attribute vec2 a_Position; - -varying vec2 v_UV; - -void main() { - v_UV = 0.5 * (a_Position + 1.0); - gl_Position = vec4(a_Position, 0., 1.); -} \ No newline at end of file diff --git a/packages/core/src/shaders/post-processing/sepia.glsl b/packages/core/src/shaders/post-processing/sepia.glsl deleted file mode 100644 index 204ede6ec7..0000000000 --- a/packages/core/src/shaders/post-processing/sepia.glsl +++ /dev/null @@ -1,22 +0,0 @@ -varying vec2 v_UV; - -uniform sampler2D u_Texture; - -uniform float u_Amount : 0.5; - -// https://github.com/evanw/glfx.js/blob/master/src/filters/adjust/sepia.js -vec4 sepia_filterColor(vec4 color) { - float r = color.r; - float g = color.g; - float b = color.b; - color.r = - min(1.0, (r * (1.0 - (0.607 * u_Amount))) + (g * (0.769 * u_Amount)) + (b * (0.189 * u_Amount))); - color.g = min(1.0, (r * 0.349 * u_Amount) + (g * (1.0 - (0.314 * u_Amount))) + (b * 0.168 * u_Amount)); - color.b = min(1.0, (r * 0.272 * u_Amount) + (g * 0.534 * u_Amount) + (b * (1.0 - (0.869 * u_Amount)))); - return color; -} - -void main() { - gl_FragColor = vec4(texture2D(u_Texture, v_UV)); - gl_FragColor = sepia_filterColor(gl_FragColor); -} \ No newline at end of file diff --git a/packages/core/src/shaders/project.glsl b/packages/core/src/shaders/project.glsl deleted file mode 100644 index df6ee0bc43..0000000000 --- a/packages/core/src/shaders/project.glsl +++ /dev/null @@ -1,34 +0,0 @@ - -#define E 2.718281828459045 -vec2 ProjectFlat(vec2 lnglat){ - float maxs=85.0511287798; - float lat=max(min(maxs,lnglat.y),-maxs); - float scale= 268435456.; - float d=PI/180.; - float x=lnglat.x*d; - float y=lat*d; - y=log(tan((PI/4.)+(y/2.))); - - float a=.5/PI, - b=.5, - c=-.5/PI; - d=.5; - x=scale*(a*x+b); - y=scale*(c*y+d); - return vec2(x,y); -} - -vec2 unProjectFlat(vec2 px){ - float a=.5/PI; - float b=.5; - float c=-.5/PI; - float d=.5; - float scale = 268435456.; - float x=(px.x/scale-b)/a; - float y=(px.y/scale-d)/c; - y=(atan(pow(E,y))-(PI/4.))*2.; - d=PI/180.; - float lat=y/d; - float lng=x/d; - return vec2(lng,lat); -} diff --git a/packages/core/src/shaders/projection.glsl b/packages/core/src/shaders/projection.glsl deleted file mode 100644 index 4f792e549e..0000000000 --- a/packages/core/src/shaders/projection.glsl +++ /dev/null @@ -1,151 +0,0 @@ -#define TILE_SIZE 512.0 -#define PI 3.1415926536 -#define WORLD_SCALE TILE_SIZE / (PI * 2.0) - -#define COORDINATE_SYSTEM_LNGLAT 1.0 -#define COORDINATE_SYSTEM_LNGLAT_OFFSET 2.0 -#define COORDINATE_SYSTEM_VECTOR_TILE 3.0 -#define COORDINATE_SYSTEM_IDENTITY 4.0 -#define COORDINATE_SYSTEM_P20 5.0 -#define COORDINATE_SYSTEM_P20_OFFSET 6.0 -#define COORDINATE_SYSTEM_METER_OFFSET 7.0 - -uniform mat4 u_ViewMatrix; -uniform mat4 u_ProjectionMatrix; -uniform mat4 u_ViewProjectionMatrix; -uniform float u_Zoom : 1; -uniform float u_ZoomScale : 1; - -uniform float u_CoordinateSystem; -uniform vec2 u_ViewportCenter; -uniform vec4 u_ViewportCenterProjection; -uniform vec3 u_PixelsPerDegree; -uniform vec3 u_PixelsPerDegree2; -uniform vec3 u_PixelsPerMeter; - -uniform vec2 u_ViewportSize; -uniform float u_DevicePixelRatio; -uniform float u_FocalDistance; -uniform vec3 u_CameraPosition; - -// web mercator coords -> world coords -vec2 project_mercator(vec2 lnglat) { - float x = lnglat.x; - return vec2( - radians(x) + PI, - PI - log(tan(PI * 0.25 + radians(lnglat.y) * 0.5)) - ); -} - -float project_scale(float meters) { - return meters * u_PixelsPerMeter.z; -} - - -// offset coords -> world coords -vec4 project_offset(vec4 offset) { - float dy = offset.y; - dy = clamp(dy, -1., 1.); - vec3 pixels_per_unit = u_PixelsPerDegree + u_PixelsPerDegree2 * dy; - return vec4(offset.xyz * pixels_per_unit, offset.w); -} - -vec3 project_normal(vec3 normal) { - vec4 normal_modelspace = u_ModelMatrix * vec4(normal, 0.0); - return normalize(normal_modelspace.xyz * u_PixelsPerMeter); -} - -vec3 project_offset_normal(vec3 vector) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT - || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - // normals generated by the polygon tesselator are in lnglat offsets instead of meters - return normalize(vector * u_PixelsPerDegree); - } - return project_normal(vector); -} - -// reverse Y -vec3 reverse_offset_normal(vec3 vector) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20) { - return vector * vec3(1.0, -1.0, 1.0); - } - return vector; -} - -vec4 project_position(vec4 position) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET - || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { - float X = position.x - u_ViewportCenter.x; - float Y = position.y - u_ViewportCenter.y; - return project_offset(vec4(X, Y, position.z, position.w)); - } - - if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT) { - return vec4( - project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale, - project_scale(position.z), - position.w - ); - } - - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20) { - return vec4( - (project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale - vec2(215440491., 106744817.)) * vec2(1., -1.), - project_scale(position.z), - position.w - ); - } - - // TODO: 瓦片坐标系 & 常规世界坐标系 -} - -vec2 project_pixel_size_to_clipspace(vec2 pixels) { - vec2 offset = pixels / u_ViewportSize * u_DevicePixelRatio * 2.0; - return offset * u_FocalDistance; -} - -float project_pixel(float pixel) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 - || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { - // P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - return pixel * pow(2.0, (19.0 - u_Zoom)); - } - return pixel; -} -vec2 project_pixel(vec2 pixel) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 - || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { - // P20 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 - return pixel * pow(2.0, (19.0 - u_Zoom)); - } - return pixel; -} - -vec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) { - if (u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || - u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - // Needs to be divided with project_uCommonUnitsPerMeter - position.w *= u_PixelsPerMeter.z; - } - return viewProjectionMatrix * position + center; -} - -// Projects from common space coordinates to clip space -vec4 project_common_position_to_clipspace(vec4 position) { - return project_common_position_to_clipspace( - position, - u_ViewProjectionMatrix, - u_ViewportCenterProjection - ); -} - -vec4 unproject_clipspace_to_position(vec4 clipspacePos, mat4 u_InverseViewProjectionMatrix) { - vec4 pos = u_InverseViewProjectionMatrix * (clipspacePos - u_ViewportCenterProjection); - - if (u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || - u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { - // Needs to be divided with project_uCommonUnitsPerMeter - pos.w = pos.w / u_PixelsPerMeter.z; - } - return pos; -} diff --git a/packages/core/src/shaders/sdf_2d.glsl b/packages/core/src/shaders/sdf_2d.glsl deleted file mode 100644 index 4498415879..0000000000 --- a/packages/core/src/shaders/sdf_2d.glsl +++ /dev/null @@ -1,74 +0,0 @@ -/** - * 2D signed distance field functions - * @see http://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm - */ - -float ndot(vec2 a, vec2 b ) { return a.x*b.x - a.y*b.y; } - -float sdCircle(vec2 p, float r) { - return length(p) - r; -} - -float sdEquilateralTriangle(vec2 p) { - const float k = sqrt(3.0); - p.x = abs(p.x) - 1.0; - p.y = p.y + 1.0/k; - if( p.x + k*p.y > 0.0 ) p = vec2(p.x-k*p.y,-k*p.x-p.y)/2.0; - p.x -= clamp( p.x, -2.0, 0.0 ); - return -length(p)*sign(p.y); -} - -float sdBox(vec2 p, vec2 b) { - vec2 d = abs(p)-b; - return length(max(d,vec2(0))) + min(max(d.x,d.y),0.0); -} - -float sdPentagon(vec2 p, float r) { - const vec3 k = vec3(0.809016994,0.587785252,0.726542528); - p.x = abs(p.x); - p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y); - p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y); - p -= vec2(clamp(p.x,-r*k.z,r*k.z),r); - return length(p)*sign(p.y); -} - -float sdHexagon(vec2 p, float r) { - const vec3 k = vec3(-0.866025404,0.5,0.577350269); - p = abs(p); - p -= 2.0*min(dot(k.xy,p),0.0)*k.xy; - p -= vec2(clamp(p.x, -k.z*r, k.z*r), r); - return length(p)*sign(p.y); -} - -float sdOctogon(vec2 p, float r) { - const vec3 k = vec3(-0.9238795325, 0.3826834323, 0.4142135623 ); - p = abs(p); - p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y); - p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y); - p -= vec2(clamp(p.x, -k.z*r, k.z*r), r); - return length(p)*sign(p.y); -} - -float sdHexagram(vec2 p, float r) { - const vec4 k=vec4(-0.5,0.8660254038,0.5773502692,1.7320508076); - p = abs(p); - p -= 2.0*min(dot(k.xy,p),0.0)*k.xy; - p -= 2.0*min(dot(k.yx,p),0.0)*k.yx; - p -= vec2(clamp(p.x,r*k.z,r*k.w),r); - return length(p)*sign(p.y); -} - -float sdRhombus(vec2 p, vec2 b) { - vec2 q = abs(p); - float h = clamp((-2.0*ndot(q,b)+ndot(b,b))/dot(b,b),-1.0,1.0); - float d = length( q - 0.5*b*vec2(1.0-h,1.0+h) ); - return d * sign( q.x*b.y + q.y*b.x - b.x*b.y ); -} - -float sdVesica(vec2 p, float r, float d) { - p = abs(p); - float b = sqrt(r*r-d*d); // can delay this sqrt - return ((p.y-b)*d>p.x*b) - ? length(p-vec2(0.0,b)) - : length(p-vec2(-d,0.0))-r; -} \ No newline at end of file diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts deleted file mode 100644 index 388c2fdf5d..0000000000 --- a/packages/core/src/types.ts +++ /dev/null @@ -1,25 +0,0 @@ -const TYPES = { - IEventEmitter: Symbol.for('IEventEmitter'), - ISceneService: Symbol.for('ISceneService'), - IGlobalConfigService: Symbol.for('IGlobalConfigService'), - ICameraService: Symbol.for('ICameraService'), - ICoordinateSystemService: Symbol.for('ICoordinateSystemService'), - ILayerService: Symbol.for('ILayerService'), - ILayerMappingService: Symbol.for('ILayerMappingService'), - ILayerStyleService: Symbol.for('ILayerStyleService'), - ILogService: Symbol.for('ILogService'), - IMapService: Symbol.for('IMapService'), - IFactoryMapService: Symbol.for('Factory'), - IRendererService: Symbol.for('IRendererService'), - IShaderModuleService: Symbol.for('IShaderModuleService'), - IIconService: Symbol.for('IIconService'), - IFontService: Symbol.for('IFontService'), - IInteractionService: Symbol.for('IInteractionService'), - IControlService: Symbol.for('IControlService'), - IStyleAttributeService: Symbol.for('IStyleAttributeService'), - ILayerPlugin: Symbol.for('ILayerPlugin'), - IPostProcessingPass: Symbol.for('IPostProcessingPass'), - IFactoryPostProcessingPass: Symbol.for('Factory'), -}; - -export { TYPES }; diff --git a/packages/core/src/utils/__tests__/math.spec.ts b/packages/core/src/utils/__tests__/math.spec.ts deleted file mode 100644 index a6e0fe3322..0000000000 --- a/packages/core/src/utils/__tests__/math.spec.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { createVec3, getAngle } from '../math'; - -describe('util.math', () => { - it('should clamp angle with `getAngle()`', () => { - expect(getAngle(30)).toBe(30); - expect(getAngle(361)).toBe(1); - expect(getAngle(-361)).toBe(-1); - expect(getAngle(undefined)).toBe(0); - }); -}); diff --git a/packages/core/src/utils/clock.ts b/packages/core/src/utils/clock.ts deleted file mode 100644 index a51f946242..0000000000 --- a/packages/core/src/utils/clock.ts +++ /dev/null @@ -1,50 +0,0 @@ -// https://github.com/mrdoob/three.js/blob/master/src/core/Clock.js -export default class Clock { - private autoStart: boolean; - private startTime: number = 0; - private oldTime: number = 0; - private running: boolean = false; - private elapsedTime: number = 0; - constructor(autoStart = true) { - this.autoStart = autoStart; - } - public start() { - this.startTime = (typeof performance === 'undefined' - ? Date - : performance - ).now(); - - this.oldTime = this.startTime; - this.elapsedTime = 0; - this.running = true; - } - public stop() { - this.getElapsedTime(); - this.running = false; - this.autoStart = false; - } - - public getElapsedTime() { - this.getDelta(); - return this.elapsedTime; - } - public getDelta() { - let diff = 0; - - if (this.autoStart && !this.running) { - this.start(); - return 0; - } - - if (this.running) { - const newTime = (typeof performance === 'undefined' - ? Date - : performance - ).now(); - diff = (newTime - this.oldTime) / 1000; - this.oldTime = newTime; - this.elapsedTime += diff; - } - return diff; - } -} diff --git a/packages/core/src/utils/dom.ts b/packages/core/src/utils/dom.ts deleted file mode 100644 index 35b543e7ce..0000000000 --- a/packages/core/src/utils/dom.ts +++ /dev/null @@ -1,22 +0,0 @@ -const docStyle = window.document.documentElement.style; -type ELType = HTMLElement | SVGElement; -export function createRendererContainer(domId: string): HTMLDivElement | null { - const $wrapper = document.getElementById(domId); - - if ($wrapper) { - const $container = document.createElement('div'); - $container.style.cssText += ` - position: absolute; - top: 0; - z-index:2; - height: 100%; - width: 100%; - pointer-events: none; - `; - $container.id = 'l7_canvaslayer'; - $wrapper.appendChild($container); - return $container; - } - - return null; -} diff --git a/packages/core/src/utils/font_util.ts b/packages/core/src/utils/font_util.ts deleted file mode 100644 index e53d327d83..0000000000 --- a/packages/core/src/utils/font_util.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { IFontMappingOption } from '../services/asset/IFontService'; -import { IIcon, IICONMap } from '../services/asset/IIconService'; -/** - * tiny-sdf 中每个 glyph 的宽度(加上 buffer 24 + 3 + 3 = 30) - */ -const glyphSizeInSDF = 30; -export function buildMapping({ - characterSet, - getFontWidth, - fontHeight, - buffer, - maxCanvasWidth, - mapping = {}, - xOffset = 0, - yOffset = 0, -}: IFontMappingOption) { - let row = 0; - let x = xOffset; - Array.from(characterSet).forEach((char: string, i: number) => { - if (!mapping[char]) { - const width = getFontWidth(char, i); - if (x + glyphSizeInSDF > maxCanvasWidth) { - x = 0; - row++; - } - mapping[char] = { - x, - y: yOffset + row * glyphSizeInSDF, - width: glyphSizeInSDF, - height: glyphSizeInSDF, - advance: width, - }; - x += glyphSizeInSDF; - } - }); - - const rowHeight = fontHeight + buffer * 2; - - return { - mapping, - xOffset: x, - yOffset: yOffset + row * rowHeight, - canvasHeight: nextPowOfTwo(yOffset + (row + 1) * rowHeight), - }; -} - -export function buildIconMaping( - icons: IIcon[], - buffer: number, - maxCanvasWidth: number, -) { - let xOffset = 0; - let yOffset = 0; - let rowHeight = 0; - let columns = []; - const mapping: IICONMap = {}; - for (const icon of icons) { - if (!mapping[icon.id]) { - const { height, width } = icon; - - // fill one row - if (xOffset + width + buffer > maxCanvasWidth) { - buildRowMapping(mapping, columns, yOffset); - - xOffset = 0; - yOffset = rowHeight + yOffset + buffer; - rowHeight = 0; - columns = []; - } - - columns.push({ - icon, - xOffset, - }); - - xOffset = xOffset + width + buffer; - rowHeight = Math.max(rowHeight, height); - } - } - - if (columns.length > 0) { - buildRowMapping(mapping, columns, yOffset); - } - - const canvasHeight = nextPowOfTwo(rowHeight + yOffset + buffer); - - return { - mapping, - canvasHeight, - }; -} -function buildRowMapping( - mapping: IICONMap, - columns: Array<{ - icon: IIcon; - xOffset: number; - }>, - yOffset: number, -) { - for (const column of columns) { - const { icon, xOffset } = column; - mapping[icon.id] = { ...icon, x: xOffset, y: yOffset, image: icon.image }; - } -} -export function nextPowOfTwo(num: number) { - return Math.pow(2, Math.ceil(Math.log2(num))); -} diff --git a/packages/core/src/utils/math.ts b/packages/core/src/utils/math.ts deleted file mode 100644 index ec194b21a4..0000000000 --- a/packages/core/src/utils/math.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { mat3, mat4, vec3, vec4 } from 'gl-matrix'; - -export function getAngle(angle: number | undefined) { - if (angle === undefined) { - return 0; - } else if (angle > 360 || angle < -360) { - return angle % 360; - } - return angle; -} - -export function createVec3(x: number | vec3 | vec4, y?: number, z?: number) { - return x instanceof vec3 - ? vec3.clone(x) - : x instanceof vec4 - ? vec3.fromValues(x[0], x[1], x[2]) - : vec3.fromValues(x, y as number, z as number); -} diff --git a/packages/core/src/utils/project.ts b/packages/core/src/utils/project.ts deleted file mode 100644 index 7811299748..0000000000 --- a/packages/core/src/utils/project.ts +++ /dev/null @@ -1,120 +0,0 @@ -const DEGREES_TO_RADIANS = Math.PI / 180; -const TILE_SIZE = 512; -// Average circumference (40075 km equatorial, 40007 km meridional) -const EARTH_CIRCUMFERENCE = 40.03e6; - -interface IDistanceScales { - pixelsPerMeter: [number, number, number]; - metersPerPixel: [number, number, number]; - pixelsPerDegree: [number, number, number]; - degreesPerPixel: [number, number, number]; - pixelsPerDegree2: [number, number, number]; - pixelsPerMeter2: [number, number, number]; -} - -/** - * Calculate distance scales in meters around current lat/lon, both for - * degrees and pixels. - * In mercator projection mode, the distance scales vary significantly - * with latitude. - */ -export function getDistanceScales({ - latitude = 0, - zoom = 0, - scale, - highPrecision = false, - flipY = false, -}: Partial<{ - latitude: number; - zoom: number; - scale: number | undefined; - highPrecision: boolean; - flipY: boolean; -}>): IDistanceScales { - // Calculate scale from zoom if not provided - scale = scale !== undefined ? scale : Math.pow(2, zoom); - - // @ts-ignore - const result: IDistanceScales = {}; - const worldSize = TILE_SIZE * scale; - const latCosine = Math.cos(latitude * DEGREES_TO_RADIANS); - - /** - * Number of pixels occupied by one degree longitude around current lat/lon: - * pixelsPerDegreeX = d(lngLatToWorld([lng, lat])[0])/d(lng) - * = scale * TILE_SIZE * DEGREES_TO_RADIANS / (2 * PI) - * pixelsPerDegreeY = d(lngLatToWorld([lng, lat])[1])/d(lat) - * = -scale * TILE_SIZE * DEGREES_TO_RADIANS / cos(lat * DEGREES_TO_RADIANS) / (2 * PI) - */ - const pixelsPerDegreeX = worldSize / 360; - const pixelsPerDegreeY = pixelsPerDegreeX / latCosine; - - /** - * Number of pixels occupied by one meter around current lat/lon: - */ - const altPixelsPerMeter = worldSize / EARTH_CIRCUMFERENCE / latCosine; - - /** - * LngLat: longitude -> east and latitude -> north (bottom left) - * UTM meter offset: x -> east and y -> north (bottom left) - * World space: x -> east and y -> south (top left) - * - * Y needs to be flipped when converting delta degree/meter to delta pixels - */ - result.pixelsPerMeter = [ - altPixelsPerMeter, - -altPixelsPerMeter, - altPixelsPerMeter, - ]; - result.metersPerPixel = [ - 1 / altPixelsPerMeter, - -1 / altPixelsPerMeter, - 1 / altPixelsPerMeter, - ]; - - result.pixelsPerDegree = [ - pixelsPerDegreeX, - -pixelsPerDegreeY, - altPixelsPerMeter, - ]; - result.degreesPerPixel = [ - 1 / pixelsPerDegreeX, - -1 / pixelsPerDegreeY, - 1 / altPixelsPerMeter, - ]; - - /** - * Taylor series 2nd order for 1/latCosine - * f'(a) * (x - a) - * = d(1/cos(lat * DEGREES_TO_RADIANS))/d(lat) * dLat - * = DEGREES_TO_RADIANS * tan(lat * DEGREES_TO_RADIANS) / cos(lat * DEGREES_TO_RADIANS) * dLat - */ - if (highPrecision) { - const latCosine2 = - (DEGREES_TO_RADIANS * Math.tan(latitude * DEGREES_TO_RADIANS)) / - latCosine; - const pixelsPerDegreeY2 = (pixelsPerDegreeX * latCosine2) / 2; - - const altPixelsPerDegree2 = (worldSize / EARTH_CIRCUMFERENCE) * latCosine2; - const altPixelsPerMeter2 = - (altPixelsPerDegree2 / pixelsPerDegreeY) * altPixelsPerMeter; - - result.pixelsPerDegree2 = [0, -pixelsPerDegreeY2, altPixelsPerDegree2]; - result.pixelsPerMeter2 = [altPixelsPerMeter2, 0, altPixelsPerMeter2]; - - if (flipY) { - result.pixelsPerDegree2[1] = -result.pixelsPerDegree2[1]; - result.pixelsPerMeter2[1] = -result.pixelsPerMeter2[1]; - } - } - - if (flipY) { - result.pixelsPerMeter[1] = -result.pixelsPerMeter[1]; - result.metersPerPixel[1] = -result.metersPerPixel[1]; - result.pixelsPerDegree[1] = -result.pixelsPerDegree[1]; - result.degreesPerPixel[1] = -result.degreesPerPixel[1]; - } - - // Main results, used for converting meters to latlng deltas and scaling offsets - return result; -} diff --git a/packages/core/src/utils/sdf-2d.ts b/packages/core/src/utils/sdf-2d.ts deleted file mode 100644 index 8660c8a008..0000000000 --- a/packages/core/src/utils/sdf-2d.ts +++ /dev/null @@ -1,15 +0,0 @@ -export const sdf2DFunctions = [ - 'circle', - 'triangle', - 'square', - 'pentagon', - 'hexagon', - 'octogon', - 'hexagram', - 'rhombus', - 'vesica', -]; - -export function getShapeIndex(shape: string): number { - return sdf2DFunctions.indexOf(shape); -} diff --git a/packages/core/src/utils/shader-module.ts b/packages/core/src/utils/shader-module.ts deleted file mode 100644 index 6bf16c612f..0000000000 --- a/packages/core/src/utils/shader-module.ts +++ /dev/null @@ -1,89 +0,0 @@ -export function getUniformLengthByType(type: string): number { - let arrayLength = 0; - switch (type) { - case 'vec2': - case 'ivec2': - arrayLength = 2; - break; - case 'vec3': - case 'ivec3': - arrayLength = 3; - break; - case 'vec4': - case 'ivec4': - case 'mat2': - arrayLength = 4; - break; - case 'mat3': - arrayLength = 9; - break; - case 'mat4': - arrayLength = 16; - break; - default: - } - return arrayLength; -} - -const uniformRegExp = /uniform\s+(bool|float|int|vec2|vec3|vec4|ivec2|ivec3|ivec4|mat2|mat3|mat4|sampler2D|samplerCube)\s+([\s\S]*?);/g; -export function extractUniforms( - content: string, -): { - content: string; - uniforms: { - [key: string]: any; - }; -} { - const uniforms = {}; - content = content.replace(uniformRegExp, (_, type, c) => { - const defaultValues = c.split(':'); - const uniformName = defaultValues[0].trim(); - let defaultValue: any = ''; - if (defaultValues.length > 1) { - defaultValue = defaultValues[1].trim(); - } - - // set default value for uniform according to its type - // eg. vec2 u -> [0.0, 0.0] - switch (type) { - case 'bool': - defaultValue = defaultValue === 'true'; - break; - case 'float': - case 'int': - defaultValue = Number(defaultValue); - break; - case 'vec2': - case 'vec3': - case 'vec4': - case 'ivec2': - case 'ivec3': - case 'ivec4': - case 'mat2': - case 'mat3': - case 'mat4': - if (defaultValue) { - defaultValue = defaultValue - .replace('[', '') - .replace(']', '') - .split(',') - .reduce((prev: number[], cur: string) => { - prev.push(Number(cur.trim())); - return prev; - }, []); - } else { - defaultValue = new Array(getUniformLengthByType(type)).fill(0); - } - break; - default: - } - - // @ts-ignore - uniforms[uniformName] = defaultValue; - return `uniform ${type} ${uniformName};\n`; - }); - return { - content, - uniforms, - }; -} diff --git a/packages/core/src/utils/vertex-compression.ts b/packages/core/src/utils/vertex-compression.ts deleted file mode 100644 index 1930d4531b..0000000000 --- a/packages/core/src/utils/vertex-compression.ts +++ /dev/null @@ -1,145 +0,0 @@ -/** - * WebGL 中的顶点数据压缩 - * 使用 float-pack 技术,在 shader 中解压 - * @see https://zhuanlan.zhihu.com/p/67484498 - */ - -import { clamp } from 'lodash'; -import { getShapeIndex } from './sdf-2d'; - -export interface ICircleVertex { - tileX: number; - tileY: number; - shape: string; - color: number[]; - radius: number; - opacity: number; - strokeColor: number[]; - strokeWidth: number; - strokeOpacity: number; -} - -export const LEFT_SHIFT1 = 2; -export const LEFT_SHIFT2 = 4; -export const LEFT_SHIFT6 = 64; -export const LEFT_SHIFT7 = 128; -export const LEFT_SHIFT8 = 256; -export const LEFT_SHIFT9 = 512; -export const LEFT_SHIFT13 = 8192; -export const LEFT_SHIFT14 = 16384; -export const LEFT_SHIFT15 = 32768; -export const LEFT_SHIFT16 = 32768 * 2; -export const LEFT_SHIFT17 = 131072.0; -export const LEFT_SHIFT18 = 262144.0; -export const LEFT_SHIFT19 = 524288.0; -export const LEFT_SHIFT20 = 1048576.0; -export const LEFT_SHIFT21 = 2097152.0; -export const LEFT_SHIFT22 = 4194304.0; -export const LEFT_SHIFT23 = 8388608.0; -export const LEFT_SHIFT24 = 16777216.0; -export const LEFT_SHIFT25 = 16777216.0 * 2; - -/** - * encode 2 8-bit unsigned int into a 16-bit float - * @param {number} a 8-bit int - * @param {number} b 8-bit int - * @return {number} float - */ -export function packUint8ToFloat(a: number, b: number): number { - a = clamp(Math.floor(a), 0, 255); - b = clamp(Math.floor(b), 0, 255); - return 256 * a + b; -} - -/** - * 为 SDF circle 压缩顶点数据 - */ -export function packCircleVertex( - props: ICircleVertex, -): { - packedBuffer: number[][]; - packedBuffer2: number[][]; - packedBuffer3: number[][]; -} { - const { - color, - radius, - tileX, - tileY, - shape, - opacity, // packed buffer1 - strokeColor, - strokeWidth, - strokeOpacity, // packed buffer2 - } = props; - const packedBuffer: number[][] = []; - const packedBuffer2: number[][] = []; - const packedBuffer3: number[][] = []; - - const packedColor: [number, number] = [ - packUint8ToFloat(color[0], color[1]), - packUint8ToFloat(color[2], color[3]), - ]; - const packedStrokeColor: [number, number] = [ - packUint8ToFloat(strokeColor[0], strokeColor[1]), - packUint8ToFloat(strokeColor[2], strokeColor[3]), - ]; - - [ - [-1, -1], - [1, -1], - [1, 1], - [-1, 1], - ].forEach(([extrudeX, extrudeY]) => { - // vec4( - // color, - // color, - // (4-bit extrude, 4-bit shape, 16-bit radius), - // tileCoords - // ) - packedBuffer.push([ - ...packedColor, - (extrudeX + 1) * LEFT_SHIFT23 + - (extrudeY + 1) * LEFT_SHIFT21 + - getShapeIndex(shape) * LEFT_SHIFT17 + - radius, - (tileX + 512) * LEFT_SHIFT19 + (tileY + 512) * LEFT_SHIFT6, - ]); - - // vec4( - // strokeColor, - // strokeColor, - // strokeWidth, - // strokeOpacity - // ) - packedBuffer2.push([...packedStrokeColor, strokeWidth, strokeOpacity]); - - packedBuffer3.push([opacity, 0, 0, 0]); - }); - - return { - packedBuffer, - packedBuffer2, - packedBuffer3, - }; -} - -export function packOpacity(opacity: number, placed: boolean): number { - if (opacity === 0 && !placed) { - return 0; - } else if (opacity === 1 && placed) { - return 4294967295; - } - const targetBit = placed ? 1 : 0; - const opacityBits = Math.floor(opacity * 127); - return ( - opacityBits * LEFT_SHIFT25 + - targetBit * LEFT_SHIFT24 + - opacityBits * LEFT_SHIFT17 + - targetBit * LEFT_SHIFT16 + - opacityBits * LEFT_SHIFT9 + - targetBit * LEFT_SHIFT8 + - opacityBits * LEFT_SHIFT1 + - targetBit - ); -} diff --git a/packages/core/tsconfig.build.json b/packages/core/tsconfig.build.json deleted file mode 100644 index 17f6c4525a..0000000000 --- a/packages/core/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/packages/core/typings/index.d.ts b/packages/core/typings/index.d.ts deleted file mode 100644 index 790cf4872b..0000000000 --- a/packages/core/typings/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ - -declare module 'probe.gl' { - class Log { - constructor(options: { id: string }); - - enable(enabled?: boolean): Log; - - warn(message: string): () => any; - info(message: string): () => any; - error(message: string): () => any; - } -} -/// diff --git a/packages/layers/.gitignore b/packages/layers/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/layers/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/layers/package.json b/packages/layers/package.json deleted file mode 100644 index 06eb9bb952..0000000000 --- a/packages/layers/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "@l7/layers", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": false, - "files": [ - "lib", - "es", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments" - }, - "author": "xiaoiver", - "license": "ISC", - "dependencies": { - "@l7/core": "^0.0.1", - "@l7/source": "^0.0.1", - "@l7/utils": "^0.0.1", - "@mapbox/martini": "^0.1.0", - "@turf/meta": "^6.0.2", - "@types/d3-color": "^1.2.2", - "d3-array": "^2.3.1", - "d3-color": "^1.4.0", - "d3-scale": "^3.1.0", - "earcut": "^2.2.1", - "eventemitter3": "^4.0.0", - "gl-matrix": "^3.1.0", - "gl-vec2": "^1.3.0", - "inversify": "^5.0.1", - "lodash": "^4.17.15", - "merge-json-schemas": "1.0.0", - "polyline-miter-util": "^1.0.1", - "reflect-metadata": "^0.1.13", - "tapable": "^2.0.0-beta.8" - }, - "devDependencies": { - "@types/d3-array": "^2.0.0", - "@types/d3-scale": "^2.1.1", - "@types/earcut": "^2.1.0", - "@types/gl-matrix": "^2.4.5", - "@types/lodash": "^4.14.138" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/layers/src/core/BaseLayer.ts b/packages/layers/src/core/BaseLayer.ts deleted file mode 100644 index d429712f89..0000000000 --- a/packages/layers/src/core/BaseLayer.ts +++ /dev/null @@ -1,508 +0,0 @@ -import { - gl, - IAnimateOption, - ICameraService, - IEncodeFeature, - IFontService, - IGlobalConfigService, - IIconService, - IInteractionService, - ILayer, - ILayerInitializationOptions, - ILayerModel, - ILayerModelInitializationOptions, - ILayerPlugin, - ILayerService, - IMapService, - IModel, - IModelInitializationOptions, - IMultiPassRenderer, - IRendererService, - IScale, - IScaleOptions, - IShaderModuleService, - ISourceCFG, - IStyleAttributeService, - IStyleAttributeUpdateOptions, - lazyInject, - lazyMultiInject, - StyleAttributeField, - StyleAttributeOption, - Triangulation, - TYPES, -} from '@l7/core'; -import Source from '@l7/source'; -import { EventEmitter } from 'eventemitter3'; -import { isFunction, isObject } from 'lodash'; -// @ts-ignore -import mergeJsonSchemas from 'merge-json-schemas'; -import { SyncBailHook, SyncHook } from 'tapable'; -import { normalizePasses } from '../plugins/MultiPassRendererPlugin'; -import baseLayerSchema from './schema'; - -/** - * 分配 layer id - */ -let layerIdCounter = 0; - -/** - * Layer 基类默认样式属性 - */ -const defaultLayerInitializationOptions: Partial = { - minZoom: 0, - maxZoom: 20, - visible: true, - zIndex: 0, - enableMultiPassRenderer: false, - enablePicking: false, - enableHighlight: false, - highlightColor: 'red', - enableTAA: false, - jitterScale: 1, -}; - -export default class BaseLayer extends EventEmitter - implements ILayer { - public id: string = `${layerIdCounter++}`; - public name: string; - public visible: boolean = true; - public zIndex: number = 0; - public minZoom: number; - public maxZoom: number; - - // 生命周期钩子 - public hooks = { - init: new SyncBailHook(), - beforeRender: new SyncBailHook(), - afterRender: new SyncHook(), - beforePickingEncode: new SyncHook(), - afterPickingEncode: new SyncHook(), - beforeHighlight: new SyncHook<[number[]]>(['pickedColor']), - afterHighlight: new SyncHook(), - beforeDestroy: new SyncHook(), - afterDestroy: new SyncHook(), - }; - - // 待渲染 model 列表 - public models: IModel[] = []; - - // 每个 Layer 都有一个 - public multiPassRenderer: IMultiPassRenderer; - - // 注入插件集 - @lazyMultiInject(TYPES.ILayerPlugin) - public plugins: ILayerPlugin[]; - - public sourceOption: { - data: any; - options?: ISourceCFG; - }; - - @lazyInject(TYPES.IStyleAttributeService) - public styleAttributeService: IStyleAttributeService; - - @lazyInject(TYPES.IGlobalConfigService) - public readonly configService: IGlobalConfigService; - - @lazyInject(TYPES.IIconService) - public readonly iconService: IIconService; - - @lazyInject(TYPES.IFontService) - public readonly fontService: IFontService; - - @lazyInject(TYPES.IRendererService) - public readonly rendererService: IRendererService; - - protected layerSource: Source; - - @lazyInject(TYPES.IShaderModuleService) - protected readonly shaderModuleService: IShaderModuleService; - - @lazyInject(TYPES.IMapService) - protected readonly map: IMapService; - - @lazyInject(TYPES.ILayerService) - protected readonly layerService: ILayerService; - - protected layerModel: ILayerModel; - - protected enodeOptions: { - [type: string]: { - field: StyleAttributeField; - values?: StyleAttributeOption; - }; - } = {}; - - protected animateOptions: IAnimateOption = { enable: false }; - - private encodedData: IEncodeFeature[]; - - private configSchema: object; - - /** - * 保存样式属性 - */ - private styleOptions: Partial< - ILayerInitializationOptions & ChildLayerStyleOptions - >; - private scaleOptions: IScaleOptions = {}; - - @lazyInject(TYPES.IInteractionService) - private readonly interactionService: IInteractionService; - - constructor( - styleOptions: Partial, - ) { - super(); - this.styleOptions = { - ...defaultLayerInitializationOptions, - ...styleOptions, - }; - const { minZoom, maxZoom, zIndex, visible } = this - .styleOptions as ILayerInitializationOptions; - this.visible = visible; - this.zIndex = zIndex; - this.minZoom = minZoom; - this.maxZoom = maxZoom; - } - - public addPlugin(plugin: ILayerPlugin) { - // TODO: 控制插件注册顺序 - // @example: - // pointLayer.addPlugin(new MyCustomPlugin(), { - // before: 'L7BuiltinPlugin' - // }); - this.plugins.push(plugin); - return this; - } - - public init() { - this.hooks.init.call(); - this.buildModels(); - return this; - } - - public color( - field: StyleAttributeField, - values?: StyleAttributeOption, - updateOptions?: Partial, - ) { - this.styleAttributeService.updateStyleAttribute( - 'color', - { - // @ts-ignore - scale: { - field, - ...this.splitValuesAndCallbackInAttribute( - // @ts-ignore - values, - this.configService.getConfig().colors, - ), - }, - }, - // @ts-ignore - updateOptions, - ); - return this; - } - - public size( - field: StyleAttributeField, - values?: StyleAttributeOption, - updateOptions?: Partial, - ) { - this.styleAttributeService.updateStyleAttribute( - 'size', - { - // @ts-ignore - scale: { - field, - ...this.splitValuesAndCallbackInAttribute( - // @ts-ignore - values, - this.configService.getConfig().size, - ), - }, - }, - // @ts-ignore - updateOptions, - ); - return this; - } - - public shape( - field: StyleAttributeField, - values?: StyleAttributeOption, - updateOptions?: Partial, - ) { - this.enodeOptions.shape = { - field, - values, - }; - this.styleAttributeService.updateStyleAttribute( - 'shape', - { - // @ts-ignore - scale: { - field, - ...this.splitValuesAndCallbackInAttribute( - // @ts-ignore - values, - this.configService.getConfig().shape, - ), - }, - }, - // @ts-ignore - updateOptions, - ); - return this; - } - public label( - field: StyleAttributeField, - values?: StyleAttributeOption, - updateOptions?: Partial, - ) { - this.styleAttributeService.updateStyleAttribute( - 'label', - { - // @ts-ignore - scale: { - field, - ...this.splitValuesAndCallbackInAttribute( - // @ts-ignore - values, - null, - ), - }, - }, - // @ts-ignore - updateOptions, - ); - return this; - } - public animate(options: IAnimateOption) { - this.animateOptions = options; - return this; - } - - public source(data: any, options?: ISourceCFG): ILayer { - this.sourceOption = { - data, - options, - }; - return this; - } - public style(options: object & Partial): ILayer { - const { passes, ...rest } = options; - - // passes 特殊处理 - if (passes) { - normalizePasses(passes).forEach( - (pass: [string, { [key: string]: unknown }]) => { - const postProcessingPass = this.multiPassRenderer - .getPostProcessor() - .getPostProcessingPassByName(pass[0]); - if (postProcessingPass) { - postProcessingPass.updateOptions(pass[1]); - } - }, - ); - } - - this.styleOptions = { - ...this.styleOptions, - ...rest, - }; - return this; - } - public scale(field: string | IScaleOptions, cfg: IScale) { - if (isObject(field)) { - this.scaleOptions = { - ...this.scaleOptions, - ...field, - }; - } else { - this.scaleOptions[field] = cfg; - } - return this; - } - public render(): ILayer { - if (this.multiPassRenderer && this.multiPassRenderer.getRenderFlag()) { - this.multiPassRenderer.render(); - } else { - this.renderModels(); - } - return this; - } - - public show(): ILayer { - this.visible = true; - this.layerService.renderLayers(); - return this; - } - - public hide(): ILayer { - this.visible = false; - this.layerService.renderLayers(); - return this; - } - - public setIndex(index: number): ILayer { - this.zIndex = index; - this.layerService.updateRenderOrder(); - return this; - } - - public isVisible(): boolean { - const zoom = this.map.getZoom(); - return this.visible && zoom >= this.minZoom && zoom <= this.maxZoom; - } - - public setMinZoom(min: number): ILayer { - this.minZoom = min; - return this; - } - - public setMaxZoom(max: number): ILayer { - this.maxZoom = max; - return this; - } - /** - * zoom to layer Bounds - */ - public fitBounds(): void { - const source = this.getSource(); - const extent = source.extent; - this.map.fitBounds([ - [extent[0], extent[1]], - [extent[2], extent[3]], - ]); - } - - public destroy() { - this.hooks.beforeDestroy.call(); - - // 清除所有属性以及关联的 vao - this.styleAttributeService.clearAllAttributes(); - // 销毁所有 model - this.models.forEach((model) => model.destroy()); - - this.hooks.afterDestroy.call(); - } - - public isDirty() { - return !!( - this.styleAttributeService.getLayerStyleAttributes() || [] - ).filter( - (attribute) => - attribute.needRescale || - attribute.needRemapping || - attribute.needRegenerateVertices, - ).length; - } - - public setSource(source: Source) { - this.layerSource = source; - } - public getSource() { - return this.layerSource; - } - - public getStyleOptions() { - return this.styleOptions; - } - public getScaleOptions() { - return this.scaleOptions; - } - - public setEncodedData(encodedData: IEncodeFeature[]) { - this.encodedData = encodedData; - } - public getEncodedData() { - return this.encodedData; - } - - public getConfigSchemaForValidation() { - if (!this.configSchema) { - // 相比 allOf, merge 有一些优势 - // @see https://github.com/goodeggs/merge-json-schemas - this.configSchema = mergeJsonSchemas([ - baseLayerSchema, - this.getConfigSchema(), - ]); - } - return this.configSchema; - } - - public pick({ x, y }: { x: number; y: number }) { - this.interactionService.triggerHover({ x, y }); - } - - public buildLayerModel( - options: ILayerModelInitializationOptions & - Partial, - ): IModel { - const { - moduleName, - vertexShader, - fragmentShader, - triangulation, - ...rest - } = options; - this.shaderModuleService.registerModule(moduleName, { - vs: vertexShader, - fs: fragmentShader, - }); - const { vs, fs, uniforms } = this.shaderModuleService.getModule(moduleName); - const { createModel } = this.rendererService; - const parserData = this.getSource().data.dataArray; - const { - attributes, - elements, - } = this.styleAttributeService.createAttributesAndIndices( - this.encodedData, - triangulation, - ); - return createModel({ - attributes, - uniforms, - fs, - vs, - elements, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - ...rest, - }); - } - - protected getConfigSchema() { - throw new Error('Method not implemented.'); - } - - protected buildModels() { - throw new Error('Method not implemented.'); - } - - protected renderModels() { - throw new Error('Method not implemented.'); - } - - private splitValuesAndCallbackInAttribute( - valuesOrCallback?: unknown[], - defaultValues?: unknown[], - ) { - return { - values: isFunction(valuesOrCallback) - ? undefined - : valuesOrCallback || defaultValues, - callback: isFunction(valuesOrCallback) ? valuesOrCallback : undefined, - }; - } -} diff --git a/packages/layers/src/core/baseModel.ts b/packages/layers/src/core/baseModel.ts deleted file mode 100644 index ffc238dee5..0000000000 --- a/packages/layers/src/core/baseModel.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - AttributeType, - gl, - ICameraService, - IEncodeFeature, - IFontService, - IGlobalConfigService, - IIconService, - ILayer, - ILayerModel, - ILayerPlugin, - ILogService, - IMapService, - IModel, - IModelUniform, - IRendererService, - IShaderModuleService, - IStyleAttributeService, - lazyInject, - TYPES, -} from '@l7/core'; - -export default class BaseModel implements ILayerModel { - @lazyInject(TYPES.IStyleAttributeService) - public styleAttributeService: IStyleAttributeService; - protected layer: ILayer; - - @lazyInject(TYPES.IGlobalConfigService) - protected readonly configService: IGlobalConfigService; - - @lazyInject(TYPES.IIconService) - protected readonly iconService: IIconService; - - @lazyInject(TYPES.IFontService) - protected readonly fontService: IFontService; - - @lazyInject(TYPES.IRendererService) - protected readonly rendererService: IRendererService; - - @lazyInject(TYPES.IShaderModuleService) - protected readonly shaderModuleService: IShaderModuleService; - - @lazyInject(TYPES.IMapService) - protected readonly map: IMapService; - - @lazyInject(TYPES.ICameraService) - protected readonly camera: ICameraService; - - constructor(layer: ILayer) { - this.layer = layer; - this.registerBuiltinAttributes(); - } - - public getUninforms(): IModelUniform { - throw new Error('Method not implemented.'); - } - - public buildModels(): IModel[] { - throw new Error('Method not implemented.'); - } - - public render() { - throw new Error('Method not implemented.'); - } - protected registerBuiltinAttributes() { - throw new Error('Method not implemented.'); - } -} diff --git a/packages/layers/src/core/schema.ts b/packages/layers/src/core/schema.ts deleted file mode 100644 index cdb88ea1be..0000000000 --- a/packages/layers/src/core/schema.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * BaseLayer Schema - */ -export default { - properties: { - enablePicking: { - type: 'boolean', - }, - enableHighlight: { - type: 'boolean', - }, - highlightColor: { - oneOf: [ - { - type: 'array', - items: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - { - type: 'string', - }, - ], - }, - }, -}; diff --git a/packages/layers/src/core/shape/Path.ts b/packages/layers/src/core/shape/Path.ts deleted file mode 100644 index d256eba7c9..0000000000 --- a/packages/layers/src/core/shape/Path.ts +++ /dev/null @@ -1,65 +0,0 @@ -export type IPosition = [number, number, number] | [number, number]; -export type IPath = IPosition[]; -export enum ShapeType3D { - CYLINDER = 'cylinder', - SQUARECOLUMN = 'squareColumn', - TRIANGLECOLUMN = 'triangleColumn', - HEXAGONCOLUMN = 'hexagonColumn', - PENTAGONCOLUMN = 'pentagonColumn', -} -export enum ShapeType2D { - CIRCLE = 'circle', - SQUARE = 'square', - TRIANGLE = 'triangle', - HEXAGON = 'hexagon', - PENTAGON = 'pentagon', -} - -/** - * 生成规则多边形顶点个数 - * @param pointCount 顶点个数 3 => 三角形 - * @param start 顶点起始角度 调整图形的方向 - */ -export function polygonPath(pointCount: number, start: number = 0): IPath { - const step = (Math.PI * 2) / pointCount; - const line = []; - for (let i = 0; i < pointCount; i++) { - line.push(step * i + (start * Math.PI) / 12); - } - const path: IPath = line.map((t) => { - const x = Math.sin(t + Math.PI / 4); - const y = Math.cos(t + Math.PI / 4); - return [x, y, 0]; - }); - // path.push(path[0]); - return path; -} - -export function circle(): IPath { - return polygonPath(30); -} -export function square(): IPath { - return polygonPath(4); -} -export function triangle(): IPath { - return polygonPath(3); -} -export function hexagon(): IPath { - return polygonPath(6, 1); -} -export function pentagon(): IPath { - return polygonPath(5); -} - -export const geometryShape = { - [ShapeType2D.CIRCLE]: circle, - [ShapeType2D.HEXAGON]: hexagon, - [ShapeType2D.TRIANGLE]: triangle, - [ShapeType2D.SQUARE]: square, - [ShapeType2D.PENTAGON]: pentagon, - [ShapeType3D.CYLINDER]: circle, - [ShapeType3D.HEXAGONCOLUMN]: hexagon, - [ShapeType3D.TRIANGLECOLUMN]: triangle, - [ShapeType3D.SQUARECOLUMN]: square, - [ShapeType3D.PENTAGONCOLUMN]: pentagon, -}; diff --git a/packages/layers/src/core/shape/extrude.ts b/packages/layers/src/core/shape/extrude.ts deleted file mode 100644 index a8e5ead887..0000000000 --- a/packages/layers/src/core/shape/extrude.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { lngLatToMeters } from '@l7/utils'; -import earcut from 'earcut'; -import { vec3 } from 'gl-matrix'; -import { IPath } from './Path'; -export interface IExtrudeGeomety { - positions: number[]; - index: number[]; - normals?: number[]; -} -/** - * 拉伸多边形顶点,返回拉伸后的顶点信息 - * @param paths 路径数据组 - * @param extrude 是否拉伸 - */ -export default function extrudePolygon(path: IPath[]): IExtrudeGeomety { - const p1 = path[0][0]; - const p2 = path[0][path[0].length - 1]; - if (p1[0] === p2[0] && p1[1] === p2[1]) { - path[0] = path[0].slice(0, path[0].length - 1); - } - - const n = path[0].length; - const flattengeo = earcut.flatten(path); - const { vertices, dimensions } = flattengeo; - const positions = []; - const indexArray = []; - // 设置顶部z值 - for (let j = 0; j < vertices.length / dimensions; j++) { - if (dimensions === 2) { - positions.push(vertices[j * 2], vertices[j * 2 + 1], 1); - } else { - positions.push(vertices[j * 3], vertices[j * 3 + 1], 1); - } - } - const triangles = earcut( - flattengeo.vertices, - flattengeo.holes, - flattengeo.dimensions, - ); - indexArray.push(...triangles); - for (let i = 0; i < n; i++) { - const prePoint = flattengeo.vertices.slice( - i * dimensions, - (i + 1) * dimensions, - ); - let nextPoint = flattengeo.vertices.slice( - (i + 1) * dimensions, - (i + 2) * dimensions, - ); - if (nextPoint.length === 0) { - nextPoint = flattengeo.vertices.slice(0, dimensions); - } - const indexOffset = positions.length / 3; - positions.push( - prePoint[0], - prePoint[1], - 1, - nextPoint[0], - nextPoint[1], - 1, - prePoint[0], - prePoint[1], - 0, - nextPoint[0], - nextPoint[1], - 0, - ); - indexArray.push(...[0, 2, 1, 2, 3, 1].map((v) => v + indexOffset)); - } - return { - positions, - index: indexArray, - }; -} -export function fillPolygon(points: IPath[]) { - const flattengeo = earcut.flatten(points); - const triangles = earcut( - flattengeo.vertices, - flattengeo.holes, - flattengeo.dimensions, - ); - return { - positions: flattengeo.vertices, - index: triangles, - }; -} - -export function extrude_PolygonNormal( - path: IPath[], - needFlat = false, -): IExtrudeGeomety { - const p1 = path[0][0]; - const p2 = path[0][path[0].length - 1]; - if (p1[0] === p2[0] && p1[1] === p2[1]) { - path[0] = path[0].slice(0, path[0].length - 1); - } - const n = path[0].length; - const flattengeo = earcut.flatten(path); - const { vertices, dimensions } = flattengeo; - const positions = []; - const indexArray = []; - const normals = []; - // 设置顶部z值 - for (let j = 0; j < vertices.length / dimensions; j++) { - if (dimensions === 2) { - positions.push(vertices[j * 2], vertices[j * 2 + 1], 1); - } else { - positions.push(vertices[j * 3], vertices[j * 3 + 1], 1); - } - normals.push(0, 0, 1); - } - const triangles = earcut( - flattengeo.vertices, - flattengeo.holes, - flattengeo.dimensions, - ); - indexArray.push(...triangles); - for (let i = 0; i < n; i++) { - const prePoint = flattengeo.vertices.slice( - i * dimensions, - (i + 1) * dimensions, - ); - let nextPoint = flattengeo.vertices.slice( - (i + 1) * dimensions, - (i + 2) * dimensions, - ); - if (nextPoint.length === 0) { - nextPoint = flattengeo.vertices.slice(0, dimensions); - } - const indexOffset = positions.length / 3; - positions.push( - prePoint[0], - prePoint[1], - 1, - nextPoint[0], - nextPoint[1], - 1, - prePoint[0], - prePoint[1], - 0, - nextPoint[0], - nextPoint[1], - 0, - ); - const normal = computeVertexNormals( - [nextPoint[0], nextPoint[1], 1], - [prePoint[0], prePoint[1], 0], - [prePoint[0], prePoint[1], 1], - needFlat, - ); - normals.push(...normal, ...normal, ...normal, ...normal); - indexArray.push(...[1, 2, 0, 3, 2, 1].map((v) => v + indexOffset)); - } - return { - positions, - index: indexArray, - normals, - }; -} -function computeVertexNormals( - p1: [number, number, number], - p2: [number, number, number], - p3: [number, number, number], - needFlat: boolean = false, -) { - const cb = vec3.create(); - const ab = vec3.create(); - const normal = vec3.create(); - - if (needFlat) { - p1 = lngLatToMeters(p1) as [number, number, number]; - p2 = lngLatToMeters(p2) as [number, number, number]; - p3 = lngLatToMeters(p3) as [number, number, number]; - } - const pA = vec3.fromValues(...p1); - const pB = vec3.fromValues(...p2); - const pC = vec3.fromValues(...p3); - vec3.sub(cb, pC, pB); - vec3.sub(ab, pA, pB); - vec3.cross(normal, cb, ab); - const newNormal = vec3.create(); - vec3.normalize(newNormal, normal); - - return newNormal; -} diff --git a/packages/layers/src/core/triangulation.ts b/packages/layers/src/core/triangulation.ts deleted file mode 100644 index 66d027c759..0000000000 --- a/packages/layers/src/core/triangulation.ts +++ /dev/null @@ -1,339 +0,0 @@ -import { IEncodeFeature } from '@l7/core'; -import { aProjectFlat, lngLatToMeters } from '@l7/utils'; -import earcut from 'earcut'; -import { vec3 } from 'gl-matrix'; -import getNormals from '../utils/polylineNormal'; -import extrudePolygon, { - extrude_PolygonNormal, - fillPolygon, - IExtrudeGeomety, -} from './shape/extrude'; -import { - geometryShape, - IPosition, - ShapeType2D, - ShapeType3D, -} from './shape/Path'; -type IShape = ShapeType2D & ShapeType3D; -interface IGeometryCache { - [key: string]: IExtrudeGeomety; -} -const GeometryCache: IGeometryCache = {}; -/** - * 计算2D 填充点图顶点 - * @param feature 映射feature - */ -export function PointFillTriangulation(feature: IEncodeFeature) { - const coordinates = feature.coordinates as number[]; - return { - vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates], - indices: [0, 1, 2, 2, 3, 0], - size: coordinates.length, - }; -} - -/** - * 计算3D 拉伸点图 - * @param feature 映射feature - */ -export function PointExtrudeTriangulation(feature: IEncodeFeature) { - const { shape } = feature; - const { positions, index, normals } = getGeometry( - shape as ShapeType3D, - false, - ); - return { - vertices: positions, - indices: index, - normals, - // normals: Array.from(computeVertexNormals(positions, index, 3, false)), - size: 3, - }; -} - -/** - * 计算图片标注 - * @param feature 映射feature - */ -export function PointImageTriangulation(feature: IEncodeFeature) { - const coordinates = feature.coordinates as number[]; - return { - vertices: [...coordinates], - indices: [0], - size: coordinates.length, - }; -} - -/** - * 线三角化 - * @param feature 映射feature - */ -export function LineTriangulation(feature: IEncodeFeature) { - const { coordinates } = feature; - let path = coordinates; - if (Array.isArray(path[0][0])) { - path = coordinates[0]; - } - const line = getNormals(path as number[][], false, 0); - return { - vertices: line.attrPos, // [ x,y,z, distance, miter,total ] - indices: line.attrIndex, - normals: line.normals, - size: 6, - }; -} - -export function polygonTriangulation(feature: IEncodeFeature) { - const { coordinates } = feature; - const flattengeo = earcut.flatten(coordinates as number[][][]); - const { vertices, dimensions, holes } = flattengeo; - - return { - indices: earcut(vertices, holes, dimensions), - vertices, - size: dimensions, - }; -} - -export function PolygonExtrudeTriangulation(feature: IEncodeFeature) { - const coordinates = feature.coordinates as IPosition[][]; - const { positions, index, normals } = extrude_PolygonNormal( - coordinates, - true, - ); - - return { - vertices: positions, // [ x, y, z ] - indices: index, - normals, - size: 3, - }; -} - -export function HeatmapGridTriangulation(feature: IEncodeFeature) { - const { shape } = feature; - const { positions, index } = getHeatmapGeometry(shape as IShape); - return { - vertices: positions, // [ x, y, z ] 多边形顶点 - indices: index, - size: 3, - }; -} - -/** - * 图片图层顶点构造 - * @param feature 数据 - */ -export function RasterImageTriangulation(feature: IEncodeFeature) { - const coordinates = feature.coordinates as IPosition[]; - // [ x, y, z. uv.x, uv.y] - const positions: number[] = [ - ...coordinates[0], - 0, - 0, - 1, - coordinates[1][0], - coordinates[0][1], - 0, - 1, - 1, - ...coordinates[1], - 0, - 1, - 0, - ...coordinates[0], - 0, - 0, - 1, - ...coordinates[1], - 0, - 1, - 0, - coordinates[0][0], - coordinates[1][1], - 0, - 0, - 0, - ]; - const indexs = [0, 1, 2, 3, 4, 5]; - return { - vertices: positions, - indices: indexs, - size: 5, - }; -} -/** - * 计算3D弧线顶点 - * @param feature 映射数据 - * @param segNum 弧线线段数 - */ -export function LineArcTriangulation(feature: IEncodeFeature) { - const segNum = 30; - const coordinates = feature.coordinates as IPosition[]; - const positions = []; - const indexArray = []; - for (let i = 0; i < segNum; i++) { - // 上线两个顶点 - // [ x, y, z, sx,sy, tx,ty] - positions.push( - i, - 1, - i, - coordinates[0][0], - coordinates[0][1], - coordinates[1][0], - coordinates[1][1], - i, - -1, - i, - coordinates[0][0], - coordinates[0][1], - coordinates[1][0], - coordinates[1][1], - ); - if (i !== segNum - 1) { - indexArray.push( - ...[0, 1, 2, 1, 3, 2].map((v) => { - return i * 2 + v; - }), - ); - } - } - return { - vertices: positions, - indices: indexArray, - size: 7, - }; -} - -export function HeatmapTriangulation(feature: IEncodeFeature) { - const coordinates = feature.coordinates as number[]; - if (coordinates.length === 2) { - coordinates.push(0); - } - const size = feature.size as number; - const dir = addDir(-1, 1); - const dir1 = addDir(1, 1); - const dir2 = addDir(-1, -1); - const dir3 = addDir(1, -1); - // [x,y,z, dirx ,diry, weight] - const positions = [ - ...coordinates, - ...dir, - ...coordinates, - ...dir2, - ...coordinates, - ...dir3, - ...coordinates, - ...dir1, - ]; - const indexArray = [0, 1, 2, 3, 0, 2]; - return { - vertices: positions, - indices: indexArray, - size: 5, - }; -} - -/** - * 点图层3d geomerty - * @param shape 3D形状 - */ -function getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety { - if (GeometryCache && GeometryCache[shape]) { - return GeometryCache[shape]; - } - const path = geometryShape[shape] - ? geometryShape[shape]() - : geometryShape.cylinder(); - const geometry = extrude_PolygonNormal([path], needFlat); - GeometryCache[shape] = geometry; - return geometry; -} - -function computeVertexNormals( - positions: number[], - indexArray: number[], - dim: number = 3, - needFlat: boolean = false, -) { - const normals = new Float32Array((positions.length / dim) * 3); - let vA: number; - let vB: number; - let vC: number; - const cb = vec3.create(); - const ab = vec3.create(); - const normal = vec3.create(); - for (let i = 0, li = indexArray.length; i < li; i += 3) { - vA = indexArray[i + 0] * 3; - vB = indexArray[i + 1] * 3; - vC = indexArray[i + 2] * 3; - let p1 = [positions[vA], positions[vA + 1]]; - let p2 = [positions[vB], positions[vB + 1]]; - let p3 = [positions[vC], positions[vC + 1]]; - if (needFlat) { - p1 = lngLatToMeters(p1); - p2 = lngLatToMeters(p2); - p3 = lngLatToMeters(p3); - } - const [ax, ay] = p1; - const pA = vec3.fromValues(ax, ay, positions[vA + 2]); - const [bx, by] = p2; - const pB = vec3.fromValues(bx, by, positions[vB + 2]); - const [cx, cy] = p3; - const pC = vec3.fromValues(cx, cy, positions[vC + 2]); - vec3.sub(cb, pC, pB); - vec3.sub(ab, pA, pB); - vec3.cross(normal, cb, ab); - normals[vA] += cb[0]; - normals[vA + 1] += cb[1]; - normals[vA + 2] += cb[2]; - normals[vB] += cb[0]; - normals[vB + 1] += cb[1]; - normals[vB + 2] += cb[2]; - normals[vC] += cb[0]; - normals[vC + 1] += cb[1]; - normals[vC + 2] += cb[2]; - } - normalizeNormals(normals); - return normals; -} - -function normalizeNormals(normals: Float32Array) { - for (let i = 0, li = normals.length; i < li; i += 3) { - const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]); - const newNormal = vec3.create(); - vec3.normalize(newNormal, normal); - normals.set(newNormal, i); - } -} - -function checkIsClosed(points: number[][][]) { - const p1 = points[0][0]; - const p2 = points[0][points[0].length - 1]; - return p1[0] === p2[0] && p1[1] === p2[1]; -} - -function getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety { - const shape3d = [ - 'cylinder', - 'triangleColumn', - 'hexagonColumn', - 'squareColumn', - ]; - const path = geometryShape[shape] - ? geometryShape[shape]() - : geometryShape.circle(); - const geometry = - shape3d.indexOf(shape) === -1 - ? fillPolygon([path]) - : extrudePolygon([path]); - // const geometry = fillPolygon([path]); - return geometry; -} -// 热力图计算范围 -function addDir(dirX: number, dirY: number) { - const x = (dirX + 1) / 2; - const y = (dirY + 1) / 2; - return [x, y]; -} diff --git a/packages/layers/src/heatmap/index.ts b/packages/layers/src/heatmap/index.ts deleted file mode 100644 index 0e0de961e1..0000000000 --- a/packages/layers/src/heatmap/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { AttributeType, gl, IEncodeFeature, ILayer } from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import HeatMapModels, { HeatMapModelType } from './models'; -interface IPointLayerStyleOptions { - opacity: number; -} -export default class HeatMapLayer extends BaseLayer { - public name: string = 'HeatMapLayer'; - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - const shape = this.getModelType(); - if (shape === 'heatmap') { - this.layerModel.render(); - return; - } - this.models.forEach((model) => - model.draw({ - uniforms: this.layerModel.getUninforms(), - }), - ); - return this; - } - - protected buildModels() { - const shape = this.getModelType(); - this.layerModel = new HeatMapModels[shape](this); - this.models = this.layerModel.buildModels(); - } - private getModelType(): HeatMapModelType { - const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute( - 'shape', - ); - const { shape3d } = this.configService.getConfig(); - const source = this.getSource(); - const sourceType = source.data.type; - const shape = - (shapeAttribute?.scale?.field as HeatMapModelType) || 'heatmap'; - if (shape === 'heatmap' || shape === 'heatmap3d') { - return 'heatmap'; - } - if (sourceType === 'hexagon') { - return shape3d?.indexOf(shape) === -1 ? 'hexagon' : 'grid3d'; - } - if (sourceType === 'grid') { - return shape3d?.indexOf(shape) === -1 ? 'grid' : 'grid3d'; - } - return 'heatmap'; - } -} diff --git a/packages/layers/src/heatmap/models/grid.ts b/packages/layers/src/heatmap/models/grid.ts deleted file mode 100644 index 96dbed19a6..0000000000 --- a/packages/layers/src/heatmap/models/grid.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { HeatmapGridTriangulation } from '../../core/triangulation'; -import heatmapGridVert from '../shaders/grid_vert.glsl'; -import heatmapGridFrag from '../shaders/hexagon_frag.glsl'; -interface IHeatMapLayerStyleOptions { - opacity: number; - coverage: number; -} -export default class GridModel extends BaseModel { - public getUninforms(): IModelUniform { - const { - opacity, - coverage, - } = this.layer.getStyleOptions() as IHeatMapLayerStyleOptions; - return { - u_opacity: opacity || 1.0, - u_coverage: coverage || 0.9, - u_radius: [ - this.layer.getSource().data.xOffset, - this.layer.getSource().data.yOffset, - ], - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'gridheatmap', - vertexShader: heatmapGridVert, - fragmentShader: heatmapGridFrag, - triangulation: HeatmapGridTriangulation, - depth: { enable: false }, - primitive: gl.TRIANGLES, - }), - ]; - } - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'pos', // 顶点经纬度位置 - type: AttributeType.Attribute, - descriptor: { - name: 'a_Pos', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: (feature: IEncodeFeature, featureIdx: number) => { - const coordinates = feature.coordinates as number[]; - return [coordinates[0], coordinates[1], 0]; - }, - }, - }); - } -} diff --git a/packages/layers/src/heatmap/models/grid3d.ts b/packages/layers/src/heatmap/models/grid3d.ts deleted file mode 100644 index 6433facdcd..0000000000 --- a/packages/layers/src/heatmap/models/grid3d.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { PointExtrudeTriangulation } from '../../core/triangulation'; -import heatmapGrid3dVert from '../shaders/hexagon_3d_vert.glsl'; -import heatmapGridFrag from '../shaders/hexagon_frag.glsl'; - -interface IHeatMapLayerStyleOptions { - opacity: number; - coverage: number; -} -export default class Grid3DModel extends BaseModel { - public getUninforms(): IModelUniform { - const { - opacity, - coverage, - } = this.layer.getStyleOptions() as IHeatMapLayerStyleOptions; - return { - u_opacity: opacity || 1.0, - u_coverage: coverage || 1.0, - u_radius: [ - this.layer.getSource().data.xOffset, - this.layer.getSource().data.yOffset, - ], - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'grid3dheatmap', - vertexShader: heatmapGrid3dVert, - fragmentShader: heatmapGridFrag, - triangulation: PointExtrudeTriangulation, - depth: { enable: true }, - }), - ]; - } - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'normal', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Normal', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - normal: number[], - ) => { - return normal; - }, - }, - }); - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'pos', // 顶点经纬度位置 - type: AttributeType.Attribute, - descriptor: { - name: 'a_Pos', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: (feature: IEncodeFeature, featureIdx: number) => { - const coordinates = feature.coordinates as number[]; - return [coordinates[0], coordinates[1], 0]; - }, - }, - }); - } -} diff --git a/packages/layers/src/heatmap/models/heatmap.ts b/packages/layers/src/heatmap/models/heatmap.ts deleted file mode 100644 index 47aad15ca2..0000000000 --- a/packages/layers/src/heatmap/models/heatmap.ts +++ /dev/null @@ -1,347 +0,0 @@ -import { - AttributeType, - gl, - ICameraService, - IEncodeFeature, - IFramebuffer, - ILayer, - ILayerModel, - IModel, - IModelUniform, - ITexture2D, - lazyInject, - TYPES, -} from '@l7/core'; -import { mat4 } from 'gl-matrix'; -import BaseModel from '../../core/baseModel'; -import { HeatmapTriangulation } from '../../core/triangulation'; -import { generateColorRamp, IColorRamp } from '../../utils/color'; -import heatmap3DFrag from '../shaders/heatmap_3d_frag.glsl'; -import heatmap3DVert from '../shaders/heatmap_3d_vert.glsl'; -import heatmapColorFrag from '../shaders/heatmap_frag.glsl'; -import heatmapFrag from '../shaders/heatmap_framebuffer_frag.glsl'; -import heatmapVert from '../shaders/heatmap_framebuffer_vert.glsl'; -import heatmapColorVert from '../shaders/heatmap_vert.glsl'; -import { heatMap3DTriangulation } from '../triangulation'; -interface IHeatMapLayerStyleOptions { - opacity: number; - intensity: number; - radius: number; - rampColors: IColorRamp; -} - -export default class HeatMapModel extends BaseModel { - protected texture: ITexture2D; - protected colorTexture: ITexture2D; - protected heatmapFramerBuffer: IFramebuffer; - private intensityModel: IModel; - private colorModel: IModel; - private shapeType: string; - - public render() { - const { clear, useFramebuffer } = this.rendererService; - useFramebuffer(this.heatmapFramerBuffer, () => { - clear({ - color: [0, 0, 0, 0], - depth: 1, - stencil: 0, - framebuffer: this.heatmapFramerBuffer, - }); - this.drawIntensityMode(); - }); - this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap(); - } - - public getUninforms(): IModelUniform { - throw new Error('Method not implemented.'); - } - - public buildModels(): IModel[] { - const { - createFramebuffer, - clear, - getViewportSize, - createTexture2D, - useFramebuffer, - } = this.rendererService; - const shapeAttr = this.layer.styleAttributeService.getLayerStyleAttribute( - 'shape', - ); - const shapeType = shapeAttr?.scale?.field || 'heatmap'; - this.shapeType = shapeType as string; - // 生成热力图密度图 - this.intensityModel = this.buildHeatMapIntensity(); - // 渲染到屏幕 - this.colorModel = - shapeType === 'heatmap' - ? this.buildHeatmapColor() // 2D - : this.build3dHeatMap(); // 3D - - const { - rampColors, - } = this.layer.getStyleOptions() as IHeatMapLayerStyleOptions; - const imageData = generateColorRamp(rampColors as IColorRamp); - const { width, height } = getViewportSize(); - - // 初始化密度图纹理 - this.heatmapFramerBuffer = createFramebuffer({ - color: createTexture2D({ - width, - height, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - min: gl.LINEAR, - mag: gl.LINEAR, - }), - }); - - // 初始化颜色纹理 - - this.colorTexture = createTexture2D({ - data: imageData.data, - width: imageData.width, - height: imageData.height, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - min: gl.LINEAR, - mag: gl.LINEAR, - flipY: true, - }); - - return [this.intensityModel, this.colorModel]; - } - protected registerBuiltinAttributes() { - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'dir', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Dir', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 2, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3], vertex[4]]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size = 2 } = feature; - return [size as number]; - }, - }, - }); - } - private buildHeatMapIntensity(): IModel { - return this.layer.buildLayerModel({ - moduleName: 'heatmapintensity', - vertexShader: heatmapVert, - fragmentShader: heatmapFrag, - triangulation: HeatmapTriangulation, - depth: { - enable: false, - }, - blend: { - enable: true, - func: { - srcRGB: gl.ONE, - srcAlpha: gl.ONE_MINUS_SRC_ALPHA, - dstRGB: gl.ONE, - dstAlpha: gl.ONE_MINUS_SRC_ALPHA, - }, - }, - }); - } - - private buildHeatmapColor(): IModel { - this.shaderModuleService.registerModule('heatmapColor', { - vs: heatmapColorVert, - fs: heatmapColorFrag, - }); - - const { vs, fs, uniforms } = this.shaderModuleService.getModule( - 'heatmapColor', - ); - const { - createAttribute, - createElements, - createBuffer, - createModel, - } = this.rendererService; - return createModel({ - vs, - fs, - attributes: { - a_Position: createAttribute({ - buffer: createBuffer({ - data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0], - type: gl.FLOAT, - }), - size: 3, - }), - a_Uv: createAttribute({ - buffer: createBuffer({ - data: [0, 1, 1, 1, 0, 0, 1, 0], - type: gl.FLOAT, - }), - size: 2, - }), - }, - uniforms: { - ...uniforms, - }, - depth: { - enable: false, - }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - count: 6, - elements: createElements({ - data: [0, 2, 1, 2, 3, 1], - type: gl.UNSIGNED_INT, - count: 6, - }), - }); - } - - private drawIntensityMode() { - const { - opacity, - intensity = 10, - radius = 5, - } = this.layer.getStyleOptions() as IHeatMapLayerStyleOptions; - this.intensityModel.draw({ - uniforms: { - u_opacity: opacity || 1.0, - u_radius: radius, - u_intensity: intensity, - }, - }); - } - - private drawColorMode() { - const { - opacity, - } = this.layer.getStyleOptions() as IHeatMapLayerStyleOptions; - this.colorModel.draw({ - uniforms: { - u_opacity: opacity || 1.0, - u_colorTexture: this.colorTexture, - u_texture: this.heatmapFramerBuffer, - }, - }); - } - - private draw3DHeatMap() { - const { - opacity, - } = this.layer.getStyleOptions() as IHeatMapLayerStyleOptions; - const invert = mat4.invert( - mat4.create(), - // @ts-ignore - mat4.fromValues(...this.camera.getViewProjectionMatrix()), - ) as mat4; - this.colorModel.draw({ - uniforms: { - u_opacity: opacity || 1.0, - u_colorTexture: this.colorTexture, - u_texture: this.heatmapFramerBuffer, - u_InverseViewProjectionMatrix: [...invert], - }, - }); - } - private build3dHeatMap() { - const { getViewportSize } = this.rendererService; - const { width, height } = getViewportSize(); - const triangulation = heatMap3DTriangulation(width / 2.0, height / 2.0); - this.shaderModuleService.registerModule('heatmap3dColor', { - vs: heatmap3DVert, - fs: heatmap3DFrag, - }); - - const { vs, fs, uniforms } = this.shaderModuleService.getModule( - 'heatmap3dColor', - ); - const { - createAttribute, - createElements, - createBuffer, - createModel, - } = this.rendererService; - return createModel({ - vs, - fs, - attributes: { - a_Position: createAttribute({ - buffer: createBuffer({ - data: triangulation.vertices, - type: gl.FLOAT, - }), - size: 3, - }), - a_Uv: createAttribute({ - buffer: createBuffer({ - data: triangulation.uvs, - type: gl.FLOAT, - }), - size: 2, - }), - }, - primitive: gl.TRIANGLES, - uniforms: { - ...uniforms, - }, - depth: { - enable: true, - }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - elements: createElements({ - data: triangulation.indices, - type: gl.UNSIGNED_INT, - count: triangulation.indices.length, - }), - }); - } -} diff --git a/packages/layers/src/heatmap/models/hexagon.ts b/packages/layers/src/heatmap/models/hexagon.ts deleted file mode 100644 index f26a081afd..0000000000 --- a/packages/layers/src/heatmap/models/hexagon.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - IModel, - IModelUniform, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { HeatmapGridTriangulation } from '../../core/triangulation'; -import heatmapGridFrag from '../shaders/hexagon_frag.glsl'; -import heatmapGridVert from '../shaders/hexagon_vert.glsl'; - -interface IHeatMapLayerStyleOptions { - opacity: number; - coverage: number; -} - -export default class HexagonModel extends BaseModel { - public getUninforms(): IModelUniform { - const { - opacity, - coverage, - } = this.layer.getStyleOptions() as IHeatMapLayerStyleOptions; - return { - u_opacity: opacity || 1.0, - u_coverage: coverage || 0.9, - u_radius: [ - this.layer.getSource().data.xOffset, - this.layer.getSource().data.yOffset, - ], - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'hexagonheatmap', - vertexShader: heatmapGridVert, - fragmentShader: heatmapGridFrag, - triangulation: HeatmapGridTriangulation, - depth: { enable: false }, - primitive: gl.TRIANGLES, - }), - ]; - } - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'pos', // 顶点经纬度位置 - type: AttributeType.Attribute, - descriptor: { - name: 'a_Pos', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: (feature: IEncodeFeature, featureIdx: number) => { - const coordinates = feature.coordinates as number[]; - return [coordinates[0], coordinates[1], 0]; - }, - }, - }); - } -} diff --git a/packages/layers/src/heatmap/models/index.ts b/packages/layers/src/heatmap/models/index.ts deleted file mode 100644 index 1bcd1cf6af..0000000000 --- a/packages/layers/src/heatmap/models/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import GridModel from './grid'; -import Grid3DModel from './grid3d'; -import HeatMapModel from './heatmap'; -import HexagonModel from './hexagon'; - -export type HeatMapModelType = - | 'heatmap' - | 'heatmap3d' - | 'hexagon' - | 'grid' - | 'grid3d'; - -const HeatMapModels: { [key in HeatMapModelType]: any } = { - heatmap: HeatMapModel, - heatmap3d: HeatMapModel, - grid: GridModel, - grid3d: Grid3DModel, - hexagon: HexagonModel, -}; -export default HeatMapModels; diff --git a/packages/layers/src/heatmap/shaders/grid_vert.glsl b/packages/layers/src/heatmap/shaders/grid_vert.glsl deleted file mode 100644 index 5cc66a19b6..0000000000 --- a/packages/layers/src/heatmap/shaders/grid_vert.glsl +++ /dev/null @@ -1,24 +0,0 @@ -precision highp float; -// 多边形顶点坐标 -attribute vec3 a_Position; -// 多边形经纬度坐标 -attribute vec3 a_Pos; -attribute float a_Size; -attribute vec4 a_Color; -uniform vec2 u_radius; -uniform float u_coverage: 0.9; -uniform float u_angle: 0; -uniform mat4 u_ModelMatrix; -varying vec4 v_color; - -#pragma include "projection" -#pragma include "project" -void main() { - v_color = a_Color; - - mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); - vec2 offset = a_Position.xy * u_radius * rotationMatrix * u_coverage ; - // vec2 lnglat = unProjectFlat(a_Pos.xy); - vec4 project_pos = project_position(vec4(a_Pos.xy + offset, 0, 1.0)); - gl_Position = project_common_position_to_clipspace(project_pos); -} diff --git a/packages/layers/src/heatmap/shaders/heatmap_3d_frag.glsl b/packages/layers/src/heatmap/shaders/heatmap_3d_frag.glsl deleted file mode 100644 index 48b48907ea..0000000000 --- a/packages/layers/src/heatmap/shaders/heatmap_3d_frag.glsl +++ /dev/null @@ -1,17 +0,0 @@ -uniform sampler2D u_texture; -uniform sampler2D u_colorTexture; -uniform float u_opacity; -varying vec2 v_texCoord; -varying float v_intensity; - -void main(){ - - float intensity = texture2D(u_texture, v_texCoord).r; - vec2 ramp_pos = vec2( - fract(16.0 * (1.0 - v_intensity)), - floor(16.0 * (1.0 - v_intensity)) / 16.0); - // vec4 color = texture2D(u_colorTexture,vec2(0.5,1.0-intensity)); - vec4 color = texture2D(u_colorTexture,ramp_pos); - gl_FragColor = color; - gl_FragColor.a = color.a * smoothstep(0.1,0.2,intensity)* u_opacity; -} diff --git a/packages/layers/src/heatmap/shaders/heatmap_3d_vert.glsl b/packages/layers/src/heatmap/shaders/heatmap_3d_vert.glsl deleted file mode 100644 index 972323b636..0000000000 --- a/packages/layers/src/heatmap/shaders/heatmap_3d_vert.glsl +++ /dev/null @@ -1,45 +0,0 @@ -precision highp float; -attribute vec3 a_Position; -attribute vec2 a_Uv; -uniform sampler2D u_texture; -varying vec2 v_texCoord; -uniform mat4 u_ModelMatrix; -uniform mat4 u_InverseViewProjectionMatrix; -varying float v_intensity; - -vec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) { - float t2 = t * t; - float one_minus_t = 1.0 - t; - float one_minus_t2 = one_minus_t * one_minus_t; - return (P0 * one_minus_t2 * one_minus_t + P1 * 3.0 * t * one_minus_t2 + P2 * 3.0 * t2 * one_minus_t + P3 * t2 * t); -} -vec2 toBezier(float t, vec4 p){ - return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0)); -} -#pragma include "projection" -void main() { - v_texCoord = a_Uv; - - vec2 pos = 1.8 * (a_Uv * vec2(2.0) - vec2(1.0)); - - - vec4 p1 = vec4(pos, 0.0, 1.0); - vec4 p2 = vec4(pos, 1.0, 1.0); - - vec4 inverseP1 = unproject_clipspace_to_position(p1, u_InverseViewProjectionMatrix); - vec4 inverseP2 = unproject_clipspace_to_position(p2, u_InverseViewProjectionMatrix) ; - - inverseP1 = inverseP1 / inverseP1.w; - inverseP2 = inverseP2 / inverseP2.w; - - float zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); - vec4 position = inverseP1 + zPos * (inverseP2 - inverseP1); - - vec4 b= vec4(0.5000, 0, 1, 0.5000); - float fh; - - v_intensity = texture2D(u_texture, v_texCoord).r; - fh = toBezier(v_intensity, b).y; - gl_Position = project_common_position_to_clipspace(vec4(position.xy, fh * 50., 1.0)); - -} diff --git a/packages/layers/src/heatmap/shaders/heatmap_frag.glsl b/packages/layers/src/heatmap/shaders/heatmap_frag.glsl deleted file mode 100644 index a20d904c3b..0000000000 --- a/packages/layers/src/heatmap/shaders/heatmap_frag.glsl +++ /dev/null @@ -1,17 +0,0 @@ -uniform sampler2D u_texture; -uniform sampler2D u_colorTexture; -uniform float u_opacity; -varying vec2 v_texCoord; -varying float v_intensity; - -void main(){ - float intensity = texture2D(u_texture, v_texCoord).r; - vec2 ramp_pos = vec2( - fract(16.0 * (1.0 - intensity)), - floor(16.0 * (1.0 - intensity)) / 16.0); - // vec4 color = texture2D(u_colorTexture,vec2(0.5,1.0-intensity)); - vec4 color = texture2D(u_colorTexture,ramp_pos); - gl_FragColor = color; - gl_FragColor.a = color.a * smoothstep(0.,0.05,intensity) * u_opacity; - -} diff --git a/packages/layers/src/heatmap/shaders/heatmap_framebuffer_frag.glsl b/packages/layers/src/heatmap/shaders/heatmap_framebuffer_frag.glsl deleted file mode 100644 index 1e234110e7..0000000000 --- a/packages/layers/src/heatmap/shaders/heatmap_framebuffer_frag.glsl +++ /dev/null @@ -1,12 +0,0 @@ -precision highp float; -uniform float u_intensity; -varying float v_weight; -varying vec2 v_extrude; - - -void main(){ - float GAUSS_COEF = 0.3989422804014327; - float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude); - float val = v_weight * u_intensity * GAUSS_COEF * exp(d); - gl_FragColor = vec4(val, val, val, val); -} diff --git a/packages/layers/src/heatmap/shaders/heatmap_framebuffer_vert.glsl b/packages/layers/src/heatmap/shaders/heatmap_framebuffer_vert.glsl deleted file mode 100644 index ad8a2507e6..0000000000 --- a/packages/layers/src/heatmap/shaders/heatmap_framebuffer_vert.glsl +++ /dev/null @@ -1,27 +0,0 @@ -precision highp float; -attribute vec3 a_Position; -attribute float a_Size; -attribute vec2 a_Dir; -uniform float u_intensity; -uniform float u_radius; -varying vec2 v_extrude; -varying float v_weight; -uniform mat4 u_ModelMatrix; - -#pragma include "projection" - -void main(){ - v_weight = a_Size; - float GAUSS_COEF = 0.3989422804014327; - float ZERO = 1.0 / 255.0 / 16.0; - float extrude_x = a_Dir.x * 2.0 -1.0; - float extrude_y = a_Dir.y * 2.0 -1.0; - vec2 extrude_dir = normalize(vec2(extrude_x,extrude_y)); - float S = sqrt(-2.0 * log(ZERO / a_Size / u_intensity / GAUSS_COEF)) / 3.0; - v_extrude = extrude_dir * S; - - vec2 offset = project_pixel(v_extrude * u_radius); - vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0)); - - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0)); -} diff --git a/packages/layers/src/heatmap/shaders/heatmap_vert.glsl b/packages/layers/src/heatmap/shaders/heatmap_vert.glsl deleted file mode 100644 index cfa03fe386..0000000000 --- a/packages/layers/src/heatmap/shaders/heatmap_vert.glsl +++ /dev/null @@ -1,11 +0,0 @@ -precision highp float; -attribute vec3 a_Position; -attribute vec2 a_Uv; -uniform sampler2D u_texture; -varying vec2 v_texCoord; -varying float v_intensity; -void main() { - v_texCoord = a_Uv; - v_intensity = texture2D(u_texture, v_texCoord).r; - gl_Position = vec4(a_Position.xy, 0, 1.); -} diff --git a/packages/layers/src/heatmap/shaders/hexagon_3d_frag.glsl b/packages/layers/src/heatmap/shaders/hexagon_3d_frag.glsl deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/layers/src/heatmap/shaders/hexagon_3d_vert.glsl b/packages/layers/src/heatmap/shaders/hexagon_3d_vert.glsl deleted file mode 100644 index a2f1f722f1..0000000000 --- a/packages/layers/src/heatmap/shaders/hexagon_3d_vert.glsl +++ /dev/null @@ -1,29 +0,0 @@ -precision highp float; -// 多边形顶点坐标 -attribute vec3 a_Position; -// 多边形经纬度坐标 -attribute vec3 a_Pos; - -attribute vec3 a_Normal; -attribute float a_Size; -attribute vec4 a_Color; -uniform vec2 u_radius; -uniform float u_coverage: 0.9; -uniform float u_angle: 0; -uniform mat4 u_ModelMatrix; -varying vec4 v_color; - -#pragma include "projection" -#pragma include "project" -#pragma include "light" -void main() { - - mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); - vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage)); - vec2 lnglat = unProjectFlat(a_Pos.xy + offset); - vec4 project_pos = project_position(vec4(lnglat, a_Position.z * project_pixel(a_Size), 1.0)); - float lightWeight = calc_lighting(project_pos); - v_color =vec4(a_Color.rgb*lightWeight, a_Color.w); - - gl_Position = project_common_position_to_clipspace(project_pos); -} diff --git a/packages/layers/src/heatmap/shaders/hexagon_frag.glsl b/packages/layers/src/heatmap/shaders/hexagon_frag.glsl deleted file mode 100644 index 2a1dfa7f88..0000000000 --- a/packages/layers/src/heatmap/shaders/hexagon_frag.glsl +++ /dev/null @@ -1,7 +0,0 @@ -precision highp float; -varying vec4 v_color; -uniform float u_opacity: 1; -void main() { - gl_FragColor = v_color; - gl_FragColor.a *= u_opacity; -} diff --git a/packages/layers/src/heatmap/shaders/hexagon_vert.glsl b/packages/layers/src/heatmap/shaders/hexagon_vert.glsl deleted file mode 100644 index ec08c1b99a..0000000000 --- a/packages/layers/src/heatmap/shaders/hexagon_vert.glsl +++ /dev/null @@ -1,24 +0,0 @@ -precision highp float; -// 多边形顶点坐标 -attribute vec3 a_Position; -// 多边形经纬度坐标 -attribute vec3 a_Pos; -attribute float a_Size; -attribute vec4 a_Color; -uniform vec2 u_radius; -uniform float u_coverage: 0.9; -uniform float u_angle: 0; -uniform mat4 u_ModelMatrix; -varying vec4 v_color; - -#pragma include "projection" -#pragma include "project" -void main() { - v_color = a_Color; - - mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); - vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage)); - vec2 lnglat = unProjectFlat(a_Pos.xy + offset); - vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0., 1.0)); -} diff --git a/packages/layers/src/heatmap/triangulation.ts b/packages/layers/src/heatmap/triangulation.ts deleted file mode 100644 index 46c94bc268..0000000000 --- a/packages/layers/src/heatmap/triangulation.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { IEncodeFeature, IParseDataItem } from '@l7/core'; -// @ts-ignore - -export function heatMap3DTriangulation(width: number, height: number) { - const indices = []; - const vertices = []; - const uvs = []; - const gridX1 = width + 1; - const gridY1 = height + 1; - const widthHalf = width / 2; - const heightHalf = height / 2; - for (let iy = 0; iy < gridY1; iy++) { - const y = iy - heightHalf; - for (let ix = 0; ix < gridX1; ix++) { - const x = ix - widthHalf; - vertices.push(x / widthHalf, -y / heightHalf, 0); - uvs.push(ix / width); - uvs.push(1 - iy / height); - } - } - for (let iy = 0; iy < height; iy++) { - for (let ix = 0; ix < width; ix++) { - const a = ix + gridX1 * iy; - const b = ix + gridX1 * (iy + 1); - const c = ix + 1 + gridX1 * (iy + 1); - const d = ix + 1 + gridX1 * iy; - indices.push(a, b, d); - indices.push(b, c, d); - } - } - return { - vertices, - indices, - uvs, - }; -} diff --git a/packages/layers/src/index.ts b/packages/layers/src/index.ts deleted file mode 100644 index ad87701059..0000000000 --- a/packages/layers/src/index.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { container, ILayerPlugin, TYPES } from '@l7/core'; -import BaseLayer from './core/BaseLayer'; -import HeatmapLayer from './heatmap'; -import DashLineLayer from './line/dash'; -import LineLayer from './line/index'; -import PointLayer from './point'; -import PolygonLayer from './polygon'; -import ImageLayer from './raster/image'; -import RasterLayer from './raster/raster'; - -import ConfigSchemaValidationPlugin from './plugins/ConfigSchemaValidationPlugin'; -import DataMappingPlugin from './plugins/DataMappingPlugin'; -import DataSourcePlugin from './plugins/DataSourcePlugin'; -import FeatureScalePlugin from './plugins/FeatureScalePlugin'; -import LightingPlugin from './plugins/LightingPlugin'; -import MultiPassRendererPlugin from './plugins/MultiPassRendererPlugin'; -import PixelPickingPlugin from './plugins/PixelPickingPlugin'; -import RegisterStyleAttributePlugin from './plugins/RegisterStyleAttributePlugin'; -import ShaderUniformPlugin from './plugins/ShaderUniformPlugin'; -import UpdateStyleAttributePlugin from './plugins/UpdateStyleAttributePlugin'; - -/** - * 校验传入参数配置项的正确性 - * @see /dev-docs/ConfigSchemaValidation.md - */ -container - .bind(TYPES.ILayerPlugin) - .to(ConfigSchemaValidationPlugin); -/** - * 获取 Source - */ -container.bind(TYPES.ILayerPlugin).to(DataSourcePlugin); -/** - * 根据 StyleAttribute 创建 VertexAttribute - */ -container - .bind(TYPES.ILayerPlugin) - .to(RegisterStyleAttributePlugin); -/** - * 根据 Source 创建 Scale - */ -container.bind(TYPES.ILayerPlugin).to(FeatureScalePlugin); -/** - * 使用 Scale 进行数据映射 - */ -container.bind(TYPES.ILayerPlugin).to(DataMappingPlugin); -/** - * 负责属性更新 - */ -container.bind(TYPES.ILayerPlugin).to(UpdateStyleAttributePlugin); -/** - * Multi Pass 自定义渲染管线 - */ -container.bind(TYPES.ILayerPlugin).to(MultiPassRendererPlugin); -/** - * 传入相机坐标系参数 - */ -container.bind(TYPES.ILayerPlugin).to(ShaderUniformPlugin); -/** - * 传入光照相关参数 - */ -container.bind(TYPES.ILayerPlugin).to(LightingPlugin); -/** - * 负责拾取过程中 Encode 以及 Highlight 阶段及结束后恢复 - */ -container.bind(TYPES.ILayerPlugin).to(PixelPickingPlugin); - -export { - BaseLayer, - PointLayer, - PolygonLayer, - LineLayer, - DashLineLayer, - ImageLayer, - RasterLayer, - HeatmapLayer, -}; diff --git a/packages/layers/src/line/dash.ts b/packages/layers/src/line/dash.ts deleted file mode 100644 index 56c9a47e12..0000000000 --- a/packages/layers/src/line/dash.ts +++ /dev/null @@ -1,206 +0,0 @@ -import { AttributeType, gl, IEncodeFeature, ILayer } from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import { LineTriangulation } from '../core/triangulation'; -import line_dash_frag from './shaders/line_dash_frag.glsl'; -import line_dash_vert from './shaders/line_dash_vert.glsl'; -interface IDashLineLayerStyleOptions { - opacity: number; - dashArray: [number, number]; -} -export default class DashLineLayer extends BaseLayer< - IDashLineLayerStyleOptions -> { - public name: string = 'LineLayer'; - - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - const { opacity, dashArray = [10, 5] } = this.getStyleOptions(); - this.models.forEach((model) => - model.draw({ - uniforms: { - u_opacity: opacity || 1.0, - u_dash_array: dashArray, - }, - }), - ); - return this; - } - - protected buildModels() { - this.registerBuiltinAttributes(this); - this.models = [ - this.buildLayerModel({ - moduleName: 'line_dash', - vertexShader: line_dash_vert, - fragmentShader: line_dash_frag, - triangulation: LineTriangulation, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - }), - ]; - } - - private registerBuiltinAttributes(layer: ILayer) { - // point layer size; - layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - // point layer size; - layer.styleAttributeService.registerStyleAttribute({ - name: 'normal', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Normal', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - normal: number[], - ) => { - return normal; - }, - }, - }); - - layer.styleAttributeService.registerStyleAttribute({ - name: 'miter', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Miter', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[4]]; - }, - }, - }); - - layer.styleAttributeService.registerStyleAttribute({ - name: 'startPos', - type: AttributeType.Attribute, - descriptor: { - name: 'a_StartPos', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const coordinates = feature.coordinates as number[][]; - const coord = coordinates[0]; - return coord.length === 3 ? coord : [...coord, 0.0]; - }, - }, - }); - - layer.styleAttributeService.registerStyleAttribute({ - name: 'distance', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Distance', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3]]; - }, - }, - }); - - layer.styleAttributeService.registerStyleAttribute({ - name: 'total_distance', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Total_Distance', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[5]]; - }, - }, - }); - } -} diff --git a/packages/layers/src/line/index.ts b/packages/layers/src/line/index.ts deleted file mode 100644 index f7cee5bc06..0000000000 --- a/packages/layers/src/line/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { AttributeType, gl, IEncodeFeature, ILayer } from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import LineModels, { LineModelType } from './models'; -interface IPointLayerStyleOptions { - opacity: number; -} -export default class LineLayer extends BaseLayer { - public name: string = 'LineLayer'; - - private animateStartTime: number = 0; - - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - this.models.forEach((model) => - model.draw({ - uniforms: this.layerModel.getUninforms(), - }), - ); - return this; - } - - protected buildModels() { - const shape = this.getModelType(); - this.layerModel = new LineModels[shape](this); - this.models = this.layerModel.buildModels(); - } - private getModelType(): LineModelType { - const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute( - 'shape', - ); - const shape = shapeAttribute?.scale?.field as LineModelType; - return shape || 'line'; - } - // 拆分的动画插件 - private initAnimate() { - const { enable } = this.animateOptions; - if (enable) { - this.layerService.startAnimate(); - this.animateStartTime = this.layerService.clock.getElapsedTime(); - } - } -} diff --git a/packages/layers/src/line/models/arc.ts b/packages/layers/src/line/models/arc.ts deleted file mode 100644 index ef8a5816f7..0000000000 --- a/packages/layers/src/line/models/arc.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; - -import BaseModel from '../../core/baseModel'; -import { LineArcTriangulation } from '../../core/triangulation'; -import line_arc_frag from '../shaders/line_arc_frag.glsl'; -import line_arc2d_vert from '../shaders/line_bezier_vert.glsl'; - -interface IArcLayerStyleOptions { - opacity: number; - segmentNumber: number; - blur: number; -} -export default class ArcModel extends BaseModel { - public getUninforms(): IModelUniform { - const { - opacity, - blur = 0.99, - } = this.layer.getStyleOptions() as IArcLayerStyleOptions; - return { - u_opacity: opacity || 1, - segmentNumber: 30, - u_blur: blur, - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'arc2dline', - vertexShader: line_arc2d_vert, - fragmentShader: line_arc_frag, - triangulation: LineArcTriangulation, - depth: { enable: false }, - blend: { - enable: true, - func: { - srcRGB: gl.ONE, - srcAlpha: 1, - dstRGB: gl.ONE, - dstAlpha: 1, - }, - }, - }), - ]; - } - - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'instance', // 弧线起始点信息 - type: AttributeType.Attribute, - descriptor: { - name: 'a_Instance', - buffer: { - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 4, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3], vertex[4], vertex[5], vertex[6]]; - }, - }, - }); - } -} diff --git a/packages/layers/src/line/models/arc_3d.ts b/packages/layers/src/line/models/arc_3d.ts deleted file mode 100644 index 5c3ff2bd72..0000000000 --- a/packages/layers/src/line/models/arc_3d.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { LineArcTriangulation } from '../../core/triangulation'; -import line_arc_frag from '../shaders/line_arc_frag.glsl'; -import line_arc_vert from '../shaders/line_arc_vert.glsl'; - -interface IArcLayerStyleOptions { - opacity: number; - segmentNumber: number; -} -export default class Arc3DModel extends BaseModel { - public getUninforms(): IModelUniform { - const { opacity } = this.layer.getStyleOptions() as IArcLayerStyleOptions; - return { - u_opacity: opacity || 1, - segmentNumber: 30, - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'arcline', - vertexShader: line_arc_vert, - fragmentShader: line_arc_frag, - triangulation: LineArcTriangulation, - blend: { - enable: true, - func: { - srcRGB: gl.ONE, - srcAlpha: 1, - dstRGB: gl.ONE, - dstAlpha: 1, - }, - }, - }), - ]; - } - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'instance', // 弧线起始点信息 - type: AttributeType.Attribute, - descriptor: { - name: 'a_Instance', - buffer: { - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 4, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3], vertex[4], vertex[5], vertex[6]]; - }, - }, - }); - } -} diff --git a/packages/layers/src/line/models/dash.ts b/packages/layers/src/line/models/dash.ts deleted file mode 100644 index 7aa44a4dbc..0000000000 --- a/packages/layers/src/line/models/dash.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, -} from '@l7/core'; - -import BaseModel from '../../core/baseModel'; -export default class ArcModel extends BaseModel { - public getUninforms() { - throw new Error('Method not implemented.'); - } - - public buildModels(): IModel[] { - throw new Error('Method not implemented.'); - } - private registerBuiltinAttributes() { - throw new Error('Method not implemented.'); - } -} diff --git a/packages/layers/src/line/models/great_circle.ts b/packages/layers/src/line/models/great_circle.ts deleted file mode 100644 index 5a990694e5..0000000000 --- a/packages/layers/src/line/models/great_circle.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; - -import BaseModel from '../../core/baseModel'; -import { LineArcTriangulation } from '../../core/triangulation'; -import line_arc2d_vert from '../shaders/line_arc2d_vert.glsl'; -import line_arc_frag from '../shaders/line_arc_frag.glsl'; - -interface IArcLayerStyleOptions { - opacity: number; - segmentNumber: number; - blur: number; -} -export default class GreatCircleModel extends BaseModel { - public getUninforms(): IModelUniform { - const { - opacity, - blur = 0.99, - } = this.layer.getStyleOptions() as IArcLayerStyleOptions; - return { - u_opacity: opacity || 1, - segmentNumber: 30, - u_blur: blur, - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'arc2dline', - vertexShader: line_arc2d_vert, - fragmentShader: line_arc_frag, - triangulation: LineArcTriangulation, - depth: { enable: false }, - blend: { - enable: true, - func: { - srcRGB: gl.ONE, - srcAlpha: 1, - dstRGB: gl.ONE, - dstAlpha: 1, - }, - }, - }), - ]; - } - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'instance', // 弧线起始点信息 - type: AttributeType.Attribute, - descriptor: { - name: 'a_Instance', - buffer: { - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 4, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3], vertex[4], vertex[5], vertex[6]]; - }, - }, - }); - } -} diff --git a/packages/layers/src/line/models/index.ts b/packages/layers/src/line/models/index.ts deleted file mode 100644 index 54a3a124e8..0000000000 --- a/packages/layers/src/line/models/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import ArcModel from './arc'; -import Arc3DModel from './arc_3d'; -import GreatCircleModel from './great_circle'; -import LineModel from './line'; - -export type LineModelType = 'arc' | 'arc3d' | 'greatcircle' | 'line'; - -const LineModels: { [key in LineModelType]: any } = { - arc: ArcModel, - arc3d: Arc3DModel, - greatcircle: GreatCircleModel, - line: LineModel, -}; - -export default LineModels; diff --git a/packages/layers/src/line/models/line.ts b/packages/layers/src/line/models/line.ts deleted file mode 100644 index 24cee5dff2..0000000000 --- a/packages/layers/src/line/models/line.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; - -import BaseModel from '../../core/baseModel'; -import { LineTriangulation } from '../../core/triangulation'; -import line_frag from '../shaders/line_frag.glsl'; -import line_vert from '../shaders/line_vert.glsl'; - -interface ILineLayerStyleOptions { - opacity: number; -} -export default class LineModel extends BaseModel { - public getUninforms(): IModelUniform { - const { opacity } = this.layer.getStyleOptions() as ILineLayerStyleOptions; - return { - u_opacity: opacity || 1.0, - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'line', - vertexShader: line_vert, - fragmentShader: line_frag, - triangulation: LineTriangulation, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - }), - ]; - } - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 2, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size = 1 } = feature; - return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'normal', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Normal', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - normal: number[], - ) => { - return normal; - }, - }, - }); - - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'miter', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Miter', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[4]]; - }, - }, - }); - } -} diff --git a/packages/layers/src/line/shaders/arc_chunks.vert.glsl b/packages/layers/src/line/shaders/arc_chunks.vert.glsl deleted file mode 100644 index f0d2689c4c..0000000000 --- a/packages/layers/src/line/shaders/arc_chunks.vert.glsl +++ /dev/null @@ -1,21 +0,0 @@ -vec2 interpolate (vec2 source, vec2 target, float t) { - // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation - vec2 mid = midPoint(source, target); - vec3 x = vec3(source.x, mid.x, target.x); - vec3 y = vec3(source.y, mid.y, target.y) - return vec2(bezier3(x ,t), bezier3(y,t)); -} -float bezier3(vec3 arr, float t) { - float ut = 1 - t - return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t -} -vec2 midPoint(vec2 source, vec2 target) { - vec2 center = target - source; - float r = length(center); - float theta = atan(center.y, center.x); - float thetaOffset = 0.314; - float r2 = r / 2.0 / cos(thetaOffset); - float theta2 = theta + thetaOffset; - vec2 mid = vec2(r2*cos(theta2) + source.x, r2*sin(theta2) + source.y); - return mid; -} diff --git a/packages/layers/src/line/shaders/line_arc2d_vert.glsl b/packages/layers/src/line/shaders/line_arc2d_vert.glsl deleted file mode 100644 index 6bb16a07f9..0000000000 --- a/packages/layers/src/line/shaders/line_arc2d_vert.glsl +++ /dev/null @@ -1,95 +0,0 @@ -precision mediump float; -attribute vec4 a_Color; -attribute vec3 a_Position; -attribute vec4 a_Instance; -attribute float a_Size; -uniform mat4 u_ModelMatrix; -uniform float segmentNumber; -varying vec4 v_color; -varying vec2 v_normal; - -#pragma include "projection" - -float maps (float value, float start1, float stop1, float start2, float stop2) { - return start2 + (stop2 - start2) * ((value - start1) / (stop1 - start1)); -} - -float getSegmentRatio(float index) { - return smoothstep(0.0, 1.0, index / (segmentNumber - 1.)); -} - -float paraboloid(vec2 source, vec2 target, float ratio) { - vec2 x = mix(source, target, ratio); - vec2 center = mix(source, target, 0.5); - float dSourceCenter = distance(source, center); - float dXCenter = distance(x, center); - return (dSourceCenter + dXCenter) * (dSourceCenter - dXCenter); -} - -vec3 getPos(vec2 source, vec2 target, float segmentRatio) { - float vertex_height = paraboloid(source, target, segmentRatio); - - return vec3( - mix(source, target, segmentRatio), - sqrt(max(0.0, vertex_height)) - ); -} -vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { - // normalized direction of the line - vec2 dir_screenspace = normalize(line_clipspace); - // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); - vec2 offset = dir_screenspace * offset_direction * a_Size / 2.0; - return offset * vec2(1.0, -1.0); -} -vec2 getNormal(vec2 line_clipspace, float offset_direction) { - // normalized direction of the line - vec2 dir_screenspace = normalize(line_clipspace); - // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); - return reverse_offset_normal(vec3(dir_screenspace,1.0)).xy * sign(offset_direction); -} -float getAngularDist (vec2 source, vec2 target) { - vec2 delta = source - target; - vec2 sin_half_delta = sin(delta / 2.0); - float a = - sin_half_delta.y * sin_half_delta.y + - cos(source.y) * cos(target.y) * - sin_half_delta.x * sin_half_delta.x; - return 2.0 * atan(sqrt(a), sqrt(1.0 - a)); -} -vec2 interpolate (vec2 source, vec2 target, float angularDist, float t) { - // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation - if(abs(angularDist - PI) < 0.001) { - return (1.0 - t) * source + t * target; - } - float a = sin((1.0 - t) * angularDist) / sin(angularDist); - float b = sin(t * angularDist) / sin(angularDist); - vec2 sin_source = sin(source); - vec2 cos_source = cos(source); - vec2 sin_target = sin(target); - vec2 cos_target = cos(target); - float x = a * cos_source.y * cos_source.x + b * cos_target.y * cos_target.x; - float y = a * cos_source.y * sin_source.x + b * cos_target.y * sin_target.x; - float z = a * sin_source.y + b * sin_target.y; - return vec2(atan(y, x), atan(z, sqrt(x * x + y * y))); -} - - -void main() { - v_color = a_Color; - vec2 source = radians(a_Instance.rg); - vec2 target = radians(a_Instance.ba); - float angularDist = getAngularDist(source, target); - float segmentIndex = a_Position.x; - float segmentRatio = getSegmentRatio(segmentIndex); - float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); - float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); - vec4 curr = project_position(vec4(degrees(interpolate(source, target, angularDist, segmentRatio)), 0.0, 1.0)); - vec4 next = project_position(vec4(degrees(interpolate(source, target, angularDist, nextSegmentRatio)), 0.0, 1.0)); - v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); - vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y)); - // vec4 project_pos = project_position(vec4(curr.xy, 0, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, 0, 1.0)); -} - diff --git a/packages/layers/src/line/shaders/line_arc_frag.glsl b/packages/layers/src/line/shaders/line_arc_frag.glsl deleted file mode 100644 index e60a9710cd..0000000000 --- a/packages/layers/src/line/shaders/line_arc_frag.glsl +++ /dev/null @@ -1,13 +0,0 @@ - precision mediump float; - uniform float u_opacity; - varying vec4 v_color; - uniform float u_blur : 0.90; - varying vec2 v_normal; - - void main() { - - gl_FragColor = v_color; - float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy)); - gl_FragColor.a *= (blur * u_opacity); - - } diff --git a/packages/layers/src/line/shaders/line_arc_vert.glsl b/packages/layers/src/line/shaders/line_arc_vert.glsl deleted file mode 100644 index 5a548d510d..0000000000 --- a/packages/layers/src/line/shaders/line_arc_vert.glsl +++ /dev/null @@ -1,72 +0,0 @@ -precision mediump float; -attribute vec3 a_Position; -attribute vec4 a_Instance; -attribute vec4 a_Color; -attribute float a_Size; - - -uniform mat4 u_ModelMatrix; -uniform float segmentNumber; -varying vec4 v_color; -varying vec2 v_normal; -#pragma include "projection" - -float maps (float value, float start1, float stop1, float start2, float stop2) { - return start2 + (stop2 - start2) * ((value - start1) / (stop1 - start1)); -} - -float getSegmentRatio(float index) { - return smoothstep(0.0, 1.0, index / (segmentNumber - 1.0)); -} - -float paraboloid(vec2 source, vec2 target, float ratio) { - vec2 x = mix(source, target, ratio); - vec2 center = mix(source, target, 0.5); - float dSourceCenter = distance(source, center); - float dXCenter = distance(x, center); - return (dSourceCenter + dXCenter) * (dSourceCenter - dXCenter); -} - -vec3 getPos(vec2 source, vec2 target, float segmentRatio) { - float vertex_height = paraboloid(source, target, segmentRatio); - - return vec3( - mix(source, target, segmentRatio), - sqrt(max(0.0, vertex_height)) - ); -} -vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { - // normalized direction of the line - vec2 dir_screenspace = normalize(line_clipspace); - // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); - - vec2 offset = dir_screenspace * offset_direction * a_Size / 2.0; - - return offset; -} -vec2 getNormal(vec2 line_clipspace, float offset_direction) { - // normalized direction of the line - vec2 dir_screenspace = normalize(line_clipspace); - // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); - return reverse_offset_normal(vec3(dir_screenspace,1.0)).xy * sign(offset_direction); -} - -void main() { - v_color = a_Color; - vec2 source = project_position(vec4(a_Instance.rg, 0, 0)).xy; - vec2 target = project_position(vec4(a_Instance.ba, 0, 0)).xy; - float segmentIndex = a_Position.x; - float segmentRatio = getSegmentRatio(segmentIndex); - float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); - - float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); - vec3 curr = getPos(source, target, segmentRatio); - vec3 next = getPos(source, target, nextSegmentRatio); - vec2 offset = getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y); - v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); - - gl_Position = project_common_position_to_clipspace(vec4(curr.xy + project_pixel(offset), curr.z, 1.0)); - -} diff --git a/packages/layers/src/line/shaders/line_bezier_vert.glsl b/packages/layers/src/line/shaders/line_bezier_vert.glsl deleted file mode 100644 index c20ad08621..0000000000 --- a/packages/layers/src/line/shaders/line_bezier_vert.glsl +++ /dev/null @@ -1,67 +0,0 @@ -precision mediump float; -attribute vec4 a_Color; -attribute vec3 a_Position; -attribute vec4 a_Instance; -attribute float a_Size; -uniform mat4 u_ModelMatrix; -uniform float segmentNumber; -varying vec4 v_color; -varying vec2 v_normal; -#pragma include "projection" - -float bezier3(vec3 arr, float t) { - float ut = 1. - t; - return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t; -} -vec2 midPoint(vec2 source, vec2 target) { - vec2 center = target - source; - float r = length(center); - float theta = atan(center.y, center.x); - float thetaOffset = 0.314; - float r2 = r / 2.0 / cos(thetaOffset); - float theta2 = theta + thetaOffset; - vec2 mid = vec2(r2*cos(theta2) + source.x, r2*sin(theta2) + source.y); - return mid; -} -float getSegmentRatio(float index) { - return smoothstep(0.0, 1.0, index / (segmentNumber - 1.)); -} -vec2 interpolate (vec2 source, vec2 target, float t) { - // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation - vec2 mid = midPoint(source, target); - vec3 x = vec3(source.x, mid.x, target.x); - vec3 y = vec3(source.y, mid.y, target.y); - return vec2(bezier3(x ,t), bezier3(y,t)); -} -vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { - // normalized direction of the line - vec2 dir_screenspace = normalize(line_clipspace); - // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); - vec2 offset = dir_screenspace * offset_direction * a_Size / 2.0; - return offset * vec2(1.0, -1.0); -} -vec2 getNormal(vec2 line_clipspace, float offset_direction) { - // normalized direction of the line - vec2 dir_screenspace = normalize(line_clipspace); - // rotate by 90 degrees - dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); - return reverse_offset_normal(vec3(dir_screenspace,1.0)).xy * sign(offset_direction); -} - -void main() { - v_color = a_Color; - vec2 source = a_Instance.rg; - vec2 target = a_Instance.ba; - float segmentIndex = a_Position.x; - float segmentRatio = getSegmentRatio(segmentIndex); - float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); - float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); - - vec4 curr = project_position(vec4(interpolate(source, target, segmentRatio), 0.0, 1.0)); - vec4 next = project_position(vec4(interpolate(source, target, nextSegmentRatio), 0.0, 1.0)); - v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); - vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y)); - - gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, 0, 1.0)); -} diff --git a/packages/layers/src/line/shaders/line_dash_frag.glsl b/packages/layers/src/line/shaders/line_dash_frag.glsl deleted file mode 100644 index 698c72179f..0000000000 --- a/packages/layers/src/line/shaders/line_dash_frag.glsl +++ /dev/null @@ -1,22 +0,0 @@ -uniform float u_blur : 0.9; -uniform float u_opacity : 1.0; -uniform float u_dash_offset : 0.0; -uniform float u_dash_ratio : 0.1; -varying vec4 v_color; -varying vec2 v_normal; - -uniform float u_time; -uniform vec3 u_aimate: [ 0, 2., 1.0, 0.2 ]; - -varying float v_distance_ratio; -varying vec2 v_dash_array; -void main() { - gl_FragColor = v_color; - // gl_FragColor.a = v_distance_ratio; - // anti-alias - float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy)) * u_opacity; - // gl_FragColor.a *= blur * ceil(mod(v_distance_ratio, v_dash_array.x) - v_dash_array.y); - gl_FragColor.a *= blur * (1.0- step(v_dash_array.x, mod(v_distance_ratio, v_dash_array.x +v_dash_array.y))); - - -} diff --git a/packages/layers/src/line/shaders/line_dash_vert.glsl b/packages/layers/src/line/shaders/line_dash_vert.glsl deleted file mode 100644 index 43f0332b00..0000000000 --- a/packages/layers/src/line/shaders/line_dash_vert.glsl +++ /dev/null @@ -1,34 +0,0 @@ - -attribute float a_Miter; -attribute vec4 a_Color; -attribute float a_Size; -attribute vec3 a_Normal; -attribute float a_Total_Distance; -attribute vec3 a_Position; -attribute float a_Distance; -uniform mat4 u_ModelMatrix; -uniform vec2 u_dash_array: [10.0, 5.]; -uniform float u_dash_offset: 0; - -varying vec4 v_color; -varying vec2 v_dash_array; -varying vec2 v_normal; - -varying float v_distance_ratio; - - - -#pragma include "projection" -void main() { - - v_distance_ratio = a_Distance / a_Total_Distance; - - v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / a_Total_Distance; - - v_normal = vec2(reverse_offset_normal(a_Normal) * sign(a_Miter)); - v_color = a_Color; - vec3 size = a_Miter * a_Size * reverse_offset_normal(a_Normal); //v_normal * vec3(1., -1., 1.0); - vec2 offset = project_pixel(size.xy); - vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0, 1.0)); -} diff --git a/packages/layers/src/line/shaders/line_frag.glsl b/packages/layers/src/line/shaders/line_frag.glsl deleted file mode 100644 index 817c97e4cf..0000000000 --- a/packages/layers/src/line/shaders/line_frag.glsl +++ /dev/null @@ -1,27 +0,0 @@ -uniform float u_blur : 0.9; -uniform float u_opacity : 1.0; -uniform float u_dash_offset : 0.0; -uniform float u_dash_ratio : 0.0; -varying vec4 v_color; -varying vec2 v_normal; - -uniform float u_time; -uniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ]; -// [animate, duration, interval, trailLength], -varying float v_distance_ratio; -varying float v_dash_array; -void main() { - gl_FragColor = v_color; - // anti-alias - float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy)) * u_opacity; - // gl_FragColor.a *= blur; - - #ifdef ANIMATE - - float alpha =1.0 - fract( mod(1.0- v_distance_ratio,u_aimate.z)* (1.0/ u_aimate.z) + u_time / u_aimate.y); - alpha = (alpha + u_aimate.w -1.0) / u_aimate.w; - alpha = smoothstep(0., 1., alpha); - gl_FragColor.a *= alpha * blur; - #endif - -} diff --git a/packages/layers/src/line/shaders/line_vert.glsl b/packages/layers/src/line/shaders/line_vert.glsl deleted file mode 100644 index 7b4c674f4c..0000000000 --- a/packages/layers/src/line/shaders/line_vert.glsl +++ /dev/null @@ -1,21 +0,0 @@ - -attribute float a_Miter; -attribute vec4 a_Color; -attribute vec2 a_Size; -attribute vec3 a_Normal; -attribute vec3 a_Position; -uniform mat4 u_ModelMatrix; - -#pragma include "projection" -varying vec4 v_color; -varying float v_dash_array; -varying vec2 v_normal; - -void main() { - v_normal = vec2(reverse_offset_normal(a_Normal) * sign(a_Miter)); - v_color = a_Color; - vec3 size = a_Miter * a_Size.x * reverse_offset_normal(a_Normal); //v_normal * vec3(1., -1., 1.0); - vec2 offset = project_pixel(size.xy); - vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, a_Size.y, 1.0)); -} diff --git a/packages/layers/src/plugins/ConfigSchemaValidationPlugin.ts b/packages/layers/src/plugins/ConfigSchemaValidationPlugin.ts deleted file mode 100644 index 8674daef49..0000000000 --- a/packages/layers/src/plugins/ConfigSchemaValidationPlugin.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - IGlobalConfigService, - ILayer, - ILayerPlugin, - ILogService, - TYPES, -} from '@l7/core'; -import { inject, injectable } from 'inversify'; - -/** - * Layer 初始化阶段以及重绘阶段首先校验传入参数,如果校验失败则中断后续插件处理。 - */ -@injectable() -export default class ConfigSchemaValidationPlugin implements ILayerPlugin { - @inject(TYPES.IGlobalConfigService) - private readonly configService: IGlobalConfigService; - - @inject(TYPES.ILogService) - private readonly logger: ILogService; - - public apply(layer: ILayer) { - layer.hooks.init.tap('ConfigSchemaValidationPlugin', () => { - this.configService.registerLayerConfigSchemaValidator( - layer.name, - layer.getConfigSchemaForValidation(), - ); - - const { valid, errorText } = this.configService.validateLayerConfig( - layer.name, - layer.getStyleOptions(), - ); - - if (!valid) { - this.logger.error(errorText || ''); - // 中断 init 过程 - return false; - } - }); - layer.hooks.beforeRender.tap('ConfigSchemaValidationPlugin', () => { - // TODO: 配置项发生变化,需要重新校验 - }); - } -} diff --git a/packages/layers/src/plugins/DataMappingPlugin.ts b/packages/layers/src/plugins/DataMappingPlugin.ts deleted file mode 100644 index 35370a9ff6..0000000000 --- a/packages/layers/src/plugins/DataMappingPlugin.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { - IEncodeFeature, - IGlobalConfigService, - ILayer, - ILayerPlugin, - ILogService, - IParseDataItem, - IStyleAttribute, - lazyInject, - TYPES, -} from '@l7/core'; -import { inject, injectable } from 'inversify'; -import { rgb2arr } from '../utils/color'; - -@injectable() -export default class DataMappingPlugin implements ILayerPlugin { - @inject(TYPES.IGlobalConfigService) - private readonly configService: IGlobalConfigService; - - @inject(TYPES.ILogService) - private readonly logger: ILogService; - - public apply(layer: ILayer) { - layer.hooks.init.tap('DataMappingPlugin', () => { - const attributes = - layer.styleAttributeService.getLayerStyleAttributes() || []; - const { dataArray } = layer.getSource().data; - - // TODO: FIXME - if (!dataArray) { - return; - } - - // mapping with source data - layer.setEncodedData(this.mapping(attributes, dataArray)); - }); - - // remapping before render - layer.hooks.beforeRender.tap('DataMappingPlugin', () => { - const attributes = - layer.styleAttributeService.getLayerStyleAttributes() || []; - const { dataArray } = layer.getSource().data; - const attributesToRemapping = attributes.filter( - (attribute) => attribute.needRemapping, - ); - if (attributesToRemapping.length) { - layer.setEncodedData(this.mapping(attributesToRemapping, dataArray)); - this.logger.info('remapping finished'); - } - }); - } - - private mapping( - attributes: IStyleAttribute[], - data: IParseDataItem[], - ): IEncodeFeature[] { - return data.map((record: IParseDataItem) => { - const encodeRecord: IEncodeFeature = { - id: record._id, - coordinates: record.coordinates, - }; - // TODO 数据过滤 - attributes.forEach((attribute: IStyleAttribute) => { - let values = this.applyAttributeMapping(attribute, record); - attribute.needRemapping = false; - - // TODO: 支持每个属性配置 postprocess - if (attribute.name === 'color') { - values = values.map((c: unknown) => { - return rgb2arr(c as string); - }); - } - // @ts-ignore - encodeRecord[attribute.name] = - Array.isArray(values) && values.length === 1 ? values[0] : values; - }); - return encodeRecord; - }) as IEncodeFeature[]; - } - - private applyAttributeMapping( - attribute: IStyleAttribute, - record: { [key: string]: unknown }, - ) { - if (!attribute.scale) { - return []; - } - const scalers = attribute?.scale?.scalers || []; - const params: unknown[] = []; - - scalers.forEach(({ field }) => { - if ( - record.hasOwnProperty(field) || - attribute.scale?.type === 'variable' - ) { - params.push(record[field]); - } - }); - return attribute.mapping ? attribute.mapping(params) : []; - } -} diff --git a/packages/layers/src/plugins/DataSourcePlugin.ts b/packages/layers/src/plugins/DataSourcePlugin.ts deleted file mode 100644 index df7cfb0c9a..0000000000 --- a/packages/layers/src/plugins/DataSourcePlugin.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ILayer, ILayerPlugin } from '@l7/core'; -import Source from '@l7/source'; -import { injectable } from 'inversify'; - -@injectable() -export default class DataSourcePlugin implements ILayerPlugin { - public apply(layer: ILayer) { - layer.hooks.init.tap('DataSourcePlugin', () => { - const { data, options } = layer.sourceOption; - layer.setSource(new Source(data, options)); - }); - } -} diff --git a/packages/layers/src/plugins/FeatureScalePlugin.ts b/packages/layers/src/plugins/FeatureScalePlugin.ts deleted file mode 100644 index f3acd03b60..0000000000 --- a/packages/layers/src/plugins/FeatureScalePlugin.ts +++ /dev/null @@ -1,249 +0,0 @@ -import { - IGlobalConfigService, - ILayer, - ILayerPlugin, - ILogService, - IScale, - IScaleOptions, - IStyleAttribute, - IStyleScale, - lazyInject, - ScaleTypes, - StyleScaleType, - TYPES, -} from '@l7/core'; -import { IParseDataItem } from '@l7/source'; -import { extent, ticks } from 'd3-array'; -import * as d3 from 'd3-scale'; -import { inject, injectable } from 'inversify'; -import { isNil, isString, uniq } from 'lodash'; - -const dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))(\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/; - -const scaleMap = { - [ScaleTypes.LINEAR]: d3.scaleLinear, - [ScaleTypes.POWER]: d3.scalePow, - [ScaleTypes.LOG]: d3.scaleLog, - [ScaleTypes.IDENTITY]: d3.scaleIdentity, - [ScaleTypes.TIME]: d3.scaleTime, - [ScaleTypes.QUANTILE]: d3.scaleQuantile, - [ScaleTypes.QUANTIZE]: d3.scaleQuantize, - [ScaleTypes.THRESHOLD]: d3.scaleThreshold, - [ScaleTypes.CAT]: d3.scaleOrdinal, -}; - -/** - * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用 - */ -@injectable() -export default class FeatureScalePlugin implements ILayerPlugin { - @inject(TYPES.IGlobalConfigService) - private readonly configService: IGlobalConfigService; - - @inject(TYPES.ILogService) - private readonly logger: ILogService; - - // key = field_attribute name - private scaleCache: { - [field: string]: IStyleScale; - } = {}; - - private scaleOptions: IScaleOptions = {}; - - public apply(layer: ILayer) { - layer.hooks.init.tap('FeatureScalePlugin', () => { - this.scaleOptions = layer.getScaleOptions(); - const attributes = layer.styleAttributeService.getLayerStyleAttributes(); - const { dataArray } = layer.getSource().data; - this.caculateScalesForAttributes(attributes || [], dataArray); - }); - - layer.hooks.beforeRender.tap('FeatureScalePlugin', () => { - this.scaleOptions = layer.getScaleOptions(); - const attributes = layer.styleAttributeService.getLayerStyleAttributes(); - if (attributes) { - const { dataArray } = layer.getSource().data; - const attributesToRescale = attributes.filter( - (attribute) => attribute.needRescale, - ); - if (attributesToRescale.length) { - this.caculateScalesForAttributes(attributesToRescale, dataArray); - this.logger.info('rescale finished'); - } - } - }); - } - private isNumber(n: any) { - return !isNaN(parseFloat(n)) && isFinite(n); - } - - private caculateScalesForAttributes( - attributes: IStyleAttribute[], - dataArray: IParseDataItem[], - ) { - this.scaleCache = {}; - attributes.forEach((attribute) => { - if (attribute.scale) { - // 创建Scale - const attributeScale = attribute.scale; - const type = attribute.name; - attributeScale.names = this.parseFields(attribute!.scale!.field || []); - const scales: IStyleScale[] = attributeScale.names.map( - (field: string) => { - return this.getOrCreateScale(field, attribute, dataArray); - }, - ); - - // 为scales 设置值区间 - if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) { - attributeScale.type = StyleScaleType.VARIABLE; - scales.forEach((scale) => { - // 如果设置了回调, 这不需要设置让range - if (!attributeScale.callback) { - if (attributeScale.values) { - if ( - scale.option?.type === 'linear' && - attributeScale.values.length > 2 - ) { - const tick = scale.scale.ticks(attributeScale.values.length); - if (type === 'color') { - scale.scale.domain(tick); - } - } - scale.scale.range(attributeScale.values); - } else if (scale.option?.type === 'cat') { - // 如果没有设置初值且 类型为cat,range ==domain; - scale.scale.range(scale.option.domain); - } - } - }); - } else { - // 设置attribute 常量值 常量直接在value取值 - attributeScale.type = StyleScaleType.CONSTANT; - attributeScale.values = scales.map((scale, index) => { - return scale.scale(attributeScale.names[index]); - }); - } - attributeScale.scalers = scales.map((scale: IStyleScale) => { - return { - field: scale.field, - func: scale.scale, - }; - }); - - attribute.needRescale = false; - } - }); - } - private getOrCreateScale( - field: string, - attribute: IStyleAttribute, - dataArray: IParseDataItem[], - ) { - const scalekey = [field, attribute.name].join('_'); - if (this.scaleCache[scalekey]) { - return this.scaleCache[scalekey]; - } - const styleScale = this.createScale(field, dataArray); - this.scaleCache[scalekey] = styleScale; - - // if ( - // styleScale.type === StyleScaleType.VARIABLE && - // attribute.scale?.values && - // attribute.scale?.values.length > 0 - // ) { // 只有变量初始化range - // styleScale.scale.range(attribute.scale?.values); - // } - - return this.scaleCache[scalekey]; - } - - /** - * @example - * 'w*h' => ['w', 'h'] - * 'w' => ['w'] - */ - private parseFields(field: string[] | string): string[] { - if (Array.isArray(field)) { - return field; - } - if (isString(field)) { - return field.split('*'); - } - return [field]; - } - - private createScale(field: string, data?: IParseDataItem[]): IStyleScale { - // 首先查找全局默认配置例如 color - const scaleOption: IScale | undefined = this.scaleOptions[field]; - const styleScale: IStyleScale = { - field, - scale: undefined, - type: StyleScaleType.VARIABLE, - option: scaleOption, - }; - if (!data || !data.length) { - if (scaleOption && scaleOption.type) { - styleScale.scale = this.createDefaultScale(scaleOption); - } else { - styleScale.scale = d3.scaleOrdinal([field]); - styleScale.type = StyleScaleType.CONSTANT; - } - return styleScale; - } - const firstValue = data!.find((d) => !isNil(d[field]))?.[field]; - // 常量 Scale - if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) { - styleScale.scale = d3.scaleOrdinal([field]); - styleScale.type = StyleScaleType.CONSTANT; - } else { - // 根据数据类型判断 默认等分位,时间,和枚举类型 - const type = - (scaleOption && scaleOption.type) || this.getDefaultType(firstValue); - - const cfg = this.createDefaultScaleConfig(type, field, data); - Object.assign(cfg, scaleOption); - styleScale.scale = this.createDefaultScale(cfg); - styleScale.option = cfg; - } - return styleScale; - } - - private getDefaultType(firstValue: unknown) { - let type = ScaleTypes.LINEAR; - if (typeof firstValue === 'string') { - type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT; - } - return type; - } - - private createDefaultScaleConfig( - type: ScaleTypes, - field: string, - data?: IParseDataItem[], - ) { - const cfg: IScale = { - type, - }; - const values = data?.map((item) => item[field]) || []; - // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales - if (type !== ScaleTypes.CAT && type !== ScaleTypes.QUANTILE) { - cfg.domain = extent(values); - } else if (type === ScaleTypes.CAT) { - cfg.domain = uniq(values); - } else if (type === ScaleTypes.QUANTILE) { - cfg.domain = values; - } - return cfg; - } - - private createDefaultScale({ type, domain }: IScale) { - // @ts-ignore - const scale = scaleMap[type](); - if (domain) { - scale.domain(domain); - } - // TODO 其他属性支持 - return scale; - } -} diff --git a/packages/layers/src/plugins/LightingPlugin.ts b/packages/layers/src/plugins/LightingPlugin.ts deleted file mode 100644 index 3908c45aa2..0000000000 --- a/packages/layers/src/plugins/LightingPlugin.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { - CameraUniform, - CoordinateUniform, - ICameraService, - ICoordinateSystemService, - ILayer, - ILayerPlugin, - IRendererService, - TYPES, -} from '@l7/core'; -import { inject, injectable } from 'inversify'; - -const lightTypeUniformMap = { - directional: { - lights: 'u_DirectionalLights', - num: 'u_NumOfDirectionalLights', - }, - spot: { - lights: 'u_SpotLights', - num: 'u_NumOfSpotLights', - }, -}; - -interface IDirectionalLight { - type: 'directional'; - direction: [number, number, number]; - ambient: [number, number, number]; - diffuse: [number, number, number]; - specular: [number, number, number]; -} - -interface ISpotLight { - type: 'spot'; - position: [number, number, number]; - direction: [number, number, number]; - ambient: [number, number, number]; - diffuse: [number, number, number]; - specular: [number, number, number]; - constant: number; - linear: number; - quadratic: number; - angle: number; - exponent: number; - blur: number; -} - -const DEFAULT_LIGHT: IDirectionalLight = { - type: 'directional', - direction: [1, 10.5, 12], - ambient: [0.2, 0.2, 0.2], - diffuse: [0.6, 0.6, 0.6], - specular: [0.1, 0.1, 0.1], -}; - -const DEFAULT_DIRECTIONAL_LIGHT = { - direction: [0, 0, 0], - ambient: [0, 0, 0], - diffuse: [0, 0, 0], - specular: [0, 0, 0], -}; - -const DEFAULT_SPOT_LIGHT = { - position: [0, 0, 0], - direction: [0, 0, 0], - ambient: [0, 0, 0], - diffuse: [0, 0, 0], - specular: [0, 0, 0], - constant: 1, - linear: 0, - quadratic: 0, - angle: 14, - exponent: 40, - blur: 5, -}; - -const COLOR_ATTRIBUTES = ['ambient', 'diffuse', 'specular']; - -export function generateLightingUniforms( - lights?: Array>, -) { - const lightsMap: { - u_DirectionalLights: IDirectionalLight[]; - u_NumOfDirectionalLights: number; - u_SpotLights: ISpotLight[]; - u_NumOfSpotLights: number; - } = { - u_DirectionalLights: new Array(3).fill({ ...DEFAULT_DIRECTIONAL_LIGHT }), - u_NumOfDirectionalLights: 0, - u_SpotLights: new Array(3).fill({ ...DEFAULT_SPOT_LIGHT }), - u_NumOfSpotLights: 0, - }; - if (!lights || !lights.length) { - lights = [DEFAULT_LIGHT]; - } - lights.forEach(({ type = 'directional', ...rest }, i) => { - const lightsUniformName = lightTypeUniformMap[type].lights; - const lightsNumUniformName = lightTypeUniformMap[type].num; - - // Object.keys(rest).forEach(key => { - // if (Util.isString(rest[key]) && COLOR_ATTRIBUTES.indexOf(key) > -1) { - // rest[key] = ColorUtil.color2RGBA(rest[key]).slice(0, 3); - // } - // }); - - // @ts-ignore - const num = lightsMap[lightsNumUniformName]; - // @ts-ignore - lightsMap[lightsUniformName][num] = { - // @ts-ignore - ...lightsMap[lightsUniformName][num], - ...rest, - }; - // @ts-ignore - lightsMap[lightsNumUniformName]++; - }); - return lightsMap; -} - -/** - * 光照 & Shadow - */ -@injectable() -export default class LightingPlugin implements ILayerPlugin { - public apply(layer: ILayer) { - layer.hooks.beforeRender.tap('LightingPlugin', () => { - layer.models.forEach((model) => - model.addUniforms({ - // - }), - ); - }); - } -} diff --git a/packages/layers/src/plugins/MultiPassRendererPlugin.ts b/packages/layers/src/plugins/MultiPassRendererPlugin.ts deleted file mode 100644 index 02bff96d62..0000000000 --- a/packages/layers/src/plugins/MultiPassRendererPlugin.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { - ClearPass, - IGlobalConfigService, - ILayer, - ILayerPlugin, - IPostProcessingPass, - IRendererService, - MultiPassRenderer, - PixelPickingPass, - RenderPass, - TAAPass, - TYPES, -} from '@l7/core'; -import { inject, injectable, interfaces, multiInject } from 'inversify'; - -/** - * 'blurH' -> ['blurH', {}] - */ -export function normalizePasses( - passes: Array, -) { - return passes.map((pass: string | [string, { [key: string]: unknown }]) => { - if (typeof pass === 'string') { - pass = [pass, {}]; - } - return pass; - }); -} - -/** - * 自定义渲染管线: - * ClearPass -> PixelPickingPass(可选) -> RenderPass/TAAPass -> PostProcessing -> CopyPass - * 根据 Layer 配置的 passes 创建 PostProcessing - * @example - * new PolygonLayer({ - * enableMultiPassRenderer: true, - * passes: [ - * 'blurH', - * ['blurV', { radius: 10 }], - * ], - * }) - */ -@injectable() -export default class MultiPassRendererPlugin implements ILayerPlugin { - @inject(TYPES.IGlobalConfigService) - private readonly configService: IGlobalConfigService; - - @inject(TYPES.IRendererService) - private readonly rendererService: IRendererService; - - @inject(TYPES.IFactoryPostProcessingPass) - private readonly postProcessingPassFactory: ( - name: string, - ) => IPostProcessingPass; - - private enabled: boolean; - - public apply(layer: ILayer) { - layer.hooks.init.tap('MultiPassRendererPlugin', () => { - const { enableMultiPassRenderer, passes = [] } = layer.getStyleOptions(); - - // SceneConfig 的 enableMultiPassRenderer 配置项可以统一关闭 - this.enabled = - !!enableMultiPassRenderer && - this.configService.getConfig().enableMultiPassRenderer !== false; - - // 根据 LayerConfig passes 配置项初始化 - if (this.enabled) { - layer.multiPassRenderer = this.createMultiPassRenderer(layer, passes); - layer.multiPassRenderer.setRenderFlag(true); - } - }); - - layer.hooks.beforeRender.tap('MultiPassRendererPlugin', () => { - if (this.enabled) { - // 渲染前根据 viewport 调整 FBO size - const { width, height } = this.rendererService.getViewportSize(); - layer.multiPassRenderer.resize(width, height); - } - }); - } - - /** - * 默认添加 ClearPass、RenderPass - * 以及 PostProcessing 中的最后一个 CopyPass - */ - private createMultiPassRenderer( - layer: ILayer, - passes: Array, - ) { - const multiPassRenderer = new MultiPassRenderer(layer); - const { enablePicking, enableTAA } = layer.getStyleOptions(); - - // clear first - // multiPassRenderer.add(new ClearPass()); - - // picking pass if enabled - if (enablePicking) { - multiPassRenderer.add(new PixelPickingPass()); - } - - // use TAA pass if enabled instead of render pass - if (enableTAA) { - multiPassRenderer.add(new TAAPass()); - } else { - // render all layers in this pass - multiPassRenderer.add(new RenderPass()); - } - - // post processing - normalizePasses(passes).forEach( - (pass: [string, { [key: string]: unknown }]) => { - const [passName, initializationOptions] = pass; - multiPassRenderer.add( - this.postProcessingPassFactory(passName), - initializationOptions, - ); - }, - ); - - // 末尾为固定的 CopyPass - multiPassRenderer.add(this.postProcessingPassFactory('copy')); - - return multiPassRenderer; - } -} diff --git a/packages/layers/src/plugins/PixelPickingPlugin.ts b/packages/layers/src/plugins/PixelPickingPlugin.ts deleted file mode 100644 index 1c3f1b341e..0000000000 --- a/packages/layers/src/plugins/PixelPickingPlugin.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerPlugin, - IRendererService, - lazyInject, - TYPES, -} from '@l7/core'; -import { inject, injectable } from 'inversify'; -import { rgb2arr } from '../utils/color'; - -function encodePickingColor(featureIdx: number): [number, number, number] { - return [ - (featureIdx + 1) & 255, - ((featureIdx + 1) >> 8) & 255, - (((featureIdx + 1) >> 8) >> 8) & 255, - ]; -} - -const PickingStage = { - NONE: 0.0, - ENCODE: 1.0, - HIGHLIGHT: 2.0, -}; - -@injectable() -export default class PixelPickingPlugin implements ILayerPlugin { - @inject(TYPES.IRendererService) - private readonly rendererService: IRendererService; - - public apply(layer: ILayer) { - // TODO: 由于 Shader 目前无法根据是否开启拾取进行内容修改,因此即使不开启也需要生成 a_PickingColor - layer.hooks.init.tap('PixelPickingPlugin', () => { - const { enablePicking } = layer.getStyleOptions(); - layer.styleAttributeService.registerStyleAttribute({ - name: 'pickingColor', - type: AttributeType.Attribute, - descriptor: { - name: 'a_PickingColor', - buffer: { - data: [], - type: gl.FLOAT, - }, - size: 3, - // TODO: 固定 feature range 范围内的 pickingColor 都是固定的,可以生成 cache - update: (feature: IEncodeFeature, featureIdx: number) => - // 只有开启拾取才需要 encode - enablePicking ? encodePickingColor(featureIdx) : [0, 0, 0], - }, - }); - }); - // 必须要与 PixelPickingPass 结合使用,因此必须开启 multiPassRenderer - // if (layer.multiPassRenderer) { - layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', () => { - const { enablePicking } = layer.getStyleOptions(); - if (enablePicking) { - layer.models.forEach((model) => - model.addUniforms({ - u_PickingStage: PickingStage.ENCODE, - }), - ); - } - }); - - layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', () => { - const { enablePicking } = layer.getStyleOptions(); - if (enablePicking) { - layer.models.forEach((model) => - model.addUniforms({ - u_PickingStage: PickingStage.NONE, - u_PickingColor: [0, 0, 0], - u_HighlightColor: [0, 0, 0, 0], - }), - ); - } - }); - - layer.hooks.beforeHighlight.tap( - 'PixelPickingPlugin', - (pickedColor: number[]) => { - const { highlightColor } = layer.getStyleOptions(); - const highlightColorInArray = - typeof highlightColor === 'string' - ? rgb2arr(highlightColor) - : highlightColor || [1, 0, 0, 1]; - layer.models.forEach((model) => - model.addUniforms({ - u_PickingStage: PickingStage.HIGHLIGHT, - u_PickingColor: pickedColor, - u_HighlightColor: highlightColorInArray.map((c) => c * 255), - }), - ); - }, - ); - // } - } -} diff --git a/packages/layers/src/plugins/RegisterStyleAttributePlugin.ts b/packages/layers/src/plugins/RegisterStyleAttributePlugin.ts deleted file mode 100644 index ea709b6952..0000000000 --- a/packages/layers/src/plugins/RegisterStyleAttributePlugin.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerPlugin, - ILogService, - lazyInject, - TYPES, -} from '@l7/core'; -import { inject, injectable } from 'inversify'; - -/** - * 在初始化阶段完成属性的注册,以及首次根据 Layer 指定的三角化方法完成 indices 和 attribute 的创建 - */ -@injectable() -export default class RegisterStyleAttributePlugin implements ILayerPlugin { - @inject(TYPES.ILogService) - private readonly logger: ILogService; - - public apply(layer: ILayer) { - layer.hooks.init.tap('RegisterStyleAttributePlugin', () => { - this.registerBuiltinAttributes(layer); - }); - } - - private registerBuiltinAttributes(layer: ILayer) { - layer.styleAttributeService.registerStyleAttribute({ - name: 'position', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Position', - buffer: { - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - ) => { - return vertex.length === 2 - ? [vertex[0], vertex[1], 0] - : [vertex[0], vertex[1], vertex[2]]; - }, - }, - }); - - layer.styleAttributeService.registerStyleAttribute({ - name: 'color', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Color', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 4, - update: (feature: IEncodeFeature, featureIdx: number) => { - const { color } = feature; - return !color || !color.length ? [0, 0, 0, 0] : color; - }, - }, - }); - } -} diff --git a/packages/layers/src/plugins/ShaderUniformPlugin.ts b/packages/layers/src/plugins/ShaderUniformPlugin.ts deleted file mode 100644 index 82ffadf0e8..0000000000 --- a/packages/layers/src/plugins/ShaderUniformPlugin.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { - CameraUniform, - CoordinateUniform, - ICameraService, - ICoordinateSystemService, - ILayer, - ILayerPlugin, - IRendererService, - lazyInject, - TYPES, -} from '@l7/core'; -import { inject, injectable } from 'inversify'; - -/** - * 在渲染之前需要获取当前 Shader 所需 Uniform,例如: - * 1. 从相机服务中获取 View & ProjectionMatrix,当前缩放等级等等 - * 2. 从坐标系服务中获取当前坐标系,例如是否是偏移坐标系 - * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91 - * 3. 当前 Layer 本身的样式属性 - */ -@injectable() -export default class ShaderUniformPlugin implements ILayerPlugin { - @inject(TYPES.ICameraService) - private readonly cameraService: ICameraService; - - @inject(TYPES.ICoordinateSystemService) - private readonly coordinateSystemService: ICoordinateSystemService; - - @inject(TYPES.IRendererService) - private readonly rendererService: IRendererService; - - public apply(layer: ILayer) { - layer.hooks.beforeRender.tap('ShaderUniformPlugin', () => { - // 重新计算坐标系参数 - this.coordinateSystemService.refresh(); - - const { width, height } = this.rendererService.getViewportSize(); - - layer.models.forEach((model) => - model.addUniforms({ - // 相机参数,包含 VP 矩阵、缩放等级 - [CameraUniform.ProjectionMatrix]: this.cameraService.getProjectionMatrix(), - [CameraUniform.ViewMatrix]: this.cameraService.getViewMatrix(), - [CameraUniform.ViewProjectionMatrix]: this.cameraService.getViewProjectionMatrix(), - [CameraUniform.Zoom]: this.cameraService.getZoom(), - [CameraUniform.ZoomScale]: this.cameraService.getZoomScale(), - [CameraUniform.FocalDistance]: this.cameraService.getFocalDistance(), - [CameraUniform.CameraPosition]: this.cameraService.getCameraPosition(), - // 坐标系参数 - [CoordinateUniform.CoordinateSystem]: this.coordinateSystemService.getCoordinateSystem(), - [CoordinateUniform.ViewportCenter]: this.coordinateSystemService.getViewportCenter(), - [CoordinateUniform.ViewportCenterProjection]: this.coordinateSystemService.getViewportCenterProjection(), - [CoordinateUniform.PixelsPerDegree]: this.coordinateSystemService.getPixelsPerDegree(), - [CoordinateUniform.PixelsPerDegree2]: this.coordinateSystemService.getPixelsPerDegree2(), - [CoordinateUniform.PixelsPerMeter]: this.coordinateSystemService.getPixelsPerMeter(), - // 其他参数,例如视口大小、DPR 等 - u_ViewportSize: [width, height], - u_DevicePixelRatio: window.devicePixelRatio, - u_ModelMatrix: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], - }), - ); - - // TODO:脏检查,决定是否需要渲染 - }); - } -} diff --git a/packages/layers/src/plugins/UpdateStyleAttributePlugin.ts b/packages/layers/src/plugins/UpdateStyleAttributePlugin.ts deleted file mode 100644 index 36618a1978..0000000000 --- a/packages/layers/src/plugins/UpdateStyleAttributePlugin.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ILayer, ILayerPlugin, ILogService, lazyInject, TYPES } from '@l7/core'; -import { inject, injectable } from 'inversify'; - -/** - * 在初始化阶段完成属性的注册,以及首次根据 Layer 指定的三角化方法完成 indices 和 attribute 的创建 - */ -@injectable() -export default class UpdateStyleAttributePlugin implements ILayerPlugin { - @inject(TYPES.ILogService) - private readonly logger: ILogService; - - public apply(layer: ILayer) { - layer.hooks.beforeRender.tap('UpdateStyleAttributePlugin', () => { - const attributes = - layer.styleAttributeService.getLayerStyleAttributes() || []; - attributes - .filter((attribute) => attribute.needRegenerateVertices) - .forEach((attribute) => { - // 精确更新某个/某些 feature(s),需要传入 featureIdx - layer.styleAttributeService.updateAttributeByFeatureRange( - attribute.name, - layer.getEncodedData(), // 获取经过 mapping 最新的数据 - attribute.featureRange.startIndex, - attribute.featureRange.endIndex, - ); - attribute.needRegenerateVertices = false; - this.logger.info( - `regenerate vertex attributes: ${attribute.name} finished`, - ); - }); - }); - } -} diff --git a/packages/layers/src/plugins/__tests__/lighting.spec.ts b/packages/layers/src/plugins/__tests__/lighting.spec.ts deleted file mode 100644 index 31666feea6..0000000000 --- a/packages/layers/src/plugins/__tests__/lighting.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -import 'reflect-metadata'; -import { generateLightingUniforms } from '../LightingPlugin'; - -describe('LightingPlugin', () => { - it('should generate proper uniforms for a directional light', () => { - const lightsMap = generateLightingUniforms([ - { - type: 'directional', - }, - ]); - - expect(lightsMap.u_NumOfDirectionalLights).toEqual(1); - expect(lightsMap.u_NumOfSpotLights).toEqual(0); - }); - - it('should generate proper uniforms for directional and spot lights', () => { - const lightsMap = generateLightingUniforms([ - { - type: 'directional', - }, - { - type: 'spot', - }, - ]); - - expect(lightsMap.u_NumOfDirectionalLights).toEqual(1); - expect(lightsMap.u_NumOfSpotLights).toEqual(1); - }); - - it('should generate proper uniforms for directional and spot lights', () => { - const lightsMap = generateLightingUniforms([ - { - type: 'directional', - ambient: [1, 1, 1], - }, - { - type: 'spot', - angle: 10, - }, - ]); - - expect(lightsMap.u_NumOfDirectionalLights).toEqual(1); - expect(lightsMap.u_NumOfSpotLights).toEqual(1); - expect(lightsMap.u_DirectionalLights[0].ambient).toEqual([1, 1, 1]); - expect(lightsMap.u_SpotLights[0].angle).toEqual(10); - }); -}); diff --git a/packages/layers/src/point/index.ts b/packages/layers/src/point/index.ts deleted file mode 100644 index d2a556c092..0000000000 --- a/packages/layers/src/point/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { IEncodeFeature } from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import PointModels, { PointType } from './models/index'; -interface IPointLayerStyleOptions { - opacity: number; - strokeWidth: number; - strokeColor: string; -} -export default class PointLayer extends BaseLayer { - public name: string = 'PointLayer'; - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - protected renderModels() { - this.models.forEach((model) => - model.draw({ - uniforms: this.layerModel.getUninforms(), - }), - ); - return this; - } - - protected buildModels() { - const modelType = this.getModelType(); - this.layerModel = new PointModels[modelType](this); - this.models = this.layerModel.buildModels(); - } - - private getModelType(): PointType { - // pointlayer - // 2D、 3d、 shape、image、text、normal、 - const layerData = this.getEncodedData(); - const { shape2d, shape3d } = this.configService.getConfig(); - const iconMap = this.iconService.getIconMap(); - const item = layerData.find((fe: IEncodeFeature) => { - return fe.hasOwnProperty('shape'); - }); - if (!item) { - return 'normal'; - } else { - const shape = item.shape; - if (shape2d?.indexOf(shape as string) !== -1) { - return 'fill'; - } - if (shape3d?.indexOf(shape as string) !== -1) { - return 'extrude'; - } - if (iconMap.hasOwnProperty(shape as string)) { - return 'image'; - } - return 'text'; - } - } -} diff --git a/packages/layers/src/point/models/extrude.ts b/packages/layers/src/point/models/extrude.ts deleted file mode 100644 index d7a7a8e477..0000000000 --- a/packages/layers/src/point/models/extrude.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { PointExtrudeTriangulation } from '../../core/triangulation'; -import pointExtrudeVert from '../shaders/extrude3_vert.glsl'; -import pointExtrudeFrag from '../shaders/extrude_frag.glsl'; -interface IPointLayerStyleOptions { - opacity: number; -} -export default class ExtrudeModel extends BaseModel { - public getUninforms() { - const { opacity } = this.layer.getStyleOptions() as IPointLayerStyleOptions; - return { - u_opacity: opacity || 1.0, - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'pointExtrude2', - vertexShader: pointExtrudeVert, - fragmentShader: pointExtrudeFrag, - triangulation: PointExtrudeTriangulation, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - }), - ]; - } - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - if (size) { - let buffersize: number[] = []; - if (Array.isArray(size)) { - buffersize = - size.length === 2 ? [size[0], size[0], size[1]] : size; - } - if (!Array.isArray(size)) { - buffersize = [size]; - } - return buffersize; - } else { - return [2, 2, 2]; - } - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'normal', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Normal', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - normal: number[], - ) => { - return normal; - }, - }, - }); - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'pos', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Pos', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: (feature: IEncodeFeature, featureIdx: number) => { - const coordinates = feature.coordinates as number[]; - return [coordinates[0], coordinates[1], 0]; - }, - }, - }); - } -} diff --git a/packages/layers/src/point/models/fill.ts b/packages/layers/src/point/models/fill.ts deleted file mode 100644 index 560a6dda18..0000000000 --- a/packages/layers/src/point/models/fill.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - ILayerPlugin, - ILogService, - IModel, - IModelUniform, - IStyleAttributeService, - lazyInject, - TYPES, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { PointFillTriangulation } from '../../core/triangulation'; -import { rgb2arr } from '../../utils/color'; -import pointFillFrag from '../shaders/fill_frag.glsl'; -import pointFillVert from '../shaders/fill_vert.glsl'; -interface IPointLayerStyleOptions { - opacity: number; - strokeWidth: number; - strokeColor: string; -} -export default class FillModel extends BaseModel { - public getUninforms(): IModelUniform { - const { - opacity = 1, - strokeColor = 'rgb(0,0,0,0)', - strokeWidth = 1, - } = this.layer.getStyleOptions() as IPointLayerStyleOptions; - return { - u_opacity: opacity, - u_stroke_width: strokeWidth, - u_stroke_color: rgb2arr(strokeColor), - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'pointfill', - vertexShader: pointFillVert, - fragmentShader: pointFillFrag, - triangulation: PointFillTriangulation, - depth: { enable: false }, - }), - ]; - } - - protected registerBuiltinAttributes() { - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'extrude', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Extrude', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 2, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const extrude = [-1, -1, 1, -1, 1, 1, -1, 1]; - const extrudeIndex = (attributeIdx % 4) * 2; - return [extrude[extrudeIndex], extrude[extrudeIndex + 1]]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'shape', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Shape', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { shape = 2 } = feature; - const shape2d = this.layer.configService.getConfig() - .shape2d as string[]; - const shapeIndex = shape2d.indexOf(shape as string); - return [shapeIndex]; - }, - }, - }); - } -} diff --git a/packages/layers/src/point/models/image.ts b/packages/layers/src/point/models/image.ts deleted file mode 100644 index 0b15517b6d..0000000000 --- a/packages/layers/src/point/models/image.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, - ITexture2D, -} from '@l7/core'; - -import BaseModel from '../../core/baseModel'; -import { PointImageTriangulation } from '../../core/triangulation'; -import pointImageFrag from '../shaders/image_frag.glsl'; -import pointImageVert from '../shaders/image_vert.glsl'; -interface IPointLayerStyleOptions { - opacity: number; -} - -export default class ImageModel extends BaseModel { - private texture: ITexture2D; - - public getUninforms(): IModelUniform { - const { opacity } = this.layer.getStyleOptions() as IPointLayerStyleOptions; - return { - u_opacity: opacity || 1.0, - u_texture: this.texture, - u_textSize: [1024, this.iconService.canvasHeight || 128], - }; - } - - public buildModels(): IModel[] { - this.registerBuiltinAttributes(); - this.updateTexture(); - this.iconService.on('imageUpdate', () => { - this.updateTexture(); - this.layer.render(); // TODO 调用全局render - }); - return [ - this.layer.buildLayerModel({ - moduleName: 'pointImage', - vertexShader: pointImageVert, - fragmentShader: pointImageFrag, - triangulation: PointImageTriangulation, - primitive: gl.POINTS, - depth: { enable: false }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - }), - ]; - } - - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'uv', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Uv', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 2, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const iconMap = this.iconService.getIconMap(); - - const { shape } = feature; - const { x, y } = iconMap[shape as string] || { x: 0, y: 0 }; - return [x, y]; - }, - }, - }); - } - - private updateTexture() { - const { createTexture2D } = this.rendererService; - this.texture = createTexture2D({ - data: this.iconService.getCanvas(), - width: 1024, - height: this.iconService.canvasHeight || 128, - }); - } -} diff --git a/packages/layers/src/point/models/index.ts b/packages/layers/src/point/models/index.ts deleted file mode 100644 index 8dd5b347a6..0000000000 --- a/packages/layers/src/point/models/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ILayerModel } from '@l7/core'; -import ExtrudeModel from './extrude'; -import FillModel from './fill'; -import IMageModel from './image'; -import NormalModel from './normal'; - -export type PointType = 'fill' | 'image' | 'normal' | 'extrude' | 'text'; - -const PointModels: { [key in PointType]: any } = { - fill: FillModel, - image: IMageModel, - normal: NormalModel, - extrude: ExtrudeModel, - text: null, -}; - -export default PointModels; diff --git a/packages/layers/src/point/models/normal.ts b/packages/layers/src/point/models/normal.ts deleted file mode 100644 index eedabe8b84..0000000000 --- a/packages/layers/src/point/models/normal.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; - -import BaseModel from '../../core/baseModel'; -import { rgb2arr } from '../../utils/color'; -import normalFrag from '../shaders/normal_frag.glsl'; -import normalVert from '../shaders/normal_vert.glsl'; - -interface IPointLayerStyleOptions { - opacity: number; - strokeWidth: number; - strokeColor: string; -} -export function PointTriangulation(feature: IEncodeFeature) { - const coordinates = feature.coordinates as number[]; - return { - vertices: [...coordinates], - indices: [0], - size: coordinates.length, - }; -} - -export default class NormalModel extends BaseModel { - public getUninforms(): IModelUniform { - const { - opacity = 1, - strokeColor = 'rgb(0,0,0,0)', - strokeWidth = 1, - } = this.layer.getStyleOptions() as IPointLayerStyleOptions; - return { - u_opacity: opacity, - u_stroke_width: strokeWidth, - u_stroke_color: rgb2arr(strokeColor), - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'normalpoint', - vertexShader: normalVert, - fragmentShader: normalFrag, - triangulation: PointTriangulation, - depth: { enable: false }, - primitive: gl.POINTS, - blend: { - enable: true, - func: { - srcRGB: gl.ONE, - srcAlpha: 1, - dstRGB: gl.ONE, - dstAlpha: 1, - }, - }, - }), - ]; - } - - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - } -} diff --git a/packages/layers/src/point/models/text.ts b/packages/layers/src/point/models/text.ts deleted file mode 100644 index e05be1db44..0000000000 --- a/packages/layers/src/point/models/text.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - IModel, - IModelUniform, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { PointExtrudeTriangulation } from '../core/triangulation'; -import pointExtrudeFrag from '../shaders/extrude_frag.glsl'; -import pointExtrudeVert from '../shaders/extrude_vert.glsl'; - -export default class ExtrudeModel extends BaseModel { - public getUninforms(): IModelUniform { - throw new Error('Method not implemented.'); - } - - public buildModels(): IModel[] { - throw new Error('Method not implemented.'); - } - protected registerBuiltinAttributes() { - throw new Error('Method not implemented.'); - } -} diff --git a/packages/layers/src/point/shaders/extrude3_vert.glsl b/packages/layers/src/point/shaders/extrude3_vert.glsl deleted file mode 100644 index 2c76fdf178..0000000000 --- a/packages/layers/src/point/shaders/extrude3_vert.glsl +++ /dev/null @@ -1,33 +0,0 @@ -precision highp float; - -#define ambientRatio 0.5 -#define diffuseRatio 0.3 -#define specularRatio 0.2 - -attribute vec3 a_Position; -attribute vec3 a_Pos; -attribute vec4 a_Color; -attribute vec3 a_Size; -attribute vec3 a_Normal; - -uniform mat4 u_ModelMatrix; -varying vec4 v_color; - -#pragma include "projection" - -#pragma include "light" - -void main() { - vec3 size = a_Size * a_Position; - - vec2 offset = project_pixel(size.xy); - - vec4 project_pos = project_position(vec4(a_Pos.xy, 0, 1.0)); - vec4 pos = vec4(project_pos.xy + offset, project_pixel(size.z), 1.0); - - float lightWeight = calc_lighting(pos); - v_color =vec4(a_Color.rgb * lightWeight, a_Color.w); - - gl_Position = project_common_position_to_clipspace(pos); - -} diff --git a/packages/layers/src/point/shaders/extrude_frag.glsl b/packages/layers/src/point/shaders/extrude_frag.glsl deleted file mode 100644 index 3f0cf17883..0000000000 --- a/packages/layers/src/point/shaders/extrude_frag.glsl +++ /dev/null @@ -1,6 +0,0 @@ -varying vec4 v_color; -uniform float u_opacity: 1.0; -void main() { - gl_FragColor = v_color; - gl_FragColor.a *= u_opacity; -} diff --git a/packages/layers/src/point/shaders/extrude_vert.glsl b/packages/layers/src/point/shaders/extrude_vert.glsl deleted file mode 100644 index 8b5ba21f5c..0000000000 --- a/packages/layers/src/point/shaders/extrude_vert.glsl +++ /dev/null @@ -1,33 +0,0 @@ -precision highp float; - -#define ambientRatio 0.5 -#define diffuseRatio 0.3 -#define specularRatio 0.2 - -attribute vec3 a_Position; -attribute vec3 a_Pos; -attribute vec4 a_Color; -attribute vec3 a_Size; -attribute vec3 a_Normal; - -uniform mat4 u_ModelMatrix; -varying vec4 v_color; - -#pragma include "projection" -#pragma include "light" - -void main() { - vec3 size = a_Size * a_Position; - - vec2 offset = project_pixel(size.xy); - - vec4 project_pos = project_position(vec4(a_Pos.xy, 0, 1.0)); - vec4 pos = vec4(project_pos.xy + offset, project_pixel(size.z), 1.0); - -// float lightWeight = calc_lighting(pos); - - v_color =vec4(a_Color.rgb*lightWeight, a_Color.w); - - gl_Position = project_common_position_to_clipspace(pos); - -} diff --git a/packages/layers/src/point/shaders/fill_frag.glsl b/packages/layers/src/point/shaders/fill_frag.glsl deleted file mode 100644 index 01231d9527..0000000000 --- a/packages/layers/src/point/shaders/fill_frag.glsl +++ /dev/null @@ -1,66 +0,0 @@ -uniform float u_blur : 0; -uniform float u_opacity : 1; -uniform float u_stroke_width : 1; -uniform vec4 u_stroke_color : [0, 0, 0, 0]; -uniform float u_stroke_opacity : 1; - -varying vec4 v_data; -varying vec4 v_color; -varying float v_radius; - -#pragma include "sdf_2d" -#pragma include "picking" - -void main() { - int shape = int(floor(v_data.w + 0.5)); - - lowp float antialiasblur = v_data.z; - float antialiased_blur = -max(u_blur, antialiasblur); - float r = v_radius / (v_radius + u_stroke_width); - - float outer_df; - float inner_df; - // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica' - if (shape == 0) { - outer_df = sdCircle(v_data.xy, 1.0); - inner_df = sdCircle(v_data.xy, r); - } else if (shape == 1) { - outer_df = sdEquilateralTriangle(1.1 * v_data.xy); - inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy); - } else if (shape == 2) { - outer_df = sdBox(v_data.xy, vec2(1.)); - inner_df = sdBox(v_data.xy, vec2(r)); - } else if (shape == 3) { - outer_df = sdPentagon(v_data.xy, 0.8); - inner_df = sdPentagon(v_data.xy, r * 0.8); - } else if (shape == 4) { - outer_df = sdHexagon(v_data.xy, 0.8); - inner_df = sdHexagon(v_data.xy, r * 0.8); - } else if (shape == 5) { - outer_df = sdOctogon(v_data.xy, 1.0); - inner_df = sdOctogon(v_data.xy, r); - } else if (shape == 6) { - outer_df = sdHexagram(v_data.xy, 0.52); - inner_df = sdHexagram(v_data.xy, r * 0.52); - } else if (shape == 7) { - outer_df = sdRhombus(v_data.xy, vec2(1.0)); - inner_df = sdRhombus(v_data.xy, vec2(r)); - } else if (shape == 8) { - outer_df = sdVesica(v_data.xy, 1.1, 0.8); - inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8); - } - - float opacity_t = smoothstep(0.0, antialiased_blur, outer_df); - if(u_stroke_width <0.01 ) { - gl_FragColor = v_color * opacity_t; - return; - } - float color_t = u_stroke_width < 0.01 ? 0.0 : smoothstep( - antialiased_blur, - 0.0, - inner_df - ); - vec4 strokeColor = u_stroke_color == vec4(0) ? v_color : u_stroke_color; - - gl_FragColor = opacity_t * mix(vec4(v_color.rgb, v_color.a * u_opacity), strokeColor * u_stroke_opacity, color_t); -} diff --git a/packages/layers/src/point/shaders/fill_vert.glsl b/packages/layers/src/point/shaders/fill_vert.glsl deleted file mode 100644 index af5cb17eb2..0000000000 --- a/packages/layers/src/point/shaders/fill_vert.glsl +++ /dev/null @@ -1,40 +0,0 @@ -attribute vec4 a_Color; -attribute vec3 a_Position; -attribute vec2 a_Extrude; -attribute float a_Size; -attribute float a_Shape; -uniform mat4 u_ModelMatrix; - -uniform float u_stroke_width : 2; - -varying vec4 v_data; -varying vec4 v_color; -varying float v_radius; - -#pragma include "projection" -#pragma include "picking" - -void main() { - // unpack color(vec2) - v_color = a_Color; - vec2 extrude = a_Extrude; - - float shape_type = a_Shape; - - // radius(16-bit) - v_radius = a_Size; - - vec2 offset = project_pixel(extrude * (a_Size + u_stroke_width)); - vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0)); - - // TODO: billboard - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0)); - - // anti-alias - float antialiasblur = 1.0 / (a_Size + u_stroke_width); - - // construct point coords - v_data = vec4(extrude, antialiasblur, shape_type); - - setPickingColor(a_PickingColor); -} diff --git a/packages/layers/src/point/shaders/image_frag.glsl b/packages/layers/src/point/shaders/image_frag.glsl deleted file mode 100644 index 58992a075f..0000000000 --- a/packages/layers/src/point/shaders/image_frag.glsl +++ /dev/null @@ -1,28 +0,0 @@ - -uniform sampler2D u_texture; -varying vec4 v_color; -varying vec2 v_uv; -uniform vec2 u_textSize; -uniform float u_stroke_width : 1; -uniform vec4 u_stroke_color : [1, 1, 1, 1]; -uniform float u_stroke_opacity : 1; -uniform float u_opacity : 1; - -varying float v_size; -void main(){ -vec2 pos= v_uv / u_textSize + gl_PointCoord / u_textSize * 64.; -vec2 fragmentPosition = 2.0*gl_PointCoord - 1.0; -float distance = length(fragmentPosition); -float distanceSqrd = distance * distance; -float radius = 1.; -float r = 1.0 - smoothstep(radius-(radius*0.01), - radius+(radius*0.01), - distanceSqrd); - vec4 textureColor=texture2D(u_texture,pos); - if(v_color == vec4(0.)){ - gl_FragColor= vec4(textureColor.xyz, textureColor.w * r); - }else { - gl_FragColor= step(0.01, textureColor.x) * v_color; - } - return; -} diff --git a/packages/layers/src/point/shaders/image_vert.glsl b/packages/layers/src/point/shaders/image_vert.glsl deleted file mode 100644 index 7aa6a25aa7..0000000000 --- a/packages/layers/src/point/shaders/image_vert.glsl +++ /dev/null @@ -1,24 +0,0 @@ - -precision highp float; -attribute vec3 a_Position; -attribute vec4 a_Color; -attribute vec2 a_Uv; -attribute float a_Size; -varying vec4 v_color; -varying vec2 v_uv; -uniform mat4 u_ModelMatrix; -uniform float u_stroke_width : 1; -varying float v_size; - -#pragma include "projection" - -void main() { - v_color = a_Color; - v_uv = a_Uv; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - v_size = a_Size; - - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); - gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio; - -} diff --git a/packages/layers/src/point/shaders/normal_frag.glsl b/packages/layers/src/point/shaders/normal_frag.glsl deleted file mode 100644 index 4481c286f9..0000000000 --- a/packages/layers/src/point/shaders/normal_frag.glsl +++ /dev/null @@ -1,7 +0,0 @@ - -uniform float u_opacity : 1; -varying vec4 v_color; -void main() { - gl_FragColor = v_color; - gl_FragColor.a = u_opacity; -} diff --git a/packages/layers/src/point/shaders/normal_vert.glsl b/packages/layers/src/point/shaders/normal_vert.glsl deleted file mode 100644 index 819b78c30a..0000000000 --- a/packages/layers/src/point/shaders/normal_vert.glsl +++ /dev/null @@ -1,17 +0,0 @@ - -attribute vec3 a_Position; -uniform mat4 u_ModelMatrix; -attribute float a_Size; -attribute vec4 a_Color; -varying vec4 v_color; - -#pragma include "projection" - -void main() { - - v_color = a_Color; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - gl_Position = project_common_position_to_clipspace(project_pos); - gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio; - -} diff --git a/packages/layers/src/point/shaders/text_frag.glsl b/packages/layers/src/point/shaders/text_frag.glsl deleted file mode 100644 index d3dfa93034..0000000000 --- a/packages/layers/src/point/shaders/text_frag.glsl +++ /dev/null @@ -1,27 +0,0 @@ -uniform sampler2D u_sdf_map; -uniform float u_gamma_scale : 0.5; -uniform float u_font_size : 24; -uniform float u_opacity : 1.0; -uniform vec4 u_stroke : [0, 0, 0, 1]; -uniform float u_strokeWidth : 2.0; -uniform float u_halo_blur : 0.5; - -varying vec4 v_color; -varying vec2 v_uv; -varying float v_gamma_scale; - -void main() { - // get sdf from atlas - float dist = texture2D(u_sdf_map, v_uv).a; - - float fontScale = u_font_size / 24.0; - - lowp float buff = (6.0 - u_strokeWidth / fontScale) / SDF_PX; - highp float gamma = (u_halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (fontScale * u_gamma_scale); - - highp float gamma_scaled = gamma * v_gamma_scale; - - highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist); - - gl_FragColor = mix(v_color * u_opacity, u_stroke, smoothstep(0., 0.5, 1. - dist)) * alpha; -} diff --git a/packages/layers/src/point/shaders/text_vert.glsl b/packages/layers/src/point/shaders/text_vert.glsl deleted file mode 100644 index 496a5180c2..0000000000 --- a/packages/layers/src/point/shaders/text_vert.glsl +++ /dev/null @@ -1,35 +0,0 @@ -attribute vec3 a_Position; -attribute vec2 a_tex; -attribute vec2 a_offset; -attribute vec4 a_color; -attribute float a_size; - -uniform vec2 u_sdf_map_size; -uniform vec2 u_viewport_size; - -uniform float u_activeId : 0; -uniform vec4 u_activeColor : [1.0, 0.0, 0.0, 1.0]; - -varying vec2 v_uv; -varying float v_gamma_scale; -varying vec4 v_color; - -#pragma include "projection" - -void main() { - v_color = a_color; - v_uv = a_tex / u_sdf_map_size; - - // 文本缩放比例 - float fontScale = a_size / 24.; - - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - - vec4 projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); - - gl_Position = vec4(projected_position.xy / projected_position.w - + a_offset * fontScale / u_viewport_size * 2., 0.0, 1.0); - v_gamma_scale = gl_Position.w; - - -} diff --git a/packages/layers/src/point/shape/Path.ts b/packages/layers/src/point/shape/Path.ts deleted file mode 100644 index 1e12eb5709..0000000000 --- a/packages/layers/src/point/shape/Path.ts +++ /dev/null @@ -1,65 +0,0 @@ -type IPosition = [number, number, number]; -export type IPath = IPosition[]; -export enum ShapeType3D { - CYLINDER = 'cylinder', - SQUARECOLUMN = 'squareColumn', - TRIANGLECOLUMN = 'triangleColumn', - HEXAGONCOLUMN = 'hexagonColumn', - PENTAGONCOLUMN = 'pentagonColumn', -} -export enum ShapeType2D { - CIRCLE = 'circle', - SQUARE = 'square', - TRIANGLE = 'triangle', - HEXAGON = 'hexagon', - PENTAGON = 'pentagon', -} - -/** - * 生成规则多边形顶点个数 - * @param pointCount 顶点个数 3 => 三角形 - * @param start 顶点起始角度 调整图形的方向 - */ -export function polygonPath(pointCount: number, start: number = 0): IPath { - const step = (Math.PI * 2) / pointCount; - const line = []; - for (let i = 0; i < pointCount; i++) { - line.push(step * i + (start * Math.PI) / 12); - } - const path: IPath = line.map((t) => { - const x = Math.sin(t + Math.PI / 4); - const y = Math.cos(t + Math.PI / 4); - return [x, y, 0]; - }); - // path.push(path[0]); - return path; -} - -export function circle(): IPath { - return polygonPath(30); -} -export function square(): IPath { - return polygonPath(4); -} -export function triangle(): IPath { - return polygonPath(3); -} -export function hexagon(): IPath { - return polygonPath(6); -} -export function pentagon(): IPath { - return polygonPath(5); -} - -export const geometryShape = { - [ShapeType2D.CIRCLE]: circle, - [ShapeType2D.HEXAGON]: hexagon, - [ShapeType2D.TRIANGLE]: triangle, - [ShapeType2D.SQUARE]: square, - [ShapeType2D.PENTAGON]: pentagon, - [ShapeType3D.CYLINDER]: circle, - [ShapeType3D.HEXAGONCOLUMN]: hexagon, - [ShapeType3D.TRIANGLECOLUMN]: triangle, - [ShapeType3D.SQUARECOLUMN]: square, - [ShapeType3D.PENTAGONCOLUMN]: pentagon, -}; diff --git a/packages/layers/src/point/shape/extrude.ts b/packages/layers/src/point/shape/extrude.ts deleted file mode 100644 index 717d585609..0000000000 --- a/packages/layers/src/point/shape/extrude.ts +++ /dev/null @@ -1,74 +0,0 @@ -import earcut from 'earcut'; -import { IPath } from './Path'; -export interface IExtrudeGeomety { - positions: number[]; - index: number[]; -} -/** - * 拉伸多边形顶点,返回拉伸后的顶点信息 - * @param paths 路径数据组 - * @param extrude 是否拉伸 - */ -export default function extrudePolygon(path: IPath[]): IExtrudeGeomety { - const p1 = path[0][0]; - const p2 = path[0][path[0].length - 1]; - if (p1[0] === p2[0] && p1[1] === p2[1]) { - path[0] = path[0].slice(0, path[0].length - 1); - } - const n = path[0].length; - const flattengeo = earcut.flatten(path); - const positions = []; - const indexArray = []; - const normals = []; - // 设置顶部z值 - for (let j = 0; j < flattengeo.vertices.length / 3; j++) { - flattengeo.vertices[j * 3 + 2] = 1; - normals.push(0, 0, 1); - } - positions.push(...flattengeo.vertices); - const triangles = earcut( - flattengeo.vertices, - flattengeo.holes, - flattengeo.dimensions, - ); - indexArray.push(...triangles); - for (let i = 0; i < n; i++) { - const prePoint = flattengeo.vertices.slice(i * 3, i * 3 + 3); - let nextPoint = flattengeo.vertices.slice(i * 3 + 3, i * 3 + 6); - if (nextPoint.length === 0) { - nextPoint = flattengeo.vertices.slice(0, 3); - } - const indexOffset = positions.length / 3; - positions.push( - prePoint[0], - prePoint[1], - 1, - nextPoint[0], - nextPoint[1], - 1, - prePoint[0], - prePoint[1], - 0, - nextPoint[0], - nextPoint[1], - 0, - ); - indexArray.push(...[1, 2, 0, 3, 2, 1].map((v) => v + indexOffset)); - } - return { - positions, - index: indexArray, - }; -} -export function fillPolygon(points: IPath[]) { - const flattengeo = earcut.flatten(points); - const triangles = earcut( - flattengeo.vertices, - flattengeo.holes, - flattengeo.dimensions, - ); - return { - positions: flattengeo.vertices, - index: triangles, - }; -} diff --git a/packages/layers/src/point/text.ts b/packages/layers/src/point/text.ts deleted file mode 100644 index 9ee0a9c28d..0000000000 --- a/packages/layers/src/point/text.ts +++ /dev/null @@ -1,188 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - IFontOptions, - ILayer, - ILayerPlugin, - ILogService, - IStyleAttributeService, - lazyInject, - TYPES, -} from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import { getGlyphQuads, shapeText } from '../utils/symbol-layout'; -import textFrag from './shaders/text_frag.glsl'; -import textVert from './shaders/text_vert.glsl'; -interface IPointTextLayerStyleOptions { - opacity: number; - textAnchor: string; - textOffset: [number, number]; - spacing: number; - padding: [number, number]; - stroke: string; - strokeWidth: number; - strokeOpacity: number; - fontWeight: string; - fontFamily: string; - - textAllowOverlap: boolean; -} -export function PointTriangulation(feature: IEncodeFeature) { - const coordinates = feature.coordinates as number[]; - return { - vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates], - indices: [0, 1, 2, 2, 3, 0], - size: coordinates.length, - }; -} -export default class TextLayer extends BaseLayer { - public name: string = 'PointLayer'; - - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - const { opacity } = this.getStyleOptions(); - this.models.forEach((model) => - model.draw({ - uniforms: { - u_opacity: opacity || 1.0, - }, - }), - ); - return this; - } - - protected buildModels() { - this.registerBuiltinAttributes(this); - this.models = [ - this.buildLayerModel({ - moduleName: 'pointText', - vertexShader: textVert, - fragmentShader: textFrag, - triangulation: PointTriangulation, - depth: { enable: false }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - }), - ]; - } - - private registerBuiltinAttributes(layer: ILayer) { - layer.styleAttributeService.registerStyleAttribute({ - name: 'textOffsets', - type: AttributeType.Attribute, - descriptor: { - name: 'a_textOffsets', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 2, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const extrude = [-1, -1, 1, -1, 1, 1, -1, 1]; - const extrudeIndex = (attributeIdx % 4) * 2; - return [extrude[extrudeIndex], extrude[extrudeIndex + 1]]; - }, - }, - }); - - // point layer size; - layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - - // point layer size; - layer.styleAttributeService.registerStyleAttribute({ - name: 'shape', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Shape', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { shape = 2 } = feature; - const shape2d = layer.configService.getConfig().shape2d as string[]; - const shapeIndex = shape2d.indexOf(shape as string); - return [shapeIndex]; - }, - }, - }); - } - - private initTextFont() { - const { fontWeight = 'normal', fontFamily } = this.getStyleOptions(); - const data = this.getEncodedData(); - const characterSet: string[] = []; - data.forEach((item: IEncodeFeature) => { - let { shape = '' } = item; - shape = shape.toString(); - for (const char of shape) { - // 去重 - if (characterSet.indexOf(char) === -1) { - characterSet.push(char); - } - } - }); - - this.fontService.setFontOptions({ - characterSet, - fontWeight, - fontFamily, - }); - } -} diff --git a/packages/layers/src/polygon/__tests__/polygonTriangulation.spec.ts b/packages/layers/src/polygon/__tests__/polygonTriangulation.spec.ts deleted file mode 100644 index d69c058c28..0000000000 --- a/packages/layers/src/polygon/__tests__/polygonTriangulation.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { IEncodeFeature } from '@l7/core'; -import { polygonTriangulation } from '../../core/triangulation'; - -describe('PolygonTriangulation', () => { - it('should do triangulation with a polygon correctly', () => { - const mockFeature: IEncodeFeature = { - coordinates: [ - [ - [0, 0], - [1, 0], - [1, 1], - [0, 1], - ], - ], - color: [1, 0, 0, 0], - }; - const { indices, vertices, size } = polygonTriangulation(mockFeature); - - expect(indices).toEqual([2, 3, 0, 0, 1, 2]); - expect(vertices).toEqual([0, 0, 1, 0, 1, 1, 0, 1]); - expect(size).toEqual(2); - }); -}); diff --git a/packages/layers/src/polygon/index.ts b/packages/layers/src/polygon/index.ts deleted file mode 100644 index 52e663069b..0000000000 --- a/packages/layers/src/polygon/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { IEncodeFeature } from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import PolygonModels, { PolygonModelType } from './models/'; - -interface IPolygonLayerStyleOptions { - opacity: number; -} - -export default class PolygonLayer extends BaseLayer { - public name: string = 'PolygonLayer'; - - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - this.models.forEach((model) => - model.draw({ - uniforms: this.layerModel.getUninforms(), - }), - ); - return this; - } - - protected buildModels() { - const shape = this.getModelType(); - this.layerModel = new PolygonModels[shape](this); - this.models = this.layerModel.buildModels(); - } - - private getModelType(): PolygonModelType { - const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute( - 'shape', - ); - const shape = shapeAttribute?.scale?.field as PolygonModelType; - return shape || 'fill'; - } -} diff --git a/packages/layers/src/polygon/models/extrude.ts b/packages/layers/src/polygon/models/extrude.ts deleted file mode 100644 index ac4dafc960..0000000000 --- a/packages/layers/src/polygon/models/extrude.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - ILayerPlugin, - ILogService, - IModel, - IStyleAttributeService, - lazyInject, - TYPES, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { PolygonExtrudeTriangulation } from '../../core/triangulation'; -import polygonExtrudeFrag from '../shaders/polygon_extrude_frag.glsl'; -import polygonExtrudeVert from '../shaders/polygon_extrude_vert.glsl'; -interface IPolygonLayerStyleOptions { - opacity: number; -} -export default class ExtrudeModel extends BaseModel { - public getUninforms() { - const { - opacity = 1, - } = this.layer.getStyleOptions() as IPolygonLayerStyleOptions; - return { - u_opacity: opacity, - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'polygonExtrude', - vertexShader: polygonExtrudeVert, - fragmentShader: polygonExtrudeFrag, - triangulation: PolygonExtrudeTriangulation, - }), - ]; - } - - protected registerBuiltinAttributes() { - // point layer size; - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'normal', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Normal', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.STATIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 3, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - normal: number[], - ) => { - return normal; - }, - }, - }); - - this.layer.styleAttributeService.registerStyleAttribute({ - name: 'size', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Size', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - const { size } = feature; - return Array.isArray(size) ? [size[0]] : [size as number]; - }, - }, - }); - } -} diff --git a/packages/layers/src/polygon/models/fill.ts b/packages/layers/src/polygon/models/fill.ts deleted file mode 100644 index 26c88f60aa..0000000000 --- a/packages/layers/src/polygon/models/fill.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerModel, - ILayerPlugin, - ILogService, - IModel, - IStyleAttributeService, - lazyInject, - TYPES, -} from '@l7/core'; -import BaseModel from '../../core/baseModel'; -import { polygonTriangulation } from '../../core/triangulation'; -import polygon_frag from '../shaders/polygon_frag.glsl'; -import polygon_vert from '../shaders/polygon_vert.glsl'; - -interface IPolygonLayerStyleOptions { - opacity: number; -} -export default class FillModel extends BaseModel { - public getUninforms() { - const { - opacity = 1, - } = this.layer.getStyleOptions() as IPolygonLayerStyleOptions; - return { - u_opacity: opacity, - }; - } - - public buildModels(): IModel[] { - return [ - this.layer.buildLayerModel({ - moduleName: 'polygon', - vertexShader: polygon_vert, - fragmentShader: polygon_frag, - triangulation: polygonTriangulation, - depth: { enable: false }, - }), - ]; - } - - protected registerBuiltinAttributes() { - // point layer size; - } -} diff --git a/packages/layers/src/polygon/models/index.ts b/packages/layers/src/polygon/models/index.ts deleted file mode 100644 index dd27c23e3c..0000000000 --- a/packages/layers/src/polygon/models/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import LineModel from '../../line/models/line'; -import ExtrudeModel from './extrude'; -import FillModel from './fill'; - -export type PolygonModelType = 'fill' | 'extrude' | 'line'; - -const PolygonModels: { [key in PolygonModelType]: any } = { - fill: FillModel, - line: LineModel, - extrude: ExtrudeModel, -}; - -export default PolygonModels; diff --git a/packages/layers/src/polygon/shaders/polygon_extrude_frag.glsl b/packages/layers/src/polygon/shaders/polygon_extrude_frag.glsl deleted file mode 100644 index 6a07a19084..0000000000 --- a/packages/layers/src/polygon/shaders/polygon_extrude_frag.glsl +++ /dev/null @@ -1,10 +0,0 @@ -uniform float u_opacity: 1.0; -varying vec4 v_Color; - -#pragma include "picking" - -void main() { - gl_FragColor = v_Color; - gl_FragColor.a *= u_opacity; - gl_FragColor = filterColor(gl_FragColor); -} diff --git a/packages/layers/src/polygon/shaders/polygon_extrude_vert.glsl b/packages/layers/src/polygon/shaders/polygon_extrude_vert.glsl deleted file mode 100644 index c06be96eb0..0000000000 --- a/packages/layers/src/polygon/shaders/polygon_extrude_vert.glsl +++ /dev/null @@ -1,46 +0,0 @@ -precision highp float; - -#define ambientRatio 0.5 -#define diffuseRatio 0.3 -#define specularRatio 0.2 - -attribute vec4 a_Color; -attribute vec3 a_Position; -attribute vec3 a_Normal; -attribute float a_Size; -uniform mat4 u_ModelMatrix; - -varying vec4 v_Color; - -#pragma include "projection" -#pragma include "picking" - -void main() { - vec4 project_pos = project_position(vec4(a_Position.xy, project_pixel(a_Position.z * a_Size), 1.0)); - - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); - - vec3 worldPos = vec3(project_pos * u_ModelMatrix); - - vec3 worldNormal = vec3(vec4(a_Normal,1.0) * u_ModelMatrix); -// vec3 worldNormal = project_normal(a_Normal); - // //cal light weight - vec3 viewDir = normalize(u_CameraPosition - worldPos); - - vec3 lightDir = normalize(vec3(1, -10.5, 12)); - - vec3 halfDir = normalize(viewDir+lightDir); - // //lambert - float lambert = dot(worldNormal, lightDir); - //specular - float specular = pow( max(0.0, dot(worldNormal, halfDir)), 16.0); - //sum to light weight - float lightWeight = ambientRatio + diffuseRatio * lambert + specularRatio * specular; - // v_Color = a_Color; - v_Color =vec4(a_Color.rgb * lightWeight, a_Color.w); - - - - setPickingColor(a_PickingColor); -} - diff --git a/packages/layers/src/polygon/shaders/polygon_frag.glsl b/packages/layers/src/polygon/shaders/polygon_frag.glsl deleted file mode 100644 index 6a07a19084..0000000000 --- a/packages/layers/src/polygon/shaders/polygon_frag.glsl +++ /dev/null @@ -1,10 +0,0 @@ -uniform float u_opacity: 1.0; -varying vec4 v_Color; - -#pragma include "picking" - -void main() { - gl_FragColor = v_Color; - gl_FragColor.a *= u_opacity; - gl_FragColor = filterColor(gl_FragColor); -} diff --git a/packages/layers/src/polygon/shaders/polygon_vert.glsl b/packages/layers/src/polygon/shaders/polygon_vert.glsl deleted file mode 100644 index 8f83442e9c..0000000000 --- a/packages/layers/src/polygon/shaders/polygon_vert.glsl +++ /dev/null @@ -1,19 +0,0 @@ -attribute vec4 a_Color; -attribute vec3 a_Position; -attribute vec3 a_Normal; -attribute float a_Size; -uniform mat4 u_ModelMatrix; - -varying vec4 v_Color; - -#pragma include "projection" -#pragma include "picking" - -void main() { - v_Color = a_Color; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); - - setPickingColor(a_PickingColor); -} - diff --git a/packages/layers/src/raster/buffers/triangulation.ts b/packages/layers/src/raster/buffers/triangulation.ts deleted file mode 100644 index be96cf697b..0000000000 --- a/packages/layers/src/raster/buffers/triangulation.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { IEncodeFeature, IParseDataItem } from '@l7/core'; -// @ts-ignore -import Martini from '@mapbox/martini'; -export function RasterTriangulation(parserData: IParseDataItem) { - const { coordinates, data, min, max, width, height } = parserData; - const maxlength = Math.max(width, height); - const gridSize = Math.pow(2, Math.ceil(Math.log2(maxlength))) + 1; - const terrain = new Float32Array(gridSize * gridSize); - for (let i = 0; i < width; i++) { - for (let j = 0; j < height; j++) { - terrain[i * gridSize + j] = data[i * width + j]; - } - } - const martini = new Martini(gridSize); - const tile = martini.createTile(terrain); - const mesh = tile.getMesh(gridSize / 2); - return { - vertices: Array.from(mesh.vertices) as number[], - indices: Array.from(mesh.triangles) as number[], - size: 2, - }; -} diff --git a/packages/layers/src/raster/image.ts b/packages/layers/src/raster/image.ts deleted file mode 100644 index 2c8e24b440..0000000000 --- a/packages/layers/src/raster/image.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerPlugin, - ILogService, - IStyleAttributeService, - ITexture2D, - lazyInject, - TYPES, -} from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import { RasterImageTriangulation } from '../core/triangulation'; -import rasterImageFrag from './shaders/image_frag.glsl'; -import rasterImageVert from './shaders/image_vert.glsl'; -interface IPointLayerStyleOptions { - opacity: number; -} - -export default class ImageLayer extends BaseLayer { - public name: string = 'ImageLayer'; - protected texture: ITexture2D; - - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - const { opacity } = this.getStyleOptions(); - if (this.texture) { - this.models.forEach((model) => - model.draw({ - uniforms: { - u_opacity: opacity || 1, - u_texture: this.texture, - }, - }), - ); - } - - return this; - } - - protected buildModels() { - this.registerBuiltinAttributes(this); - const source = this.getSource(); - const { createTexture2D } = this.rendererService; - source.data.images.then((imageData: HTMLImageElement[]) => { - this.texture = createTexture2D({ - data: imageData[0], - width: imageData[0].width, - height: imageData[0].height, - }); - this.renderModels(); - }); - this.models = [ - this.buildLayerModel({ - moduleName: 'RasterImage', - vertexShader: rasterImageVert, - fragmentShader: rasterImageFrag, - triangulation: RasterImageTriangulation, - primitive: gl.TRIANGLES, - depth: { enable: false }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - }), - ]; - } - - private registerBuiltinAttributes(layer: ILayer) { - // point layer size; - layer.styleAttributeService.registerStyleAttribute({ - name: 'uv', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Uv', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 2, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3], vertex[4]]; - }, - }, - }); - } -} diff --git a/packages/layers/src/raster/raster.ts b/packages/layers/src/raster/raster.ts deleted file mode 100644 index 6df660f36c..0000000000 --- a/packages/layers/src/raster/raster.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ILayerPlugin, - ILogService, - IRasterParserDataItem, - IStyleAttributeService, - ITexture2D, - lazyInject, - TYPES, -} from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import { generateColorRamp, IColorRamp } from '../utils/color'; -import { RasterTriangulation } from './buffers/triangulation'; -import rasterFrag from './shaders/raster_frag.glsl'; -import rasterVert from './shaders/raster_vert.glsl'; -interface IRasterLayerStyleOptions { - opacity: number; - min: number; - max: number; - extent: [number, number, number, number]; - rampColors: IColorRamp; - heightRatio: number; -} - -export default class RasterLayer extends BaseLayer { - public name: string = 'e'; - protected texture: ITexture2D; - protected colorTexture: ITexture2D; - - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - const { opacity, heightRatio = 10 } = this.getStyleOptions(); - const parserDataItem = this.getSource().data.dataArray[0]; - const { coordinates, width, height, min, max } = parserDataItem; - this.models.forEach((model) => - model.draw({ - uniforms: { - u_opacity: opacity || 1, - u_texture: this.texture, - u_min: min, - u_width: width, - u_height: height, - u_max: max, - u_heightRatio: heightRatio, - u_colorTexture: this.colorTexture, - u_extent: [...coordinates[0], ...coordinates[1]], - }, - }), - ); - - return this; - } - - protected buildModels() { - const parserDataItem = this.getSource().data.dataArray[0]; - const { createTexture2D } = this.rendererService; - this.texture = createTexture2D({ - data: parserDataItem.data, - width: parserDataItem.width, - height: parserDataItem.height, - format: gl.LUMINANCE, - type: gl.FLOAT, - aniso: 4, - }); - const { rampColors } = this.getStyleOptions(); - const imageData = generateColorRamp(rampColors as IColorRamp); - this.colorTexture = createTexture2D({ - data: imageData.data, - width: imageData.width, - height: imageData.height, - flipY: true, - }); - this.models = [this.buildRasterModel()]; - } - private buildRasterModel() { - const source = this.getSource(); - const sourceFeature = source.data.dataArray[0]; - const triangulation = RasterTriangulation(sourceFeature); - this.shaderModuleService.registerModule('raster', { - vs: rasterVert, - fs: rasterFrag, - }); - - const { vs, fs, uniforms } = this.shaderModuleService.getModule('raster'); - const { - createAttribute, - createElements, - createBuffer, - createModel, - } = this.rendererService; - return createModel({ - vs, - fs, - attributes: { - a_Position: createAttribute({ - buffer: createBuffer({ - data: triangulation.vertices, - type: gl.FLOAT, - }), - size: 2, - }), - }, - primitive: gl.TRIANGLES, - uniforms: { - ...uniforms, - }, - depth: { - enable: true, - }, - elements: createElements({ - data: triangulation.indices, - type: gl.UNSIGNED_INT, - count: triangulation.indices.length, - }), - }); - } -} diff --git a/packages/layers/src/raster/raster2d.ts b/packages/layers/src/raster/raster2d.ts deleted file mode 100644 index c805aadbfe..0000000000 --- a/packages/layers/src/raster/raster2d.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { - AttributeType, - gl, - IEncodeFeature, - ILayer, - ITexture2D, -} from '@l7/core'; -import BaseLayer from '../core/BaseLayer'; -import { RasterImageTriangulation } from '../core/triangulation'; -import { generateColorRamp, IColorRamp } from '../utils/color'; -import rasterImageFrag from './shaders/raster_2d_frag.glsl'; -import rasterImageVert from './shaders/raster_2d_vert.glsl'; -interface IRasterLayerStyleOptions { - opacity: number; - min: number; - max: number; - rampColors: IColorRamp; -} - -export default class Raster2dLayer extends BaseLayer { - public name: string = 'RasterLayer'; - protected texture: ITexture2D; - protected colorTexture: ITexture2D; - - protected getConfigSchema() { - return { - properties: { - opacity: { - type: 'number', - minimum: 0, - maximum: 1, - }, - }, - }; - } - - protected renderModels() { - const { opacity } = this.getStyleOptions(); - const parserDataItem = this.getSource().data.dataArray[0]; - const { min, max } = parserDataItem; - if (this.texture) { - this.models.forEach((model) => - model.draw({ - uniforms: { - u_opacity: opacity || 1, - u_texture: this.texture, - u_min: min, - u_max: max, - u_colorTexture: this.colorTexture, - }, - }), - ); - } - - return this; - } - - protected buildModels() { - this.registerBuiltinAttributes(this); - const source = this.getSource(); - const { createTexture2D } = this.rendererService; - const parserDataItem = this.getSource().data.dataArray[0]; - this.texture = createTexture2D({ - data: parserDataItem.data, - width: parserDataItem.width, - height: parserDataItem.height, - format: gl.LUMINANCE, - type: gl.FLOAT, - aniso: 4, - }); - const { rampColors } = this.getStyleOptions(); - const imageData = generateColorRamp(rampColors as IColorRamp); - this.colorTexture = createTexture2D({ - data: imageData.data, - width: imageData.width, - height: imageData.height, - flipY: true, - }); - this.models = [ - this.buildLayerModel({ - moduleName: 'Raster3DImage', - vertexShader: rasterImageVert, - fragmentShader: rasterImageFrag, - triangulation: RasterImageTriangulation, - primitive: gl.TRIANGLES, - depth: { enable: false }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, - }), - ]; - } - - private registerBuiltinAttributes(layer: ILayer) { - // point layer size; - layer.styleAttributeService.registerStyleAttribute({ - name: 'uv', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Uv', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 2, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3], vertex[4]]; - }, - }, - }); - } -} diff --git a/packages/layers/src/raster/shaders/image_frag.glsl b/packages/layers/src/raster/shaders/image_frag.glsl deleted file mode 100644 index 91901e16b2..0000000000 --- a/packages/layers/src/raster/shaders/image_frag.glsl +++ /dev/null @@ -1,8 +0,0 @@ -precision mediump float; -uniform float u_opacity: 1.0; -uniform sampler2D u_texture; -varying vec2 v_texCoord; -void main() { - vec4 color = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)); - gl_FragColor = color; -} diff --git a/packages/layers/src/raster/shaders/image_vert.glsl b/packages/layers/src/raster/shaders/image_vert.glsl deleted file mode 100644 index 0d317c7e3f..0000000000 --- a/packages/layers/src/raster/shaders/image_vert.glsl +++ /dev/null @@ -1,11 +0,0 @@ -precision highp float; -uniform mat4 u_ModelMatrix; -attribute vec3 a_Position; -attribute vec2 a_Uv; -varying vec2 v_texCoord; -#pragma include "projection" -void main() { - v_texCoord = a_Uv; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0)); -} diff --git a/packages/layers/src/raster/shaders/raster_2d_frag.glsl b/packages/layers/src/raster/shaders/raster_2d_frag.glsl deleted file mode 100644 index b2be740612..0000000000 --- a/packages/layers/src/raster/shaders/raster_2d_frag.glsl +++ /dev/null @@ -1,18 +0,0 @@ -precision mediump float; -uniform float u_opacity: 1.0; -uniform sampler2D u_texture; -uniform sampler2D u_colorTexture; -uniform float u_min; -uniform float u_max; -varying vec2 v_texCoord; - -void main() { - - float value = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).a; - value = clamp(value,u_min,u_max); - float value1 = (value - u_min) / (u_max -u_min); - vec2 ramp_pos = vec2( - fract(16.0 * (1.0 - value1)), - floor(16.0 * (1.0 - value1)) / 16.0); - gl_FragColor = texture2D(u_colorTexture,ramp_pos);; -} diff --git a/packages/layers/src/raster/shaders/raster_2d_vert.glsl b/packages/layers/src/raster/shaders/raster_2d_vert.glsl deleted file mode 100644 index 0d317c7e3f..0000000000 --- a/packages/layers/src/raster/shaders/raster_2d_vert.glsl +++ /dev/null @@ -1,11 +0,0 @@ -precision highp float; -uniform mat4 u_ModelMatrix; -attribute vec3 a_Position; -attribute vec2 a_Uv; -varying vec2 v_texCoord; -#pragma include "projection" -void main() { - v_texCoord = a_Uv; - vec4 project_pos = project_position(vec4(a_Position, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0)); -} diff --git a/packages/layers/src/raster/shaders/raster_frag.glsl b/packages/layers/src/raster/shaders/raster_frag.glsl deleted file mode 100644 index 8c56cd6d8d..0000000000 --- a/packages/layers/src/raster/shaders/raster_frag.glsl +++ /dev/null @@ -1,9 +0,0 @@ -varying vec4 v_color; -uniform float u_opacity: 1.0; -#define PI 3.141592653589793 - -void main() { - gl_FragColor = v_color; - gl_FragColor.a *= u_opacity; - -} diff --git a/packages/layers/src/raster/shaders/raster_vert.glsl b/packages/layers/src/raster/shaders/raster_vert.glsl deleted file mode 100644 index 7ada3b09ce..0000000000 --- a/packages/layers/src/raster/shaders/raster_vert.glsl +++ /dev/null @@ -1,40 +0,0 @@ -precision highp float; -attribute vec3 a_Position; -uniform mat4 u_ModelMatrix; -uniform vec4 u_extent; -uniform sampler2D u_texture; -uniform sampler2D u_colorTexture; -uniform float u_min; -uniform float u_max; -uniform float u_width; -uniform float u_height; -uniform float u_heightRatio; - -varying vec2 v_texCoord; -varying vec4 v_color; - -#pragma include "projection" -void main() { - vec2 uv = a_Position.xy / vec2(u_width, u_height); - vec2 minxy = project_position(vec4(u_extent.xy, 0, 1.0)).xy; - vec2 maxxy = project_position(vec4(u_extent.zw, 0, 1.0)).xy; - float value = texture2D(u_texture, vec2(uv.x,1.0 - uv.y)).x; - vec2 step = (maxxy - minxy) / vec2(u_width, u_height); - vec2 pos = minxy + vec2(a_Position.x, a_Position.y ) * step; - // v_texCoord = a_Uv; - value = clamp(value,u_min,u_max); - float value1 = (value - u_min) / (u_max -u_min); - vec2 ramp_pos = vec2( - fract(16.0 * (1.0 - value1)), - floor(16.0 * (1.0 - value1)) / 16.0); - v_color = texture2D(u_colorTexture,ramp_pos); - - // if(uv.x > 1.0 || uv.y > 1.0) { - // v_color = vec4(0.); - // } - - // vec2 range = u_extent.zw - u_extent.xy; - // vec4 project_pos = project_position(vec4(pos, 0, 1.0)); - gl_Position = project_common_position_to_clipspace(vec4(pos.xy, project_scale(value) * u_heightRatio, 1.0)); - -} diff --git a/packages/layers/src/utils/color.ts b/packages/layers/src/utils/color.ts deleted file mode 100644 index 20cbcff16e..0000000000 --- a/packages/layers/src/utils/color.ts +++ /dev/null @@ -1,36 +0,0 @@ -import * as d3 from 'd3-color'; -export interface IColorRamp { - positions: number[]; - colors: string[]; -} -export function rgb2arr(str: string) { - const color = d3.color(str) as d3.RGBColor; - const arr = [0, 0, 0, 0]; - if (color != null) { - arr[0] = color.r / 255; - arr[1] = color.g / 255; - arr[2] = color.b / 255; - arr[3] = color.opacity; - } - return arr; -} - -export function generateColorRamp(colorRamp: IColorRamp): ImageData { - const canvas = document.createElement('canvas'); - const ctx = canvas.getContext('2d') as CanvasRenderingContext2D; - canvas.width = 256; - canvas.height = 1; - const gradient = ctx.createLinearGradient(0, 0, 256, 0); - let data = null; - const min = colorRamp.positions[0]; - const max = colorRamp.positions[colorRamp.positions.length - 1]; - for (let i = 0; i < colorRamp.colors.length; ++i) { - const value = (colorRamp.positions[i] - min) / (max - min); - gradient.addColorStop(value, colorRamp.colors[i]); - } - ctx.fillStyle = gradient; - ctx.fillRect(0, 0, 256, 1); - data = new Uint8ClampedArray(ctx.getImageData(0, 0, 256, 1).data); - - return new ImageData(data, 16, 16); -} diff --git a/packages/layers/src/utils/polylineNormal.ts b/packages/layers/src/utils/polylineNormal.ts deleted file mode 100644 index 3ac7ee0d54..0000000000 --- a/packages/layers/src/utils/polylineNormal.ts +++ /dev/null @@ -1,232 +0,0 @@ -import { aProjectFlat, lngLatToMeters, Point } from '@l7/utils'; -import { vec2 } from 'gl-matrix'; -export function computeMiter( - tangent: vec2, - miter: vec2, - lineA: vec2, - lineB: vec2, - halfThick: number, -) { - vec2.add(tangent, lineA, lineB); - vec2.normalize(tangent, tangent); - miter = vec2.fromValues(-tangent[1], tangent[0]); - const tmp = vec2.fromValues(-lineA[1], lineA[0]); - return halfThick / vec2.dot(miter, tmp); -} -export function computeNormal(out: vec2, dir: vec2) { - return vec2.set(out, -dir[1], dir[0]); -} -export function direction(out: vec2, a: vec2, b: vec2) { - const a1 = aProjectFlat([a[0], a[1]]); - const b1 = aProjectFlat([b[0], b[1]]); - vec2.sub(out, a1, b1); - vec2.normalize(out, out); - return out; -} -function extrusions( - positions: number[], - out: number[], - miters: number[], - point: vec2, - normal: vec2, - scale: number, -) { - addNext(out, miters, normal, -scale); - addNext(out, miters, normal, scale); - positions.push(point[0], point[1], 0); - positions.push(point[0], point[1], 0); -} - -function addNext( - out: number[], - miters: number[], - normal: vec2, - length: number, -) { - out.push(normal[0], normal[1], 0); - miters.push(length); -} - -function lineSegmentDistance(end: vec2, start: vec2) { - const a1 = aProjectFlat([start[0], start[1]]); - const b1 = aProjectFlat([end[0], end[1]]); - const dx = a1[0] - b1[0]; - const dy = a1[1] - b1[1]; - return Math.sqrt(dx * dx + dy * dy); -} - -function isPointEqual(a: vec2, b: vec2) { - return a[0] === b[0] && a[1] === b[1]; -} - -export default function( - points: number[][], - closed: boolean, - indexOffset: number, -) { - const lineA = vec2.fromValues(0, 0); - const lineB = vec2.fromValues(0, 0); - const tangent = vec2.fromValues(0, 0); - const miter: vec2 = vec2.create(); - let started = false; - let lineNormal = null; - const tmp = vec2.create(); - let count = indexOffset || 0; - const miterLimit = 3; - - const out: number[] = []; - const attrPos: number[] = []; - const attrIndex: number[] = []; - const miters: number[] = []; - const attrDistance = [0, 0]; - if (closed) { - points = points.slice(); - points.push(points[0]); - } - - const total = points.length; - - for (let i = 1; i < total; i++) { - const index = count; - const last = vec2.fromValues(points[i - 1][0], points[i - 1][1]); - const cur = vec2.fromValues(points[i][0], points[i][1]); - let next = - i < points.length - 1 - ? vec2.fromValues(points[i + 1][0], points[i + 1][1]) - : null; - // 如果当前点和前一点相同,跳过 - if (isPointEqual(last, cur)) { - continue; - } - if (next) { - let nextIndex = i + 1; - // 找到不相同的下一点 - while (next && isPointEqual(cur, next)) { - next = - nextIndex < points.length - 1 - ? vec2.fromValues(points[++nextIndex][0], points[nextIndex][1]) - : null; - } - } - const lineDistance = lineSegmentDistance(cur, last); - const d = lineDistance + attrDistance[attrDistance.length - 1]; - direction(lineA, cur, last); - if (!lineNormal) { - lineNormal = vec2.create(); - computeNormal(lineNormal, lineA); - } - - if (!started) { - started = true; - extrusions(attrPos, out, miters, last, lineNormal, 1); - } - - attrIndex.push(index + 0, index + 2, index + 1); - - // no miter, simple segment - if (!next) { - // reset normal - computeNormal(lineNormal, lineA); - extrusions(attrPos, out, miters, cur, lineNormal, 1); - attrDistance.push(d, d); - attrIndex.push(index + 1, index + 2, index + 3); - count += 2; - } else { - // get unit dir of next line - direction(lineB, next, cur); - - // stores tangent & miter - let miterLen = computeMiter( - tangent, - vec2.fromValues(miter[0], miter[1]), - lineA, - lineB, - 1, - ); - - // get orientation - const flip = vec2.dot(tangent, lineNormal) < 0 ? -1 : 1; - const bevel = Math.abs(miterLen) > miterLimit; - - // 处理前后两条线段重合的情况,这种情况不需要使用任何接头(miter/bevel)。 - // 理论上这种情况下 miterLen = Infinity,本应通过 isFinite(miterLen) 判断, - // 但是 AMap 投影变换后丢失精度,只能通过一个阈值(1000)判断。 - - if (Math.abs(miterLen) > 1000) { - extrusions(attrPos, out, miters, cur, lineNormal, 1); - attrIndex.push(index + 1, index + 2, index + 3); - attrIndex.push(index + 2, index + 4, index + 3); - computeNormal(tmp, lineB); - vec2.copy(lineNormal, tmp); // store normal for next round - - extrusions(attrPos, out, miters, cur, lineNormal, 1); - attrDistance.push(d, d, d, d); - - // the miter is now the normal for our next join - count += 4; - continue; - } - - if (bevel) { - miterLen = miterLimit; - - // next two points in our first segment - extrusions(attrPos, out, miters, cur, lineNormal, 1); - - attrIndex.push(index + 1, index + 2, index + 3); - - // now add the bevel triangle - attrIndex.push( - ...(flip === 1 - ? [index + 2, index + 4, index + 5] - : [index + 4, index + 5, index + 3]), - ); - - computeNormal(tmp, lineB); - vec2.copy(lineNormal, tmp); // store normal for next round - - extrusions(attrPos, out, miters, cur, lineNormal, 1); - attrDistance.push(d, d, d, d); - - // the miter is now the normal for our next join - count += 4; - } else { - // next two points in our first segment - extrusions(attrPos, out, miters, cur, lineNormal, 1); - attrIndex.push(index + 1, index + 2, index + 3); - - // now add the miter triangles - addNext(out, miters, lineNormal, miterLen * -flip); - attrPos.push(cur[0], cur[1], 0); - attrIndex.push(index + 2, index + 4, index + 3); - attrIndex.push(index + 4, index + 5, index + 6); - computeNormal(tmp, lineB); - vec2.copy(lineNormal, tmp); // store normal for next round - - extrusions(attrPos, out, miters, cur, lineNormal, 1); - attrDistance.push(d, d, d, d, d); - - // the miter is now the normal for our next join - count += 5; - } - } - } - const pickData = []; - for (let i = 0; i < miters.length; i++) { - const totalDistance = attrDistance[attrDistance.length - 1]; - pickData.push( - attrPos[i * 3], - attrPos[i * 3 + 1], - attrPos[i * 3 + 1], - attrDistance[i], - miters[i], - totalDistance, - ); - } - return { - normals: out, - attrIndex, - attrPos: pickData, // [x,y,z, distance, miter ] - }; -} -// [x,y,z, distance, miter ] diff --git a/packages/layers/src/utils/symbol-layout.ts b/packages/layers/src/utils/symbol-layout.ts deleted file mode 100644 index 204e192395..0000000000 --- a/packages/layers/src/utils/symbol-layout.ts +++ /dev/null @@ -1,260 +0,0 @@ -/** - * 返回文本相对锚点位置 - * @param {string} anchor 锚点位置 - * @return {alignment} alignment - */ -function getAnchorAlignment(anchor: string) { - let horizontalAlign = 0.5; - let verticalAlign = 0.5; - - switch (anchor) { - case 'right': - case 'top-right': - case 'bottom-right': - horizontalAlign = 1; - break; - case 'left': - case 'top-left': - case 'bottom-left': - horizontalAlign = 0; - break; - default: - horizontalAlign = 0.5; - } - - switch (anchor) { - case 'bottom': - case 'bottom-right': - case 'bottom-left': - verticalAlign = 1; - break; - case 'top': - case 'top-right': - case 'top-left': - verticalAlign = 0; - break; - default: - verticalAlign = 0.5; - } - - return { horizontalAlign, verticalAlign }; -} - -// justify right = 1, left = 0, center = 0.5 -function justifyLine( - positionedGlyphs: any, - glyphMap: any, - start: number, - end: number, - justify: number, -) { - if (!justify) { - return; - } - - const lastPositionedGlyph = positionedGlyphs[end]; - const glyph = lastPositionedGlyph.glyph; - if (glyph) { - const lastAdvance = glyphMap[glyph].advance * lastPositionedGlyph.scale; - const lineIndent = (positionedGlyphs[end].x + lastAdvance) * justify; - - for (let j = start; j <= end; j++) { - positionedGlyphs[j].x -= lineIndent; - } - } -} - -// justify right=1 left=0 center=0.5 -// horizontalAlign right=1 left=0 center=0.5 -// verticalAlign right=1 left=0 center=0.5 -function align( - positionedGlyphs: any[], - justify: number, - horizontalAlign: number, - verticalAlign: number, - maxLineLength: number, - lineHeight: number, - lineCount: number, -) { - const shiftX = (justify - horizontalAlign) * maxLineLength; - const shiftY = (-verticalAlign * lineCount + 0.5) * lineHeight; - - for (const glyphs of positionedGlyphs) { - glyphs.x += shiftX; - glyphs.y += shiftY; - } -} - -function shapeLines( - shaping: any, - glyphMap: any, - lines: any[], - lineHeight: number, - textAnchor: string, - textJustify: string, - spacing: number, -) { - // buffer 为 4 - const yOffset = -8; - - let x = 0; - let y = yOffset; - - let maxLineLength = 0; - const positionedGlyphs = shaping.positionedGlyphs; - - const justify = - textJustify === 'right' ? 1 : textJustify === 'left' ? 0 : 0.5; - - const lineStartIndex = positionedGlyphs.length; - lines.forEach((line) => { - line.split('').forEach((char: string) => { - const glyph = glyphMap[char]; - const baselineOffset = 0; - - if (glyph) { - positionedGlyphs.push({ - glyph: char, - x, - y: y + baselineOffset, - vertical: false, // TODO:目前只支持水平方向 - scale: 1, - metrics: glyph, - }); - x += glyph.advance + spacing; - } - }); - - // 左右对齐 - if (positionedGlyphs.length !== lineStartIndex) { - const lineLength = x - spacing; - maxLineLength = Math.max(lineLength, maxLineLength); - justifyLine( - positionedGlyphs, - glyphMap, - lineStartIndex, - positionedGlyphs.length - 1, - justify, - ); - } - - x = 0; - y += lineHeight; - }); - - const { horizontalAlign, verticalAlign } = getAnchorAlignment(textAnchor); - align( - positionedGlyphs, - justify, - horizontalAlign, - verticalAlign, - maxLineLength, - lineHeight, - lines.length, - ); - - // 计算包围盒 - const height = y - yOffset; - - shaping.top += -verticalAlign * height; - shaping.bottom = shaping.top + height; - shaping.left += -horizontalAlign * maxLineLength; - shaping.right = shaping.left + maxLineLength; -} - -/** - * 计算文本中每个独立字符相对锚点的位置 - * - * @param {string} text 原始文本 - * @param {*} glyphs mapping - * @param {number} lineHeight 行高 - * @param {string} textAnchor 文本相对于锚点的位置 - * @param {string} textJustify 左右对齐 - * @param {number} spacing 字符间距 - * @param {[number, number]} translate 文本水平 & 垂直偏移量 - * @return {boolean|shaping} 每个字符相对于锚点的位置 - */ -export function shapeText( - text: string, - glyphs: any, - lineHeight: number, - textAnchor: string, - textJustify: string, - spacing: number, - translate: [number, number], -) { - // TODO:处理换行 - const lines = text.split('\n'); - - const positionedGlyphs: any[] = []; - const shaping = { - positionedGlyphs, - top: translate[1], - bottom: translate[1], - left: translate[0], - right: translate[0], - lineCount: lines.length, - text, - }; - - shapeLines( - shaping, - glyphs, - lines, - lineHeight, - textAnchor, - textJustify, - spacing, - ); - if (!positionedGlyphs.length) { - return false; - } - - return shaping; -} - -export function getGlyphQuads( - shaping: any, - textOffset: [number, number], - alongLine: boolean, -) { - const { positionedGlyphs } = shaping; - const quads = []; - - for (const positionedGlyph of positionedGlyphs) { - const rect = positionedGlyph.metrics; - - // The rects have an addditional buffer that is not included in their size. - const rectBuffer = 4; - - const halfAdvance = (rect.advance * positionedGlyph.scale) / 2; - - const glyphOffset = alongLine - ? [positionedGlyph.x + halfAdvance, positionedGlyph.y] - : [0, 0]; - - const builtInOffset = alongLine - ? [0, 0] - : [ - positionedGlyph.x + halfAdvance + textOffset[0], - positionedGlyph.y + textOffset[1], - ]; - - const x1 = - (0 - rectBuffer) * positionedGlyph.scale - halfAdvance + builtInOffset[0]; - const y1 = (0 - rectBuffer) * positionedGlyph.scale + builtInOffset[1]; - const x2 = x1 + rect.width * positionedGlyph.scale; - const y2 = y1 + rect.height * positionedGlyph.scale; - - const tl = { x: x1, y: y1 }; - const tr = { x: x2, y: y1 }; - const bl = { x: x1, y: y2 }; - const br = { x: x2, y: y2 }; - - // TODO:处理字符旋转的情况 - - quads.push({ tl, tr, bl, br, tex: rect, glyphOffset }); - } - - return quads; -} diff --git a/packages/layers/tsconfig.build.json b/packages/layers/tsconfig.build.json deleted file mode 100644 index 17f6c4525a..0000000000 --- a/packages/layers/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/packages/maps/.gitignore b/packages/maps/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/maps/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/maps/package.json b/packages/maps/package.json deleted file mode 100644 index bbc9cfa1d2..0000000000 --- a/packages/maps/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "@l7/maps", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": false, - "files": [ - "lib", - "es", - "typings/index.d.ts", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments" - }, - "author": "xiaoiver", - "license": "ISC", - "dependencies": { - "@l7/core": "^0.0.1", - "@l7/utils": "0.0.1", - "gl-matrix": "^3.1.0", - "inversify": "^5.0.1", - "mapbox-gl": "^1.2.1", - "viewport-mercator-project": "^6.2.1" - }, - "devDependencies": { - "@types/amap-js-api": "^1.4.6", - "@types/gl-matrix": "^2.4.5", - "@types/mapbox-gl": "^0.54.3", - "@types/viewport-mercator-project": "^6.1.0" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/maps/src/amap/Viewport.ts b/packages/maps/src/amap/Viewport.ts deleted file mode 100644 index d7b63e5ca5..0000000000 --- a/packages/maps/src/amap/Viewport.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { IMapCamera, IViewport } from '@l7/core'; -import { mat4, vec3 } from 'gl-matrix'; - -const DEGREES_TO_RADIANS = Math.PI / 180; - -export default class Viewport implements IViewport { - private projectionMatrix: mat4 = mat4.create(); - private viewMatrix: mat4 = mat4.create(); - private viewProjectionMatrix: mat4 = mat4.create(); - private viewUncenteredMatrix: mat4 = mat4.create(); - private zoom: number; - private center: number[]; - - public syncWithMapCamera(mapCamera: Partial) { - const { - zoom = 1, - pitch = 0, - bearing = 0, - center = [0, 0], - offsetOrigin = [0, 0], - cameraHeight = 1, - aspect = 1, - near = 0.1, - far = 1000, - fov = 0, - } = mapCamera; - this.zoom = zoom; - this.center = center; - - const pitchInRadians = pitch * DEGREES_TO_RADIANS; - const rotationInRadians = (360 - bearing) * DEGREES_TO_RADIANS; - - // 计算透视投影矩阵 projectionMatrix - mat4.perspective(this.projectionMatrix, fov, aspect, near, far); - - // 计算相机矩阵 viewMatrix - const eye = vec3.fromValues( - cameraHeight * Math.sin(pitchInRadians) * Math.sin(rotationInRadians), - -cameraHeight * Math.sin(pitchInRadians) * Math.cos(rotationInRadians), - cameraHeight * Math.cos(pitchInRadians), - ); - const up = vec3.fromValues( - -Math.cos(pitchInRadians) * Math.sin(rotationInRadians), - Math.cos(pitchInRadians) * Math.cos(rotationInRadians), - Math.sin(pitchInRadians), - ); - mat4.lookAt(this.viewMatrix, eye, vec3.fromValues(0, 0, 0), up); - - // 移动相机位置 - mat4.translate( - this.viewMatrix, - this.viewMatrix, - vec3.fromValues(-offsetOrigin[0], offsetOrigin[1], 0), - ); - - mat4.multiply( - this.viewProjectionMatrix, - this.projectionMatrix, - this.viewMatrix, - ); - } - - public getZoom(): number { - return this.zoom; - } - - public getZoomScale(): number { - // 512 尺寸下的缩放:2 ^ 19 - return 524288; - } - - public getCenter(): [number, number] { - const [lng, lat] = this.center; - return [lng, lat]; - } - - public getProjectionMatrix(): number[] { - // @ts-ignore - return this.projectionMatrix; - } - - public getViewMatrix(): number[] { - // @ts-ignore - return this.viewMatrix; - } - - public getViewMatrixUncentered(): number[] { - // @ts-ignore - return this.viewUncenteredMatrix; - } - public getViewProjectionMatrix(): number[] { - // @ts-ignore - return this.viewProjectionMatrix; - } - - public getFocalDistance() { - return 1; - } - - /** - * P20 坐标系,固定 scale - */ - public projectFlat( - lngLat: [number, number], - scale?: number | undefined, - ): [number, number] { - const maxs = 85.0511287798; - const lat = Math.max(Math.min(maxs, lngLat[1]), -maxs); - // tslint:disable-next-line:no-bitwise - const zoomScale = 256 << 20; - let d = Math.PI / 180; - let x = lngLat[0] * d; - let y = lat * d; - y = Math.log(Math.tan(Math.PI / 4 + y / 2)); - const a = 0.5 / Math.PI; - const b = 0.5; - const c = -0.5 / Math.PI; - d = 0.5; - x = zoomScale * (a * x + b) - 215440491; - y = -(zoomScale * (c * y + d) - 106744817); - return [x, y]; - } -} diff --git a/packages/maps/src/amap/index.ts b/packages/maps/src/amap/index.ts deleted file mode 100644 index cc715e0a1a..0000000000 --- a/packages/maps/src/amap/index.ts +++ /dev/null @@ -1,296 +0,0 @@ -/** - * AMapService - */ -import { - Bounds, - CoordinateSystem, - ICoordinateSystemService, - ILngLat, - IMapConfig, - IMapService, - IPoint, - IViewport, - MapServiceEvent, - MapType, - TYPES, -} from '@l7/core'; -import { DOM } from '@l7/utils'; -import { inject, injectable } from 'inversify'; -import { IAMapEvent, IAMapInstance } from '../../typings/index'; -import { MapTheme } from './theme'; -import Viewport from './Viewport'; - -const AMAP_API_KEY: string = '15cd8a57710d40c9b7c0e3cc120f1200'; -const AMAP_VERSION: string = '1.4.15'; -const LNGLAT_OFFSET_ZOOM_THRESHOLD = 12; - -/** - * AMapService - */ -@injectable() -export default class AMapService implements IMapService { - public map: AMap.Map & IAMapInstance; - - @inject(TYPES.ICoordinateSystemService) - private readonly coordinateSystemService: ICoordinateSystemService; - @inject(TYPES.IEventEmitter) - private eventEmitter: any; - private markerContainer: HTMLElement; - private $mapContainer: HTMLElement | null; - private $jsapi: HTMLScriptElement; - - private viewport: Viewport; - - private cameraChangedCallback: (viewport: IViewport) => void; - - // init - public addMarkerContainer(): void { - const mapContainer = this.map.getContainer(); - if (mapContainer !== null) { - const amap = mapContainer.getElementsByClassName( - 'amap-maps', - )[0] as HTMLElement; - this.markerContainer = DOM.create('div', 'l7-marker-container', amap); - } - } - public getMarkerContainer(): HTMLElement { - return this.markerContainer; - } - - // map event - public on(type: string, handler: (...args: any[]) => void): void { - if (MapServiceEvent.indexOf(type) !== -1) { - this.eventEmitter.on(type, handler); - } else { - this.map.on(type, handler); - } - } - public off(type: string, handler: (...args: any[]) => void): void { - if (MapServiceEvent.indexOf(type) !== -1) { - this.eventEmitter.off(type, handler); - } else { - this.map.off(type, handler); - } - } - - public getContainer(): HTMLElement | null { - return this.map.getContainer(); - } - - public getSize(): [number, number] { - const size = this.map.getSize(); - return [size.getWidth(), size.getHeight()]; - } - - public getType() { - return MapType.amap; - } - public getZoom(): number { - return this.map.getZoom(); - } - public getCenter(): ILngLat { - const center = this.map.getCenter(); - return { - lng: center.getLng(), - lat: center.getLat(), - }; - } - - public getPitch(): number { - return this.map.getPitch(); - } - - public getRotation(): number { - return this.map.getRotation(); - } - - public getBounds(): Bounds { - // @ts-ignore - const amapBound = this.map.getBounds().toBounds(); - const NE = amapBound.getNorthEast(); - const SW = amapBound.getSouthWest(); - return [ - [NE.getLng(), NE.getLat()], - [SW.getLng(), SW.getLat()], - ]; - } - - public getMinZoom(): number { - const zooms = this.map.get('zooms') as [number, number]; - return zooms[0]; - } - public getMaxZoom(): number { - const zooms = this.map.get('zooms') as [number, number]; - return zooms[1]; - } - public setRotation(rotation: number): void { - return this.map.setRotation(rotation); - } - - public zoomIn(): void { - this.map.zoomIn(); - } - - public zoomOut(): void { - this.map.zoomOut(); - } - - public panTo(p: [number, number]): void { - this.map.panTo(p); - } - public panBy(pixel: [number, number]): void { - this.map.panTo(pixel); - } - public fitBounds(extent: Bounds): void { - this.map.setBounds( - new AMap.Bounds([extent[0][0], extent[0][1], extent[1][0], extent[1][1]]), - ); - } - public setZoomAndCenter(zoom: number, center: [number, number]): void { - this.map.setZoomAndCenter(zoom, center); - } - public setMapStyle(style: string): void { - this.map.setMapStyle(this.getMapStyle(style)); - } - public pixelToLngLat(pixel: [number, number]): ILngLat { - const lngLat = this.map.pixelToLngLat(new AMap.Pixel(pixel[0], pixel[1])); - return { lng: lngLat.getLng(), lat: lngLat.getLat() }; - } - public lngLatToPixel(lnglat: [number, number]): IPoint { - const p = this.map.lnglatToPixel(new AMap.LngLat(lnglat[0], lnglat[1])); - return { - x: p.getX(), - y: p.getY(), - }; - } - public containerToLngLat(pixel: [number, number]): ILngLat { - const ll = new AMap.Pixel(pixel[0], pixel[1]); - const lngLat = this.map.containerToLngLat(ll); - return { - lng: lngLat.getLng(), - lat: lngLat.getLat(), - }; - } - public lngLatToContainer(lnglat: [number, number]): IPoint { - const ll = new AMap.LngLat(lnglat[0], lnglat[1]); - const pixel = this.map.lngLatToContainer(ll); - return { - x: pixel.getX(), - y: pixel.getY(), - }; - } - - public async init(mapConfig: IMapConfig): Promise { - const { - id, - style = 'light', - minZoom = 0, - maxZoom = 18, - token = AMAP_API_KEY, - ...rest - } = mapConfig; - - this.$mapContainer = document.getElementById(id); - - // this.eventEmitter = container.get(TYPES.IEventEmitter); - - // tslint:disable-next-line:typedef - await new Promise((resolve) => { - // 异步加载高德地图 - // @see https://lbs.amap.com/api/javascript-api/guide/abc/load - window.onload = (): void => { - // @ts-ignore - this.map = new AMap.Map(id, { - mapStyle: this.getMapStyle(style), - zooms: [minZoom, maxZoom], - viewMode: '3D', - ...rest, - }); - - // 监听地图相机时间 - this.map.on('camerachange', this.handlerCameraChanged); - this.emit('mapload'); - resolve(); - }; - - const url: string = `https://webapi.amap.com/maps?v=${AMAP_VERSION}&key=${token}&plugin=Map3D&callback=onload`; - this.$jsapi = document.createElement('script'); - this.$jsapi.charset = 'utf-8'; - this.$jsapi.src = url; - document.head.appendChild(this.$jsapi); - }); - - this.viewport = new Viewport(); - } - public emit(name: string, ...args: any[]) { - this.eventEmitter.emit(name, ...args); - } - - public once(name: string, ...args: any[]) { - this.eventEmitter.once(name, ...args); - } - - public destroy() { - this.eventEmitter.removeAllListeners(); - if (this.map) { - this.map.destroy(); - document.head.removeChild(this.$jsapi); - } - } - - public getMapContainer() { - return this.$mapContainer; - } - - public onCameraChanged(callback: (viewport: IViewport) => void): void { - this.cameraChangedCallback = callback; - } - - private handlerCameraChanged = (e: IAMapEvent): void => { - const { - fov, - near, - far, - height, - pitch, - rotation, - aspect, - position, - } = e.camera; - const { lng, lat } = this.getCenter(); - if (this.cameraChangedCallback) { - // resync viewport - this.viewport.syncWithMapCamera({ - aspect, - // AMap 定义 rotation 为顺时针方向,而 Mapbox 为逆时针 - // @see https://docs.mapbox.com/mapbox-gl-js/api/#map#getbearing - bearing: 360 - rotation, - far, - fov, - cameraHeight: height, - near, - pitch, - // AMap 定义的缩放等级 与 Mapbox 相差 1 - zoom: this.map.getZoom() - 1, - center: [lng, lat], - offsetOrigin: [position.x, position.y], - }); - - // set coordinate system - // if (this.viewport.getZoom() > LNGLAT_OFFSET_ZOOM_THRESHOLD) { - // // TODO:偏移坐标系高德地图不支持 pitch bear 同步 - // this.coordinateSystemService.setCoordinateSystem( - // CoordinateSystem.P20_OFFSET, - // ); - // } else { - // this.coordinateSystemService.setCoordinateSystem(CoordinateSystem.P20); - // } - this.coordinateSystemService.setCoordinateSystem(CoordinateSystem.P20); - this.cameraChangedCallback(this.viewport); - } - }; - - private getMapStyle(name: string) { - return MapTheme[name] ? MapTheme[name] : name; - } -} diff --git a/packages/maps/src/amap/theme.ts b/packages/maps/src/amap/theme.ts deleted file mode 100644 index ce284d7338..0000000000 --- a/packages/maps/src/amap/theme.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const MapTheme: { - [key: string]: any; -} = { - dark: 'amap://styles/2a09079c3daac9420ee53b67307a8006?isPublic=true', - light: 'amap://styles/1fd9f8ef9751298f11f5c56968312c70?isPublic=true', - normal: 'amap://styles/12db649ba3493333b098127ed892c0cb?isPublic=true', -}; diff --git a/packages/maps/src/index.ts b/packages/maps/src/index.ts deleted file mode 100644 index b70638e8a5..0000000000 --- a/packages/maps/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import AMapService from './amap'; -import MapboxService from './mapbox'; - -export { AMapService, MapboxService }; diff --git a/packages/maps/src/mapbox/Viewport.ts b/packages/maps/src/mapbox/Viewport.ts deleted file mode 100644 index 90fa2a5e3f..0000000000 --- a/packages/maps/src/mapbox/Viewport.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { IMapCamera, IViewport } from '@l7/core'; -import WebMercatorViewport from 'viewport-mercator-project'; - -export default class Viewport implements IViewport { - private viewport: WebMercatorViewport; - - public syncWithMapCamera(mapCamera: Partial) { - const { - center, - zoom, - pitch, - bearing, - viewportHeight, - viewportWidth, - } = mapCamera; - - /** - * Deck.gl 使用的也是 Mapbox 同步相机,相机参数保持一致 - * 例如相机高度固定为 height * 1.5,因此不需要传 - */ - this.viewport = new WebMercatorViewport({ - width: viewportWidth, - height: viewportHeight, - longitude: center && center[0], - latitude: center && center[1], - zoom, - pitch, - bearing, - }); - } - - public getZoom(): number { - return this.viewport.zoom; - } - - public getZoomScale(): number { - return Math.pow(2, this.getZoom()); - } - - public getCenter(): [number, number] { - return [this.viewport.longitude, this.viewport.latitude]; - } - - public getProjectionMatrix(): number[] { - return this.viewport.projectionMatrix; - } - - public getViewMatrix(): number[] { - return this.viewport.viewMatrix; - } - - public getViewMatrixUncentered(): number[] { - // @ts-ignore - return this.viewport.viewMatrixUncentered; - } - public getViewProjectionMatrix(): number[] { - // @ts-ignore - return this.viewport.viewProjectionMatrix; - } - - public getFocalDistance() { - return 1; - } - - public projectFlat( - lngLat: [number, number], - scale?: number | undefined, - ): [number, number] { - return this.viewport.projectFlat(lngLat, scale); - } -} diff --git a/packages/maps/src/mapbox/index.ts b/packages/maps/src/mapbox/index.ts deleted file mode 100644 index d37be55f6f..0000000000 --- a/packages/maps/src/mapbox/index.ts +++ /dev/null @@ -1,274 +0,0 @@ -/** - * MapboxService - */ -import { - Bounds, - CoordinateSystem, - ICoordinateSystemService, - ILngLat, - IMapConfig, - IMapService, - IPoint, - IViewport, - MapServiceEvent, - MapType, - TYPES, -} from '@l7/core'; -import { DOM } from '@l7/utils'; -import { inject, injectable } from 'inversify'; -import mapboxgl, { IControl, Map } from 'mapbox-gl'; -import { IMapboxInstance } from '../../typings/index'; -import Viewport from './Viewport'; -const EventMap: { - [key: string]: any; -} = { - mapmove: 'move', - camerachange: 'move', -}; -import { MapTheme } from './theme'; - -const LNGLAT_OFFSET_ZOOM_THRESHOLD = 12; - -/** - * AMapService - */ -@injectable() -export default class MapboxService implements IMapService { - public map: Map & IMapboxInstance; - @inject(TYPES.ICoordinateSystemService) - private readonly coordinateSystemService: ICoordinateSystemService; - - @inject(TYPES.IEventEmitter) - private eventEmitter: any; - private viewport: Viewport; - private markerContainer: HTMLElement; - private cameraChangedCallback: (viewport: IViewport) => void; - private $mapContainer: HTMLElement | null; - - // init - public addMarkerContainer(): void { - const container = this.map.getCanvasContainer(); - this.markerContainer = DOM.create('div', 'l7-marker-container', container); - } - - public getMarkerContainer(): HTMLElement { - return this.markerContainer; - } - - // map event - public on(type: string, handle: (...args: any[]) => void): void { - if (MapServiceEvent.indexOf(type) !== -1) { - this.eventEmitter.on(type, handle); - } else { - // 统一事件名称 - this.map.on(EventMap[type] || type, handle); - } - } - public off(type: string, handle: (...args: any[]) => void): void { - this.map.off(EventMap[type] || type, handle); - } - - public getContainer(): HTMLElement | null { - return this.map.getContainer(); - } - - public getSize(): [number, number] { - const size = this.map.transform; - return [size.width, size.height]; - } - // get mapStatus method - - public getType() { - return MapType.mapbox; - } - public getZoom(): number { - return this.map.getZoom(); - } - - public getCenter(): ILngLat { - return this.map.getCenter(); - } - - public getPitch(): number { - return this.map.getPitch(); - } - - public getRotation(): number { - return this.map.getBearing(); - } - - public getBounds(): Bounds { - return this.map.getBounds().toArray() as Bounds; - } - - public getMinZoom(): number { - return this.map.getMinZoom(); - } - - public getMaxZoom(): number { - return this.map.getMaxZoom(); - } - - public setRotation(rotation: number): void { - this.map.setBearing(rotation); - } - - public zoomIn(): void { - this.map.zoomIn(); - } - - public zoomOut(): void { - this.map.zoomOut(); - } - - public panTo(p: [number, number]): void { - this.map.panTo(p); - } - - public panBy(pixel: [number, number]): void { - this.panTo(pixel); - } - - public fitBounds(bound: Bounds): void { - this.map.fitBounds(bound); - } - - public setMaxZoom(max: number): void { - this.map.setMaxZoom(max); - } - - public setMinZoom(min: number): void { - this.map.setMinZoom(min); - } - - public setZoomAndCenter(zoom: number, center: [number, number]): void { - this.map.flyTo({ - zoom, - center, - }); - } - - public setMapStyle(style: string): void { - this.map.setStyle(this.getMapStyle(style)); - } - // TODO: 计算像素坐标 - public pixelToLngLat(pixel: [number, number]): ILngLat { - return this.map.unproject(pixel); - } - - public lngLatToPixel(lnglat: [number, number]): IPoint { - return this.map.project(lnglat); - } - - public containerToLngLat(pixel: [number, number]): ILngLat { - return this.map.unproject(pixel); - } - - public lngLatToContainer(lnglat: [number, number]): IPoint { - return this.map.project(lnglat); - } - - public async init(mapConfig: IMapConfig): Promise { - const { - id, - attributionControl = false, - style = 'light', - token = 'pk.eyJ1IjoieGlhb2l2ZXIiLCJhIjoiY2pxcmc5OGNkMDY3cjQzbG42cXk5NTl3YiJ9.hUC5Chlqzzh0FFd_aEc-uQ', - rotation = 0, - ...rest - } = mapConfig; - this.$mapContainer = document.getElementById(id); - - this.viewport = new Viewport(); - - /** - * TODO: 使用 mapbox v0.53.x 版本 custom layer,需要共享 gl context - * @see https://github.com/mapbox/mapbox-gl-js/blob/master/debug/threejs.html#L61-L64 - */ - mapboxgl.accessToken = token; - // @ts-ignore - this.map = new mapboxgl.Map({ - container: id, - style: this.getMapStyle(style), - attributionControl, - bearing: rotation, - ...rest, - }); - this.map.on('load', this.handleCameraChanged); - this.map.on('move', this.handleCameraChanged); - - // 不同于高德地图,需要手动触发首次渲染 - this.handleCameraChanged(); - this.removeLogoControl(); - } - - public destroy() { - this.eventEmitter.removeAllListeners(); - if (this.map) { - this.map.remove(); - this.$mapContainer = null; - } - } - public emit(name: string, ...args: any[]) { - this.eventEmitter.emit(name, ...args); - } - public once(name: string, ...args: any[]) { - this.eventEmitter.once(name, ...args); - } - - public getMapContainer() { - return this.$mapContainer; - } - - public onCameraChanged(callback: (viewport: IViewport) => void): void { - this.cameraChangedCallback = callback; - } - // 同步不同底图的配置项 - private initMapConig(): void { - throw new Error('Method not implemented.'); - } - private handleCameraChanged = () => { - // @see https://github.com/mapbox/mapbox-gl-js/issues/2572 - const { lat, lng } = this.map.getCenter().wrap(); - - // resync - this.viewport.syncWithMapCamera({ - bearing: this.map.getBearing(), - center: [lng, lat], - viewportHeight: this.map.transform.height, - pitch: this.map.getPitch(), - viewportWidth: this.map.transform.width, - zoom: this.map.getZoom(), - // mapbox 中固定相机高度为 viewport 高度的 1.5 倍 - cameraHeight: 0, - }); - - // set coordinate system - if (this.viewport.getZoom() > LNGLAT_OFFSET_ZOOM_THRESHOLD) { - this.coordinateSystemService.setCoordinateSystem( - CoordinateSystem.LNGLAT_OFFSET, - ); - } else { - this.coordinateSystemService.setCoordinateSystem(CoordinateSystem.LNGLAT); - } - - this.cameraChangedCallback(this.viewport); - }; - - private removeLogoControl(): void { - // @ts-ignore - const controls = this.map._controls as IControl[]; - const logoCtr = controls.find((ctr: IControl) => { - if (ctr.hasOwnProperty('_updateLogo')) { - return true; - } - }); - if (logoCtr) { - this.map.removeControl(logoCtr); - } - } - - private getMapStyle(name: string) { - return MapTheme[name] ? MapTheme[name] : name; - } -} diff --git a/packages/maps/src/mapbox/theme.ts b/packages/maps/src/mapbox/theme.ts deleted file mode 100644 index b665cb74e7..0000000000 --- a/packages/maps/src/mapbox/theme.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const MapTheme: { - [key: string]: any; -} = { - light: 'mapbox://styles/zcxduo/ck233y3ru1di71cnulo9jdg2v', - dark: 'mapbox://styles/zcxduo/ck241p6413s0b1cpayzldv7x7', - normal: 'mapbox://styles/mapbox/streets-v11', -}; diff --git a/packages/maps/tsconfig.build.json b/packages/maps/tsconfig.build.json deleted file mode 100644 index 17f6c4525a..0000000000 --- a/packages/maps/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/packages/maps/typings/index.d.ts b/packages/maps/typings/index.d.ts deleted file mode 100644 index 2cc081b0c5..0000000000 --- a/packages/maps/typings/index.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -/// -/// - -import { IControl } from 'mapbox-gl'; - -interface Window { - onLoad: () => void; -} -interface IAMapEvent { - camera: { - fov: number; - near: number; - far: number; - height: number; - pitch: number; - rotation: number; - aspect: number; - position: { x: number; y: number }; - }; -} - -interface IAMapInstance { - get(key: string): unknown; -} - -interface IMapboxInstance { - _controls: IControl[]; - transform: { - width: number; - height: number; - }; -} -interface IEventEmitter { - emit(event: EventTypes, ...args: any[]): boolean; - /** - * Add a listener for a given event. - */ - on(event: EventTypes, handle: (...args: any[]) => void, context?: any): this; - - off( - event: EventTypes, - handle: (...args: any[]) => void, - context?: any, - once?: boolean, - ): this; - - /** - * Remove all listeners, or those of the specified event. - */ - removeAllListeners(event?: EventTypes): this; -} diff --git a/packages/renderer/.gitignore b/packages/renderer/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/renderer/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/renderer/package.json b/packages/renderer/package.json deleted file mode 100644 index ed16a0dfb5..0000000000 --- a/packages/renderer/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@l7/renderer", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": false, - "files": [ - "lib", - "es", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments" - }, - "author": "xiaoiver", - "license": "ISC", - "dependencies": { - "@l7/core": "^0.0.1", - "gl": "^4.4.0", - "inversify": "^5.0.1", - "inversify-logging": "^0.2.1", - "reflect-metadata": "^0.1.13", - "regl": "^1.3.11" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/renderer/src/index.ts b/packages/renderer/src/index.ts deleted file mode 100644 index 01b1f9ad66..0000000000 --- a/packages/renderer/src/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * - */ -import ReglRendererService from './regl'; - -export { ReglRendererService }; diff --git a/packages/renderer/src/regl/ReglAttribute.ts b/packages/renderer/src/regl/ReglAttribute.ts deleted file mode 100644 index b91f7e8310..0000000000 --- a/packages/renderer/src/regl/ReglAttribute.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { IAttribute, IAttributeInitializationOptions, IBuffer } from '@l7/core'; -import regl from 'regl'; -import ReglBuffer from './ReglBuffer'; - -/** - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#attributes - */ -export default class ReglAttribute implements IAttribute { - private attribute: regl.Attribute; - private buffer: IBuffer; - - constructor(gl: regl.Regl, options: IAttributeInitializationOptions) { - const { buffer, offset, stride, normalized, size, divisor } = options; - this.buffer = buffer; - this.attribute = { - buffer: (buffer as ReglBuffer).get(), - offset: offset || 0, - stride: stride || 0, - normalized: normalized || false, - divisor: divisor || 0, - }; - - if (size) { - this.attribute.size = size; - } - } - - public get() { - return this.attribute; - } - - public updateBuffer(options: { - // 用于替换的数据 - data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array; - // 原 Buffer 替换位置,单位为 byte - offset: number; - }) { - this.buffer.subData(options); - } - - public destroy() { - this.buffer.destroy(); - } -} diff --git a/packages/renderer/src/regl/ReglBuffer.ts b/packages/renderer/src/regl/ReglBuffer.ts deleted file mode 100644 index f9d165bd69..0000000000 --- a/packages/renderer/src/regl/ReglBuffer.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { gl, IBuffer, IBufferInitializationOptions } from '@l7/core'; -import regl from 'regl'; -import { dataTypeMap, usageMap } from './constants'; - -/** - * adaptor for regl.Buffer - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#buffers - */ -export default class ReglBuffer implements IBuffer { - private buffer: regl.Buffer; - - constructor(reGl: regl.Regl, options: IBufferInitializationOptions) { - const { data, usage, type } = options; - this.buffer = reGl.buffer({ - data, - usage: usageMap[usage || gl.STATIC_DRAW], - type: dataTypeMap[type || gl.UNSIGNED_BYTE], - // length: 0, - }); - } - - public get() { - return this.buffer; - } - - public destroy() { - this.buffer.destroy(); - } - - public subData({ - data, - offset, - }: { - data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array; - offset: number; - }) { - this.buffer.subdata(data, offset); - } -} diff --git a/packages/renderer/src/regl/ReglElements.ts b/packages/renderer/src/regl/ReglElements.ts deleted file mode 100644 index 72e648ab74..0000000000 --- a/packages/renderer/src/regl/ReglElements.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { gl, IElements, IElementsInitializationOptions } from '@l7/core'; -import regl from 'regl'; -import { dataTypeMap, usageMap } from './constants'; - -/** - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#elements - */ -export default class ReglElements implements IElements { - private elements: regl.Elements; - - constructor(reGl: regl.Regl, options: IElementsInitializationOptions) { - const { data, usage, type, count } = options; - - this.elements = reGl.elements({ - data, - usage: usageMap[usage || gl.STATIC_DRAW], - type: dataTypeMap[type || gl.UNSIGNED_BYTE] as - | 'uint8' - | 'uint16' - | 'uint32', - count, - }); - } - - public get() { - return this.elements; - } - - public subData({ - data, - }: { - data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array; - }) { - this.elements.subdata(data); - } - - public destroy() { - this.elements.destroy(); - } -} diff --git a/packages/renderer/src/regl/ReglFramebuffer.ts b/packages/renderer/src/regl/ReglFramebuffer.ts deleted file mode 100644 index da430a1b39..0000000000 --- a/packages/renderer/src/regl/ReglFramebuffer.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { - gl, - IFramebuffer, - IFramebufferInitializationOptions, - IRenderbuffer, - ITexture2D, -} from '@l7/core'; -import regl from 'regl'; -import ReglTexture2D from './ReglTexture2D'; - -/** - * adaptor for regl.Framebuffer - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#framebuffers - */ -export default class ReglFramebuffer implements IFramebuffer { - private framebuffer: regl.Framebuffer; - - constructor(reGl: regl.Regl, options: IFramebufferInitializationOptions) { - const { width, height, color, colors, depth, stencil } = options; - - const framebufferOptions: regl.FramebufferOptions = { - width, - height, - }; - - if (Array.isArray(colors)) { - framebufferOptions.colors = colors.map((c: ITexture2D | IRenderbuffer) => - (c as ReglTexture2D).get(), - ); - } - - if (color && typeof color !== 'boolean') { - framebufferOptions.color = (color as ReglTexture2D).get(); - } - - // TODO: depth & stencil - - this.framebuffer = reGl.framebuffer(framebufferOptions); - } - - public get() { - return this.framebuffer; - } - - public destroy() { - this.framebuffer.destroy(); - } - - public resize({ width, height }: { width: number; height: number }) { - this.framebuffer.resize(width, height); - } -} diff --git a/packages/renderer/src/regl/ReglModel.ts b/packages/renderer/src/regl/ReglModel.ts deleted file mode 100644 index 661d4f4a79..0000000000 --- a/packages/renderer/src/regl/ReglModel.ts +++ /dev/null @@ -1,249 +0,0 @@ -import { - gl, - IModel, - IModelDrawOptions, - IModelInitializationOptions, - IUniform, -} from '@l7/core'; -import regl from 'regl'; -import { - blendEquationMap, - blendFuncMap, - cullFaceMap, - depthFuncMap, - primitiveMap, - stencilFuncMap, - stencilOpMap, -} from './constants'; -import ReglAttribute from './ReglAttribute'; -import ReglElements from './ReglElements'; -import ReglFramebuffer from './ReglFramebuffer'; -import ReglTexture2D from './ReglTexture2D'; - -/** - * adaptor for regl.DrawCommand - */ -export default class ReglModel implements IModel { - private reGl: regl.Regl; - private drawCommand: regl.DrawCommand; - private uniforms: { - [key: string]: IUniform; - } = {}; - - constructor(reGl: regl.Regl, options: IModelInitializationOptions) { - this.reGl = reGl; - const { - vs, - fs, - attributes, - uniforms, - primitive, - count, - elements, - depth, - blend, - stencil, - cull, - instances, - } = options; - const reglUniforms: { [key: string]: IUniform } = {}; - if (uniforms) { - this.uniforms = uniforms; - Object.keys(uniforms).forEach((uniformName) => { - // use regl prop API - // @ts-ignore - reglUniforms[uniformName] = reGl.prop(uniformName); - }); - } - - const reglAttributes: { [key: string]: regl.Attribute } = {}; - Object.keys(attributes).forEach((name: string) => { - reglAttributes[name] = (attributes[name] as ReglAttribute).get(); - }); - const drawParams: regl.DrawConfig = { - attributes: reglAttributes, - frag: fs, - uniforms: reglUniforms, - vert: vs, - primitive: - primitiveMap[primitive === undefined ? gl.TRIANGLES : primitive], - }; - if (instances) { - drawParams.instances = instances; - } - - // elements 中可能包含 count,此时不应传入 - if (count) { - drawParams.count = count; - } - - if (elements) { - drawParams.elements = (elements as ReglElements).get(); - } - - this.initDepthDrawParams({ depth }, drawParams); - this.initBlendDrawParams({ blend }, drawParams); - this.initStencilDrawParams({ stencil }, drawParams); - this.initCullDrawParams({ cull }, drawParams); - this.drawCommand = reGl(drawParams); - } - - public addUniforms(uniforms: { [key: string]: IUniform }) { - this.uniforms = { - ...this.uniforms, - ...uniforms, - }; - } - - public draw(options: IModelDrawOptions) { - const uniforms: { - [key: string]: IUniform; - } = { - ...this.uniforms, - ...options.uniforms, - }; - - const reglDrawProps: { - [key: string]: - | regl.Framebuffer - | regl.Texture2D - | number - | number[] - | boolean; - } = {}; - - Object.keys(uniforms).forEach((uniformName: string) => { - const type = typeof uniforms[uniformName]; - if ( - type === 'boolean' || - type === 'number' || - Array.isArray(uniforms[uniformName]) || - // @ts-ignore - uniforms[uniformName].BYTES_PER_ELEMENT - ) { - reglDrawProps[uniformName] = uniforms[uniformName] as - | number - | number[] - | boolean; - } else { - reglDrawProps[uniformName] = (uniforms[uniformName] as - | ReglFramebuffer - | ReglTexture2D).get(); - } - }); - this.drawCommand(reglDrawProps); - } - - public destroy() { - // don't need do anything since we will call `rendererService.cleanup()` - } - - /** - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#depth-buffer - */ - private initDepthDrawParams( - { depth }: Pick, - drawParams: regl.DrawConfig, - ) { - if (depth) { - drawParams.depth = { - enable: depth.enable === undefined ? true : !!depth.enable, - mask: depth.mask === undefined ? true : !!depth.mask, - func: depthFuncMap[depth.func || gl.LESS], - range: depth.range || [0, 1], - }; - } - } - - /** - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#blending - */ - private initBlendDrawParams( - { blend }: Pick, - drawParams: regl.DrawConfig, - ) { - if (blend) { - const { enable, func, equation, color = [0, 0, 0, 0] } = blend; - // @ts-ignore - drawParams.blend = { - enable: enable === undefined ? false : !!enable, - func: { - srcRGB: blendFuncMap[(func && func.srcRGB) || gl.SRC_ALPHA], - srcAlpha: blendFuncMap[(func && func.srcAlpha) || gl.SRC_ALPHA], - dstRGB: blendFuncMap[(func && func.dstRGB) || gl.ONE_MINUS_SRC_ALPHA], - dstAlpha: - blendFuncMap[(func && func.dstAlpha) || gl.ONE_MINUS_SRC_ALPHA], - }, - equation: { - rgb: blendEquationMap[(equation && equation.rgb) || gl.FUNC_ADD], - alpha: blendEquationMap[(equation && equation.alpha) || gl.FUNC_ADD], - }, - color, - }; - } - } - - /** - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#stencil - */ - private initStencilDrawParams( - { stencil }: Pick, - drawParams: regl.DrawConfig, - ) { - if (stencil) { - const { - enable, - mask = -1, - func = { - cmp: gl.ALWAYS, - ref: 0, - mask: -1, - }, - opFront = { - fail: gl.KEEP, - zfail: gl.KEEP, - zpass: gl.KEEP, - }, - opBack = { - fail: gl.KEEP, - zfail: gl.KEEP, - zpass: gl.KEEP, - }, - } = stencil; - drawParams.stencil = { - enable: enable === undefined ? false : !!enable, - mask, - func: { - ...func, - cmp: stencilFuncMap[func.cmp], - }, - opFront: { - fail: stencilOpMap[opFront.fail], - zfail: stencilOpMap[opFront.zfail], - zpass: stencilOpMap[opFront.zpass], - }, - opBack: { - fail: stencilOpMap[opBack.fail], - zfail: stencilOpMap[opBack.zfail], - zpass: stencilOpMap[opBack.zpass], - }, - }; - } - } - - /** - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#culling - */ - private initCullDrawParams( - { cull }: Pick, - drawParams: regl.DrawConfig, - ) { - if (cull) { - const { enable, face = gl.BACK } = cull; - drawParams.cull = { - enable: enable === undefined ? false : !!enable, - face: cullFaceMap[face], - }; - } - } -} diff --git a/packages/renderer/src/regl/ReglRenderbuffer.ts b/packages/renderer/src/regl/ReglRenderbuffer.ts deleted file mode 100644 index 0040cd9bd9..0000000000 --- a/packages/renderer/src/regl/ReglRenderbuffer.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { IRenderbuffer, IRenderbufferInitializationOptions } from '@l7/core'; -import regl from 'regl'; -import { formatMap } from './constants'; - -/** - * adaptor for regl.Renderbuffer - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#renderbuffers - */ -export default class ReglRenderbuffer implements IRenderbuffer { - private renderbuffer: regl.Renderbuffer; - - constructor(reGl: regl.Regl, options: IRenderbufferInitializationOptions) { - const { width, height, format } = options; - this.renderbuffer = reGl.renderbuffer({ - width, - height, - format: formatMap[format] as regl.RenderbufferFormat, - }); - } - - public get() { - return this.renderbuffer; - } - - public destroy() { - this.renderbuffer.destroy(); - } - - public resize({ width, height }: { width: number; height: number }) { - this.renderbuffer.resize(width, height); - } -} diff --git a/packages/renderer/src/regl/ReglTexture2D.ts b/packages/renderer/src/regl/ReglTexture2D.ts deleted file mode 100644 index 6bf4a02b1d..0000000000 --- a/packages/renderer/src/regl/ReglTexture2D.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { gl, ITexture2D, ITexture2DInitializationOptions } from '@l7/core'; -import regl from 'regl'; -import { - colorSpaceMap, - dataTypeMap, - filterMap, - formatMap, - mipmapMap, - wrapModeMap, -} from './constants'; - -/** - * adaptor for regl.Buffer - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#buffers - */ -export default class ReglTexture2D implements ITexture2D { - private texture: regl.Texture2D; - - constructor(reGl: regl.Regl, options: ITexture2DInitializationOptions) { - const { - data, - type = gl.UNSIGNED_BYTE, - width, - height, - flipY = false, - format = gl.RGBA, - mipmap = false, - wrapS = gl.CLAMP_TO_EDGE, - wrapT = gl.CLAMP_TO_EDGE, - aniso = 0, - alignment = 1, - premultiplyAlpha = false, - mag = gl.NEAREST, - min = gl.NEAREST, - colorSpace = gl.NONE, - } = options; - - const textureOptions: regl.Texture2DOptions = { - width, - height, - // @ts-ignore - type: dataTypeMap[type], - format: formatMap[format], - wrapS: wrapModeMap[wrapS], - wrapT: wrapModeMap[wrapT], - // @ts-ignore - mag: filterMap[mag], - min: filterMap[min], - alignment, - flipY, - colorSpace: colorSpaceMap[colorSpace], - premultiplyAlpha, - aniso, - }; - - if (data) { - textureOptions.data = data; - } - - if (typeof mipmap === 'string') { - textureOptions.mipmap = mipmapMap[mipmap]; - } else if (typeof mipmap === 'boolean') { - textureOptions.mipmap = mipmap; - } - - this.texture = reGl.texture(textureOptions); - } - - public get() { - return this.texture; - } - - public resize({ width, height }: { width: number; height: number }): void { - this.texture.resize(width, height); - } - - public destroy() { - this.texture.destroy(); - } -} diff --git a/packages/renderer/src/regl/__tests__/model.spec.ts b/packages/renderer/src/regl/__tests__/model.spec.ts deleted file mode 100644 index 8f81b4b175..0000000000 --- a/packages/renderer/src/regl/__tests__/model.spec.ts +++ /dev/null @@ -1,76 +0,0 @@ -import 'reflect-metadata'; -import regl from 'regl'; -import ReglModel from '../ReglModel'; -import createContext from './utils/create-context'; - -describe('ReglModel', () => { - let gl; - let reGL: regl.Regl; - - beforeEach(() => { - gl = createContext(1, 1); - reGL = regl(gl); - }); - - it('should generate model with empty uniforms correctly', () => { - const model = new ReglModel(reGL, { - vs: 'void main() {gl_Position = vec4(0.);}', - fs: 'void main() {gl_FragColor = vec4(0.);}', - attributes: {}, - }); - - // @ts-ignore - expect(model.uniforms).toEqual({}); - }); - - it('should generate model with uniforms correctly', () => { - const model = new ReglModel(reGL, { - vs: 'void main() {gl_Position = vec4(0.);}', - fs: 'void main() {gl_FragColor = vec4(0.);}', - attributes: {}, - uniforms: { - u_1: 1, - u_2: [1, 2], - }, - }); - - // @ts-ignore - expect(model.uniforms.u_1).toEqual(1); - // @ts-ignore - expect(model.uniforms.u_2).toEqual([1, 2]); - }); - - it('should generate model with struct uniforms correctly', () => { - // 支持 struct 结构,例如 'colors[0].r' - // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#uniforms - const model = new ReglModel(reGL, { - vs: 'void main() {gl_Position = vec4(0.);}', - fs: 'void main() {gl_FragColor = vec4(0.);}', - attributes: {}, - // @ts-ignore - uniforms: { - u_Struct: [ - { - a: 1, - b: [1, 2], - }, - { - a: 2, - b: [3, 4], - }, - ], - }, - }); - - expect(model.uniforms['u_Struct[0].a']).toEqual(undefined); - - // // @ts-ignore - // expect(model.uniforms['u_Struct[0].a']).toEqual(1); - // // @ts-ignore - // expect(model.uniforms['u_Struct[0].b']).toEqual([1, 2]); - // // @ts-ignore - // expect(model.uniforms['u_Struct[1].a']).toEqual(2); - // // @ts-ignore - // expect(model.uniforms['u_Struct[1].b']).toEqual([3, 4]); - }); -}); diff --git a/packages/renderer/src/regl/__tests__/utils/create-context.ts b/packages/renderer/src/regl/__tests__/utils/create-context.ts deleted file mode 100644 index 39a7e6104c..0000000000 --- a/packages/renderer/src/regl/__tests__/utils/create-context.ts +++ /dev/null @@ -1,21 +0,0 @@ -import gl from 'gl'; - -// borrow from regl -// @see https://github.com/regl-project/regl/blob/gh-pages/test/util/create-context.js#L28 -const CONTEXT = gl(1, 1, { preserveDrawingBuffer: true }); -const RESIZE = CONTEXT.getExtension('STACKGL_resize_drawingbuffer'); - -export default function(width: number, height: number) { - resize(width, height); - return CONTEXT; -} - -export function resize(width: number, height: number) { - if (RESIZE) { - RESIZE.resize(width, height); - } -} - -export function destroy() { - // -} diff --git a/packages/renderer/src/regl/constants.ts b/packages/renderer/src/regl/constants.ts deleted file mode 100644 index ba5b7e6a2d..0000000000 --- a/packages/renderer/src/regl/constants.ts +++ /dev/null @@ -1,199 +0,0 @@ -/** - * @desc 由于 regl 使用大量字符串而非 WebGL 常量,因此需要映射 - */ -import { gl } from '@l7/core'; -import regl from 'regl'; - -// @see https://github.com/regl-project/regl/blob/gh-pages/lib/constants/primitives.json -export const primitiveMap: { - [key: string]: - | 'points' - | 'lines' - | 'line loop' - | 'line strip' - | 'triangles' - | 'triangle strip' - | 'triangle fan'; -} = { - [gl.POINTS]: 'points', - [gl.LINES]: 'lines', - [gl.LINE_LOOP]: 'line loop', - [gl.LINE_STRIP]: 'line strip', - [gl.TRIANGLES]: 'triangles', - [gl.TRIANGLE_FAN]: 'triangle fan', - [gl.TRIANGLE_STRIP]: 'triangle strip', -}; - -export const usageMap: { - [key: string]: 'static' | 'dynamic' | 'stream'; -} = { - [gl.STATIC_DRAW]: 'static', - [gl.DYNAMIC_DRAW]: 'dynamic', - [gl.STREAM_DRAW]: 'stream', -}; - -export const dataTypeMap: { - [key: string]: - | 'int8' - | 'int16' - | 'int32' - | 'uint8' - | 'uint16' - | 'uint32' - | 'float'; -} = { - [gl.BYTE]: 'int8', - [gl.UNSIGNED_INT]: 'int16', - [gl.INT]: 'int32', - [gl.UNSIGNED_BYTE]: 'uint8', - [gl.UNSIGNED_SHORT]: 'uint16', - [gl.UNSIGNED_INT]: 'uint32', - [gl.FLOAT]: 'float', -}; - -export const formatMap: { - [key: string]: - | 'alpha' - | 'luminance' - | 'luminance alpha' - | 'rgb' - | 'rgba' - | 'rgba4' - | 'rgb5 a1' - | 'rgb565' - | 'depth' - | 'depth stencil'; -} = { - [gl.ALPHA]: 'alpha', - [gl.LUMINANCE]: 'luminance', - [gl.LUMINANCE_ALPHA]: 'luminance alpha', - [gl.RGB]: 'rgb', - [gl.RGBA]: 'rgba', - [gl.RGBA4]: 'rgba4', - [gl.RGB5_A1]: 'rgb5 a1', - [gl.RGB565]: 'rgb565', - [gl.DEPTH_COMPONENT]: 'depth', - [gl.DEPTH_STENCIL]: 'depth stencil', -}; - -export const mipmapMap: { - [key: string]: 'dont care' | 'nice' | 'fast'; -} = { - [gl.DONT_CARE]: 'dont care', - [gl.NICEST]: 'nice', - [gl.FASTEST]: 'fast', -}; - -export const filterMap: { - [key: string]: - | 'nearest' - | 'linear' - | 'mipmap' - | 'nearest mipmap linear' - | 'linear mipmap nearest' - | 'nearest mipmap nearest'; -} = { - [gl.NEAREST]: 'nearest', - [gl.LINEAR]: 'linear', - [gl.LINEAR_MIPMAP_LINEAR]: 'mipmap', - [gl.NEAREST_MIPMAP_LINEAR]: 'nearest mipmap linear', - [gl.LINEAR_MIPMAP_NEAREST]: 'linear mipmap nearest', - [gl.NEAREST_MIPMAP_NEAREST]: 'nearest mipmap nearest', -}; - -export const wrapModeMap: { - [key: string]: 'repeat' | 'clamp' | 'mirror'; -} = { - [gl.REPEAT]: 'repeat', - [gl.CLAMP_TO_EDGE]: 'clamp', - [gl.MIRRORED_REPEAT]: 'mirror', -}; - -export const colorSpaceMap: { - [key: string]: 'none' | 'browser'; -} = { - [gl.NONE]: 'none', - [gl.BROWSER_DEFAULT_WEBGL]: 'browser', -}; - -export const depthFuncMap: { - [key: string]: - | 'never' - | 'always' - | 'less' - | 'lequal' - | 'greater' - | 'gequal' - | 'equal' - | 'notequal'; -} = { - [gl.NEVER]: 'never', - [gl.ALWAYS]: 'always', - [gl.LESS]: 'less', - [gl.LEQUAL]: 'lequal', - [gl.GREATER]: 'greater', - [gl.GEQUAL]: 'gequal', - [gl.EQUAL]: 'equal', - [gl.NOTEQUAL]: 'notequal', -}; - -export const blendEquationMap: { - [key: string]: regl.BlendingEquation; -} = { - [gl.FUNC_ADD]: 'add', - [gl.FUNC_SUBTRACT]: 'subtract', - [gl.FUNC_REVERSE_SUBTRACT]: 'reverse subtract', -}; - -export const blendFuncMap: { - [key: string]: regl.BlendingFunction; -} = { - [gl.ZERO]: 'zero', - [gl.ONE]: 'one', - [gl.SRC_COLOR]: 'src color', - [gl.ONE_MINUS_SRC_COLOR]: 'one minus src color', - [gl.SRC_ALPHA]: 'src alpha', - [gl.ONE_MINUS_SRC_ALPHA]: 'one minus src alpha', - [gl.DST_COLOR]: 'dst color', - [gl.ONE_MINUS_DST_COLOR]: 'one minus dst color', - [gl.DST_ALPHA]: 'dst alpha', - [gl.ONE_MINUS_DST_ALPHA]: 'one minus dst alpha', - [gl.CONSTANT_COLOR]: 'constant color', - [gl.ONE_MINUS_CONSTANT_COLOR]: 'one minus constant color', - [gl.CONSTANT_ALPHA]: 'constant alpha', - [gl.ONE_MINUS_CONSTANT_ALPHA]: 'one minus constant alpha', - [gl.SRC_ALPHA_SATURATE]: 'src alpha saturate', -}; - -export const stencilFuncMap: { - [key: string]: regl.ComparisonOperatorType; -} = { - [gl.NEVER]: 'never', - [gl.ALWAYS]: 'always', - [gl.LESS]: 'less', - [gl.LEQUAL]: 'lequal', - [gl.GREATER]: 'greater', - [gl.GEQUAL]: 'gequal', - [gl.EQUAL]: 'equal', - [gl.NOTEQUAL]: 'notequal', -}; - -export const stencilOpMap: { - [key: string]: regl.StencilOperationType; -} = { - [gl.ZERO]: 'zero', - [gl.KEEP]: 'keep', - [gl.REPLACE]: 'replace', - [gl.INVERT]: 'invert', - [gl.INCR]: 'increment', - [gl.DECR]: 'decrement', - [gl.INCR_WRAP]: 'increment wrap', - [gl.DECR_WRAP]: 'decrement wrap', -}; - -export const cullFaceMap: { - [key: string]: regl.FaceOrientationType; -} = { - [gl.FRONT]: 'front', - [gl.BACK]: 'back', -}; diff --git a/packages/renderer/src/regl/index.ts b/packages/renderer/src/regl/index.ts deleted file mode 100644 index d5ab2ec49d..0000000000 --- a/packages/renderer/src/regl/index.ts +++ /dev/null @@ -1,168 +0,0 @@ -/** - * render w/ regl - * @see https://github.com/regl-project/regl/blob/gh-pages/API.md - */ -import { - IAttribute, - IAttributeInitializationOptions, - IBuffer, - IBufferInitializationOptions, - IClearOptions, - IElements, - IElementsInitializationOptions, - IFramebuffer, - IFramebufferInitializationOptions, - IModel, - IModelInitializationOptions, - IReadPixelsOptions, - IRendererService, - ITexture2D, - ITexture2DInitializationOptions, -} from '@l7/core'; -import { injectable } from 'inversify'; -import regl from 'regl'; -import ReglAttribute from './ReglAttribute'; -import ReglBuffer from './ReglBuffer'; -import ReglElements from './ReglElements'; -import ReglFramebuffer from './ReglFramebuffer'; -import ReglModel from './ReglModel'; -import ReglTexture2D from './ReglTexture2D'; - -/** - * regl renderer - */ -@injectable() -export default class ReglRendererService implements IRendererService { - private gl: regl.Regl; - private $container: HTMLDivElement | null; - - public async init($container: HTMLDivElement): Promise { - this.$container = $container; - // tslint:disable-next-line:typedef - this.gl = await new Promise((resolve, reject) => { - regl({ - container: $container, - attributes: { - alpha: true, - // use TAA instead of MSAA - // @see https://www.khronos.org/registry/webgl/specs/1.0/#5.2.1 - antialias: true, - premultipliedAlpha: true, - }, - // TODO: use extensions - extensions: [ - 'OES_element_index_uint', - 'EXT_shader_texture_lod', // IBL - 'OES_standard_derivatives', // wireframe - 'EXT_SRGB', // baseColor emmisive - 'OES_texture_float', // shadow map - 'WEBGL_depth_texture', - 'angle_instanced_arrays', - 'EXT_texture_filter_anisotropic', // VSM shadow map - ], - optionalExtensions: ['oes_texture_float_linear'], - // profile: true, - onDone: (err: Error | null, r?: regl.Regl | undefined): void => { - if (err || !r) { - reject(err); - } - resolve(r); - }, - }); - }); - } - - public createModel = (options: IModelInitializationOptions): IModel => - new ReglModel(this.gl, options); - - public createAttribute = ( - options: IAttributeInitializationOptions, - ): IAttribute => new ReglAttribute(this.gl, options); - - public createBuffer = (options: IBufferInitializationOptions): IBuffer => - new ReglBuffer(this.gl, options); - - public createElements = ( - options: IElementsInitializationOptions, - ): IElements => new ReglElements(this.gl, options); - - public createTexture2D = ( - options: ITexture2DInitializationOptions, - ): ITexture2D => new ReglTexture2D(this.gl, options); - - public createFramebuffer = (options: IFramebufferInitializationOptions) => - new ReglFramebuffer(this.gl, options); - - public useFramebuffer = ( - framebuffer: IFramebuffer | null, - drawCommands: () => void, - ) => { - this.gl({ - framebuffer: framebuffer ? (framebuffer as ReglFramebuffer).get() : null, - })(drawCommands); - }; - - public clear = (options: IClearOptions) => { - // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clear-the-draw-buffer - const { color, depth, stencil, framebuffer = null } = options; - const reglClearOptions: regl.ClearOptions = { - color, - depth, - stencil, - }; - - reglClearOptions.framebuffer = - framebuffer === null - ? framebuffer - : (framebuffer as ReglFramebuffer).get(); - - this.gl.clear(reglClearOptions); - }; - - public viewport = ({ - x, - y, - width, - height, - }: { - x: number; - y: number; - width: number; - height: number; - }) => { - // use WebGL context directly - // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#unsafe-escape-hatch - this.gl._gl.viewport(x, y, width, height); - this.gl._refresh(); - }; - - public readPixels = (options: IReadPixelsOptions) => { - const { framebuffer, x, y, width, height } = options; - const readPixelsOptions: regl.ReadOptions = { - x, - y, - width, - height, - }; - if (framebuffer) { - readPixelsOptions.framebuffer = (framebuffer as ReglFramebuffer).get(); - } - return this.gl.read(readPixelsOptions); - }; - - public getViewportSize = () => { - return { - width: this.gl._gl.drawingBufferWidth, - height: this.gl._gl.drawingBufferHeight, - }; - }; - - public getContainer = () => { - return this.$container; - }; - - public destroy = () => { - // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up - this.gl.destroy(); - }; -} diff --git a/packages/renderer/tsconfig.build.json b/packages/renderer/tsconfig.build.json deleted file mode 100644 index 17f6c4525a..0000000000 --- a/packages/renderer/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/packages/scene/.gitignore b/packages/scene/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/scene/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/scene/package.json b/packages/scene/package.json deleted file mode 100644 index e0b53247f3..0000000000 --- a/packages/scene/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "@l7/scene", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": false, - "files": [ - "lib", - "es", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments" - }, - "author": "xiaoiver", - "license": "ISC", - "dependencies": { - "@l7/component": "^0.0.1", - "@l7/core": "^0.0.1", - "@l7/maps": "^0.0.1", - "@l7/renderer": "^0.0.1", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "mapbox-gl": "^1.2.1", - "reflect-metadata": "^0.1.13" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/scene/src/index.ts b/packages/scene/src/index.ts deleted file mode 100644 index 8cd3bead9f..0000000000 --- a/packages/scene/src/index.ts +++ /dev/null @@ -1,276 +0,0 @@ -import { Logo } from '@l7/component'; -import { - Bounds, - container, - IControl, - IControlService, - IIconService, - IImage, - ILayer, - ILayerService, - ILngLat, - IMapConfig, - IMapService, - IMarker, - IPoint, - IRenderConfig, - IRendererService, - ISceneService, - MapType, - Point, - SceneEventList, - TYPES, -} from '@l7/core'; -import { AMapService, MapboxService } from '@l7/maps'; -import { ReglRendererService } from '@l7/renderer'; -import { interfaces } from 'inversify'; -import { Map } from 'mapbox-gl'; - -// 绑定渲染引擎服务 -container - .bind(TYPES.IRendererService) - .to(ReglRendererService) - .inSingletonScope(); -// // 绑定地图服务 AMap & Mapbox -// container -// .bind(TYPES.IMapService) -// .to(AMapService) -// .whenTargetNamed(MapType.amap) -// .inSingletonScope(); -// container -// .bind(TYPES.IMapService) -// .to(MapboxService) -// .inSingletonScope(); -// // 地图服务工厂,根据 name 返回指定服务 -// container -// .bind>(TYPES.IFactoryMapService) -// .toFactory((context) => { -// return (named: string) => { -// return context.container.getNamed(TYPES.IMapService, named); -// }; -// }); - -// 缓存当前地图类型,便于 DEMO 中切换底图时动态绑定 -let mapType: MapType; - -/** - * 暴露 Scene API - * - * @example - * import { Scene } from '@l7/scene'; - * import { PointLayer } from '@l7/layers'; - * - * const scene = new Scene(); - * const pointLayer = new PointLayer(); - * scene.addLayer(pointLayer); - * scene.render(); - */ -class Scene { - // public map: AMap.Map | Map; - private sceneService: ISceneService; - private mapService: IMapService; - private controlService: IControlService; - private layerService: ILayerService; - - private iconService: IIconService; - - public constructor(config: IMapConfig & IRenderConfig) { - const { type = MapType.amap } = config; - // 根据用户传入参数绑定地图服务 - let mapServiceImpl: new (...args: any[]) => IMapService; - if (type === MapType.mapbox) { - mapServiceImpl = MapboxService; - } else if (type === MapType.amap) { - mapServiceImpl = AMapService; - } else { - throw new Error('不支持的地图服务'); - } - - // DEMO 中切换底图实现时,需要重新绑定底图服务 - // @see https://github.com/inversify/InversifyJS/blob/master/wiki/container_api.md#containerrebindserviceidentifier-serviceidentifier - if (!container.isBound(TYPES.IMapService)) { - container - .bind(TYPES.IMapService) - .to(mapServiceImpl) - .inSingletonScope(); - } else if (type !== mapType) { - container - .rebind(TYPES.IMapService) - .to(mapServiceImpl) - .inSingletonScope(); - } - - // 依赖注入 - this.sceneService = container.get(TYPES.ISceneService); - this.mapService = container.get(TYPES.IMapService); - this.iconService = container.get(TYPES.IIconService); - this.controlService = container.get(TYPES.IControlService); - this.layerService = container.get(TYPES.ILayerService); - mapType = this.mapService.getType(); - - // 初始化 scene - this.sceneService.init(config); - // 初始化组件 - this.initControl(); - } - - public getMapService(): IMapService { - return this.mapService; - // - } - - public get map() { - return this.mapService.map; - } - - public addLayer(layer: ILayer): void { - this.sceneService.addLayer(layer); - } - - public getLayers(): ILayer[] { - return this.layerService.getLayers(); - } - - public getLayer(id: string): ILayer | undefined { - return this.layerService.getLayer(id); - } - - public removeLayer(layer: ILayer): void { - this.layerService.remove(layer); - } - - public render(): void { - this.sceneService.render(); - } - - // asset method - public addImage(id: string, img: IImage) { - this.iconService.addImage(id, img); - } - - public hasImage(id: string) { - this.iconService.hasImage(id); - } - - public removeImage(id: string) { - this.iconService.removeImage(id); - } - - // map control method - public addControl(ctr: IControl) { - if (this.mapService.map) { - this.controlService.addControl(ctr, this.mapService); - } else { - this.mapService.once('mapload', () => { - this.controlService.addControl(ctr, this.mapService); - }); - } - } - - public removeControl(ctr: IControl) { - this.controlService.removeControl(ctr); - } - - // marker - public addMarker(marker: IMarker) { - marker.addTo(this); - } - // map envent; - - public on(type: string, handle: (...args: any[]) => void): void { - SceneEventList.indexOf(type) === -1 - ? this.mapService.on(type, handle) - : this.sceneService.on(type, handle); - } - - public off(type: string, handle: (...args: any[]) => void): void { - SceneEventList.indexOf(type) === -1 - ? this.mapService.off(type, handle) - : this.sceneService.off(type, handle); - } - - // map method - - public getZoom(): number { - return this.mapService.getZoom(); - } - - public getCenter(): ILngLat { - return this.mapService.getCenter(); - } - - public getPitch(): number { - return this.mapService.getPitch(); - } - - public getRotation(): number { - return this.mapService.getRotation(); - } - - public getBounds(): Bounds { - return this.mapService.getBounds(); - } - - // set Map status - - public setRotation(rotation: number): void { - this.mapService.setRotation(rotation); - } - public zoomIn(): void { - this.mapService.zoomIn(); - } - - public zoomOut(): void { - this.mapService.zoomOut(); - } - - public panTo(p: Point): void { - this.mapService.panTo(p); - } - - public panBy(pixel: Point): void { - this.mapService.panTo(pixel); - } - - public fitBounds(bound: Bounds): void { - this.mapService.fitBounds(bound); - } - - public setZoomAndCenter(zoom: number, center: Point): void { - this.mapService.setZoomAndCenter(zoom, center); - } - - public setMapStyle(style: string): void { - this.mapService.setMapStyle(style); - } - - // conversion Method - public pixelToLngLat(pixel: Point): ILngLat { - return this.mapService.pixelToLngLat(pixel); - } - - public lngLatToPixel(lnglat: Point): IPoint { - return this.mapService.lngLatToPixel(lnglat); - } - - public containerToLngLat(pixel: Point): ILngLat { - return this.mapService.containerToLngLat(pixel); - } - - public lngLatToContainer(lnglat: Point): IPoint { - return this.mapService.lngLatToContainer(lnglat); - } - - public destroy() { - this.sceneService.destroy(); - // TODO: 清理其他 Service 例如 IconService - } - - private initControl(): void { - this.addControl(new Logo()); - } - - // 资源管理 -} - -export { Scene }; diff --git a/packages/scene/tsconfig.build.json b/packages/scene/tsconfig.build.json deleted file mode 100644 index 17f6c4525a..0000000000 --- a/packages/scene/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/packages/source/.gitignore b/packages/source/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/source/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/source/__tests__/data/csv.ts b/packages/source/__tests__/data/csv.ts deleted file mode 100644 index 544ce107da..0000000000 --- a/packages/source/__tests__/data/csv.ts +++ /dev/null @@ -1,24 +0,0 @@ -const csvData: string = `lat,lng -30.276149,120.134107 -30.282163,120.124196 -30.274328,120.133228 -30.261044,120.129313 -30.275465,120.130145 -30.275899,120.133798 -30.275337,120.133301 -30.267925,120.127693 -30.274128,120.133302 -30.276134,120.133701 -30.271074,120.130644 -30.273078,120.133634 -30.283676,120.135383 -30.274393,120.133392 -30.274166,120.135521 -30.275843,120.133903 -30.276774,120.130388 -30.276638,120.127044 -30.272734,120.133633 -30.276321,120.133722 -30.269838,120.123237`; - -export default csvData; diff --git a/packages/source/__tests__/data/json.ts b/packages/source/__tests__/data/json.ts deleted file mode 100644 index 40e7b2286f..0000000000 --- a/packages/source/__tests__/data/json.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { IJsonData } from '../../src/interface'; -const data1: IJsonData = [ - { - lng: 112.323, - lat: 30.456, - name: 'dog', - }, - { - lng: 112.323, - lat: 30.456, - name: 'cat', - }, -]; -const data2: IJsonData = [ - { - coord: [112.323, 30.456], - name: 'dog', - }, - { - coord: [110.234, 1234], - name: 'cat', - }, -]; -export { data1, data2 }; diff --git a/packages/source/__tests__/data/polygon.ts b/packages/source/__tests__/data/polygon.ts deleted file mode 100644 index da9f189c0f..0000000000 --- a/packages/source/__tests__/data/polygon.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { FeatureCollection, Geometries, Properties } from '@turf/helpers'; - -const Polygon: FeatureCollection = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: { - name: 'tom', - }, - geometry: { - type: 'Polygon', - coordinates: [ - [ - [114.25077438354492, 30.600093873550072], - [114.26502227783203, 30.600093873550072], - [114.26502227783203, 30.60807236997211], - [114.25077438354492, 30.60807236997211], - [114.25077438354492, 30.600093873550072], - ], - ], - }, - }, - { - type: 'Feature', - properties: { - name: 'joy', - }, - geometry: { - type: 'Polygon', - coordinates: [ - [ - [114.31137084960938, 30.600093873550072], - [114.30656433105469, 30.589602628298536], - [114.31549072265625, 30.571572765814274], - [114.32167053222655, 30.593149091802424], - [114.32424545288086, 30.59965060448085], - [114.31137084960938, 30.600093873550072], - ], - ], - }, - }, - { - type: 'Feature', - properties: { - name: 'dog', - }, - geometry: { - type: 'Polygon', - coordinates: [ - [ - [114.26004409790039, 30.57024256120887], - [114.24373626708983, 30.563886887421297], - [114.25472259521484, 30.555756930350302], - [114.26776885986328, 30.55560910664438], - [114.27618026733398, 30.56832112235078], - [114.26004409790039, 30.57024256120887], - ], - ], - }, - }, - ], -}; - -export default Polygon; diff --git a/packages/source/__tests__/parser/csv.spec.ts b/packages/source/__tests__/parser/csv.spec.ts deleted file mode 100644 index e591a8cac5..0000000000 --- a/packages/source/__tests__/parser/csv.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import csv from '../../src/parser/csv'; -import csvData from '../data/csv'; -describe('parser.json', () => { - it('parser json x, y ', () => { - const result = csv(csvData, { - type: 'json', - x: 'lng', - y: 'lat', - }); - expect(result.dataArray.length).toEqual(21); - }); -}); diff --git a/packages/source/__tests__/parser/geojson.spec.ts b/packages/source/__tests__/parser/geojson.spec.ts deleted file mode 100644 index df84f5c0cd..0000000000 --- a/packages/source/__tests__/parser/geojson.spec.ts +++ /dev/null @@ -1,22 +0,0 @@ -import geojson from '../../src/parser/geojson'; -import polygon from '../data/polygon'; - -describe('parser.geojson', () => { - it('parser json', () => { - const result = geojson(polygon); - expect(result.dataArray.length).toEqual(3); - }); - it('parser json hash id ', () => { - const result = geojson(polygon, { - idField: 'name', - }); - expect(result.dataArray.length).toEqual(3); - if (result.featureKeys) { - expect(Object.keys(result.featureKeys)).toEqual([ - '408534', - '410464', - '431974', - ]); - } - }); -}); diff --git a/packages/source/__tests__/parser/json.spec.ts b/packages/source/__tests__/parser/json.spec.ts deleted file mode 100644 index d4395f332a..0000000000 --- a/packages/source/__tests__/parser/json.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import json from '../../src/parser/json'; -import { data1, data2 } from '../data/json'; -describe('parser.json', () => { - it('parser json x, y ', () => { - const result = json(data1, { - type: 'json', - x: 'lng', - y: 'lat', - }); - expect(result.dataArray.length).toEqual(2); - }); - it('parser json coordinate', () => { - const result = json(data2, { - type: 'json', - coordinates: 'coord', - }); - expect(result.dataArray.length).toEqual(2); - }); -}); diff --git a/packages/source/__tests__/source.spec.ts b/packages/source/__tests__/source.spec.ts deleted file mode 100644 index 48086eaca4..0000000000 --- a/packages/source/__tests__/source.spec.ts +++ /dev/null @@ -1,14 +0,0 @@ -import Source from '../src/source'; -import Polygon from './data/polygon'; - -describe('source constructor', () => { - it('source.constructor', () => { - const source = new Source(Polygon); - expect(source.extent).toEqual([ - 114.24373626708983, - 30.55560910664438, - 114.32424545288086, - 30.60807236997211, - ]); - }); -}); diff --git a/packages/source/package.json b/packages/source/package.json deleted file mode 100644 index 0acdc79e1c..0000000000 --- a/packages/source/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "@l7/source", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": true, - "files": [ - "lib", - "es", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "lint:ts": "run-p -c lint:ts-*", - "test": "jest" - }, - "author": "lzxue", - "license": "ISC", - "dependencies": { - "@l7/core": "0.0.1", - "@l7/utils": "0.0.1", - "@mapbox/geojson-rewind": "^0.4.0", - "@turf/helpers": "^6.1.4", - "@turf/invariant": "^6.1.2", - "@turf/meta": "^6.0.2", - "d3-dsv": "^1.1.1", - "d3-hexbin": "^0.2.2", - "eventemitter3": "^4.0.0", - "gl-matrix": "^3.1.0", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "inversify-logging": "^0.2.1", - "lodash": "^4.17.15", - "reflect-metadata": "^0.1.13", - "supercluster": "^6.0.2", - "tapable": "^2.0.0-beta.8" - }, - "devDependencies": { - "@types/d3-dsv": "^1.0.36", - "@types/d3-hexbin": "^0.2.3", - "@types/gl-matrix": "^2.4.5", - "@types/lodash": "^4.14.138", - "@types/viewport-mercator-project": "^6.1.0" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/source/src/factory.ts b/packages/source/src/factory.ts deleted file mode 100644 index b7c2b5d644..0000000000 --- a/packages/source/src/factory.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { IParserCfg, ITransform } from '@l7/core'; -import { IParserData } from './interface'; -type ParserFunction = (data: any, cfg?: any) => IParserData; -type transformFunction = (data: IParserData, cfg?: any) => IParserData; -const TRANSFORMS: { - [type: string]: transformFunction; -} = {}; -const PARSERS: { - [type: string]: ParserFunction; -} = {}; -export const getParser = (type: string) => PARSERS[type]; -export const registerParser = ( - type: string, - parserFunction: ParserFunction, -): void => { - PARSERS[type] = parserFunction; -}; -export const getTransform = (type: string) => TRANSFORMS[type]; -export const registerTransform = ( - type: string, - transFunction: transformFunction, -): void => { - TRANSFORMS[type] = transFunction; -}; diff --git a/packages/source/src/index.ts b/packages/source/src/index.ts deleted file mode 100644 index b4f693a4ca..0000000000 --- a/packages/source/src/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { registerParser, registerTransform } from './factory'; -import csv from './parser/csv'; -import geojson from './parser/geojson'; -import image from './parser/image'; -import json from './parser/json'; -import raster from './parser/raster'; -import Source from './source'; -import { cluster } from './transform/cluster'; -import { aggregatorToGrid } from './transform/grid'; -import { pointToHexbin } from './transform/hexagon'; -export default Source; -registerParser('geojson', geojson); -registerParser('image', image); -registerParser('csv', csv); -registerParser('json', json); -registerParser('raster', raster); -registerTransform('cluster', cluster); -registerTransform('grid', aggregatorToGrid); -registerTransform('hexagon', pointToHexbin); -export { - getTransform, - registerTransform, - getParser, - registerParser, -} from './factory'; - -export * from './interface'; diff --git a/packages/source/src/interface.ts b/packages/source/src/interface.ts deleted file mode 100644 index fa6612f2ef..0000000000 --- a/packages/source/src/interface.ts +++ /dev/null @@ -1,26 +0,0 @@ -export type DataType = string | object[] | object; -export interface IDictionary { - [key: string]: TValue; -} -export interface IFeatureKey { - [key: string]: { - index: number; - idField: any; - }; -} -// 解析后返回数据类型 -export interface IParseDataItem { - coordinates: any[]; - _id: number; - [key: string]: any; -} -export interface IParserData { - [key: string]: any; - dataArray: IParseDataItem[]; - // 瓦片地图数据字典 - featureKeys?: IFeatureKey; -} -export interface IJsonItem { - [key: string]: any; -} -export type IJsonData = IJsonItem[]; diff --git a/packages/source/src/parser/csv.ts b/packages/source/src/parser/csv.ts deleted file mode 100644 index 90bf9177ab..0000000000 --- a/packages/source/src/parser/csv.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { IJsonData, IParserCfg, IParserData } from '@l7/core'; -import { csvParse } from 'd3-dsv'; -import json from './json'; -export default function csv(data: string, cfg: IParserCfg): IParserData { - const csvData: IJsonData = csvParse(data); - return json(csvData, cfg); -} diff --git a/packages/source/src/parser/geojson.ts b/packages/source/src/parser/geojson.ts deleted file mode 100644 index 67fb42eb4c..0000000000 --- a/packages/source/src/parser/geojson.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { djb2hash } from '@l7/utils'; -// @ts-ignore -import rewind from '@mapbox/geojson-rewind'; -import { - Feature, - FeatureCollection, - Geometries, - Geometry, - Properties, -} from '@turf/helpers'; -import { getCoords } from '@turf/invariant'; -import * as turfMeta from '@turf/meta'; -import { IFeatureKey, IParseDataItem, IParserData } from '../interface'; -interface IGeoJSON { - features: object[]; -} -interface IParserCFG { - idField?: string; - [key: string]: any; -} -export default function geoJSON( - data: FeatureCollection, - cfg?: IParserCFG, -): IParserData { - rewind(data, true); // 设置地理多边形方向 If clockwise is true, the outer ring is clockwise, otherwise it is counterclockwise. - const resultData: IParseDataItem[] = []; - const featureKeys: IFeatureKey = {}; - data.features = data.features.filter((item: Feature) => { - const geometry: Geometry | null = item.geometry as Geometry; - return ( - item != null && - geometry && - geometry.type && - geometry.coordinates && - geometry.coordinates.length > 0 - ); - }); - // 数据为空时处理 - let i = 0; - // multi polygon 拆分 - turfMeta.flattenEach( - data, - (currentFeature: Feature, featureIndex: number) => { - const coord = getCoords(currentFeature); - let id = featureIndex; - // 瓦片数据通过字段hash建立索引 - if ( - cfg && - cfg.idField && - currentFeature.properties && - currentFeature.properties[cfg.idField] - ) { - const value = currentFeature.properties[cfg.idField]; - id = djb2hash(value) % 1000019; - featureKeys[id] = { - index: i++, - idField: value, - }; - } - const dataItem: IParseDataItem = { - ...currentFeature.properties, - coordinates: coord, - _id: id, - }; - resultData.push(dataItem); - }, - ); - return { - dataArray: resultData, - featureKeys, - }; -} diff --git a/packages/source/src/parser/image.ts b/packages/source/src/parser/image.ts deleted file mode 100644 index 966291162f..0000000000 --- a/packages/source/src/parser/image.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { IParserData } from '@l7/core'; -import { getImage } from '@l7/utils'; -interface IImageCfg { - extent: [number, number, number, number]; -} -export default function image( - data: string | string[], - cfg: IImageCfg, -): IParserData { - const { extent } = cfg; - const images = new Promise((resolve) => { - loadData(data, (res: any) => { - resolve(res); - }); - }); - const resultData: IParserData = { - images, - _id: 1, - dataArray: [ - { - _id: 0, - coordinates: [ - [extent[0], extent[1]], - [extent[2], extent[3]], - ], - }, - ], - }; - return resultData; -} -function loadData(data: string | string[], done: any) { - const url = data; - const imageDatas: HTMLImageElement[] = []; - if (typeof url === 'string') { - getImage({ url }, (err: string, img: HTMLImageElement) => { - imageDatas.push(img); - done(imageDatas); - }); - } else { - const imageCount = url.length; - let imageindex = 0; - url.forEach((item) => { - getImage({ url: item }, (err: any, img: HTMLImageElement) => { - imageindex++; - imageDatas.push(img); - if (imageindex === imageCount) { - done(imageDatas); - } - }); - }); - } - return image; -} diff --git a/packages/source/src/parser/index.ts b/packages/source/src/parser/index.ts deleted file mode 100644 index 1b0f067281..0000000000 --- a/packages/source/src/parser/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as geojson } from './geojson'; diff --git a/packages/source/src/parser/json.ts b/packages/source/src/parser/json.ts deleted file mode 100644 index 4cf4088f6a..0000000000 --- a/packages/source/src/parser/json.ts +++ /dev/null @@ -1,51 +0,0 @@ -// @ts-ignore -import { - IJsonData, - IJsonItem, - IParseDataItem, - IParserCfg, - IParserData, -} from '@l7/core'; -// @ts-ignore -import rewind from '@mapbox/geojson-rewind'; -export default function json(data: IJsonData, cfg: IParserCfg): IParserData { - const { x, y, x1, y1, coordinates } = cfg; - const resultData: IParseDataItem[] = []; - data.forEach((col: IJsonItem, featureIndex: number) => { - let coords = []; - if (x && y) { - coords = [parseFloat(col[x]), parseFloat(col[y])]; - } // 点数据 - if (x && y && x1 && y1) { - // 弧线 或者线段 - coords = [ - [parseFloat(col[x]), parseFloat(col[y])], - [parseFloat(col[x1]), parseFloat(col[y1])], - ]; - } - if (coordinates) { - let type = 'Polygon'; - if (!Array.isArray(coordinates[0])) { - type = 'Point'; - } - if (Array.isArray(coordinates[0]) && !Array.isArray(coordinates[0][0])) { - type = 'LineString'; - } - const geometry = { - type, - coordinates: [...col[coordinates]], - }; - rewind(geometry, true); - coords = geometry.coordinates; - } - const dataItem = { - ...col, - _id: featureIndex, - coordinates: coords, - }; - resultData.push(dataItem); - }); - return { - dataArray: resultData, - }; -} diff --git a/packages/source/src/parser/raster.ts b/packages/source/src/parser/raster.ts deleted file mode 100644 index 7c3bf6f1ba..0000000000 --- a/packages/source/src/parser/raster.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { IParserData, IRasterCfg } from '@l7/core'; -export default function raster(data: number[], cfg: IRasterCfg): IParserData { - const { extent, width, height, min, max } = cfg; - const resultData = { - _id: 1, - dataArray: [ - { - _id: 1, - data: Array.from(data), - width, - height, - min, - max, - coordinates: [ - [extent[0], extent[1]], - [extent[2], extent[3]], - ], - }, - ], - }; - return resultData; -} diff --git a/packages/source/src/source.ts b/packages/source/src/source.ts deleted file mode 100644 index 9caa6e2534..0000000000 --- a/packages/source/src/source.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { IParserCfg, IParserData, ISourceCFG, ITransform } from '@l7/core'; -import { extent } from '@l7/utils'; -import { BBox, FeatureCollection, Geometries, Properties } from '@turf/helpers'; -import { EventEmitter } from 'eventemitter3'; -import { cloneDeep } from 'lodash'; -import { SyncHook } from 'tapable'; -import { getParser, getTransform } from './'; -export default class Source extends EventEmitter { - public data: IParserData; - - // 数据范围 - public extent: BBox; - // 生命周期钩子 - public hooks = { - init: new SyncHook(['source']), - layout: new SyncHook(['source']), - update: new SyncHook(['source']), - }; - public parser: IParserCfg = { type: 'geojson' }; - public transforms: ITransform[] = []; - - // 原始数据 - private originData: any; - constructor(data: any, cfg?: ISourceCFG) { - super(); - this.data = cloneDeep(data); - this.originData = data; - if (cfg) { - if (cfg.parser) { - this.parser = cfg.parser; - } - if (cfg.transforms) { - this.transforms = cfg.transforms; - } - } - this.hooks.init.tap('parser', () => { - this.excuteParser(); - }); - this.hooks.init.tap('transform', () => { - this.executeTrans(); - }); - this.init(); - } - private excuteParser(): void { - const parser = this.parser; - const type: string = parser.type || 'geojson'; - const sourceParser = getParser(type); - this.data = sourceParser(this.originData, parser); - // 计算范围 - this.extent = extent(this.data.dataArray); - } - /** - * 数据统计 - */ - private executeTrans() { - const trans = this.transforms; - trans.forEach((tran: ITransform) => { - const { type } = tran; - const data = getTransform(type)(this.data, tran); - Object.assign(this.data, data); - }); - } - private init() { - this.hooks.init.call(this); - } -} diff --git a/packages/source/src/transform/cluster.ts b/packages/source/src/transform/cluster.ts deleted file mode 100644 index 5ee549286c..0000000000 --- a/packages/source/src/transform/cluster.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { IParserCfg, IParserData, ISourceCFG, ITransform } from '@l7/core'; -import Supercluster from 'supercluster'; -export function cluster(data: IParserData, option: ITransform): IParserData { - const { radius = 80, maxZoom = 18, minZoom = 0, field, zoom = 2 } = option; - if (data.pointIndex) { - const clusterData = data.pointIndex.getClusters(data.extent, zoom); - data.dataArray = formatData(clusterData); - return data; - } - const pointIndex = new Supercluster({ - radius, - minZoom, - maxZoom, - map: (props) => ({ sum: props[field] }), // 根据指定字段求和 - reduce: (accumulated, props) => { - accumulated.sum += props.sum; - }, - }); - const geojson: { - type: string; - features: any[]; - } = { - type: 'FeatureCollection', - features: [], - }; - geojson.features = data.dataArray.map((item) => { - return { - type: 'Feature', - properties: { - [field]: item[field], - }, - geometry: { - type: 'Point', - coordinates: item.coordinates, - }, - }; - }); - pointIndex.load(geojson.features); - const clusterPoint = pointIndex.getClusters(data.extent, zoom); - const resultData = clusterPoint.map((point, index) => { - return { - coordinates: point.geometry.coordinates, - _id: index + 1, - ...point.properties, - }; - }); - data.dataArray = resultData; - data.pointIndex = pointIndex; - return data; -} -export function formatData(clusterPoint: any[]) { - return clusterPoint.map((point, index) => { - return { - coordinates: point.geometry.coordinates, - _id: index + 1, - ...point.properties, - }; - }); -} diff --git a/packages/source/src/transform/grid.ts b/packages/source/src/transform/grid.ts deleted file mode 100644 index 92f47f1ad5..0000000000 --- a/packages/source/src/transform/grid.ts +++ /dev/null @@ -1,113 +0,0 @@ -/** - * 生成四边形热力图 - */ -import { IParserCfg, IParserData, ISourceCFG, ITransform } from '@l7/core'; -import { aProjectFlat, metersToLngLat } from '@l7/utils'; -import { statMap } from './statistics'; - -interface IGridHash { - [key: string]: any; -} -interface IGridOffset { - yOffset: number; - xOffset: number; -} -const R_EARTH = 6378000; - -export function aggregatorToGrid(data: IParserData, option: ITransform) { - const dataArray = data.dataArray; - const { size = 10 } = option; - const { gridHash, gridOffset } = _pointsGridHash(dataArray, size); - const layerData = _getGridLayerDataFromGridHash(gridHash, gridOffset, option); - return { - yOffset: gridOffset.yOffset / 1.8, - xOffset: gridOffset.xOffset / 1.8, - radius: gridOffset.xOffset, - type: 'grid', - dataArray: layerData, - }; -} - -function _pointsGridHash(dataArray: any[], size: number) { - let latMin = Infinity; - let latMax = -Infinity; - let pLat; - for (const point of dataArray) { - pLat = point.coordinates[1]; - if (Number.isFinite(pLat)) { - latMin = pLat < latMin ? pLat : latMin; - latMax = pLat > latMax ? pLat : latMax; - } - } - // const centerLat = (latMin + latMax) / 2; - const centerLat = 34.54083; - const gridOffset = _calculateGridLatLonOffset(size, centerLat); - if (gridOffset.xOffset <= 0 || gridOffset.yOffset <= 0) { - return { gridHash: {}, gridOffset }; - } - const gridHash: IGridHash = {}; - for (const point of dataArray) { - const lat = point.coordinates[1]; - const lng = point.coordinates[0]; - - if (Number.isFinite(lat) && Number.isFinite(lng)) { - const latIdx = Math.floor((lat + 90) / gridOffset.yOffset); - const lonIdx = Math.floor((lng + 180) / gridOffset.xOffset); - const key = `${latIdx}-${lonIdx}`; - - gridHash[key] = gridHash[key] || { count: 0, points: [] }; - gridHash[key].count += 1; - gridHash[key].points.push(point); - } - } - - return { gridHash, gridOffset }; -} -// 计算网格偏移量 -function _calculateGridLatLonOffset(cellSize: number, latitude: number) { - const yOffset = _calculateLatOffset(cellSize); - const xOffset = _calculateLonOffset(latitude, cellSize); - return { yOffset, xOffset }; -} - -function _calculateLatOffset(dy: number) { - return (dy / R_EARTH) * (180 / Math.PI); -} - -function _calculateLonOffset(lat: number, dx: number) { - return ((dx / R_EARTH) * (180 / Math.PI)) / Math.cos((lat * Math.PI) / 180); -} -function _getGridLayerDataFromGridHash( - gridHash: IGridHash, - gridOffset: IGridOffset, - option: ITransform, -) { - return Object.keys(gridHash).reduce((accu, key, i) => { - const idxs = key.split('-'); - const latIdx = parseInt(idxs[0], 10); - const lonIdx = parseInt(idxs[1], 10); - const item: { - [key: string]: any; - } = {}; - if (option.field && option.method) { - const columns = getColumn(gridHash[key].points, option.field); - item[option.method] = statMap[option.method](columns); - } - Object.assign(item, { - _id: i + 1, - coordinates: [ - -180 + gridOffset.xOffset * lonIdx, - -90 + gridOffset.yOffset * latIdx, - ], - count: gridHash[key].count, - }); - // @ts-ignore - accu.push(item); - return accu; - }, []); -} -function getColumn(data: any[], columnName: string) { - return data.map((item) => { - return item[columnName] * 1; - }); -} diff --git a/packages/source/src/transform/grid2.ts b/packages/source/src/transform/grid2.ts deleted file mode 100644 index 903dfb51cf..0000000000 --- a/packages/source/src/transform/grid2.ts +++ /dev/null @@ -1,94 +0,0 @@ -/** - * 生成四边形热力图 - */ -import { - IParseDataItem, - IParserCfg, - IParserData, - ISourceCFG, - ITransform, -} from '@l7/core'; -import { aProjectFlat, metersToLngLat } from '@l7/utils'; -import { statMap } from './statistics'; - -interface IGridHash { - [key: string]: any; -} -interface IGridOffset { - yOffset: number; - xOffset: number; -} -interface IRawData { - coordinates: [number, number]; - [key: string]: any; -} -const R_EARTH = 6378000; - -export function aggregatorToGrid(data: IParserData, option: ITransform) { - const dataArray = data.dataArray; - const { size = 10 } = option; - const pixlSize = ((size / (2 * Math.PI * R_EARTH)) * (256 << 20)) / 2; - const screenPoints: IRawData[] = dataArray.map((point: IParseDataItem) => { - const [x, y] = aProjectFlat(point.coordinates); - return { - ...point, - coordinates: [parseInt(x.toFixed(0), 10), parseInt(y.toFixed(0), 10)], - }; - }); - const gridHash = _pointsGridHash(screenPoints, pixlSize); - const layerData = _getGridLayerDataFromGridHash(gridHash, pixlSize, option); - return { - yOffset: pixlSize / 2, - xOffset: pixlSize / 2, - dataArray: layerData, - }; -} - -function _pointsGridHash(dataArray: any[], size: number) { - const gridHash: IGridHash = {}; - for (const point of dataArray) { - const x = point.coordinates[0]; - const y = point.coordinates[1]; - const latIdx = Math.floor(y / size); - const lonIdx = Math.floor(x / size); - const key = `${latIdx}-${lonIdx}`; - - gridHash[key] = gridHash[key] || { count: 0, points: [] }; - gridHash[key].count += 1; - gridHash[key].points.push(point); - } - - return gridHash; -} - -function _getGridLayerDataFromGridHash( - gridHash: IGridHash, - size: number, - option: ITransform, -) { - return Object.keys(gridHash).reduce((accu, key, i) => { - const idxs = key.split('-'); - const latIdx = parseInt(idxs[0], 10); - const lonIdx = parseInt(idxs[1], 10); - const item: { - [key: string]: any; - } = {}; - if (option.field && option.method) { - const columns = getColumn(gridHash[key].points, option.field); - item[option.method] = statMap[option.method](columns); - } - Object.assign(item, { - _id: i + 1, - coordinates: [lonIdx * size, latIdx * size], - count: gridHash[key].count, - }); - // @ts-ignore - accu.push(item); - return accu; - }, []); -} -function getColumn(data: any[], columnName: string) { - return data.map((item) => { - return item[columnName] * 1; - }); -} diff --git a/packages/source/src/transform/hexagon.ts b/packages/source/src/transform/hexagon.ts deleted file mode 100644 index 06cdd48d54..0000000000 --- a/packages/source/src/transform/hexagon.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { aProjectFlat, metersToLngLat } from '@l7/utils'; -import { hexbin } from 'd3-hexbin'; -const R_EARTH = 6378000; -import { - IParseDataItem, - IParserCfg, - IParserData, - ISourceCFG, - ITransform, -} from '@l7/core'; -import { statMap } from './statistics'; -interface IHexBinItem extends Array { - x: number; - y: number; - [key: string]: any; -} -interface IRawData { - coordinates: [number, number]; - [key: string]: any; -} -export function pointToHexbin(data: IParserData, option: ITransform) { - const dataArray = data.dataArray; - const { size = 10 } = option; - const pixlSize = ((size / (2 * Math.PI * R_EARTH)) * (256 << 20)) / 2; - const screenPoints: IRawData[] = dataArray.map((point: IParseDataItem) => { - const [x, y] = aProjectFlat(point.coordinates); - return { - ...point, - coordinates: [x, y], - }; - }); - - const newHexbin = hexbin() - .radius(pixlSize) - .x((d: IRawData) => d.coordinates[0]) - .y((d: IRawData) => d.coordinates[1]); - const hexbinBins = newHexbin(screenPoints); - - const result: IParserData = { - dataArray: hexbinBins.map((hex: IHexBinItem, index: number) => { - if (option.field && option.method) { - const columns = getColumn(hex, option.field); - hex[option.method] = statMap[option.method](columns); - } - return { - [option.method]: hex[option.method], - count: hex.length, - coordinates: [hex.x, hex.y], - _id: index + 1, - }; - }), - radius: pixlSize, - xOffset: pixlSize, - yOffset: pixlSize, - type: 'hexagon', - }; - return result; -} -function getColumn(data: IHexBinItem, columnName: string) { - return data.map((item: IRawData) => { - return item[columnName] * 1; - }); -} diff --git a/packages/source/src/transform/statistics.ts b/packages/source/src/transform/statistics.ts deleted file mode 100644 index 5f2f4f387c..0000000000 --- a/packages/source/src/transform/statistics.ts +++ /dev/null @@ -1,77 +0,0 @@ -function max(x: number[]) { - if (x.length === 0) { - throw new Error('max requires at least one data point'); - } - - let value = x[0]; - for (let i = 1; i < x.length; i++) { - // On the first iteration of this loop, max is - // undefined and is thus made the maximum element in the array - if (x[i] > value) { - value = x[i]; - } - } - return value; -} - -function min(x: number[]) { - if (x.length === 0) { - throw new Error('min requires at least one data point'); - } - - let value = x[0]; - for (let i = 1; i < x.length; i++) { - // On the first iteration of this loop, min is - // undefined and is thus made the minimum element in the array - if (x[i] < value) { - value = x[i]; - } - } - return value; -} - -function sum(x: number[]) { - // If the array is empty, we needn't bother computing its sum - if (x.length === 0) { - return 0; - } - - // Initializing the sum as the first number in the array - let sumNum = x[0]; - - // Keeping track of the floating-point error correction - let correction = 0; - - let transition; - - for (let i = 1; i < x.length; i++) { - transition = sumNum + x[i] * 1; - - // Here we need to update the correction in a different fashion - // if the new absolute value is greater than the absolute sum - if (Math.abs(sumNum) >= Math.abs(x[i])) { - correction += sumNum - transition + x[i]; - } else { - correction += x[i] - transition + sumNum; - } - - sumNum = transition; - } - - // Returning the corrected sum - return sumNum + correction * 1; -} -function mean(x: number[]) { - if (x.length === 0) { - throw new Error('mean requires at least one data point'); - } - return sum(x) / x.length; -} - -export { sum, max, min, mean }; -export const statMap: { [key: string]: any } = { - min, - max, - mean, - sum, -}; diff --git a/packages/source/tsconfig.build.json b/packages/source/tsconfig.build.json deleted file mode 100644 index 17f6c4525a..0000000000 --- a/packages/source/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/packages/utils/.gitignore b/packages/utils/.gitignore deleted file mode 100644 index 49c199b6ab..0000000000 --- a/packages/utils/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -es -dist diff --git a/packages/utils/__tests__/geo.spec.ts b/packages/utils/__tests__/geo.spec.ts deleted file mode 100644 index 1e2eb32431..0000000000 --- a/packages/utils/__tests__/geo.spec.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { aProjectFlat, lngLatToMeters, project } from '../src/geo'; -describe('aProjectFlat', () => { - it('aProjectFlat', () => { - // console.log(aProjectFlat([112, 32])); - // console.log(lngLatToMeters([112, 32])); - // console.log(project([112, 32])); - }); -}); diff --git a/packages/utils/package.json b/packages/utils/package.json deleted file mode 100644 index 35a735ec74..0000000000 --- a/packages/utils/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "@l7/utils", - "version": "0.0.1", - "description": "", - "main": "lib/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "sideEffects": true, - "files": [ - "lib", - "es", - "README.md" - ], - "scripts": { - "tsc": "tsc --project tsconfig.build.json", - "clean": "rimraf dist; rimraf es; rimraf lib;", - "build": "run-p build:*", - "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", - "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments" - }, - "author": "lzxue", - "license": "ISC", - "dependencies": { - "@turf/helpers": "^6.1.4", - "eventemitter3": "^4.0.0", - "gl-matrix": "^3.1.0", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "inversify-logging": "^0.2.1", - "lodash": "^4.17.15", - "reflect-metadata": "^0.1.13", - "tapable": "^2.0.0-beta.8" - }, - "devDependencies": { - "@types/gl-matrix": "^2.4.5", - "@types/lodash": "^4.14.138" - }, - "gitHead": "0563f357f3a07c099bf1ffa9350e6fa3c88353ae", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/utils/src/dom.ts b/packages/utils/src/dom.ts deleted file mode 100644 index 205cd123ab..0000000000 --- a/packages/utils/src/dom.ts +++ /dev/null @@ -1,143 +0,0 @@ -const docStyle = window.document.documentElement.style; -type ELType = HTMLElement | SVGElement; -export function createRendererContainer(domId: string): HTMLDivElement | null { - const $wrapper = document.getElementById(domId); - - if ($wrapper) { - const $container = document.createElement('div'); - $container.style.cssText += ` - position: absolute; - top: 0; - z-index:2; - height: 100%; - width: 100%; - pointer-events: none; - `; - $container.id = 'l7_canvaslayer'; - $wrapper.appendChild($container); - return $container; - } - - return null; -} - -export function trim(str: string) { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); -} - -// @function splitWords(str: String): String[] -// Trims and splits the string on whitespace and returns the array of parts. -export function splitWords(str: string) { - return trim(str).split(/\s+/); -} - -function testProp(props: string[]): string { - if (!docStyle) { - return props[0]; - } - for (const i in props) { - if (props[i] && props[i] in docStyle) { - return props[i]; - } - } - - return props[0]; -} -export function create( - tagName: string, - className?: string, - container?: HTMLElement, -) { - const el = document.createElement(tagName); - el.className = className || ''; - - if (container) { - container.appendChild(el); - } - return el; -} -// @function remove(el: HTMLElement) -// Removes `el` from its parent element -export function remove(el: ELType) { - const parent = el.parentNode; - if (parent) { - parent.removeChild(el); - } -} - -// @function addClass(el: HTMLElement, name: String) -// Adds `name` to the element's class attribute. -export function addClass(el: ELType, name: string) { - if (el.classList !== undefined) { - const classes = splitWords(name); - for (let i = 0, len = classes.length; i < len; i++) { - el.classList.add(classes[i]); - } - } else if (!hasClass(el, name)) { - const className = getClass(el); - setClass(el, (className ? className + ' ' : '') + name); - } -} - -// @function removeClass(el: HTMLElement, name: String) -// Removes `name` from the element's class attribute. -export function removeClass(el: ELType, name: string) { - if (el.classList !== undefined) { - el.classList.remove(name); - } else { - setClass( - el, - trim((' ' + getClass(el) + ' ').replace(' ' + name + ' ', ' ')), - ); - } -} - -// @function hasClass(el: HTMLElement, name: String): Boolean -// Returns `true` if the element's class attribute contains `name`. -export function hasClass(el: ELType, name: string) { - if (el.classList !== undefined) { - return el.classList.contains(name); - } - const className = getClass(el); - return ( - className.length > 0 && - new RegExp('(^|\\s)' + name + '(\\s|$)').test(className) - ); -} - -// @function setClass(el: HTMLElement, name: String) -// Sets the element's class. -export function setClass(el: ELType, name: string) { - if (el instanceof HTMLElement) { - el.className = name; - } else { - // in case of SVG element - el.className.baseVal = name; - } -} - -// @function getClass(el: HTMLElement): String -// Returns the element's class. -export function getClass(el: ELType) { - // Check if the element is an SVGElementInstance and use the correspondingElement instead - // (Required for linked SVG elements in IE11.) - if (el instanceof SVGElement) { - el = el.correspondingElement; - } - return el.className.baseVal === undefined - ? el.className - : el.className.baseVal; -} - -export function empty(el: ELType) { - while (el.firstChild) { - el.removeChild(el.firstChild); - } -} - -const transformProp = testProp(['transform', 'WebkitTransform']); - -export function setTransform(el: ELType, value: string) { - // @ts-ignore - el.style[transformProp] = value; -} diff --git a/packages/utils/src/event.ts b/packages/utils/src/event.ts deleted file mode 100644 index 3662f8ebd7..0000000000 --- a/packages/utils/src/event.ts +++ /dev/null @@ -1,8 +0,0 @@ -export function bindAll(fns: string[], context: any) { - fns.forEach((fn) => { - if (!context[fn]) { - return; - } - context[fn] = context[fn].bind(context); - }); -} diff --git a/packages/utils/src/fetchData.ts b/packages/utils/src/fetchData.ts deleted file mode 100644 index a4e874fee6..0000000000 --- a/packages/utils/src/fetchData.ts +++ /dev/null @@ -1,125 +0,0 @@ -class AJAXError extends Error { - private status: number; - private url: string; - - constructor(message: string, status: number, url: string) { - super(message); - this.status = status; - this.url = url; - - // work around for https://github.com/Rich-Harris/buble/issues/40 - this.name = this.constructor.name; - this.message = message; - } - - public toString() { - return `${this.name}: ${this.message} (${this.status}): ${this.url}`; - } -} - -function makeRequest(requestParameters: any) { - const xhr = new XMLHttpRequest(); - - xhr.open('GET', requestParameters.url, true); - for (const k in requestParameters.headers) { - if (requestParameters.headers.hasOwnProperty(k)) { - xhr.setRequestHeader(k, requestParameters.headers[k]); - } - } - xhr.withCredentials = requestParameters.credentials === 'include'; - return xhr; -} - -export const getJSON = (requestParameters: any, callback: any) => { - const xhr = makeRequest(requestParameters); - xhr.setRequestHeader('Accept', 'application/json'); - xhr.onerror = () => { - callback(new Error(xhr.statusText)); - }; - xhr.onload = () => { - if (xhr.status >= 200 && xhr.status < 300 && xhr.response) { - let data; - try { - data = JSON.parse(xhr.response); - } catch (err) { - return callback(err); - } - callback(null, data); - } else { - if (xhr.status === 401) { - callback( - new AJAXError(`${xhr.statusText}`, xhr.status, requestParameters.url), - ); - } else { - callback( - new AJAXError(xhr.statusText, xhr.status, requestParameters.url), - ); - } - } - }; - xhr.send(); - return xhr; -}; - -export const getArrayBuffer = (requestParameters: any, callback: any) => { - const xhr = makeRequest(requestParameters); - xhr.responseType = 'arraybuffer'; - xhr.onerror = () => { - callback(new Error(xhr.statusText)); - }; - xhr.onload = () => { - const response = xhr.response; - if (response.byteLength === 0 && xhr.status === 200) { - return callback(new Error('http status 200 returned without content.')); - } - if (xhr.status >= 200 && xhr.status < 300 && xhr.response) { - callback(null, { - data: response, - cacheControl: xhr.getResponseHeader('Cache-Control'), - expires: xhr.getResponseHeader('Expires'), - }); - } else { - callback( - new AJAXError(xhr.statusText, xhr.status, requestParameters.url), - ); - } - }; - xhr.send(); - return xhr; -}; - -function sameOrigin(url: string) { - const a = window.document.createElement('a'); - a.href = url; - return ( - a.protocol === window.document.location.protocol && - a.host === window.document.location.host - ); -} - -const transparentPngUrl = - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII='; - -export const getImage = (requestParameters: any, callback: any) => { - // request the image with XHR to work around caching issues - // see https://github.com/mapbox/mapbox-gl-js/issues/1470 - return getArrayBuffer(requestParameters, (err: string, imgData: any) => { - if (err) { - callback(err); - } else if (imgData) { - const img = new window.Image(); - img.crossOrigin = 'anonymous'; - const URL = window.URL || window.webkitURL; - img.onload = () => { - callback(null, img); - URL.revokeObjectURL(img.src); - }; - const blob = new window.Blob([new Uint8Array(imgData.data)], { - type: 'image/png', - }); - img.src = imgData.data.byteLength - ? URL.createObjectURL(blob) - : transparentPngUrl; - } - }); -}; diff --git a/packages/utils/src/geo.ts b/packages/utils/src/geo.ts deleted file mode 100644 index 61c6ae1778..0000000000 --- a/packages/utils/src/geo.ts +++ /dev/null @@ -1,209 +0,0 @@ -import { - BBox, - Coord, - degreesToRadians, - isObject, - radiansToLength, - Units, -} from '@turf/helpers'; - -const originShift = (2 * Math.PI * 6378137) / 2.0; -export type Point = number[]; -/** - * 计算地理数据范围 - * @param {dataArray} data 地理坐标数据 - * @return {Array} dataExtent - */ -export function extent(data: any[]): BBox { - const dataExtent: BBox = [Infinity, Infinity, -Infinity, -Infinity]; - data.forEach((item) => { - const { coordinates } = item; - caculExtent(dataExtent, coordinates); - }); - return dataExtent; -} -function caculExtent(dataExtent: BBox, coords: any[]) { - if (Array.isArray(coords[0])) { - coords.forEach((coord) => { - caculExtent(dataExtent, coord); - }); - } else { - if (dataExtent[0] > coords[0]) { - dataExtent[0] = coords[0]; - } - if (dataExtent[1] > coords[1]) { - dataExtent[1] = coords[1]; - } - if (dataExtent[2] < coords[0]) { - dataExtent[2] = coords[0]; - } - if (dataExtent[3] < coords[1]) { - dataExtent[3] = coords[1]; - } - } - return dataExtent; -} - -export function tranfrormCoord(data: any[], cb: (item: any[]) => any) { - return transform(data, cb); -} -function transform(item: any[], cb: (item: any[]) => any): any { - if (Array.isArray(item[0])) { - return item.map((coord) => { - return transform(coord, cb); - }); - } - return cb(item); -} -export function lngLatToMeters(lnglat: Point): Point; -export function lngLatToMeters( - lnglat: Point, - validate: boolean = true, - accuracy = { enable: true, decimal: 1 }, -) { - lnglat = validateLngLat(lnglat, validate); - const lng = lnglat[0]; - const lat = lnglat[1]; - let x = (lng * originShift) / 180.0; - let y = - Math.log(Math.tan(((90 + lat) * Math.PI) / 360.0)) / (Math.PI / 180.0); - y = (y * originShift) / 180.0; - if (accuracy.enable) { - x = Number(x.toFixed(accuracy.decimal)); - y = Number(y.toFixed(accuracy.decimal)); - } - return lnglat.length === 3 ? [x, y, lnglat[2]] : [x, y]; -} - -export function metersToLngLat(meters: Point, decimal = 6) { - const x = meters[0]; - const y = meters[1]; - let lng = (x / originShift) * 180.0; - let lat = (y / originShift) * 180.0; - lat = - (180 / Math.PI) * - (2 * Math.atan(Math.exp((lat * Math.PI) / 180.0)) - Math.PI / 2.0); - if (decimal !== undefined && decimal !== null) { - lng = Number(lng.toFixed(decimal)); - lat = Number(lat.toFixed(decimal)); - } - return meters.length === 3 ? [lng, lat, meters[2]] : [lng, lat]; -} -export function longitude(lng: number) { - if (lng === undefined || lng === null) { - throw new Error('lng is required'); - } - - // lngitudes cannot extends beyond +/-90 degrees - if (lng > 180 || lng < -180) { - lng = lng % 360; - if (lng > 180) { - lng = -360 + lng; - } - if (lng < -180) { - lng = 360 + lng; - } - if (lng === 0) { - lng = 0; - } - } - return lng; -} -export function latitude(lat: number) { - if (lat === undefined || lat === null) { - throw new Error('lat is required'); - } - - if (lat > 90 || lat < -90) { - lat = lat % 180; - if (lat > 90) { - lat = -180 + lat; - } - if (lat < -90) { - lat = 180 + lat; - } - if (lat === 0) { - lat = 0; - } - } - return lat; -} -export function validateLngLat(lnglat: Point, validate: boolean): Point { - if (validate === false) { - return lnglat; - } - - const lng = longitude(lnglat[0]); - let lat = latitude(lnglat[1]); - - // Global Mercator does not support latitudes within 85 to 90 degrees - if (lat > 85) { - lat = 85; - } - if (lat < -85) { - lat = -85; - } - return lnglat.length === 3 ? [lng, lat, lnglat[2]] : [lng, lat]; -} -export function aProjectFlat(lnglat: number[]) { - const maxs = 85.0511287798; - const lat = Math.max(Math.min(maxs, lnglat[1]), -maxs); - const scale = 256 << 20; - let d = Math.PI / 180; - let x = lnglat[0] * d; - let y = lat * d; - y = Math.log(Math.tan(Math.PI / 4 + y / 2)); - - const a = 0.5 / Math.PI; - const b = 0.5; - const c = -0.5 / Math.PI; - d = 0.5; - x = scale * (a * x + b); - y = scale * (c * y + d); - return [parseInt(x.toString(), 10), parseInt(y.toString(), 10)]; -} -export function unProjectFlat(px: number[]): [number, number] { - const a = 0.5 / Math.PI; - const b = 0.5; - const c = -0.5 / Math.PI; - let d = 0.5; - const scale = 256 << 20; - let [x, y] = px; - x = (x / scale - b) / a; - y = (y / scale - d) / c; - y = (Math.atan(Math.pow(Math.E, y)) - Math.PI / 4) * 2; - d = Math.PI / 180; - const lat = y / d; - const lng = x / d; - return [lng, lat]; -} -export function lnglatDistance( - coordinates1: [number, number], - coordinates2: [number, number], - units?: Units, -): number { - const dLat = degreesToRadians(coordinates2[1] - coordinates1[1]); - const dLon = degreesToRadians(coordinates2[0] - coordinates1[0]); - const lat1 = degreesToRadians(coordinates1[1]); - const lat2 = degreesToRadians(coordinates2[1]); - const a = - Math.pow(Math.sin(dLat / 2), 2) + - Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2); - - return radiansToLength( - 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), - (units = 'meters'), - ); -} - -export function project(lnglat: [number, number]) { - const d = Math.PI / 180; - const max = 85.0511287798; - const earthRadius = 6378137; - const lat = Math.max(Math.min(max, lnglat[1]), -max); - const sin = Math.sin(lat * d); - const x = earthRadius * lnglat[0] * d; - const y = (earthRadius * Math.log((1 + sin) / (1 - sin))) / 2; - - return [x, y]; -} diff --git a/packages/utils/src/hash.ts b/packages/utils/src/hash.ts deleted file mode 100644 index ace2ff1694..0000000000 --- a/packages/utils/src/hash.ts +++ /dev/null @@ -1,24 +0,0 @@ -export function BKDRHash(str: string) { - const seed = 131; - const seed2 = 137; - let hash = 0; - str += 'x'; - const MAX_SAFE_INTEGER = Math.floor(9007199254740991 / seed2); - for (let i = 0; i < str.length; i++) { - if (hash > MAX_SAFE_INTEGER) { - hash = Math.floor(hash / seed2); - } - hash = hash * seed + str.charCodeAt(i); - } - return hash; -} -export function djb2hash(str: string) { - str = str.toString(); - let hash = 5381; - let i = str.length; - - while (i) { - hash = (hash * 33) ^ str.charCodeAt(--i); - } - return hash >>> 0; -} diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts deleted file mode 100644 index d3e73b4277..0000000000 --- a/packages/utils/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { djb2hash, BKDRHash } from './hash'; -import * as DOM from './dom'; -export * from './fetchData'; -export * from './geo'; -export * from './lru_cache'; -export * from './event'; -export { DOM }; diff --git a/packages/utils/src/lru_cache.ts b/packages/utils/src/lru_cache.ts deleted file mode 100644 index 4299f87412..0000000000 --- a/packages/utils/src/lru_cache.ts +++ /dev/null @@ -1,86 +0,0 @@ -/** - * LRU Cache class with limit - * - * Update order for each get/set operation - * Delete oldest when reach given limit - */ -type callback = (...args: any[]) => void; -interface ICache { - [key: string]: any; -} -export class LRUCache { - private limit: number; - private cache: ICache; - private destroy: (value: any, key: string) => void; - private order: any[]; - constructor(limit = 50, destroy?: callback) { - this.limit = limit; - this.destroy = destroy || this.defaultDestroy; - this.order = []; - this.clear(); - } - - public clear() { - this.order.forEach((key) => { - this.delete(key); - }); - this.cache = {}; - // access/update order, first item is oldest, last item is newest - this.order = []; - } - - public get(key: string) { - const value = this.cache[key]; - if (value) { - // update order - this.deleteOrder(key); - this.appendOrder(key); - } - return value; - } - - public set(key: string, value: any) { - if (!this.cache[key]) { - // if reach limit, delete the oldest - if (Object.keys(this.cache).length === this.limit) { - this.delete(this.order[0]); - } - - this.cache[key] = value; - this.appendOrder(key); - } else { - // if found in cache, delete the old one, insert new one to the first of list - this.delete(key); - - this.cache[key] = value; - this.appendOrder(key); - } - } - - public delete(key: string) { - const value = this.cache[key]; - if (value) { - this.deleteCache(key); - this.deleteOrder(key); - this.destroy(value, key); - } - } - - private deleteCache(key: string) { - delete this.cache[key]; - } - - private deleteOrder(key: string) { - const index = this.order.findIndex((o) => o === key); - if (index >= 0) { - this.order.splice(index, 1); - } - } - - private appendOrder(key: string) { - this.order.push(key); - } - private defaultDestroy(value: any, key: string) { - return null; - } -} diff --git a/packages/utils/tsconfig.build.json b/packages/utils/tsconfig.build.json deleted file mode 100644 index 17f6c4525a..0000000000 --- a/packages/utils/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "declarationDir": "./es", - "rootDir": "./src", - "baseUrl": "./" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/site/css/demo.css b/site/css/demo.css deleted file mode 100644 index 7b6e46e0e3..0000000000 --- a/site/css/demo.css +++ /dev/null @@ -1,21 +0,0 @@ -.lableclass { - position: absolute; - display: inline; - cursor: pointer; - background: rgb(255, 228, 120); - border: solid 2px #fff; - padding: 4px; - white-space: nowrap; - font: bold 12px/18px arial, sans-serif; - color: #fff; - border-radius: 50%; - width: 40px; - height: 40px; - line-height: 30px; - /* opacity: 0.7; */ - text-align: center; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} diff --git a/site/css/home.css b/site/css/home.css deleted file mode 100644 index fc6eda07df..0000000000 --- a/site/css/home.css +++ /dev/null @@ -1,32 +0,0 @@ -.home_l7_feature_img { - width:100px; -} -.feature-logo { - height: 100px !important; -} -.cover-image { - margin-top: 60px; - height: 300px; - -} -@media only screen and (max-height: 599) and (max-width: 800px) { - .cover-image { - margin-top: 40px; - margin-left: 260px; - max-height: 400px; - } -} -@media only screen and (min-height: 599px) and (min-width:800px) { - .cover-image { - margin-top: 40px; - margin-left: 10px; - height: 600px; - } -} -@media only screen and (max-height: 599px) and (min-width:800px) { - .cover-image { - margin-top: 40px; - margin-left: 10px; - height: 600px; - } -} diff --git a/site/locale.json b/site/locale.json deleted file mode 100644 index cc16452ec4..0000000000 --- a/site/locale.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "L7 地理空间数据可视分析引擎": "L7 Geospatial Visualization Analysis", - "地理空间数据可视化": "Geospatial Data Visualization Analysis Framework", - "L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于WebGL的开源大规模地理空间数据可视分析开发框架。": "Large-scale WebGL-powered Geospatial data visualization analysis framework", - "架构灵活且自由":"Flexible and Scalable", - "业务专业且通用":"Simple and Universal", - "视觉酷炫且动感":"Cool and Dynamic", - "支持地图底图,渲染引擎,图层自由定制、扩展,组合":"Support many basemap, many rendering engine, and layer free customization, extension, combination", - "以图形符号学地理设计体系理论基础,易用、易理解、专业、专注":"Base on Semiology of Graphics , easy to use, easy to understand, professional, focused", - "支持海量数据,2D、3D,动态,可交互,高性能渲染":"Support multiple basemaps, rendering engines, layers can be customized, expanded and combined freely", - "蚂蚁数据可视化": "AntV", - "继续了解": "More", - "更新": "Update", - "下载使用":"Download", - "浅色色板": "Light Theme", - "深色色板": "Dark Theme", - "一个个真实的地理数据可视化案例,将复杂的地理数据,通过简单,易用的API接口,让用户达到开箱即用的效果。" : "We have summarized a series of story design templates from lots of real geospatial data visualization cases, so that users can use them directly." -} diff --git a/site/pages/index.en.tsx b/site/pages/index.en.tsx deleted file mode 100644 index 4816cd94d3..0000000000 --- a/site/pages/index.en.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import Index from './index.zh'; -export default Index; diff --git a/site/pages/index.zh.tsx b/site/pages/index.zh.tsx deleted file mode 100644 index 8051cc7429..0000000000 --- a/site/pages/index.zh.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import Banner from '@antv/gatsby-theme-antv/site/components/Banner'; -import BannerSVG from '@antv/gatsby-theme-antv/site/components/BannerSVG'; -import Cases from '@antv/gatsby-theme-antv/site/components/Cases'; -import Companies from '@antv/gatsby-theme-antv/site/components/Companies'; -import Features from '@antv/gatsby-theme-antv/site/components/Features'; -import SEO from '@antv/gatsby-theme-antv/site/components/Seo'; -import '../css/home.css'; -import React from 'react'; -import { useTranslation } from 'react-i18next'; - -const IndexPage = () => { - const { t, i18n } = useTranslation(); - - const features = [ - { - icon: - 'https://gw.alipayobjects.com/zos/basement_prod/ca2168d1-ae50-4929-8738-c6df62231de3.svg', - title: t('架构灵活且自由'), - description: t('支持地图底图,渲染引擎,图层自由定制、扩展,组合'), - }, - { - icon: - 'https://gw.alipayobjects.com/zos/basement_prod/0ccf4dcb-1bac-4f4e-8d8d-f1031c77c9c8.svg', - title: t('业务专业且通用'), - description: t( - '以图形符号学地理设计体系理论基础,易用、易理解、专业、专注', - ), - }, - { - icon: - 'https://gw.alipayobjects.com/zos/basement_prod/fd232581-14b3-45ec-a85c-fb349c51b376.svg', - title: t('视觉酷炫且动感'), - description: t('支持海量数据,2D、3D,动态,可交互,高性能渲染'), - }, - ]; - const bannerButtons = [ - { - text: t('图表示例'), - link: `/${i18n.language}/examples/gallery/basic`, - type: 'primary', - }, - { - text: t('下载使用'), - link: `/${i18n.language}/docs/api/l7`, - }, - ]; - - const notifications = [ - { - type: t('测试'), - title: t('L7 2.0 beta'), - date: '2019.12.04', - link: '#', - }, - ]; - - const cases = [ - { - logo:'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*gjBmT56SDgsAAAAAAAAAAABkARQnAQ', - title: t('浅色色板'), - description: t('一个个真实的地理数据可视化案例,将复杂的地理数据,通过简单,易用的API接口,让用户达到开箱即用的效果。'), - link: `/${i18n.language}/examples/gallery/basic`, - image: - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*RPxeQZ8Uk7EAAAAAAAAAAABkARQnAQ', - }, - { - logo:'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*gjBmT56SDgsAAAAAAAAAAABkARQnAQ', - title: t('深色色板'), - description: t('一个个真实的地理数据可视化案例,将复杂的地理数据,通过简单,易用的API接口,让用户达到开箱即用的效果。'), - link: `/${i18n.language}/examples/gallery/basic`, - image: - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*B8rtTpvkqTgAAAAAAAAAAABkARQnAQ', - } - ]; - - return ( - <> - - - } - title={t('L7 地理空间数据可视分析引擎')} - description={t( - 'L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于WebGL的开源大规模地理空间数据可视分析开发框架。', - )} - buttons={bannerButtons} - notifications={notifications} - className="banner" - githubStarLink="https://github.com/antvis/L7/stargazers" - /> - - - - ); -}; - -export default IndexPage; diff --git a/stories/Animation/Animation.stories.tsx b/stories/Animation/Animation.stories.tsx deleted file mode 100644 index 44b1b9e505..0000000000 --- a/stories/Animation/Animation.stories.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { storiesOf } from '@storybook/react'; -import * as React from 'react'; -import Polygon from './components/Polygon'; -// @ts-ignore -storiesOf('动画', module).add('动态更新指定 feature(s)', () => ); diff --git a/stories/Animation/components/Polygon.tsx b/stories/Animation/components/Polygon.tsx deleted file mode 100644 index 3786c27b78..0000000000 --- a/stories/Animation/components/Polygon.tsx +++ /dev/null @@ -1,101 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -function convertRGB2Hex(rgb: number[]) { - return ( - '#' + rgb.map((r) => ('0' + Math.floor(r).toString(16)).slice(-2)).join('') - ); -} - -export default class Mapbox extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - this.scene = scene; - const layer = new PolygonLayer({ - enablePicking: false, - }); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.3, - }); - scene.addLayer(layer); - scene.render(); - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - color: [0, 0, 0], - featureRange: { - startIndex: 0, - endIndex: Infinity, - }, - }; - const pointFolder = gui.addFolder('精确更新 feature'); - pointFolder.add(styleOptions.featureRange, 'startIndex', 0, 100, 1); - pointFolder.add(styleOptions.featureRange, 'endIndex', 0, 100, 1); - pointFolder.addColor(styleOptions, 'color').onChange((color: number[]) => { - layer.color('name', [convertRGB2Hex(color)], { - featureRange: { - startIndex: styleOptions.featureRange.startIndex, - endIndex: styleOptions.featureRange.endIndex, - }, - }); - scene.render(); - }); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/Layers.stories.tsx b/stories/Layers/Layers.stories.tsx deleted file mode 100644 index 1625fe47f2..0000000000 --- a/stories/Layers/Layers.stories.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { storiesOf } from '@storybook/react'; -import * as React from 'react'; -import Arc2DLineDemo from './components/Arc2DLine'; -import ArcLineDemo from './components/Arcline'; -import HeatMapDemo from './components/heatMap'; -import GridHeatMap from './components/heatMapgrid'; -import LineLayer from './components/Line'; -import PointDemo from './components/Point'; -import Point3D from './components/Point3D'; -import PointImage from './components/pointImage'; -import Polygon3D from './components/polygon3D'; -import ImageLayerDemo from './components/rasterImage'; -import RasterLayerDemo from './components/RasterLayer'; - -// @ts-ignore -storiesOf('图层', module) - .add('点图层', () => ) - .add('3D点', () => ) - .add('图片标注', () => ) - .add('面3d图层', () => ) - .add('线图层', () => ) - .add('3D弧线', () => ) - .add('2D弧线', () => ) - .add('网格热力图', () => ) - .add('热力图', () => ) - .add('栅格', () => ) - .add('图片', () => ); diff --git a/stories/Layers/components/Arc2DLine.tsx b/stories/Layers/components/Arc2DLine.tsx deleted file mode 100644 index 8629a3f8e8..0000000000 --- a/stories/Layers/components/Arc2DLine.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { Arc2DLineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class Arc2DLineDemo extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt', - ); - const scene = new Scene({ - center: [116.2825, 39.9], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/dark-v9', - zoom: 2, - }); - const lineLayer = new Arc2DLineLayer({}) - .source(await response.text(), { - parser: { - type: 'csv', - x: 'lng1', - y: 'lat1', - x1: 'lng2', - y1: 'lat2', - }, - }) - .size(0.5) - .shape('arc') - .color('rgb(13,64,140)'); - scene.addLayer(lineLayer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/Arcline.tsx b/stories/Layers/components/Arcline.tsx deleted file mode 100644 index 0ffe2e4439..0000000000 --- a/stories/Layers/components/Arcline.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { ArcLineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class ArcLineDemo extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt', - ); - const scene = new Scene({ - center: [116.2825, 39.9], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/dark-v9', - zoom: 2, - }); - const lineLayer = new ArcLineLayer({}) - .source(await response.text(), { - parser: { - type: 'csv', - x: 'lng1', - y: 'lat1', - x1: 'lng2', - y1: 'lat2', - }, - }) - .size(0.5) - .shape('arc') - .color('rgb(13,64,140)'); - scene.addLayer(lineLayer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/Line.tsx b/stories/Layers/components/Line.tsx deleted file mode 100644 index e3542876d2..0000000000 --- a/stories/Layers/components/Line.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { LineLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class LineDemo extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json', - ); - const testdata = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [ - [91.58203125, 34.95799531086792], - [96.767578125, 34.379712580462204], - [99.228515625, 33.7243396617476], - ], - }, - }, - ], - }; - const scene = new Scene({ - center: [102.602992, 23.107329], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/dark-v9', - zoom: 13, - }); - const lineLayer = new LineLayer({}) - .source(await response.json()) - .size(1) - .shape('line') - .color( - 'ELEV', - [ - '#E8FCFF', - '#CFF6FF', - '#A1E9ff', - '#65CEF7', - '#3CB1F0', - '#2894E0', - '#1772c2', - '#105CB3', - '#0D408C', - '#002466', - ].reverse(), - ) - - scene.addLayer(lineLayer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/Point.tsx b/stories/Layers/components/Point.tsx deleted file mode 100644 index 303a9217d6..0000000000 --- a/stories/Layers/components/Point.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { PointLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; -import data from '../data/data.json'; -export default class Point3D extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public componentDidMount() { - const scene = new Scene({ - center: [120.19382669582967, 30.258134], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 1, - }); - const pointLayer = new PointLayer({}); - const p1 = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [83.671875, 44.84029065139799], - }, - }, - ], - }; - pointLayer - .source(data) - .color('name', [ - '#FFF5B8', - '#FFDC7D', - '#FFAB5C', - '#F27049', - '#D42F31', - '#730D1C', - ]) - .shape('subregion',[ - 'circle', - 'triangle', - 'square', - 'pentagon', - 'hexagon', - 'octogon', - 'hexagram', - 'rhombus', - 'vesica', - ]) - .size('scalerank', [5,10]) - .style({ - opacity: 1.0 - }) - ; - scene.addLayer(pointLayer); - console.log(pointLayer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/Point3D.tsx b/stories/Layers/components/Point3D.tsx deleted file mode 100644 index 34b8e4315f..0000000000 --- a/stories/Layers/components/Point3D.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { Point3dLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; -import data from '../data/data.json'; -export default class Point3D extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public componentDidMount() { - const scene = new Scene({ - center: [120.19382669582967, 30.258134], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 1, - }); - const pointLayer = new Point3dLayer({}); - const p1 = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [83.671875, 44.84029065139799], - }, - }, - ], - }; - pointLayer - .source(data) - .color('red') - .shape('cylinder') - .size([15, 10]); - scene.addLayer(pointLayer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/RasterLayer.tsx b/stories/Layers/components/RasterLayer.tsx deleted file mode 100644 index e489cdeb2a..0000000000 --- a/stories/Layers/components/RasterLayer.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { RasterLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -// @ts-ignore -import * as GeoTIFF from 'geotiff/dist/geotiff.bundle.js'; -import * as React from 'react'; - -export default class ImageLayerDemo extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const scene = new Scene({ - center: [121.268, 30.3628], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 2, - }); - const tiffdata = await this.getTiffData(); - const layer = new RasterLayer({}); - layer - .source(tiffdata.data, { - parser: { - type: 'raster', - width: tiffdata.width, - height: tiffdata.height, - min: 0, - max: 8000, - extent: [73.482190241, 3.82501784112, 135.106618732, 57.6300459963], - }, - }) - .style({ - opacity: 0.8, - rampColors: { - colors: [ - '#002466', - '#0D408C', - '#105CB3', - '#1A76C7', - '#2894E0', - '#3CB4F0', - '#65CEF7', - '#98E3FA', - '#CFF6FF', - '#E8FCFF', - ], - positions: [0, 0.02, 0.05, 0.1, 0.2, 0.3, 0.5, 0.6, 0.8, 1.0], - }, - }); - scene.addLayer(layer); - console.log(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } - private async getTiffData() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/rmsportal/XKgkjjGaAzRyKupCBiYW.dat', - ); - const arrayBuffer = await response.arrayBuffer(); - const tiff = await GeoTIFF.fromArrayBuffer(arrayBuffer); - const image = await tiff.getImage(); - const width = image.getWidth(); - const height = image.getHeight(); - const values = await image.readRasters(); - return { - data: values[0], - width, - height, - min: 0, - max: 8000, - }; - } -} diff --git a/stories/Layers/components/Text.tsx b/stories/Layers/components/Text.tsx deleted file mode 100644 index 00c39467ce..0000000000 --- a/stories/Layers/components/Text.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { PointLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; -import data from '../data/data.json'; -export default class Point3D extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public componentDidMount() { - const scene = new Scene({ - center: [120.19382669582967, 30.258134], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 1, - }); - const pointLayer = new PointLayer({}); - const p1 = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [83.671875, 44.84029065139799], - }, - }, - ], - }; - pointLayer - .source(data) - .color('name', [ - '#FFF5B8', - '#FFDC7D', - '#FFAB5C', - '#F27049', - '#D42F31', - '#730D1C', - ]) - .shape('subregion',[ - 'circle', - 'triangle', - 'square', - 'pentagon', - 'hexagon', - 'octogon', - 'hexagram', - 'rhombus', - 'vesica', - ]) - .size('scalerank', [2, 4, 6, 8, 10]); - scene.addLayer(pointLayer); - console.log(pointLayer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/heatMap.tsx b/stories/Layers/components/heatMap.tsx deleted file mode 100644 index 932a838c23..0000000000 --- a/stories/Layers/components/heatMap.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { HeatMapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -// @ts-ignore -import * as React from 'react'; - -export default class HeatMapLayerDemo extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d3564b06-670f-46ea-8edb-842f7010a7c6.json', - ); - const scene = new Scene({ - center: [121.268, 30.3628], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/dark-v10', - zoom: 2, - }); - const layer = new HeatMapLayer({ - enableTAA: false, - }); - layer - .source(await response.json()) - .size('mag', [0, 1]) // weight映射通道 - .style({ - intensity: 2, - radius: 20, - opacity: 0.6, - rampColors: { - colors: [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ], - positions: [0,0.2, 0.4, 0.6, 0.8, 1.0], - }, - }); - scene.addLayer(layer); - console.log(layer); - // requestAnimationFrame(run); - scene.render(); - this.scene = scene; - // function run() { - // scene.render(); - // requestAnimationFrame(run); - // } - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/heatMapgrid.tsx b/stories/Layers/components/heatMapgrid.tsx deleted file mode 100644 index 87b94df2c6..0000000000 --- a/stories/Layers/components/heatMapgrid.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { HeatmapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class GridHeatMap extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/c3f8bda2-081b-449d-aa9f-9413b779205b.json', - ); - const scene = new Scene({ - center: [116.49434030056, 39.868073421167621], - id: 'map', - pitch: 0, - type: 'amap', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 16, - }); - const layer = new HeatMapGridLayer({}); - layer - .source(await response.json(), { - parser: { - type: 'json', - x: 'lng', - y: 'lat', - }, - transforms: [ - { - type: 'grid', - size: 50, - field: 'count', - method: 'sum', - }, - ], - }) - .size('sum', (value: number) => { - return value; - }) - .shape('circle') - .style({ - coverage: 0.8, - angle: 0, - }) - .color('count', [ - '#002466', - '#105CB3', - '#2894E0', - '#CFF6FF', - '#FFF5B8', - '#FFAB5C', - '#F27049', - '#730D1C', - ]); - scene.addLayer(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/pointImage.tsx b/stories/Layers/components/pointImage.tsx deleted file mode 100644 index 1d35687395..0000000000 --- a/stories/Layers/components/pointImage.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { PointImageLayer, PointLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; -import data from '../data/data.json'; -export default class PointImage extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json', - ); - const scene = new Scene({ - center: [121.40, 31.258134], - zoom: 15, - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - }); - scene.addImage( - '00', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Rq6tQ5b4_JMAAAAAAAAAAABkARQnAQ', - ); - scene.addImage( - '01', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*0D0SQ6AgkRMAAAAAAAAAAABkARQnAQ', - ); - scene.addImage( - '02', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*o16fSIvcKdUAAAAAAAAAAABkARQnAQ', - ); - this.scene = scene; - scene.on('loaded', () => { - run(); - }); - const imageLayer = new PointImageLayer({}) - .source(await response.json(), { - parser: { - type: 'json', - x: 'longitude', - y: 'latitude', - } - }) - .shape('name', ['00', '01', '02']) - .size(60); - scene.addLayer(imageLayer); - - function run() { - scene.render(); - console.log('render'); - requestAnimationFrame(run); - } - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/polygon3D.tsx b/stories/Layers/components/polygon3D.tsx deleted file mode 100644 index 852bd170a0..0000000000 --- a/stories/Layers/components/polygon3D.tsx +++ /dev/null @@ -1,76 +0,0 @@ -// @ts-ignore -import { Polygon3DLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -function convertRGB2Hex(rgb: number[]) { - return ( - '#' + rgb.map((r) => ('0' + Math.floor(r).toString(16)).slice(-2)).join('') - ); -} - -export default class Polygon3D extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - this.scene = scene; - const layer = new Polygon3DLayer({}); - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 1.0, - }); - scene.addLayer(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/components/rasterImage.tsx b/stories/Layers/components/rasterImage.tsx deleted file mode 100644 index 330812320a..0000000000 --- a/stories/Layers/components/rasterImage.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { ImageLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class ImageLayerDemo extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public componentDidMount() { - const scene = new Scene({ - center: [121.2680,30.3628], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 10, - }); - const layer = new ImageLayer({}); - layer.source( - 'https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg', - { - parser: { - type: 'image', - extent: [121.168, 30.2828, 121.384, 30.4219], - }, - }, - ); - scene.addLayer(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Layers/data/data.json b/stories/Layers/data/data.json deleted file mode 100644 index 9a9f830d5c..0000000000 --- a/stories/Layers/data/data.json +++ /dev/null @@ -1,4940 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "South West Cape", - "comment": null, - "name_alt": null, - "lat_y": -43.510984, - "long_x": 146.054227, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 146.03379804609568, - -43.5404025683706 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Howe", - "comment": null, - "name_alt": null, - "lat_y": -37.488775, - "long_x": 149.95853, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 149.95838463633373, - -37.48894622188092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Otway", - "comment": null, - "name_alt": null, - "lat_y": -38.857622, - "long_x": 143.565403, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 143.537005108191, - -38.85472383068997 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Jaffa", - "comment": null, - "name_alt": null, - "lat_y": -36.944244, - "long_x": 139.690866, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 139.68061977964746, - -36.95624316107086 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Carnot", - "comment": null, - "name_alt": null, - "lat_y": -34.920233, - "long_x": 135.656027, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 135.65378326897053, - -34.93870859313661 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Byron", - "comment": null, - "name_alt": null, - "lat_y": -28.658282, - "long_x": 153.632849, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 153.62799176015545, - -28.66197417050363 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Manifold", - "comment": null, - "name_alt": null, - "lat_y": -22.702081, - "long_x": 150.811228, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 150.81116783945873, - -22.702080987505923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape York", - "comment": null, - "name_alt": null, - "lat_y": -10.710859, - "long_x": 142.522018, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 142.52173912852123, - -10.710747979693423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Melville", - "comment": null, - "name_alt": null, - "lat_y": -14.163629, - "long_x": 144.506417, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 144.50660240977123, - -14.163506768755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Arnhem", - "comment": null, - "name_alt": null, - "lat_y": -12.337984, - "long_x": 136.952429, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 136.91481885262823, - -12.295662864626316 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "West Cape Howe", - "comment": null, - "name_alt": null, - "lat_y": -35.104301, - "long_x": 117.597011, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 117.59693444102123, - -35.10430266719342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Leeuwin", - "comment": null, - "name_alt": null, - "lat_y": -34.297841, - "long_x": 115.10633, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 115.1280088910596, - -34.328007092559645 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Pasley", - "comment": null, - "name_alt": null, - "lat_y": -33.929054, - "long_x": 123.517283, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 123.51722252695873, - -33.92888762813092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Londonderry", - "comment": null, - "name_alt": null, - "lat_y": -13.713856, - "long_x": 126.964514, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 126.94130045687105, - -13.74290642667802 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Steep Point", - "comment": null, - "name_alt": null, - "lat_y": -26.16822, - "long_x": 113.169959, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 113.14519563289093, - -26.157463616878637 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "North West Cape", - "comment": null, - "name_alt": null, - "lat_y": -21.809776, - "long_x": 114.117534, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 114.16010761213809, - -21.801474697071743 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Lands End", - "comment": null, - "name_alt": null, - "lat_y": 50.069677, - "long_x": -5.668629, - "region": "Europe", - "subregion": "British Isles", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -5.668629523822517, - 50.06970856327533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Gracias a Dios", - "comment": null, - "name_alt": null, - "lat_y": 14.994242, - "long_x": -83.15866, - "region": "North America", - "subregion": "Central America", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -83.15874182851002, - 14.994208074994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Brewster", - "comment": null, - "name_alt": null, - "lat_y": 70.150754, - "long_x": -22.122616, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -22.122731086322517, - 70.15088532108783 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Morris Jesup", - "comment": null, - "name_alt": null, - "lat_y": 83.626331, - "long_x": -32.491541, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -32.49150550038502, - 83.62628815311908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape York", - "comment": null, - "name_alt": null, - "lat_y": 76.218919, - "long_x": -68.218612, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -68.21861731679127, - 76.21887848515033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Nunap Isua", - "comment": null, - "name_alt": "Cape Farewell", - "lat_y": 59.862583, - "long_x": -43.90088, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -43.90080725819752, - 59.86267731327533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Rifstangi", - "comment": null, - "name_alt": null, - "lat_y": 66.530766, - "long_x": -16.126417, - "region": "Europe", - "subregion": "Iceland", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -16.148503201808108, - 66.53076813358783 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Grmsey", - "comment": null, - "name_alt": null, - "lat_y": 66.669359, - "long_x": -18.251096, - "region": "Europe", - "subregion": "Iceland", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -18.251088019916267, - 66.66937897343158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Surtsey", - "comment": null, - "name_alt": null, - "lat_y": 63.217764, - "long_x": -20.434929, - "region": "Europe", - "subregion": "Iceland", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -20.434803840228767, - 63.21771881718158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cap Est", - "comment": null, - "name_alt": null, - "lat_y": -15.274849, - "long_x": 50.499889, - "region": "Africa", - "subregion": "Indian Ocean", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 50.49976647227123, - -15.274956964068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Vohimena", - "comment": null, - "name_alt": null, - "lat_y": -25.546355, - "long_x": 45.158683, - "region": "Africa", - "subregion": "Indian Ocean", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 45.15870201914623, - -25.546319268755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Rodrigues", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 66.54273522227123, - -19.702203057818423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Diego Garcia", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 72.44202721445873, - -7.332207940630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "I. Clarión", - "comment": null, - "name_alt": null, - "lat_y": 18.345725, - "long_x": -114.749992, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -114.74998938710377, - 18.345770574994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "I. Socorro", - "comment": null, - "name_alt": null, - "lat_y": 18.786694, - "long_x": -110.992912, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -110.99290930897877, - 18.786810614056577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Tikopia", - "comment": null, - "name_alt": null, - "lat_y": -12.28881, - "long_x": 168.833542, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 168.83362877695873, - -12.288750909380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Norfolk I.", - "comment": null, - "name_alt": null, - "lat_y": -29.02416, - "long_x": 167.960052, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 167.96009362070873, - -29.024102471880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Cretin", - "comment": null, - "name_alt": null, - "lat_y": -6.637492, - "long_x": 147.852392, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 147.85242760508373, - -6.637261651568423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Îles Chesterfield", - "comment": null, - "name_alt": null, - "lat_y": -19.20447, - "long_x": 159.95171, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 159.95167076914623, - -19.204644464068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Lamotrek", - "comment": null, - "name_alt": null, - "lat_y": 7.509727, - "long_x": 146.333084, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 146.33301842539623, - 7.509711004681577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Kosrae", - "comment": null, - "name_alt": null, - "lat_y": 5.329221, - "long_x": 162.974172, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 162.97413170664623, - 5.329169012494077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Arorea", - "comment": null, - "name_alt": null, - "lat_y": -2.617755, - "long_x": 176.81264, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 176.81263268320873, - -2.617852471880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Pingelap", - "comment": null, - "name_alt": null, - "lat_y": 6.22951, - "long_x": 160.702931, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 160.70289147227123, - 6.229681707806577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Kapingamarangi", - "comment": null, - "name_alt": null, - "lat_y": 1.079429, - "long_x": 154.781328, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 154.78138268320873, - 1.079474188275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Agrihan", - "comment": null, - "name_alt": null, - "lat_y": 18.777332, - "long_x": 145.670369, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 145.67042076914623, - 18.777411199994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Asuncion", - "comment": null, - "name_alt": null, - "lat_y": 19.688654, - "long_x": 145.40141, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 145.40125573008373, - 19.688666082806577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Wotje", - "comment": null, - "name_alt": null, - "lat_y": 9.451143, - "long_x": 170.012255, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.01209557383373, - 9.451300360150327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Bikar", - "comment": null, - "name_alt": null, - "lat_y": 12.243519, - "long_x": 170.120691, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.12061608164623, - 12.243597723431577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Pagan", - "comment": null, - "name_alt": null, - "lat_y": 18.119631, - "long_x": 145.785087, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 145.78492272227123, - 18.119635321087827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Wake I.", - "comment": null, - "name_alt": null, - "lat_y": 19.303497, - "long_x": 166.63626, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.63624108164623, - 19.303595282025327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Tabiteuea", - "comment": null, - "name_alt": null, - "lat_y": -1.201405, - "long_x": 174.755207, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 174.75513756602123, - -1.201348565630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Aranuka", - "comment": null, - "name_alt": null, - "lat_y": 0.226766, - "long_x": 173.626286, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 173.62623131602123, - 0.226752020306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Nauru", - "comment": null, - "name_alt": null, - "lat_y": -0.505856, - "long_x": 166.930778, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.93067467539623, - -0.505791925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ebon", - "comment": null, - "name_alt": null, - "lat_y": 4.59977, - "long_x": 168.736432, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 168.73633873789623, - 4.599798895306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Jaluit", - "comment": null, - "name_alt": null, - "lat_y": 5.964455, - "long_x": 169.682894, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 169.68299401133373, - 5.964483953900327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Mili", - "comment": null, - "name_alt": null, - "lat_y": 6.107334, - "long_x": 171.725875, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 171.72584069102123, - 6.107489324994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Majuro", - "comment": null, - "name_alt": null, - "lat_y": 7.118009, - "long_x": 171.159743, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 171.15980065195873, - 7.117987371869077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ailinglapalap", - "comment": null, - "name_alt": null, - "lat_y": 7.276392, - "long_x": 168.596926, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 168.59693444102123, - 7.276495672650327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Kwajalein", - "comment": null, - "name_alt": null, - "lat_y": 8.746619, - "long_x": 167.735072, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 167.73511803477123, - 8.746710516400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rongelap", - "comment": null, - "name_alt": null, - "lat_y": 11.164329, - "long_x": 166.869876, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.86988365977123, - 11.164496160931577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Bikini", - "comment": null, - "name_alt": null, - "lat_y": 11.639231, - "long_x": 165.550698, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 165.55042565195873, - 11.639288641400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Reinga", - "comment": null, - "name_alt": null, - "lat_y": -34.432767, - "long_x": 172.7285, - "region": "Oceania", - "subregion": "New Zealand", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 172.70558117137455, - -34.42039113947056 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Necker", - "comment": null, - "name_alt": null, - "lat_y": 23.586649, - "long_x": -164.704743, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -164.70470130116627, - 23.586676336712827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Laysan", - "comment": null, - "name_alt": null, - "lat_y": 25.776083, - "long_x": -171.733589, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -171.73363196522877, - 25.776007391400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Kure Atoll", - "comment": null, - "name_alt": null, - "lat_y": 28.440992, - "long_x": -178.319207, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -178.31920325429127, - 28.440985418744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Nikumaroro", - "comment": null, - "name_alt": null, - "lat_y": -4.644675, - "long_x": -174.53143, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -174.53142249257252, - -4.644707940630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Howland I.", - "comment": null, - "name_alt": null, - "lat_y": 0.814266, - "long_x": -176.638313, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -176.63829505116627, - 0.814276434369077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Palmyra Atoll", - "comment": null, - "name_alt": null, - "lat_y": 5.879013, - "long_x": -162.09929, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -162.09923255116627, - 5.879095770306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Jarvis", - "comment": null, - "name_alt": null, - "lat_y": -0.368919, - "long_x": -160.020814, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -160.02080237538502, - -0.368951104693423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Takutea", - "comment": null, - "name_alt": null, - "lat_y": -19.8026, - "long_x": -158.294405, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -158.29430091054127, - -19.802666925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Rakahanga", - "comment": null, - "name_alt": null, - "lat_y": -10.022892, - "long_x": -161.081621, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -161.08171546132252, - -10.022881768755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Raroia", - "comment": null, - "name_alt": null, - "lat_y": -16.054416, - "long_x": -142.509609, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -142.50963294179127, - -16.054253839068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Rapa", - "comment": null, - "name_alt": null, - "lat_y": -27.587603, - "long_x": -144.328315, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -144.32823645741627, - -27.587456964068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Mangareva", - "comment": null, - "name_alt": null, - "lat_y": -23.102464, - "long_x": -134.985909, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -134.98582923085377, - -23.102593682818423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Henderson I.", - "comment": null, - "name_alt": null, - "lat_y": -24.349847, - "long_x": -128.317479, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -128.31755530507252, - -24.349663995318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Nanumea", - "comment": null, - "name_alt": null, - "lat_y": -5.67562, - "long_x": 176.137639, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 176.13770592539623, - -5.675591729693423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Niulakita", - "comment": null, - "name_alt": null, - "lat_y": -10.750687, - "long_x": 179.497571, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 179.49756920664623, - -10.750664971880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "The Snares", - "comment": null, - "name_alt": null, - "lat_y": -48.017042, - "long_x": 166.588946, - "region": "Oceania", - "subregion": "New Zealand", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.58887780039623, - -48.01690032344342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Kanton", - "comment": null, - "name_alt": null, - "lat_y": -2.757106, - "long_x": -171.71703, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -171.71703040272877, - -2.757134698443423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Tabuaeran", - "comment": null, - "name_alt": "Fanning I.", - "lat_y": 3.866545, - "long_x": -159.326781, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -159.32683264882252, - 3.866705633587827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Malden", - "comment": null, - "name_alt": null, - "lat_y": -4.042491, - "long_x": -154.983478, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -154.98350989491627, - -4.042657159380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rarotonga", - "comment": null, - "name_alt": null, - "lat_y": -21.201867, - "long_x": -159.797637, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -159.79771887929127, - -21.201836846880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rangiroa", - "comment": null, - "name_alt": null, - "lat_y": -15.2046, - "long_x": -147.773967, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -147.77403723866627, - -15.204766534380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Funafuti", - "comment": null, - "name_alt": null, - "lat_y": -8.491577, - "long_x": 179.19841, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 179.19837487070873, - -8.491631768755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Vavau", - "comment": null, - "name_alt": null, - "lat_y": -18.590062, - "long_x": -173.976769, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -173.97673499257252, - -18.590020440630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "I. de Pascua", - "comment": null, - "name_alt": "Easter I.", - "lat_y": -27.102117, - "long_x": -109.367953, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -109.36790930897877, - -27.102227471880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "St. Croix", - "comment": null, - "name_alt": null, - "lat_y": 17.762944, - "long_x": -64.763088, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -64.76317298085377, - 17.763006903119077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Grand Cayman", - "comment": null, - "name_alt": null, - "lat_y": 19.315829, - "long_x": -81.271416, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -81.27159583241627, - 19.315802313275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "San Salvador", - "comment": null, - "name_alt": null, - "lat_y": 24.052793, - "long_x": -74.492848, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -74.49290930897877, - 24.052801824994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Grenada", - "comment": null, - "name_alt": null, - "lat_y": 12.105978, - "long_x": -61.723079, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.72319495351002, - 12.105963446087827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Barbuda", - "comment": null, - "name_alt": null, - "lat_y": 17.622525, - "long_x": -61.789243, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.78929602772877, - 17.622626043744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Antigua", - "comment": null, - "name_alt": null, - "lat_y": 17.040441, - "long_x": -61.775982, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.77592932851002, - 17.040594793744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Guadeloupe", - "comment": null, - "name_alt": null, - "lat_y": 16.180583, - "long_x": -61.656947, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.65703284413502, - 16.180670477337827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Dominica", - "comment": null, - "name_alt": null, - "lat_y": 15.452943, - "long_x": -61.352652, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.35271155507252, - 15.452887274212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Martinique", - "comment": null, - "name_alt": null, - "lat_y": 14.672462, - "long_x": -61.008715, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.00883948476002, - 14.672491766400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Saint Lucia", - "comment": null, - "name_alt": null, - "lat_y": 13.918332, - "long_x": -60.982225, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.98222815663502, - 13.918280340619077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Saint Vincent", - "comment": null, - "name_alt": null, - "lat_y": 13.270131, - "long_x": -61.207143, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.20720374257252, - 13.270209051556577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Barbados", - "comment": null, - "name_alt": null, - "lat_y": 13.164326, - "long_x": -59.566742, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -59.56682288319752, - 13.164252020306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Tobago", - "comment": null, - "name_alt": null, - "lat_y": 11.259334, - "long_x": -60.677992, - "region": "South America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.67808997304127, - 11.259283758587827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Margarita", - "comment": null, - "name_alt": null, - "lat_y": 10.981467, - "long_x": -64.051401, - "region": "South America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -64.05144202382252, - 10.981512762494077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Curaao", - "comment": null, - "name_alt": null, - "lat_y": 12.185355, - "long_x": -68.999109, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -68.99919593007252, - 12.185309149212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Aruba", - "comment": null, - "name_alt": null, - "lat_y": 12.502849, - "long_x": -69.96488, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -69.96501624257252, - 12.502752996869077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra’s Banäs", - "comment": null, - "name_alt": null, - "lat_y": 23.950592, - "long_x": 35.778059, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 35.77808678477123, - 23.950628973431577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta das Salinas", - "comment": null, - "name_alt": null, - "lat_y": -12.832908, - "long_x": 12.928991, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 12.968705086077254, - -12.855718342716505 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta das Palmeirinhas", - "comment": null, - "name_alt": null, - "lat_y": -9.071387, - "long_x": 12.999549, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 13.033811372274608, - -9.099938228394153 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Bojador", - "comment": null, - "name_alt": null, - "lat_y": 26.157836, - "long_x": -14.473111, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -14.473194953510017, - 26.157965399212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Agulhas", - "comment": null, - "name_alt": null, - "lat_y": -34.801182, - "long_x": 19.993472, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 19.993418816021233, - -34.80108001094342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Gees Gwardafuy", - "comment": null, - "name_alt": null, - "lat_y": 11.812855, - "long_x": 51.235173, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 51.258313644180184, - 11.822028799226407 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Victoria Falls", - "comment": null, - "name_alt": null, - "lat_y": -17.77079, - "long_x": 25.460133, - "region": "Africa", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 25.852793816021233, - -17.928033135943423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Novyy I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -2.811695930072517, - -70.86150481563092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Lyddan I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -20.902027961322517, - -74.11870696406842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Verblyud I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 16.049937370708733, - -69.88189055781842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Coulman I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 169.73536217539623, - -73.50945403438092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Minna Hook", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 167.25318444102123, - -78.63811614375592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Wright I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -116.89262854726002, - -74.06670501094342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Grant I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -131.48540198476002, - -74.48272063594342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Newman I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -145.68681800038502, - -75.59185149531842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Dean I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -127.63438880116627, - -74.50066497188092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Adare", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.26734223219574, - -71.33025954578193 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Poinsett", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 113.20496666758373, - -65.78606536250592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Masson I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 96.63392174570873, - -66.15068938594342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Mikhaylov I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 85.60340416758373, - -66.84026458125592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Norvegia", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -12.327320930072517, - -71.37249114375592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Deception I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.61430823476002, - -62.95086028438092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Framnes", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.59343421132252, - -65.97173430781842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Agassiz", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -62.87468421132252, - -68.45610930781842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Jeremy", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -68.79051673085377, - -69.43328215938092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Comorin", - "comment": null, - "name_alt": null, - "lat_y": 8.143554, - "long_x": 77.471497, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 77.51210506924555, - 8.085338515340696 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Dondra Head", - "comment": null, - "name_alt": null, - "lat_y": 5.947528, - "long_x": 80.616321, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 80.59180925571331, - 5.929580617022318 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Yelizavety", - "comment": null, - "name_alt": null, - "lat_y": 54.416083, - "long_x": 142.720445, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 142.72059166758373, - 54.41620514530658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Pt. Yuzhnyy", - "comment": null, - "name_alt": null, - "lat_y": 57.733572, - "long_x": 156.796426, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 156.79664147227123, - 57.73346588749408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Sata", - "comment": null, - "name_alt": null, - "lat_y": 31.026941, - "long_x": 130.695089, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 130.69520104258373, - 31.026922918744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Aniva", - "comment": null, - "name_alt": null, - "lat_y": 46.081706, - "long_x": 143.43487, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 143.43482506602123, - 46.08179352421283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Terpeniya", - "comment": null, - "name_alt": null, - "lat_y": 48.66928, - "long_x": 144.712582, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 144.71253502695873, - 48.66937897343158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Lopatka", - "comment": null, - "name_alt": null, - "lat_y": 50.914155, - "long_x": 156.651536, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 156.65162194102123, - 50.91412994999408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Ozernoy", - "comment": null, - "name_alt": null, - "lat_y": 57.7708, - "long_x": 163.246685, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 163.24683678477123, - 57.77088043827533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Olyutorskiy", - "comment": null, - "name_alt": null, - "lat_y": 59.960807, - "long_x": 170.31265, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.31287682383373, - 59.96082184452533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Navarin", - "comment": null, - "name_alt": null, - "lat_y": 62.327239, - "long_x": 179.074225, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 179.07422936289623, - 62.32727692265033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Lopatka", - "comment": null, - "name_alt": null, - "lat_y": 71.907853, - "long_x": 150.066042, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 150.06592858164623, - 71.90778229374408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Ince", - "comment": null, - "name_alt": null, - "lat_y": 42.084312, - "long_x": 34.983358, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 34.98328698008373, - 42.08417389530658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra’s Fartak", - "comment": null, - "name_alt": null, - "lat_y": 15.677412, - "long_x": 52.229105, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 52.2389696999939, - 15.65795249845498 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ras Sharbatat", - "comment": null, - "name_alt": null, - "lat_y": 18.164534, - "long_x": 56.56827, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 56.558165806017215, - 18.166986171245085 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra's al Had", - "comment": null, - "name_alt": null, - "lat_y": 22.530158, - "long_x": 59.849134, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 59.7995168175437, - 22.518675327148298 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Hachijjima", - "comment": null, - "name_alt": null, - "lat_y": 33.109796, - "long_x": 139.804903, - "region": "Asia", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 139.80482018320873, - 33.10980866093158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Plain of Jars", - "comment": null, - "name_alt": null, - "lat_y": 20.550709, - "long_x": 101.890532, - "region": "Asia", - "subregion": null, - "featureclass": "plain" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 101.89063561289623, - 20.550909735150327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Nordkapp", - "comment": null, - "name_alt": null, - "lat_y": 71.18337, - "long_x": 25.662398, - "region": "Europe", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 25.66067519711473, - 71.15450206702127 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de São Vicentete", - "comment": null, - "name_alt": null, - "lat_y": 37.038304, - "long_x": -8.969391, - "region": "Europe", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -8.969410773822517, - 37.03827545780658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Fisterra", - "comment": null, - "name_alt": null, - "lat_y": 42.952418, - "long_x": -9.267837, - "region": "Europe", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -9.26996282865152, - 42.92873605781255 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape San Blas", - "comment": null, - "name_alt": null, - "lat_y": 29.713967, - "long_x": -85.270961, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -85.27092444569752, - 29.713995672650327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Sable", - "comment": null, - "name_alt": null, - "lat_y": 43.469097, - "long_x": -65.610769, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.61082923085377, - 43.46900055546283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Bauld", - "comment": null, - "name_alt": null, - "lat_y": 51.568576, - "long_x": -55.430306, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -55.43028723866627, - 51.56848786015033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Fear", - "comment": null, - "name_alt": null, - "lat_y": 33.867949, - "long_x": -77.990568, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -77.99058997304127, - 33.86798737186908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "I. Guadalupe", - "comment": null, - "name_alt": null, - "lat_y": 29.052552, - "long_x": -118.317465, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -118.31749426991627, - 29.052496649212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Miquelon", - "comment": null, - "name_alt": null, - "lat_y": 46.929526, - "long_x": -56.329884, - "region": "North America", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -56.32988440663502, - 46.92938873905658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cabo Corrientes", - "comment": null, - "name_alt": null, - "lat_y": 20.409471, - "long_x": -105.683581, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -105.67795873874799, - 20.420365114940253 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Pt. Eugenia", - "comment": null, - "name_alt": null, - "lat_y": 27.861925, - "long_x": -115.07629, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -115.04623945046137, - 27.842887092585283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Point Conception", - "comment": null, - "name_alt": null, - "lat_y": 34.582313, - "long_x": -120.659016, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -120.46360036202867, - 34.46027592467621 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Hatteras", - "comment": null, - "name_alt": null, - "lat_y": 35.437762, - "long_x": -75.450543, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -75.54032952413311, - 35.24475263812895 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Sable", - "comment": null, - "name_alt": null, - "lat_y": 25.124896, - "long_x": -81.090442, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -81.09044348866627, - 25.124762274212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Hope", - "comment": null, - "name_alt": null, - "lat_y": 68.35638, - "long_x": -166.815582, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -166.81321268769543, - 68.35380207543972 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Point Barrow", - "comment": null, - "name_alt": null, - "lat_y": 71.372637, - "long_x": -156.615894, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -156.4719492091668, - 71.40589128763096 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Canaveral", - "comment": null, - "name_alt": null, - "lat_y": 28.483713, - "long_x": -80.534941, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -80.53625603636821, - 28.473056814472134 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Mendocino", - "comment": null, - "name_alt": null, - "lat_y": 40.350222, - "long_x": -124.323474, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -124.39201745043425, - 40.44222065537283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cabo San Lucas", - "comment": null, - "name_alt": null, - "lat_y": 22.887711, - "long_x": -109.969843, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -109.96983801991627, - 22.887762762494077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Churchill", - "comment": null, - "name_alt": null, - "lat_y": 58.752014, - "long_x": -93.182023, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -93.18211829335377, - 58.75208161015033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Cod", - "comment": null, - "name_alt": null, - "lat_y": 41.734867, - "long_x": -69.964865, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -70.03687833567446, - 41.9914589934385 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape May", - "comment": null, - "name_alt": null, - "lat_y": 37.2017, - "long_x": -75.926791, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -74.95121933164988, - 38.92969645987068 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 2, - "name": "Niagara Falls", - "comment": null, - "name_alt": null, - "lat_y": 43.087653, - "long_x": -79.044073, - "region": "North America", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -79.04411780507252, - 43.08771393436908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "I. Alejandro Selkirk", - "comment": null, - "name_alt": null, - "lat_y": -33.722178, - "long_x": -80.733492, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -80.73350989491627, - -33.72222258906842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "I. San Ambrosio", - "comment": null, - "name_alt": null, - "lat_y": -26.341922, - "long_x": -79.900062, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -79.90001380116627, - -26.341851495318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "I. Robinson Crusoe", - "comment": null, - "name_alt": null, - "lat_y": -33.589852, - "long_x": -78.872522, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -78.87254798085377, - -33.58965422969342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Orange", - "comment": null, - "name_alt": null, - "lat_y": 4.125735, - "long_x": -51.242144, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -51.26287766987179, - 4.135614177285231 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de Santa Marta Grande", - "comment": null, - "name_alt": null, - "lat_y": -28.558078, - "long_x": -48.735526, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -48.80338037734664, - -28.57198267323537 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Punta del Este", - "comment": null, - "name_alt": null, - "lat_y": -34.975503, - "long_x": -54.933154, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -54.94628769070382, - -34.96658679840526 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo San Antonio", - "comment": null, - "name_alt": null, - "lat_y": -36.381052, - "long_x": -56.655377, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -56.716792100626165, - -36.40959917438929 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Corrientes", - "comment": null, - "name_alt": null, - "lat_y": -38.135985, - "long_x": -57.546212, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -57.56252349612641, - -38.066376942128464 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Punta Rasa", - "comment": null, - "name_alt": null, - "lat_y": -40.834718, - "long_x": -62.282201, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -62.25911745789756, - -40.72626411656719 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Dos Bahías", - "comment": null, - "name_alt": null, - "lat_y": -44.9887, - "long_x": -65.615952, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.5438334451688, - -44.89439847091873 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Punta Negra", - "comment": null, - "name_alt": null, - "lat_y": -5.948875, - "long_x": -81.108252, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -81.10832678944752, - -5.948663018755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Punta Lavapié", - "comment": null, - "name_alt": null, - "lat_y": -37.262867, - "long_x": -73.606377, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -73.60304396243782, - -37.17120002933805 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cabo de Hornos", - "comment": null, - "name_alt": "Cape Horn", - "lat_y": -55.862824, - "long_x": -67.169425, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -67.16942298085377, - -55.86284758906842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 2, - "name": "Salto Angel", - "comment": null, - "name_alt": "Angel Falls", - "lat_y": 5.686836, - "long_x": -62.061848, - "region": "South America", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -62.06181800038502, - 5.686896063275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 2, - "name": "Iguazu Falls", - "comment": null, - "name_alt": null, - "lat_y": -25.568265, - "long_x": -54.582842, - "region": "South America", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -54.58299719960377, - -25.568291925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Clipperton I.", - "comment": null, - "name_alt": null, - "lat_y": 10.309933, - "long_x": -109.213284, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -109.2295822833424, - 10.304020508304784 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Île Amsterdam", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "South Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 77.53467858164623, - -37.85796477656842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Île Amsterdam", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "South Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 77.52552330820873, - -38.72014739375592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Île Europa", - "comment": null, - "name_alt": null, - "lat_y": -22.837936, - "long_x": 40.192423, - "region": "Africa", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 40.19239342539623, - -22.837945245318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Annobón", - "comment": null, - "name_alt": null, - "lat_y": -1.429572, - "long_x": 5.621149, - "region": "Africa", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 5.621104362896233, - -1.429620050005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Ascension", - "comment": null, - "name_alt": null, - "lat_y": -7.925105, - "long_x": -14.362648, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -14.362721320697517, - -7.925225518755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Tristan da Cunha", - "comment": null, - "name_alt": null, - "lat_y": -35.278715, - "long_x": -17.932071, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island group" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -12.265431281635017, - -37.07024505000592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Gough I.", - "comment": null, - "name_alt": null, - "lat_y": -35.278715, - "long_x": -17.932071, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -9.967213508197517, - -40.34014251094342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Bouvet I.", - "comment": null, - "name_alt": null, - "lat_y": -35.278715, - "long_x": -17.932071, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 3.409922722271233, - -54.41655852656842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Colbeck", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -158.25767981679127, - -77.11113860469342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Is. de Fernando de Noronha", - "comment": null, - "name_alt": null, - "lat_y": -3.849881, - "long_x": -32.417053, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -32.41704260976002, - -3.849908135943423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cocos Is.", - "comment": null, - "name_alt": null, - "lat_y": -12.158465, - "long_x": 96.828369, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 96.82837975352123, - -12.158257745318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Christmas I.", - "comment": null, - "name_alt": null, - "lat_y": -10.472542, - "long_x": 105.667155, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 105.66712487070873, - -10.472588800005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Campbell I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 169.12012780039623, - -52.51043059688092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Macquarie I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Seven seas (open ocean)", - "subregion": "South Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 158.89600670664623, - -54.60979583125592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Darnley", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 69.61109459727123, - -67.77349212031842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Ann", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 51.40809166758373, - -66.16106536250592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Peter I I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": "Southern Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -90.56822669179127, - -68.76604583125592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Antipodes Islands", - "comment": null, - "name_alt": null, - "lat_y": -49.649273, - "long_x": 178.773056, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 178.77295983164623, - -49.64934661250592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Bounty Is.", - "comment": null, - "name_alt": null, - "lat_y": -47.688207, - "long_x": 178.89656, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 178.89661705820873, - -47.68828704219342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Balls Pyramid", - "comment": null, - "name_alt": null, - "lat_y": -31.826904, - "long_x": 159.158463, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 159.15833580820873, - -31.826958917193423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Lord Howe I.", - "comment": null, - "name_alt": null, - "lat_y": -31.542569, - "long_x": 159.069307, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 159.06922448008373, - -31.542535089068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "St. Helena", - "comment": null, - "name_alt": null, - "lat_y": -15.950901, - "long_x": -5.705161, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -5.705128547260017, - -15.950860284380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "I. del Coco", - "comment": null, - "name_alt": null, - "lat_y": 5.539857, - "long_x": -87.092227, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -87.09221350819752, - 5.539923407025327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Sable I.", - "comment": null, - "name_alt": null, - "lat_y": 43.930893, - "long_x": -59.91953, - "region": "Seven seas (open ocean)", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -59.91960608632252, - 43.93097565311908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Delgado", - "comment": null, - "name_alt": null, - "lat_y": -10.670103, - "long_x": 40.624309, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 40.62440026133373, - -10.670098565630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta da Barra", - "comment": null, - "name_alt": null, - "lat_y": -23.829888, - "long_x": 35.515696, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 35.51563561289623, - -23.830010675005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta São Sebastio", - "comment": null, - "name_alt": null, - "lat_y": -22.118899, - "long_x": 35.480417, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 35.48023522227123, - -22.118829034380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ras Cantin", - "comment": null, - "name_alt": null, - "lat_y": 32.581636, - "long_x": -9.273918, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -9.273915168353767, - 32.58161041874408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra’s Kasr", - "comment": null, - "name_alt": null, - "lat_y": 18.076817, - "long_x": 38.573746, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 38.58027735871919, - 18.075167704493374 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta de Jericoacoara", - "comment": null, - "name_alt": null, - "lat_y": -2.85044, - "long_x": -40.067208, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -39.991649927946355, - -2.851822991583529 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de São Roque", - "comment": null, - "name_alt": null, - "lat_y": -5.193476, - "long_x": -35.447654, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -35.50994900651512, - -5.156866121305913 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta da Baleia", - "comment": null, - "name_alt": null, - "lat_y": -17.710136, - "long_x": -39.157619, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -39.14557867836578, - -17.678753845220847 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de São Tomé", - "comment": null, - "name_alt": null, - "lat_y": -21.996382, - "long_x": -41.009692, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -40.98763990313761, - -21.971754611783773 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Frio", - "comment": null, - "name_alt": null, - "lat_y": -22.869501, - "long_x": -41.962188, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -41.89015627474056, - -22.759730815669258 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo San Diego", - "comment": null, - "name_alt": null, - "lat_y": -54.6406, - "long_x": -65.21365, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.21361243397877, - -54.64067962031842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Tres Puntas", - "comment": null, - "name_alt": null, - "lat_y": -47.237629, - "long_x": -65.774707, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.74439816328368, - -47.328778975372465 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cap Saint André", - "comment": null, - "name_alt": null, - "lat_y": -16.174457, - "long_x": 44.467405, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 44.46729576914623, - -16.174493096880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape St. Lucia", - "comment": null, - "name_alt": null, - "lat_y": -28.552694, - "long_x": 32.367221, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 32.36732018320873, - -28.552666925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape St. Francis", - "comment": null, - "name_alt": null, - "lat_y": -34.171766, - "long_x": 24.817688, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 24.84143613032799, - -34.18861022316314 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Minamitori-shima", - "comment": null, - "name_alt": "Marcus I.", - "lat_y": 24.319813, - "long_x": 153.958899, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 153.95887291758373, - 24.319769598431577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Is. Martin Vaz", - "comment": null, - "name_alt": null, - "lat_y": -20.559422, - "long_x": -29.338439, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -29.338429328510017, - -20.559502862505923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rockall", - "comment": null, - "name_alt": null, - "lat_y": 58.163524, - "long_x": -12.408715, - "region": "Seven seas (open ocean)", - "subregion": "North Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -12.408741828510017, - 58.16339752811908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "I. de Cozumel", - "comment": null, - "name_alt": null, - "lat_y": 20.444687, - "long_x": -86.880555, - "region": "North America", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -86.88060462147877, - 20.444708563275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Bermuda Islands", - "comment": null, - "name_alt": null, - "lat_y": 32.317339, - "long_x": -64.742895, - "region": "Seven seas (open ocean)", - "subregion": "North Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -64.74290930897877, - 32.31726715702533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Punta Galera", - "comment": null, - "name_alt": null, - "lat_y": 0.731221, - "long_x": -80.062205, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -80.06212317616627, - 0.731207586712827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cap Lopez", - "comment": null, - "name_alt": null, - "lat_y": -0.604761, - "long_x": 8.726423, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 8.727299789450319, - -0.615086490513119 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Bobaomby", - "comment": null, - "name_alt": null, - "lat_y": -11.966598, - "long_x": 49.262904, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 49.26282799570873, - -11.966485284380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cap Blanc", - "comment": null, - "name_alt": null, - "lat_y": 20.822108, - "long_x": -17.052856, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -17.052906867572517, - 20.822088934369077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape of Good Hope", - "comment": null, - "name_alt": null, - "lat_y": -34.307311, - "long_x": 18.441206, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 18.441294792583733, - -34.30718352656842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Palmas", - "comment": null, - "name_alt": null, - "lat_y": 4.373924, - "long_x": -7.457356, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -7.457386848041267, - 4.373968817181577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Verde", - "comment": null, - "name_alt": null, - "lat_y": 14.732312, - "long_x": -17.471776, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -17.471730109760017, - 14.732489324994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cap Bon", - "comment": null, - "name_alt": null, - "lat_y": 37.073954, - "long_x": 11.024061, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 11.024180534771233, - 37.07398102421283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Oceanic pole of inaccessibility", - "comment": null, - "name_alt": null, - "lat_y": -48.865032, - "long_x": -123.401986, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "pole" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -123.40202796132252, - -48.86504485469342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "South Magnetic Pole 2005 (est)", - "comment": null, - "name_alt": null, - "lat_y": -48.865032, - "long_x": -123.401986, - "region": "Antarctica", - "subregion": "Southern Ocean", - "featureclass": "pole" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 137.85425865977123, - -64.51824309688092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "North Magnetic Pole 2005 (est)", - "comment": null, - "name_alt": null, - "lat_y": -48.865032, - "long_x": -123.401986, - "region": "Seven seas (open ocean)", - "subregion": "Arctic Ocean", - "featureclass": "pole" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -114.40569007069752, - 82.71008942265033 - ] - } - } - ] -} \ No newline at end of file diff --git a/stories/MapAdaptor/Map.md b/stories/MapAdaptor/Map.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/stories/MapAdaptor/Map.stories.tsx b/stories/MapAdaptor/Map.stories.tsx deleted file mode 100644 index 6571687bec..0000000000 --- a/stories/MapAdaptor/Map.stories.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { storiesOf } from '@storybook/react'; -import * as React from 'react'; -import AMap from './components/AMap'; -import Mapbox from './components/Mapbox'; -// import Polygon from './components/Polygon'; -// import Point3D from './components/Point3D'; -// import Line from './components/Line'; -// import ImageLayer from './components/Image'; -// import GridHeatMap from './components/GridHeatmap'; -// import PointImage from './components/pointImage'; -// @ts-ignore -import notes from './Map.md'; -// @ts-ignore -storiesOf('地图底图', module) - .add('高德地图', () => , { - notes: { markdown: notes }, - }) - .add('Mapbox', () => , { - notes: { markdown: notes }, - }); -// .add('Polygon', () => ); -// .add('Point3D', () => ) -// .add('Line', () => ) -// .add('GridHeatMap', () => ) -// .add('Image', () => ) -// .add('pointImage', () => ); diff --git a/stories/MapAdaptor/components/AMap.tsx b/stories/MapAdaptor/components/AMap.tsx deleted file mode 100644 index c66ca5f408..0000000000 --- a/stories/MapAdaptor/components/AMap.tsx +++ /dev/null @@ -1,62 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class AMap extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - center: [110.19382669582967, 50.258134], - id: 'map', - pitch: 0, - style: 'dark', - type: 'amap', - zoom: 3, - }); - const layer = new PolygonLayer({}); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - scene.addLayer(layer); - scene.render(); - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MapAdaptor/components/GridHeatmap.tsx b/stories/MapAdaptor/components/GridHeatmap.tsx deleted file mode 100644 index 69ca5a9d42..0000000000 --- a/stories/MapAdaptor/components/GridHeatmap.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { HeatMapLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class GridHeatMap extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/c3f8bda2-081b-449d-aa9f-9413b779205b.json', - ); - const scene = new Scene({ - center: [116.49434030056, 39.868073421167621], - id: 'map', - pitch: 0, - type: 'amap', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 16, - }); - const layer = new HeatMapLayer({}); - layer - .source(await response.json(), { - parser: { - type: 'json', - x: 'lng', - y: 'lat', - }, - transforms: [ - { - type: 'grid', - size: 50, - field: 'count', - method: 'sum', - }, - ], - }) - .size('sum', (value: number) => { - return value; - }) - .shape('circle') - .style({ - coverage: 0.5, - angle: 0, - opacity: 1, - }) - .color('count', [ - '#002466', - '#105CB3', - '#2894E0', - '#CFF6FF', - '#FFF5B8', - '#FFAB5C', - '#F27049', - '#730D1C', - ]); - scene.addLayer(layer); - scene.render(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MapAdaptor/components/Image.tsx b/stories/MapAdaptor/components/Image.tsx deleted file mode 100644 index abe2bdb95c..0000000000 --- a/stories/MapAdaptor/components/Image.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { ImageLayer } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class ImageLayerDemo extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public componentDidMount() { - const scene = new Scene({ - center: [121.2680, 30.3628], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 10, - }); - const layer = new ImageLayer({}); - layer.source( - 'https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg', - { - parser: { - type: 'image', - extent: [121.168, 30.2828, 121.384, 30.4219], - }, - }, - ); - // scene.addLayer(layer); - scene.render(); - console.log(scene); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MapAdaptor/components/Line.tsx b/stories/MapAdaptor/components/Line.tsx deleted file mode 100644 index 590a119418..0000000000 --- a/stories/MapAdaptor/components/Line.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { Line } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class Point3D extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json', - ); - const testdata = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [ - [91.58203125, 34.95799531086792], - [96.767578125, 34.379712580462204], - [99.228515625, 33.7243396617476], - ], - }, - }, - ], - }; - const scene = new Scene({ - center: [102.602992, 23.107329], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/dark-v9', - zoom: 13, - }); - const LineLayer = new Line({}); - - LineLayer.source(await response.json()) - .size(1) - .shape('line') - .color( - 'ELEV', - [ - '#E8FCFF', - '#CFF6FF', - '#A1E9ff', - '#65CEF7', - '#3CB1F0', - '#2894E0', - '#1772c2', - '#105CB3', - '#0D408C', - '#002466', - ].reverse(), - ) - .render(); - scene.addLayer(LineLayer); - // function run() { - // scene.render(); - // requestAnimationFrame(run); - // } - // requestAnimationFrame(run); - scene.render(); - this.scene = scene; - console.log(LineLayer); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MapAdaptor/components/Mapbox.tsx b/stories/MapAdaptor/components/Mapbox.tsx deleted file mode 100644 index ec32ba3d5e..0000000000 --- a/stories/MapAdaptor/components/Mapbox.tsx +++ /dev/null @@ -1,85 +0,0 @@ -// @ts-ignore -import '!style-loader!css-loader!./css/l7.css'; -import { Marker, Popup, Scale, Zoom } from '@l7/component'; -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as React from 'react'; - -export default class Mapbox extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 30.258134], - pitch: 0, - zoom: 3, - }); - this.scene = scene; - const layer = new PolygonLayer({}); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', () => { - return 'yellow'; - }) - .shape('fill') - .style({ - opacity: 0.8, - }); - scene.addLayer(layer); - scene.render(); - scene.on('loaded', () => { - const zoomControl = new Zoom({ - position: 'bottomright', - }); - const scaleControl = new Scale(); - const popup = new Popup({ - offsets: [0, 20], - }) - .setLnglat({ - lng: 120.19382669582967, - lat: 30.258134, - }) - .setText('hello') - .addTo(scene); - - const maker = new Marker(); - maker - .setLnglat({ - lng: 120.19382669582967, - lat: 30.258134, - }) - .addTo(scene); - scene.addControl(zoomControl); - scene.addControl(scaleControl); - // layer.fitBounds(); - }); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MapAdaptor/components/Point3D.tsx b/stories/MapAdaptor/components/Point3D.tsx deleted file mode 100644 index bbe2a407e7..0000000000 --- a/stories/MapAdaptor/components/Point3D.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { Point } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; -import data from './data.json'; - -export default class Point3D extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public componentDidMount() { - const scene = new Scene({ - center: [120.19382669582967, 30.258134], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - zoom: 1, - }); - scene.addImage( - '00', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*kzTMQqS2QdUAAAAAAAAAAABkARQnAQ', - ); - const pointLayer = new Point({}); - const p1 = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [83.671875, 44.84029065139799], - }, - }, - ], - }; - pointLayer - .source(data) - .color('blue') - .shape('scalerank', [ 'triangleColumn', 'squareColumn', 'hexagonColumn' ,'cylinder' ]) - .size([25, 10]); - scene.addLayer(pointLayer); - scene.render(); - - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MapAdaptor/components/Polygon.tsx b/stories/MapAdaptor/components/Polygon.tsx deleted file mode 100644 index c44abc5a70..0000000000 --- a/stories/MapAdaptor/components/Polygon.tsx +++ /dev/null @@ -1,100 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -function convertRGB2Hex(rgb: number[]) { - return ( - '#' + rgb.map((r) => ('0' + Math.floor(r).toString(16)).slice(-2)).join('') - ); -} - -export default class Mapbox extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - this.scene = scene; - const layer = new PolygonLayer({}); - - // TODO: new GeoJSONSource() - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.2, - }); - scene.addLayer(layer); - scene.render(); - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - color: [0, 0, 0], - featureRange: { - startIndex: 0, - endIndex: Infinity, - }, - }; - const pointFolder = gui.addFolder('精确更新 feature'); - pointFolder.add(styleOptions.featureRange, 'startIndex', 0, 100, 1); - pointFolder.add(styleOptions.featureRange, 'endIndex', 0, 100, 1); - pointFolder.addColor(styleOptions, 'color').onChange((color: number[]) => { - layer.color('name', [convertRGB2Hex(color)], { - featureRange: { - startIndex: styleOptions.featureRange.startIndex, - endIndex: styleOptions.featureRange.endIndex, - }, - }); - scene.render(); - }); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MapAdaptor/components/css/l7.css b/stories/MapAdaptor/components/css/l7.css deleted file mode 100644 index 1d573ca53b..0000000000 --- a/stories/MapAdaptor/components/css/l7.css +++ /dev/null @@ -1,400 +0,0 @@ -.l7-marker { - position: absolute !important; - top: 0; - left: 0; - z-index: 5; -} -.l7-popup-anchor-top, -.l7-popup-anchor-top-left, -.l7-popup-anchor-top-right { - -webkit-flex-direction: column; - flex-direction: column; -} - -.l7-popup-anchor-bottom, -.l7-popup-anchor-bottom-left, -.l7-popup-anchor-bottom-right { - -webkit-flex-direction: column-reverse; - flex-direction: column-reverse; -} - -.l7-popup-anchor-left { - -webkit-flex-direction: row; - flex-direction: row; -} - -.l7-popup-anchor-right { - -webkit-flex-direction: row-reverse; - flex-direction: row-reverse; -} -.l7-popup { - position: absolute; - top: 0; - left: 0; - display: -webkit-flex; - display: flex; - will-change: transform; - pointer-events: none; - z-index: 5; -} -.l7-popup-tip { - width: 0; - height: 0; - border: 10px solid transparent; - z-index: 1; -} -.l7-popup-anchor-top .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-top: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-top: none; - border-left: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-top-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-top: none; - border-right: none; - border-bottom-color: #fff; -} - -.l7-popup-anchor-bottom .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-bottom: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-left .l7-popup-tip { - -webkit-align-self: flex-start; - align-self: flex-start; - border-bottom: none; - border-left: none; - border-top-color: #fff; -} - -.l7-popup-anchor-bottom-right .l7-popup-tip { - -webkit-align-self: flex-end; - align-self: flex-end; - border-bottom: none; - border-right: none; - border-top-color: #fff; -} - -.l7-popup-anchor-left .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-left: none; - border-right-color: #fff; -} - -.l7-popup-anchor-right .l7-popup-tip { - -webkit-align-self: center; - align-self: center; - border-right: none; - border-left-color: #fff; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - padding: 0; - font-size: 25px; - line-height: 20px; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -.l7-popup-anchor-top-left .l7-popup-content { - border-top-left-radius: 0; -} - -.l7-popup-anchor-top-right .l7-popup-content { - border-top-right-radius: 0; -} - -.l7-popup-anchor-bottom-left .l7-popup-content { - border-bottom-left-radius: 0; -} - -.l7-popup-anchor-bottom-right .l7-popup-content { - border-bottom-right-radius: 0; -} - -.l7-popup-track-pointer { - display: none; -} - -.l7-popup-track-pointer * { - pointer-events: none; - user-select: none; -} - -.l7-map:hover .l7-popup-track-pointer { - display: flex; -} - -.l7-map:active .l7-popup-track-pointer { - display: none; -} - -.l7-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.l7-popup-close-button:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.l7-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - padding: 10px 10px 15px; - pointer-events: auto; -} - -/* general toolbar styles */ - -.l7-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.l7-bar a, -.l7-bar a:hover { - background-color: #fff; - width: 36px; - height: 36px; - line-height: 30px; - font-size: 30px; - display: block; - text-align: center; - text-decoration: none; - color: #8E9DAB; - } -.l7-bar a, -.l7-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.l7-bar a:hover { - background-color: #f4f4f4; - } -.l7-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.l7-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.l7-bar a.l7-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - - -/* control positioning */ - -.l7-control-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; -} -.l7-control-hide { - display: none; -} -.l7-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.l7-top, -.l7-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.l7-top { - top: 0; - } -.l7-right { - right: 0; - } -.l7-bottom { - bottom: 0; - } -.l7-left { - left: 0; - } -.l7-control { - float: left; - clear: both; - } -.l7-right .l7-control { - float: right; - } -.l7-top .l7-control { - margin-top: 10px; - } -.l7-bottom .l7-control { - margin-bottom: 10px; - } -.l7-left .l7-control { - margin-left: 10px; - } -.l7-right .l7-control { - margin-right: 10px; - } - - /* attribution and scale controls */ - -.l7-control-container .l7-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } -.l7-control-attribution, -.l7-control-scale-line { - padding: 0 5px; - color: #333; - } -.l7-control-attribution a { - text-decoration: none; - } -.l7-control-attribution a:hover { - text-decoration: underline; - } -.l7-container .l7-control-attribution, -.l7-container .l7-control-scale { - font-size: 11px; - padding: 5px 5px 2px 5px; - background: rgba(255, 255, 255, 0.7); - } -.l7-left .l7-control-scale { - margin-left: 5px; - } -.l7-bottom .l7-control-scale { - margin-bottom: 5px; - } -.l7-control-scale-line { - border: 2px solid #8E9DAB; - border-top: none; - color: #8e9dab; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: border-box; - box-sizing: border-box; - - background: #fff; - background: rgba(255, 255, 255, 0.8); - } -.l7-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.l7-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.l7-touch .l7-control-attribution, -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - box-shadow: none; - } -.l7-touch .l7-control-layers, -.l7-touch .l7-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - - /* layers control */ - -.l7-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.l7-control-layers-toggle { - background-image: url(../images/layers.svg); - width: 36px; - height: 36px; - } -.l7-retina .l7-control-layers-toggle { - background-image: url(../images/layers.svg); - background-size: 26px 26px; - } -.l7-touch .l7-control-layers-toggle { - width: 44px; - height: 44px; - } -.l7-control-layers .l7-control-layers-list, -.l7-control-layers-expanded .l7-control-layers-toggle { - display: none; - } -.l7-control-layers-expanded .l7-control-layers-list { - display: block; - position: relative; - } -.l7-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.l7-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } -.l7-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.l7-control-layers label { - display: block; - } -.l7-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - diff --git a/stories/MapAdaptor/components/data.json b/stories/MapAdaptor/components/data.json deleted file mode 100644 index 9a9f830d5c..0000000000 --- a/stories/MapAdaptor/components/data.json +++ /dev/null @@ -1,4940 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "South West Cape", - "comment": null, - "name_alt": null, - "lat_y": -43.510984, - "long_x": 146.054227, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 146.03379804609568, - -43.5404025683706 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Howe", - "comment": null, - "name_alt": null, - "lat_y": -37.488775, - "long_x": 149.95853, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 149.95838463633373, - -37.48894622188092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Otway", - "comment": null, - "name_alt": null, - "lat_y": -38.857622, - "long_x": 143.565403, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 143.537005108191, - -38.85472383068997 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Jaffa", - "comment": null, - "name_alt": null, - "lat_y": -36.944244, - "long_x": 139.690866, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 139.68061977964746, - -36.95624316107086 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Carnot", - "comment": null, - "name_alt": null, - "lat_y": -34.920233, - "long_x": 135.656027, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 135.65378326897053, - -34.93870859313661 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Byron", - "comment": null, - "name_alt": null, - "lat_y": -28.658282, - "long_x": 153.632849, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 153.62799176015545, - -28.66197417050363 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Manifold", - "comment": null, - "name_alt": null, - "lat_y": -22.702081, - "long_x": 150.811228, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 150.81116783945873, - -22.702080987505923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape York", - "comment": null, - "name_alt": null, - "lat_y": -10.710859, - "long_x": 142.522018, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 142.52173912852123, - -10.710747979693423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Melville", - "comment": null, - "name_alt": null, - "lat_y": -14.163629, - "long_x": 144.506417, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 144.50660240977123, - -14.163506768755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Arnhem", - "comment": null, - "name_alt": null, - "lat_y": -12.337984, - "long_x": 136.952429, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 136.91481885262823, - -12.295662864626316 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "West Cape Howe", - "comment": null, - "name_alt": null, - "lat_y": -35.104301, - "long_x": 117.597011, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 117.59693444102123, - -35.10430266719342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Leeuwin", - "comment": null, - "name_alt": null, - "lat_y": -34.297841, - "long_x": 115.10633, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 115.1280088910596, - -34.328007092559645 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Pasley", - "comment": null, - "name_alt": null, - "lat_y": -33.929054, - "long_x": 123.517283, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 123.51722252695873, - -33.92888762813092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Londonderry", - "comment": null, - "name_alt": null, - "lat_y": -13.713856, - "long_x": 126.964514, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 126.94130045687105, - -13.74290642667802 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Steep Point", - "comment": null, - "name_alt": null, - "lat_y": -26.16822, - "long_x": 113.169959, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 113.14519563289093, - -26.157463616878637 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "North West Cape", - "comment": null, - "name_alt": null, - "lat_y": -21.809776, - "long_x": 114.117534, - "region": "Oceania", - "subregion": "Australia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 114.16010761213809, - -21.801474697071743 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Lands End", - "comment": null, - "name_alt": null, - "lat_y": 50.069677, - "long_x": -5.668629, - "region": "Europe", - "subregion": "British Isles", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -5.668629523822517, - 50.06970856327533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Gracias a Dios", - "comment": null, - "name_alt": null, - "lat_y": 14.994242, - "long_x": -83.15866, - "region": "North America", - "subregion": "Central America", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -83.15874182851002, - 14.994208074994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Brewster", - "comment": null, - "name_alt": null, - "lat_y": 70.150754, - "long_x": -22.122616, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -22.122731086322517, - 70.15088532108783 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Morris Jesup", - "comment": null, - "name_alt": null, - "lat_y": 83.626331, - "long_x": -32.491541, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -32.49150550038502, - 83.62628815311908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape York", - "comment": null, - "name_alt": null, - "lat_y": 76.218919, - "long_x": -68.218612, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -68.21861731679127, - 76.21887848515033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Nunap Isua", - "comment": null, - "name_alt": "Cape Farewell", - "lat_y": 59.862583, - "long_x": -43.90088, - "region": "North America", - "subregion": "Greenland", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -43.90080725819752, - 59.86267731327533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Rifstangi", - "comment": null, - "name_alt": null, - "lat_y": 66.530766, - "long_x": -16.126417, - "region": "Europe", - "subregion": "Iceland", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -16.148503201808108, - 66.53076813358783 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Grmsey", - "comment": null, - "name_alt": null, - "lat_y": 66.669359, - "long_x": -18.251096, - "region": "Europe", - "subregion": "Iceland", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -18.251088019916267, - 66.66937897343158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Surtsey", - "comment": null, - "name_alt": null, - "lat_y": 63.217764, - "long_x": -20.434929, - "region": "Europe", - "subregion": "Iceland", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -20.434803840228767, - 63.21771881718158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cap Est", - "comment": null, - "name_alt": null, - "lat_y": -15.274849, - "long_x": 50.499889, - "region": "Africa", - "subregion": "Indian Ocean", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 50.49976647227123, - -15.274956964068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Vohimena", - "comment": null, - "name_alt": null, - "lat_y": -25.546355, - "long_x": 45.158683, - "region": "Africa", - "subregion": "Indian Ocean", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 45.15870201914623, - -25.546319268755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Rodrigues", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 66.54273522227123, - -19.702203057818423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Diego Garcia", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 72.44202721445873, - -7.332207940630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "I. Clarión", - "comment": null, - "name_alt": null, - "lat_y": 18.345725, - "long_x": -114.749992, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -114.74998938710377, - 18.345770574994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "I. Socorro", - "comment": null, - "name_alt": null, - "lat_y": 18.786694, - "long_x": -110.992912, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -110.99290930897877, - 18.786810614056577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Tikopia", - "comment": null, - "name_alt": null, - "lat_y": -12.28881, - "long_x": 168.833542, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 168.83362877695873, - -12.288750909380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Norfolk I.", - "comment": null, - "name_alt": null, - "lat_y": -29.02416, - "long_x": 167.960052, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 167.96009362070873, - -29.024102471880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Cretin", - "comment": null, - "name_alt": null, - "lat_y": -6.637492, - "long_x": 147.852392, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 147.85242760508373, - -6.637261651568423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Îles Chesterfield", - "comment": null, - "name_alt": null, - "lat_y": -19.20447, - "long_x": 159.95171, - "region": "Oceania", - "subregion": "Melanesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 159.95167076914623, - -19.204644464068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Lamotrek", - "comment": null, - "name_alt": null, - "lat_y": 7.509727, - "long_x": 146.333084, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 146.33301842539623, - 7.509711004681577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Kosrae", - "comment": null, - "name_alt": null, - "lat_y": 5.329221, - "long_x": 162.974172, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 162.97413170664623, - 5.329169012494077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Arorea", - "comment": null, - "name_alt": null, - "lat_y": -2.617755, - "long_x": 176.81264, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 176.81263268320873, - -2.617852471880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Pingelap", - "comment": null, - "name_alt": null, - "lat_y": 6.22951, - "long_x": 160.702931, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 160.70289147227123, - 6.229681707806577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Kapingamarangi", - "comment": null, - "name_alt": null, - "lat_y": 1.079429, - "long_x": 154.781328, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 154.78138268320873, - 1.079474188275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Agrihan", - "comment": null, - "name_alt": null, - "lat_y": 18.777332, - "long_x": 145.670369, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 145.67042076914623, - 18.777411199994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Asuncion", - "comment": null, - "name_alt": null, - "lat_y": 19.688654, - "long_x": 145.40141, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 145.40125573008373, - 19.688666082806577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Wotje", - "comment": null, - "name_alt": null, - "lat_y": 9.451143, - "long_x": 170.012255, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.01209557383373, - 9.451300360150327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Bikar", - "comment": null, - "name_alt": null, - "lat_y": 12.243519, - "long_x": 170.120691, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.12061608164623, - 12.243597723431577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Pagan", - "comment": null, - "name_alt": null, - "lat_y": 18.119631, - "long_x": 145.785087, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 145.78492272227123, - 18.119635321087827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Wake I.", - "comment": null, - "name_alt": null, - "lat_y": 19.303497, - "long_x": 166.63626, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.63624108164623, - 19.303595282025327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Tabiteuea", - "comment": null, - "name_alt": null, - "lat_y": -1.201405, - "long_x": 174.755207, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 174.75513756602123, - -1.201348565630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Aranuka", - "comment": null, - "name_alt": null, - "lat_y": 0.226766, - "long_x": 173.626286, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 173.62623131602123, - 0.226752020306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Nauru", - "comment": null, - "name_alt": null, - "lat_y": -0.505856, - "long_x": 166.930778, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.93067467539623, - -0.505791925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ebon", - "comment": null, - "name_alt": null, - "lat_y": 4.59977, - "long_x": 168.736432, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 168.73633873789623, - 4.599798895306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Jaluit", - "comment": null, - "name_alt": null, - "lat_y": 5.964455, - "long_x": 169.682894, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 169.68299401133373, - 5.964483953900327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Mili", - "comment": null, - "name_alt": null, - "lat_y": 6.107334, - "long_x": 171.725875, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 171.72584069102123, - 6.107489324994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Majuro", - "comment": null, - "name_alt": null, - "lat_y": 7.118009, - "long_x": 171.159743, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 171.15980065195873, - 7.117987371869077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ailinglapalap", - "comment": null, - "name_alt": null, - "lat_y": 7.276392, - "long_x": 168.596926, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 168.59693444102123, - 7.276495672650327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Kwajalein", - "comment": null, - "name_alt": null, - "lat_y": 8.746619, - "long_x": 167.735072, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 167.73511803477123, - 8.746710516400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rongelap", - "comment": null, - "name_alt": null, - "lat_y": 11.164329, - "long_x": 166.869876, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.86988365977123, - 11.164496160931577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Bikini", - "comment": null, - "name_alt": null, - "lat_y": 11.639231, - "long_x": 165.550698, - "region": "Oceania", - "subregion": "Micronesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 165.55042565195873, - 11.639288641400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Reinga", - "comment": null, - "name_alt": null, - "lat_y": -34.432767, - "long_x": 172.7285, - "region": "Oceania", - "subregion": "New Zealand", - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 172.70558117137455, - -34.42039113947056 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Necker", - "comment": null, - "name_alt": null, - "lat_y": 23.586649, - "long_x": -164.704743, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -164.70470130116627, - 23.586676336712827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Laysan", - "comment": null, - "name_alt": null, - "lat_y": 25.776083, - "long_x": -171.733589, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -171.73363196522877, - 25.776007391400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Kure Atoll", - "comment": null, - "name_alt": null, - "lat_y": 28.440992, - "long_x": -178.319207, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -178.31920325429127, - 28.440985418744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Nikumaroro", - "comment": null, - "name_alt": null, - "lat_y": -4.644675, - "long_x": -174.53143, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -174.53142249257252, - -4.644707940630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Howland I.", - "comment": null, - "name_alt": null, - "lat_y": 0.814266, - "long_x": -176.638313, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -176.63829505116627, - 0.814276434369077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Palmyra Atoll", - "comment": null, - "name_alt": null, - "lat_y": 5.879013, - "long_x": -162.09929, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -162.09923255116627, - 5.879095770306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Jarvis", - "comment": null, - "name_alt": null, - "lat_y": -0.368919, - "long_x": -160.020814, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -160.02080237538502, - -0.368951104693423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Takutea", - "comment": null, - "name_alt": null, - "lat_y": -19.8026, - "long_x": -158.294405, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -158.29430091054127, - -19.802666925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Rakahanga", - "comment": null, - "name_alt": null, - "lat_y": -10.022892, - "long_x": -161.081621, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -161.08171546132252, - -10.022881768755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Raroia", - "comment": null, - "name_alt": null, - "lat_y": -16.054416, - "long_x": -142.509609, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -142.50963294179127, - -16.054253839068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Rapa", - "comment": null, - "name_alt": null, - "lat_y": -27.587603, - "long_x": -144.328315, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -144.32823645741627, - -27.587456964068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Mangareva", - "comment": null, - "name_alt": null, - "lat_y": -23.102464, - "long_x": -134.985909, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -134.98582923085377, - -23.102593682818423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Henderson I.", - "comment": null, - "name_alt": null, - "lat_y": -24.349847, - "long_x": -128.317479, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -128.31755530507252, - -24.349663995318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Nanumea", - "comment": null, - "name_alt": null, - "lat_y": -5.67562, - "long_x": 176.137639, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 176.13770592539623, - -5.675591729693423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Niulakita", - "comment": null, - "name_alt": null, - "lat_y": -10.750687, - "long_x": 179.497571, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 179.49756920664623, - -10.750664971880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "The Snares", - "comment": null, - "name_alt": null, - "lat_y": -48.017042, - "long_x": 166.588946, - "region": "Oceania", - "subregion": "New Zealand", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 166.58887780039623, - -48.01690032344342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Kanton", - "comment": null, - "name_alt": null, - "lat_y": -2.757106, - "long_x": -171.71703, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -171.71703040272877, - -2.757134698443423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Tabuaeran", - "comment": null, - "name_alt": "Fanning I.", - "lat_y": 3.866545, - "long_x": -159.326781, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -159.32683264882252, - 3.866705633587827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Malden", - "comment": null, - "name_alt": null, - "lat_y": -4.042491, - "long_x": -154.983478, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -154.98350989491627, - -4.042657159380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rarotonga", - "comment": null, - "name_alt": null, - "lat_y": -21.201867, - "long_x": -159.797637, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -159.79771887929127, - -21.201836846880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rangiroa", - "comment": null, - "name_alt": null, - "lat_y": -15.2046, - "long_x": -147.773967, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -147.77403723866627, - -15.204766534380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Funafuti", - "comment": null, - "name_alt": null, - "lat_y": -8.491577, - "long_x": 179.19841, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 179.19837487070873, - -8.491631768755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Vavau", - "comment": null, - "name_alt": null, - "lat_y": -18.590062, - "long_x": -173.976769, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -173.97673499257252, - -18.590020440630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "I. de Pascua", - "comment": null, - "name_alt": "Easter I.", - "lat_y": -27.102117, - "long_x": -109.367953, - "region": "Oceania", - "subregion": "Polynesia", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -109.36790930897877, - -27.102227471880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "St. Croix", - "comment": null, - "name_alt": null, - "lat_y": 17.762944, - "long_x": -64.763088, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -64.76317298085377, - 17.763006903119077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Grand Cayman", - "comment": null, - "name_alt": null, - "lat_y": 19.315829, - "long_x": -81.271416, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -81.27159583241627, - 19.315802313275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "San Salvador", - "comment": null, - "name_alt": null, - "lat_y": 24.052793, - "long_x": -74.492848, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -74.49290930897877, - 24.052801824994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Grenada", - "comment": null, - "name_alt": null, - "lat_y": 12.105978, - "long_x": -61.723079, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.72319495351002, - 12.105963446087827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Barbuda", - "comment": null, - "name_alt": null, - "lat_y": 17.622525, - "long_x": -61.789243, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.78929602772877, - 17.622626043744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Antigua", - "comment": null, - "name_alt": null, - "lat_y": 17.040441, - "long_x": -61.775982, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.77592932851002, - 17.040594793744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Guadeloupe", - "comment": null, - "name_alt": null, - "lat_y": 16.180583, - "long_x": -61.656947, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.65703284413502, - 16.180670477337827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Dominica", - "comment": null, - "name_alt": null, - "lat_y": 15.452943, - "long_x": -61.352652, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.35271155507252, - 15.452887274212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Martinique", - "comment": null, - "name_alt": null, - "lat_y": 14.672462, - "long_x": -61.008715, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.00883948476002, - 14.672491766400327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Saint Lucia", - "comment": null, - "name_alt": null, - "lat_y": 13.918332, - "long_x": -60.982225, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.98222815663502, - 13.918280340619077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Saint Vincent", - "comment": null, - "name_alt": null, - "lat_y": 13.270131, - "long_x": -61.207143, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -61.20720374257252, - 13.270209051556577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Barbados", - "comment": null, - "name_alt": null, - "lat_y": 13.164326, - "long_x": -59.566742, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -59.56682288319752, - 13.164252020306577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Tobago", - "comment": null, - "name_alt": null, - "lat_y": 11.259334, - "long_x": -60.677992, - "region": "South America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.67808997304127, - 11.259283758587827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Margarita", - "comment": null, - "name_alt": null, - "lat_y": 10.981467, - "long_x": -64.051401, - "region": "South America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -64.05144202382252, - 10.981512762494077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Curaao", - "comment": null, - "name_alt": null, - "lat_y": 12.185355, - "long_x": -68.999109, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -68.99919593007252, - 12.185309149212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Aruba", - "comment": null, - "name_alt": null, - "lat_y": 12.502849, - "long_x": -69.96488, - "region": "North America", - "subregion": "West Indies", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -69.96501624257252, - 12.502752996869077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra’s Banäs", - "comment": null, - "name_alt": null, - "lat_y": 23.950592, - "long_x": 35.778059, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 35.77808678477123, - 23.950628973431577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta das Salinas", - "comment": null, - "name_alt": null, - "lat_y": -12.832908, - "long_x": 12.928991, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 12.968705086077254, - -12.855718342716505 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta das Palmeirinhas", - "comment": null, - "name_alt": null, - "lat_y": -9.071387, - "long_x": 12.999549, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 13.033811372274608, - -9.099938228394153 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Bojador", - "comment": null, - "name_alt": null, - "lat_y": 26.157836, - "long_x": -14.473111, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -14.473194953510017, - 26.157965399212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Agulhas", - "comment": null, - "name_alt": null, - "lat_y": -34.801182, - "long_x": 19.993472, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 19.993418816021233, - -34.80108001094342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Gees Gwardafuy", - "comment": null, - "name_alt": null, - "lat_y": 11.812855, - "long_x": 51.235173, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 51.258313644180184, - 11.822028799226407 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Victoria Falls", - "comment": null, - "name_alt": null, - "lat_y": -17.77079, - "long_x": 25.460133, - "region": "Africa", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 25.852793816021233, - -17.928033135943423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Novyy I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -2.811695930072517, - -70.86150481563092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Lyddan I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -20.902027961322517, - -74.11870696406842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Verblyud I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 16.049937370708733, - -69.88189055781842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Coulman I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 169.73536217539623, - -73.50945403438092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Minna Hook", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 167.25318444102123, - -78.63811614375592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Wright I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -116.89262854726002, - -74.06670501094342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Grant I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -131.48540198476002, - -74.48272063594342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Newman I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -145.68681800038502, - -75.59185149531842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Dean I.", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -127.63438880116627, - -74.50066497188092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Adare", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.26734223219574, - -71.33025954578193 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Poinsett", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 113.20496666758373, - -65.78606536250592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Masson I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 96.63392174570873, - -66.15068938594342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Mikhaylov I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 85.60340416758373, - -66.84026458125592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Norvegia", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -12.327320930072517, - -71.37249114375592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Deception I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.61430823476002, - -62.95086028438092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Framnes", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -60.59343421132252, - -65.97173430781842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Agassiz", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -62.87468421132252, - -68.45610930781842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Jeremy", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -68.79051673085377, - -69.43328215938092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Comorin", - "comment": null, - "name_alt": null, - "lat_y": 8.143554, - "long_x": 77.471497, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 77.51210506924555, - 8.085338515340696 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Dondra Head", - "comment": null, - "name_alt": null, - "lat_y": 5.947528, - "long_x": 80.616321, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 80.59180925571331, - 5.929580617022318 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Yelizavety", - "comment": null, - "name_alt": null, - "lat_y": 54.416083, - "long_x": 142.720445, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 142.72059166758373, - 54.41620514530658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Pt. Yuzhnyy", - "comment": null, - "name_alt": null, - "lat_y": 57.733572, - "long_x": 156.796426, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 156.79664147227123, - 57.73346588749408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Sata", - "comment": null, - "name_alt": null, - "lat_y": 31.026941, - "long_x": 130.695089, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 130.69520104258373, - 31.026922918744077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Aniva", - "comment": null, - "name_alt": null, - "lat_y": 46.081706, - "long_x": 143.43487, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 143.43482506602123, - 46.08179352421283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Terpeniya", - "comment": null, - "name_alt": null, - "lat_y": 48.66928, - "long_x": 144.712582, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 144.71253502695873, - 48.66937897343158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Lopatka", - "comment": null, - "name_alt": null, - "lat_y": 50.914155, - "long_x": 156.651536, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 156.65162194102123, - 50.91412994999408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Ozernoy", - "comment": null, - "name_alt": null, - "lat_y": 57.7708, - "long_x": 163.246685, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 163.24683678477123, - 57.77088043827533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Olyutorskiy", - "comment": null, - "name_alt": null, - "lat_y": 59.960807, - "long_x": 170.31265, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 170.31287682383373, - 59.96082184452533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Navarin", - "comment": null, - "name_alt": null, - "lat_y": 62.327239, - "long_x": 179.074225, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 179.07422936289623, - 62.32727692265033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Lopatka", - "comment": null, - "name_alt": null, - "lat_y": 71.907853, - "long_x": 150.066042, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 150.06592858164623, - 71.90778229374408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Ince", - "comment": null, - "name_alt": null, - "lat_y": 42.084312, - "long_x": 34.983358, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 34.98328698008373, - 42.08417389530658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra’s Fartak", - "comment": null, - "name_alt": null, - "lat_y": 15.677412, - "long_x": 52.229105, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 52.2389696999939, - 15.65795249845498 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ras Sharbatat", - "comment": null, - "name_alt": null, - "lat_y": 18.164534, - "long_x": 56.56827, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 56.558165806017215, - 18.166986171245085 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra's al Had", - "comment": null, - "name_alt": null, - "lat_y": 22.530158, - "long_x": 59.849134, - "region": "Asia", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 59.7995168175437, - 22.518675327148298 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Hachijjima", - "comment": null, - "name_alt": null, - "lat_y": 33.109796, - "long_x": 139.804903, - "region": "Asia", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 139.80482018320873, - 33.10980866093158 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Plain of Jars", - "comment": null, - "name_alt": null, - "lat_y": 20.550709, - "long_x": 101.890532, - "region": "Asia", - "subregion": null, - "featureclass": "plain" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 101.89063561289623, - 20.550909735150327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Nordkapp", - "comment": null, - "name_alt": null, - "lat_y": 71.18337, - "long_x": 25.662398, - "region": "Europe", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 25.66067519711473, - 71.15450206702127 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de São Vicentete", - "comment": null, - "name_alt": null, - "lat_y": 37.038304, - "long_x": -8.969391, - "region": "Europe", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -8.969410773822517, - 37.03827545780658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Fisterra", - "comment": null, - "name_alt": null, - "lat_y": 42.952418, - "long_x": -9.267837, - "region": "Europe", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -9.26996282865152, - 42.92873605781255 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape San Blas", - "comment": null, - "name_alt": null, - "lat_y": 29.713967, - "long_x": -85.270961, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -85.27092444569752, - 29.713995672650327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Sable", - "comment": null, - "name_alt": null, - "lat_y": 43.469097, - "long_x": -65.610769, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.61082923085377, - 43.46900055546283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Bauld", - "comment": null, - "name_alt": null, - "lat_y": 51.568576, - "long_x": -55.430306, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -55.43028723866627, - 51.56848786015033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape Fear", - "comment": null, - "name_alt": null, - "lat_y": 33.867949, - "long_x": -77.990568, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -77.99058997304127, - 33.86798737186908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "I. Guadalupe", - "comment": null, - "name_alt": null, - "lat_y": 29.052552, - "long_x": -118.317465, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -118.31749426991627, - 29.052496649212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Miquelon", - "comment": null, - "name_alt": null, - "lat_y": 46.929526, - "long_x": -56.329884, - "region": "North America", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -56.32988440663502, - 46.92938873905658 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cabo Corrientes", - "comment": null, - "name_alt": null, - "lat_y": 20.409471, - "long_x": -105.683581, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -105.67795873874799, - 20.420365114940253 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Pt. Eugenia", - "comment": null, - "name_alt": null, - "lat_y": 27.861925, - "long_x": -115.07629, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -115.04623945046137, - 27.842887092585283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Point Conception", - "comment": null, - "name_alt": null, - "lat_y": 34.582313, - "long_x": -120.659016, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -120.46360036202867, - 34.46027592467621 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Hatteras", - "comment": null, - "name_alt": null, - "lat_y": 35.437762, - "long_x": -75.450543, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -75.54032952413311, - 35.24475263812895 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Sable", - "comment": null, - "name_alt": null, - "lat_y": 25.124896, - "long_x": -81.090442, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -81.09044348866627, - 25.124762274212827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Hope", - "comment": null, - "name_alt": null, - "lat_y": 68.35638, - "long_x": -166.815582, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -166.81321268769543, - 68.35380207543972 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Point Barrow", - "comment": null, - "name_alt": null, - "lat_y": 71.372637, - "long_x": -156.615894, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -156.4719492091668, - 71.40589128763096 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Canaveral", - "comment": null, - "name_alt": null, - "lat_y": 28.483713, - "long_x": -80.534941, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -80.53625603636821, - 28.473056814472134 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Mendocino", - "comment": null, - "name_alt": null, - "lat_y": 40.350222, - "long_x": -124.323474, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -124.39201745043425, - 40.44222065537283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cabo San Lucas", - "comment": null, - "name_alt": null, - "lat_y": 22.887711, - "long_x": -109.969843, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -109.96983801991627, - 22.887762762494077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Churchill", - "comment": null, - "name_alt": null, - "lat_y": 58.752014, - "long_x": -93.182023, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -93.18211829335377, - 58.75208161015033 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Cod", - "comment": null, - "name_alt": null, - "lat_y": 41.734867, - "long_x": -69.964865, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -70.03687833567446, - 41.9914589934385 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape May", - "comment": null, - "name_alt": null, - "lat_y": 37.2017, - "long_x": -75.926791, - "region": "North America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -74.95121933164988, - 38.92969645987068 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 2, - "name": "Niagara Falls", - "comment": null, - "name_alt": null, - "lat_y": 43.087653, - "long_x": -79.044073, - "region": "North America", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -79.04411780507252, - 43.08771393436908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "I. Alejandro Selkirk", - "comment": null, - "name_alt": null, - "lat_y": -33.722178, - "long_x": -80.733492, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -80.73350989491627, - -33.72222258906842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "I. San Ambrosio", - "comment": null, - "name_alt": null, - "lat_y": -26.341922, - "long_x": -79.900062, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -79.90001380116627, - -26.341851495318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "I. Robinson Crusoe", - "comment": null, - "name_alt": null, - "lat_y": -33.589852, - "long_x": -78.872522, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -78.87254798085377, - -33.58965422969342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Orange", - "comment": null, - "name_alt": null, - "lat_y": 4.125735, - "long_x": -51.242144, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -51.26287766987179, - 4.135614177285231 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de Santa Marta Grande", - "comment": null, - "name_alt": null, - "lat_y": -28.558078, - "long_x": -48.735526, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -48.80338037734664, - -28.57198267323537 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Punta del Este", - "comment": null, - "name_alt": null, - "lat_y": -34.975503, - "long_x": -54.933154, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -54.94628769070382, - -34.96658679840526 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo San Antonio", - "comment": null, - "name_alt": null, - "lat_y": -36.381052, - "long_x": -56.655377, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -56.716792100626165, - -36.40959917438929 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Corrientes", - "comment": null, - "name_alt": null, - "lat_y": -38.135985, - "long_x": -57.546212, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -57.56252349612641, - -38.066376942128464 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Punta Rasa", - "comment": null, - "name_alt": null, - "lat_y": -40.834718, - "long_x": -62.282201, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -62.25911745789756, - -40.72626411656719 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Dos Bahías", - "comment": null, - "name_alt": null, - "lat_y": -44.9887, - "long_x": -65.615952, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.5438334451688, - -44.89439847091873 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Punta Negra", - "comment": null, - "name_alt": null, - "lat_y": -5.948875, - "long_x": -81.108252, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -81.10832678944752, - -5.948663018755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Punta Lavapié", - "comment": null, - "name_alt": null, - "lat_y": -37.262867, - "long_x": -73.606377, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -73.60304396243782, - -37.17120002933805 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cabo de Hornos", - "comment": null, - "name_alt": "Cape Horn", - "lat_y": -55.862824, - "long_x": -67.169425, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -67.16942298085377, - -55.86284758906842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 2, - "name": "Salto Angel", - "comment": null, - "name_alt": "Angel Falls", - "lat_y": 5.686836, - "long_x": -62.061848, - "region": "South America", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -62.06181800038502, - 5.686896063275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 2, - "name": "Iguazu Falls", - "comment": null, - "name_alt": null, - "lat_y": -25.568265, - "long_x": -54.582842, - "region": "South America", - "subregion": null, - "featureclass": "waterfall" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -54.58299719960377, - -25.568291925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Clipperton I.", - "comment": null, - "name_alt": null, - "lat_y": 10.309933, - "long_x": -109.213284, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -109.2295822833424, - 10.304020508304784 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Île Amsterdam", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "South Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 77.53467858164623, - -37.85796477656842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Île Amsterdam", - "comment": null, - "name_alt": null, - "lat_y": -19.702241, - "long_x": 66.54263, - "region": "Seven seas (open ocean)", - "subregion": "South Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 77.52552330820873, - -38.72014739375592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Île Europa", - "comment": null, - "name_alt": null, - "lat_y": -22.837936, - "long_x": 40.192423, - "region": "Africa", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 40.19239342539623, - -22.837945245318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Annobón", - "comment": null, - "name_alt": null, - "lat_y": -1.429572, - "long_x": 5.621149, - "region": "Africa", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 5.621104362896233, - -1.429620050005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Ascension", - "comment": null, - "name_alt": null, - "lat_y": -7.925105, - "long_x": -14.362648, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -14.362721320697517, - -7.925225518755923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Tristan da Cunha", - "comment": null, - "name_alt": null, - "lat_y": -35.278715, - "long_x": -17.932071, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island group" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -12.265431281635017, - -37.07024505000592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Gough I.", - "comment": null, - "name_alt": null, - "lat_y": -35.278715, - "long_x": -17.932071, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -9.967213508197517, - -40.34014251094342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 7, - "name": "Bouvet I.", - "comment": null, - "name_alt": null, - "lat_y": -35.278715, - "long_x": -17.932071, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 3.409922722271233, - -54.41655852656842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Colbeck", - "comment": null, - "name_alt": null, - "lat_y": -50.959168, - "long_x": -72.995002, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -158.25767981679127, - -77.11113860469342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Is. de Fernando de Noronha", - "comment": null, - "name_alt": null, - "lat_y": -3.849881, - "long_x": -32.417053, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -32.41704260976002, - -3.849908135943423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cocos Is.", - "comment": null, - "name_alt": null, - "lat_y": -12.158465, - "long_x": 96.828369, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 96.82837975352123, - -12.158257745318423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Christmas I.", - "comment": null, - "name_alt": null, - "lat_y": -10.472542, - "long_x": 105.667155, - "region": "Seven seas (open ocean)", - "subregion": "Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 105.66712487070873, - -10.472588800005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Campbell I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 169.12012780039623, - -52.51043059688092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Macquarie I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Seven seas (open ocean)", - "subregion": "South Indian Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 158.89600670664623, - -54.60979583125592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Darnley", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 69.61109459727123, - -67.77349212031842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Cape Ann", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 51.40809166758373, - -66.16106536250592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Peter I I.", - "comment": null, - "name_alt": null, - "lat_y": -52.510412, - "long_x": 169.120166, - "region": "Antarctica", - "subregion": "Southern Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -90.56822669179127, - -68.76604583125592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Antipodes Islands", - "comment": null, - "name_alt": null, - "lat_y": -49.649273, - "long_x": 178.773056, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 178.77295983164623, - -49.64934661250592 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Bounty Is.", - "comment": null, - "name_alt": null, - "lat_y": -47.688207, - "long_x": 178.89656, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 178.89661705820873, - -47.68828704219342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Balls Pyramid", - "comment": null, - "name_alt": null, - "lat_y": -31.826904, - "long_x": 159.158463, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 159.15833580820873, - -31.826958917193423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Lord Howe I.", - "comment": null, - "name_alt": null, - "lat_y": -31.542569, - "long_x": 159.069307, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 159.06922448008373, - -31.542535089068423 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "St. Helena", - "comment": null, - "name_alt": null, - "lat_y": -15.950901, - "long_x": -5.705161, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -5.705128547260017, - -15.950860284380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "I. del Coco", - "comment": null, - "name_alt": null, - "lat_y": 5.539857, - "long_x": -87.092227, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -87.09221350819752, - 5.539923407025327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 6, - "name": "Sable I.", - "comment": null, - "name_alt": null, - "lat_y": 43.930893, - "long_x": -59.91953, - "region": "Seven seas (open ocean)", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -59.91960608632252, - 43.93097565311908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Delgado", - "comment": null, - "name_alt": null, - "lat_y": -10.670103, - "long_x": 40.624309, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 40.62440026133373, - -10.670098565630923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta da Barra", - "comment": null, - "name_alt": null, - "lat_y": -23.829888, - "long_x": 35.515696, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 35.51563561289623, - -23.830010675005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta São Sebastio", - "comment": null, - "name_alt": null, - "lat_y": -22.118899, - "long_x": 35.480417, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 35.48023522227123, - -22.118829034380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ras Cantin", - "comment": null, - "name_alt": null, - "lat_y": 32.581636, - "long_x": -9.273918, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -9.273915168353767, - 32.58161041874408 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ra’s Kasr", - "comment": null, - "name_alt": null, - "lat_y": 18.076817, - "long_x": 38.573746, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 38.58027735871919, - 18.075167704493374 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta de Jericoacoara", - "comment": null, - "name_alt": null, - "lat_y": -2.85044, - "long_x": -40.067208, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -39.991649927946355, - -2.851822991583529 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de São Roque", - "comment": null, - "name_alt": null, - "lat_y": -5.193476, - "long_x": -35.447654, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -35.50994900651512, - -5.156866121305913 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Ponta da Baleia", - "comment": null, - "name_alt": null, - "lat_y": -17.710136, - "long_x": -39.157619, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -39.14557867836578, - -17.678753845220847 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo de São Tomé", - "comment": null, - "name_alt": null, - "lat_y": -21.996382, - "long_x": -41.009692, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -40.98763990313761, - -21.971754611783773 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Frio", - "comment": null, - "name_alt": null, - "lat_y": -22.869501, - "long_x": -41.962188, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -41.89015627474056, - -22.759730815669258 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo San Diego", - "comment": null, - "name_alt": null, - "lat_y": -54.6406, - "long_x": -65.21365, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.21361243397877, - -54.64067962031842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cabo Tres Puntas", - "comment": null, - "name_alt": null, - "lat_y": -47.237629, - "long_x": -65.774707, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -65.74439816328368, - -47.328778975372465 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cap Saint André", - "comment": null, - "name_alt": null, - "lat_y": -16.174457, - "long_x": 44.467405, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 44.46729576914623, - -16.174493096880923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape St. Lucia", - "comment": null, - "name_alt": null, - "lat_y": -28.552694, - "long_x": 32.367221, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 32.36732018320873, - -28.552666925005923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Cape St. Francis", - "comment": null, - "name_alt": null, - "lat_y": -34.171766, - "long_x": 24.817688, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 24.84143613032799, - -34.18861022316314 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Minamitori-shima", - "comment": null, - "name_alt": "Marcus I.", - "lat_y": 24.319813, - "long_x": 153.958899, - "region": "Seven seas (open ocean)", - "subregion": "North Pacific Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 153.95887291758373, - 24.319769598431577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Is. Martin Vaz", - "comment": null, - "name_alt": null, - "lat_y": -20.559422, - "long_x": -29.338439, - "region": "Seven seas (open ocean)", - "subregion": "Southern Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -29.338429328510017, - -20.559502862505923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Rockall", - "comment": null, - "name_alt": null, - "lat_y": 58.163524, - "long_x": -12.408715, - "region": "Seven seas (open ocean)", - "subregion": "North Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -12.408741828510017, - 58.16339752811908 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "I. de Cozumel", - "comment": null, - "name_alt": null, - "lat_y": 20.444687, - "long_x": -86.880555, - "region": "North America", - "subregion": null, - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -86.88060462147877, - 20.444708563275327 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 5, - "name": "Bermuda Islands", - "comment": null, - "name_alt": null, - "lat_y": 32.317339, - "long_x": -64.742895, - "region": "Seven seas (open ocean)", - "subregion": "North Atlantic Ocean", - "featureclass": "island" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -64.74290930897877, - 32.31726715702533 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Punta Galera", - "comment": null, - "name_alt": null, - "lat_y": 0.731221, - "long_x": -80.062205, - "region": "South America", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -80.06212317616627, - 0.731207586712827 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cap Lopez", - "comment": null, - "name_alt": null, - "lat_y": -0.604761, - "long_x": 8.726423, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 8.727299789450319, - -0.615086490513119 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cape Bobaomby", - "comment": null, - "name_alt": null, - "lat_y": -11.966598, - "long_x": 49.262904, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 49.26282799570873, - -11.966485284380923 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 4, - "name": "Cap Blanc", - "comment": null, - "name_alt": null, - "lat_y": 20.822108, - "long_x": -17.052856, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -17.052906867572517, - 20.822088934369077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape of Good Hope", - "comment": null, - "name_alt": null, - "lat_y": -34.307311, - "long_x": 18.441206, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 18.441294792583733, - -34.30718352656842 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Palmas", - "comment": null, - "name_alt": null, - "lat_y": 4.373924, - "long_x": -7.457356, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -7.457386848041267, - 4.373968817181577 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cape Verde", - "comment": null, - "name_alt": null, - "lat_y": 14.732312, - "long_x": -17.471776, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -17.471730109760017, - 14.732489324994077 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Cap Bon", - "comment": null, - "name_alt": null, - "lat_y": 37.073954, - "long_x": 11.024061, - "region": "Africa", - "subregion": null, - "featureclass": "cape" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 11.024180534771233, - 37.07398102421283 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "Oceanic pole of inaccessibility", - "comment": null, - "name_alt": null, - "lat_y": -48.865032, - "long_x": -123.401986, - "region": "Seven seas (open ocean)", - "subregion": "South Pacific Ocean", - "featureclass": "pole" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -123.40202796132252, - -48.86504485469342 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "South Magnetic Pole 2005 (est)", - "comment": null, - "name_alt": null, - "lat_y": -48.865032, - "long_x": -123.401986, - "region": "Antarctica", - "subregion": "Southern Ocean", - "featureclass": "pole" - }, - "geometry": { - "type": "Point", - "coordinates": [ - 137.85425865977123, - -64.51824309688092 - ] - } - }, - { - "type": "Feature", - "properties": { - "scalerank": 3, - "name": "North Magnetic Pole 2005 (est)", - "comment": null, - "name_alt": null, - "lat_y": -48.865032, - "long_x": -123.401986, - "region": "Seven seas (open ocean)", - "subregion": "Arctic Ocean", - "featureclass": "pole" - }, - "geometry": { - "type": "Point", - "coordinates": [ - -114.40569007069752, - 82.71008942265033 - ] - } - } - ] -} \ No newline at end of file diff --git a/stories/MapAdaptor/components/data2.json b/stories/MapAdaptor/components/data2.json deleted file mode 100644 index 79e85caedc..0000000000 --- a/stories/MapAdaptor/components/data2.json +++ /dev/null @@ -1,6113 +0,0 @@ -{ - "type": "FeatureCollection", - "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, - "features": [ - { "type": "Feature", "properties": { "id": "ak16994521", "mag": 2.3, "time": 1507425650893, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5129, 63.1016, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16994519", "mag": 1.7, "time": 1507425289659, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4048, 63.1224, 105.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16994517", "mag": 1.6, "time": 1507424832518, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3597, 63.0781, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38021336", "mag": 1.42, "time": 1507423898710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.497, 34.299667, 7.64 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2nn", "mag": 4.2, "time": 1507422626990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -87.6901, 12.0623, 46.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16994510", "mag": 1.6, "time": 1507422449194, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5053, 63.0719, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2nb", "mag": 4.6, "time": 1507420784440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4576, -20.2873, 614.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16994298", "mag": 2.4, "time": 1507419370097, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.789, 63.1725, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72905861", "mag": 1.39, "time": 1507418785100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.993164, 36.421833, 6.37 ] } }, - { "type": "Feature", "properties": { "id": "ci38021304", "mag": 1.11, "time": 1507418426010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0155, 33.656333, 12.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16994293", "mag": 1.5, "time": 1507417256497, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.512, 63.0879, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16994287", "mag": 2.0, "time": 1507413903714, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4378, 63.0933, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16994285", "mag": 1.5, "time": 1507413670029, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6538, 63.2272, 96.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16994283", "mag": 1.4, "time": 1507413587442, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5325, 63.0844, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16994280", "mag": 1.3, "time": 1507413266231, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.4752, 61.8518, 54.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16994278", "mag": 1.8, "time": 1507413195076, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8597, 61.6214, 50.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16994274", "mag": 1.9, "time": 1507412827617, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7142, 62.9656, 93.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16994273", "mag": 1.2, "time": 1507411925999, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2484, 61.2705, 69.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16994270", "mag": 2.0, "time": 1507411814209, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0732, 65.5942, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2ly", "mag": 4.1, "time": 1507411448780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -90.5445, 13.5146, 54.36 ] } }, - { "type": "Feature", "properties": { "id": "nc72905841", "mag": 1.38, "time": 1507411214450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819504, 37.605499, 4.14 ] } }, - { "type": "Feature", "properties": { "id": "nc72905836", "mag": 1.4, "time": 1507410206440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.930168, 37.636833, -0.71 ] } }, - { "type": "Feature", "properties": { "id": "ci38021272", "mag": 1.34, "time": 1507408122250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.509167, 34.1555, 16.34 ] } }, - { "type": "Feature", "properties": { "id": "ci38021264", "mag": 1.0, "time": 1507407938100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792167, 33.5115, 5.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16993963", "mag": 1.4, "time": 1507407100665, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9126, 63.1812, 150.4 ] } }, - { "type": "Feature", "properties": { "id": "hv61936851", "mag": 2.55, "time": 1507406278360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.078659, 19.374167, 2.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16993960", "mag": 1.4, "time": 1507405129739, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3106, 61.5726, 26.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16993952", "mag": 1.7, "time": 1507403679922, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5846, 60.2607, 34.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38021224", "mag": 1.04, "time": 1507401391710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.929, 34.254833, 18.27 ] } }, - { "type": "Feature", "properties": { "id": "ak16993752", "mag": 1.3, "time": 1507401212982, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5065, 63.0847, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16993746", "mag": 1.3, "time": 1507399350671, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.8929, 63.5257, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2jk", "mag": 4.6, "time": 1507398878400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.7258, -18.9821, 195.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16993741", "mag": 1.6, "time": 1507398797233, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3473, 63.0775, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905766", "mag": 2.64, "time": 1507397278960, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.137497, 36.579834, 7.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16993738", "mag": 1.4, "time": 1507396778206, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1075, 61.8312, 71.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16993736", "mag": 1.2, "time": 1507396542471, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3769, 63.0621, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2ii", "mag": 4.3, "time": 1507395765330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8319, 16.7195, 58.84 ] } }, - { "type": "Feature", "properties": { "id": "uw61339006", "mag": 1.91, "time": 1507395622730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.689833, 47.049167, 5.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16993732", "mag": 1.7, "time": 1507395602456, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5283, 63.0785, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16993720", "mag": 2.5, "time": 1507394741482, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6683, 60.7696, 67.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16993714", "mag": 1.6, "time": 1507394402896, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7591, 61.6478, 30.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16993710", "mag": 1.5, "time": 1507393418705, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3458, 63.0633, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16993699", "mag": 1.6, "time": 1507392875390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4669, 63.0675, 3.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16993695", "mag": 1.3, "time": 1507392837463, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5169, 63.083, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16993692", "mag": 2.3, "time": 1507392657193, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4771, 63.0742, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16993486", "mag": 4.2, "time": 1507392435159, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.458, 63.1276, 14.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2hz", "mag": 4.3, "time": 1507392287310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9686, 16.6087, 69.65 ] } }, - { "type": "Feature", "properties": { "id": "nc72905751", "mag": 1.21, "time": 1507391530870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.023666, 37.605335, 1.97 ] } }, - { "type": "Feature", "properties": { "id": "ci38021056", "mag": 1.95, "time": 1507390783500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.793833, 33.493, 3.65 ] } }, - { "type": "Feature", "properties": { "id": "ci38021048", "mag": 1.02, "time": 1507388708760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.225, 34.0335, 0.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16993303", "mag": 1.9, "time": 1507385638408, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0033, 63.2623, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2hc", "mag": 4.9, "time": 1507385606770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.3179, -30.4302, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16993301", "mag": 2.1, "time": 1507383291943, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1913, 58.5727, 85.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60251607", "mag": 3.09, "time": 1507383200950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.140503, 38.030666, 7.29 ] } }, - { "type": "Feature", "properties": { "id": "nc72905716", "mag": 1.07, "time": 1507382878240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.765663, 38.789166, 2.09 ] } }, - { "type": "Feature", "properties": { "id": "nc72905711", "mag": 1.17, "time": 1507382428800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.678001, 37.621498, 4.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16993140", "mag": 1.9, "time": 1507381096302, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8813, 63.1738, 75.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16993128", "mag": 1.6, "time": 1507378828395, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.531, 61.7978, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61936621", "mag": 1.98, "time": 1507378497820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.423492, 19.223499, 34.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16993119", "mag": 1.5, "time": 1507378014192, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.8317, 59.7754, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905681", "mag": 1.39, "time": 1507377675100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793999, 38.8255, 2.24 ] } }, - { "type": "Feature", "properties": { "id": "hv61936531", "mag": 2.66, "time": 1507377140600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.32016, 19.338667, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16992960", "mag": 1.9, "time": 1507376759252, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.4264, 67.7636, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16992953", "mag": 2.1, "time": 1507376626801, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.5725, 59.8372, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2fz", "mag": 4.1, "time": 1507372645200, "felt": 103, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.7814, -32.4981, 23.29 ] } }, - { "type": "Feature", "properties": { "id": "nn00608370", "mag": 1.3, "time": 1507370926907, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9711, 36.3094, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16992628", "mag": 1.5, "time": 1507369548317, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.8046, 65.9499, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16992625", "mag": 1.4, "time": 1507369466929, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.8309, 63.376, 82.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905641", "mag": 1.22, "time": 1507368529650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.724167, 38.760334, 1.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2fc", "mag": 5.1, "time": 1507368374110, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -77.9778, -1.6647, 147.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16992611", "mag": 2.1, "time": 1507366872675, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3324, 62.9966, 88.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16992607", "mag": 1.8, "time": 1507366536698, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4858, 64.7593, 11.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2et", "mag": 4.9, "time": 1507365487800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.7469, -33.0092, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16992603", "mag": 2.2, "time": 1507364931625, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8133, 59.8473, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38020960", "mag": 1.0, "time": 1507363084310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.673833, 33.904333, 35.76 ] } }, - { "type": "Feature", "properties": { "id": "hv61936261", "mag": 1.72, "time": 1507362853030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.382172, 19.23, 34.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16992451", "mag": 1.8, "time": 1507362228460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.427, 66.3947, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38020944", "mag": 1.0, "time": 1507362158010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.457667, 34.326, 2.73 ] } }, - { "type": "Feature", "properties": { "id": "mb80259564", "mag": 1.03, "time": 1507361004730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529833, 46.865833, 9.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72905606", "mag": 1.19, "time": 1507358854330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.791832, 38.834835, 1.65 ] } }, - { "type": "Feature", "properties": { "id": "nn00608387", "mag": 1.0, "time": 1507358249243, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9071, 38.405, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38020896", "mag": 1.89, "time": 1507358144340, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.793833, 33.486833, 4.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2dx", "mag": 4.5, "time": 1507357181260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 130.1291, -6.3628, 156.49 ] } }, - { "type": "Feature", "properties": { "id": "se60208171", "mag": 2.4, "time": 1507353902490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -83.749833, 36.150333, 14.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72905576", "mag": 1.77, "time": 1507352706600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.900833, 36.327168, 6.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16992147", "mag": 1.4, "time": 1507351430424, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0276, 62.5667, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16992146", "mag": 1.8, "time": 1507351047849, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.5063, 59.957, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905556", "mag": 1.77, "time": 1507350586140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.792, 38.834835, 1.77 ] } }, - { "type": "Feature", "properties": { "id": "mb80259559", "mag": 1.46, "time": 1507350177430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.530833, 46.869333, 10.71 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2d1", "mag": 4.7, "time": 1507347862040, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.504, -16.7961, 178.13 ] } }, - { "type": "Feature", "properties": { "id": "nc72905531", "mag": 1.48, "time": 1507346675870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.831169, 37.4585, 2.53 ] } }, - { "type": "Feature", "properties": { "id": "mb80259549", "mag": 1.08, "time": 1507345321240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.516333, 46.8755, 11.43 ] } }, - { "type": "Feature", "properties": { "id": "nc72905521", "mag": 1.46, "time": 1507345267910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.816666, 37.603832, 4.04 ] } }, - { "type": "Feature", "properties": { "id": "ci38020824", "mag": 2.12, "time": 1507344823940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.655333, 34.632, 5.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16991857", "mag": 2.3, "time": 1507344587124, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.8808, 51.3254, 31.7 ] } }, - { "type": "Feature", "properties": { "id": "nn00608359", "mag": 1.1, "time": 1507344387447, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1285, 37.4041, 0.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72905511", "mag": 1.27, "time": 1507344302520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.817169, 37.604168, 4.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2cx", "mag": 4.9, "time": 1507343887900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 69.1471, -23.7671, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905496", "mag": 1.94, "time": 1507341324260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.101166, 40.842499, 6.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2cc", "mag": 5.0, "time": 1507340745260, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 132.668, 1.1151, 7.01 ] } }, - { "type": "Feature", "properties": { "id": "ci38020800", "mag": 1.46, "time": 1507340726000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.462667, 33.466333, 5.78 ] } }, - { "type": "Feature", "properties": { "id": "ak16991706", "mag": 1.7, "time": 1507339655320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.2596, 60.2328, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16991711", "mag": 1.6, "time": 1507339653625, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.2013, 60.2021, 10.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16991704", "mag": 1.7, "time": 1507338343941, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7575, 62.4396, 50.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16991697", "mag": 2.1, "time": 1507336466527, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3178, 60.5797, 88.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38020768", "mag": 1.56, "time": 1507336119080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.460167, 34.3335, 2.89 ] } }, - { "type": "Feature", "properties": { "id": "ci38020760", "mag": 1.22, "time": 1507335982510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.468167, 34.333167, 2.87 ] } }, - { "type": "Feature", "properties": { "id": "ci38020752", "mag": 1.81, "time": 1507335765850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.793, 33.490333, 4.58 ] } }, - { "type": "Feature", "properties": { "id": "ci38020744", "mag": 1.76, "time": 1507335646140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.566333, 35.339667, 7.86 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2c0", "mag": 5.3, "time": 1507335391250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3171, -33.0297, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905461", "mag": 1.16, "time": 1507333007350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.795998, 38.826, 2.32 ] } }, - { "type": "Feature", "properties": { "id": "nn00608334", "mag": 1.1, "time": 1507331333919, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1247, 37.3789, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16991557", "mag": 1.4, "time": 1507331263084, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.2293, 64.9749, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2ba", "mag": 4.4, "time": 1507331102840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 152.3636, -10.0109, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2b9", "mag": 4.2, "time": 1507331091160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 73.3529, 39.6124, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16991437", "mag": 2.0, "time": 1507330383962, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4583, 60.3395, 72.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2av", "mag": 4.3, "time": 1507329021540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 138.9649, 43.0121, 217.94 ] } }, - { "type": "Feature", "properties": { "id": "nn00608329", "mag": 1.3, "time": 1507328136999, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1198, 37.3861, 8.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38020720", "mag": 1.45, "time": 1507327306610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.955667, 34.34, -0.29 ] } }, - { "type": "Feature", "properties": { "id": "uw61338531", "mag": 1.37, "time": 1507326914640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.991667, 46.572333, -0.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00608354", "mag": 1.0, "time": 1507326343697, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.747, 39.8477, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905451", "mag": 1.47, "time": 1507326329600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.753833, 39.8485, 6.72 ] } }, - { "type": "Feature", "properties": { "id": "nc72905441", "mag": 1.23, "time": 1507325408690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.127, 36.566667, 9.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000b29t", "mag": 4.5, "time": 1507325144410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 145.6471, 17.7456, 196.33 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2ab", "mag": 2.6, "time": 1507324395860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.8949, 32.7663, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905436", "mag": 1.41, "time": 1507323505830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.155667, 36.5565, 6.94 ] } }, - { "type": "Feature", "properties": { "id": "ci38020712", "mag": 1.19, "time": 1507323492150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.991, 32.578667, 2.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000b289", "mag": 2.4, "time": 1507321230800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7321, 36.481, 5.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72905431", "mag": 1.0, "time": 1507321021480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.178833, 38.107, -0.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16991182", "mag": 1.0, "time": 1507320721326, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1644, 62.2007, 15.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16991178", "mag": 1.8, "time": 1507320357991, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5804, 63.1717, 121.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72905426", "mag": 1.24, "time": 1507320241050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.688667, 37.5335, 6.91 ] } }, - { "type": "Feature", "properties": { "id": "ci38020680", "mag": 1.5, "time": 1507320090270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.516, 33.860833, 0.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16991069", "mag": 1.8, "time": 1507318145350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6965, 59.7754, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b27a", "mag": 2.4, "time": 1507317641850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.2269, 36.6265, 5.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16991058", "mag": 2.6, "time": 1507317554328, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3172, 63.6837, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38020656", "mag": 1.03, "time": 1507317548410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.646667, 36.148333, 0.93 ] } }, - { "type": "Feature", "properties": { "id": "ci38020648", "mag": 1.08, "time": 1507317476900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.1915, 35.0025, -0.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72905416", "mag": 1.19, "time": 1507317386760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.803333, 37.457667, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "uw61338426", "mag": 1.65, "time": 1507316609360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.7105, 43.553333, 7.02 ] } }, - { "type": "Feature", "properties": { "id": "mb80259489", "mag": 1.66, "time": 1507316359200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.477167, 45.9945, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38020624", "mag": 1.22, "time": 1507316271630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.362, 32.941333, 10.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16991011", "mag": 2.0, "time": 1507315584886, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9279, 62.7834, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000b26p", "mag": 4.7, "time": 1507315424010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 68.9568, -49.2119, 13.54 ] } }, - { "type": "Feature", "properties": { "id": "uu60251447", "mag": 2.18, "time": 1507314096180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.457, 42.633167, 4.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72905411", "mag": 1.24, "time": 1507313481610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.962333, 37.920333, -0.33 ] } }, - { "type": "Feature", "properties": { "id": "us2000b260", "mag": 4.4, "time": 1507311862190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 86.7487, 30.0165, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38020552", "mag": 1.28, "time": 1507311788210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.351667, 35.052833, -1.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000b25h", "mag": 5.5, "time": 1507311683180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -15.5503, -35.3171, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990870", "mag": 1.8, "time": 1507310931075, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9372, 62.1214, 48.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00608306", "mag": 1.9, "time": 1507310059424, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.6177, 38.5802, 5.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000b24c", "mag": 4.6, "time": 1507309684550, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 143.7841, 37.4191, 31.5 ] } }, - { "type": "Feature", "properties": { "id": "mb80259479", "mag": 1.25, "time": 1507309316470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5305, 46.867167, 12.62 ] } }, - { "type": "Feature", "properties": { "id": "uu60251412", "mag": 2.1, "time": 1507308318150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.460333, 42.602667, 6.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72905346", "mag": 2.33, "time": 1507308237260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.803333, 37.457333, 0.99 ] } }, - { "type": "Feature", "properties": { "id": "ci38020512", "mag": 1.61, "time": 1507308155060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2815, 35.633833, 6.15 ] } }, - { "type": "Feature", "properties": { "id": "ci38020480", "mag": 1.04, "time": 1507307612510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.314167, 34.0145, 2.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16990671", "mag": 1.6, "time": 1507307067130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0099, 66.2332, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72905326", "mag": 1.17, "time": 1507305678060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.706, 38.783667, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "mb80259459", "mag": 0.95, "time": 1507305300890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5315, 46.8575, 12.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38020408", "mag": 1.2, "time": 1507302977930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.019833, 33.876, -0.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16990501", "mag": 2.8, "time": 1507302735109, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2441, 60.1679, 148.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000b20f", "mag": 5.4, "time": 1507301800580, "felt": 169, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.1969, 37.0997, 47.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16990465", "mag": 1.7, "time": 1507301707708, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.519, 67.5663, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38020392", "mag": 2.6, "time": 1507301676460, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.894167, 31.614, 5.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16990463", "mag": 1.6, "time": 1507300956103, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1925, 59.8037, 20.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60251397", "mag": 1.18, "time": 1507300478100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.436333, 42.554833, 9.68 ] } }, - { "type": "Feature", "properties": { "id": "nn00608296", "mag": 1.1, "time": 1507299948387, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.9267, 39.4223, 8.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38020376", "mag": 1.4, "time": 1507299919340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.476667, 35.752167, 2.24 ] } }, - { "type": "Feature", "properties": { "id": "nn00608295", "mag": 2.0, "time": 1507298898804, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9217, 38.4131, 8.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1zv", "mag": 5.1, "time": 1507298433140, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 95.0977, 12.0039, 21.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16990379", "mag": 2.0, "time": 1507296668722, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4456, 63.3167, 112.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990317", "mag": 2.4, "time": 1507295355033, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6485, 60.9026, 21.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72905256", "mag": 1.69, "time": 1507295344860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7755, 38.805167, 0.72 ] } }, - { "type": "Feature", "properties": { "id": "ci38020296", "mag": 0.98, "time": 1507294899000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.445, 34.226167, 12.35 ] } }, - { "type": "Feature", "properties": { "id": "nc72905246", "mag": 1.14, "time": 1507294685610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.797333, 38.813499, 2.36 ] } }, - { "type": "Feature", "properties": { "id": "nc72905241", "mag": 1.27, "time": 1507294429860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.806167, 38.822333, 1.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16990306", "mag": 1.6, "time": 1507293337500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.164, 63.5211, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72905231", "mag": 1.31, "time": 1507293268040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.600333, 38.771667, 0.05 ] } }, - { "type": "Feature", "properties": { "id": "mb80259449", "mag": 1.29, "time": 1507293189490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.557667, 46.894167, 9.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72905226", "mag": 1.25, "time": 1507291334810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.798333, 37.565333, -0.35 ] } }, - { "type": "Feature", "properties": { "id": "ci38020256", "mag": 2.0, "time": 1507290973570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.757833, 34.172833, 6.62 ] } }, - { "type": "Feature", "properties": { "id": "ci38020240", "mag": 1.05, "time": 1507290356170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.355667, 35.822833, 16.75 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1xz", "mag": 5.2, "time": 1507289341850, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 155.9405, -6.8684, 106.51 ] } }, - { "type": "Feature", "properties": { "id": "uw61338256", "mag": 1.22, "time": 1507287741010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.509333, 45.6895, 9.57 ] } }, - { "type": "Feature", "properties": { "id": "ci38020232", "mag": 1.4, "time": 1507287412090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8455, 34.000333, 9.47 ] } }, - { "type": "Feature", "properties": { "id": "mb80259444", "mag": 1.6, "time": 1507286758530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.5795, 44.259167, 3.88 ] } }, - { "type": "Feature", "properties": { "id": "mb80259434", "mag": 1.18, "time": 1507286693390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.322167, 43.681333, 9.95 ] } }, - { "type": "Feature", "properties": { "id": "ak16990167", "mag": 3.0, "time": 1507285562299, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.2949, 51.2318, 28.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990162", "mag": 3.2, "time": 1507285408267, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.0402, 65.2966, 0.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61935226", "mag": 1.78, "time": 1507284229580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.42366, 19.2805, 7.76 ] } }, - { "type": "Feature", "properties": { "id": "hv61935131", "mag": 1.67, "time": 1507283791470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.248833, 18.876833, 12.183 ] } }, - { "type": "Feature", "properties": { "id": "ak16990109", "mag": 1.9, "time": 1507282869514, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1519, 63.251, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1xd", "mag": 4.4, "time": 1507281825250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 119.9639, -0.4925, 44.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16990102", "mag": 1.6, "time": 1507281420124, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7545, 61.5105, 70.6 ] } }, - { "type": "Feature", "properties": { "id": "hv61935091", "mag": 2.94, "time": 1507279304370, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.2205, 19.380333, 14.051 ] } }, - { "type": "Feature", "properties": { "id": "nn00608291", "mag": 1.6, "time": 1507279195578, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.2224, 39.4096, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72905186", "mag": 0.99, "time": 1507278858510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8245, 37.483833, 5.31 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1v8", "mag": 6.0, "time": 1507276773110, "felt": 108, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 143.9537, 37.485, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60251377", "mag": 1.43, "time": 1507274976970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.444, 42.660667, 5.95 ] } }, - { "type": "Feature", "properties": { "id": "ak16989976", "mag": 3.1, "time": 1507274375943, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7235, 59.8808, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259414", "mag": 1.86, "time": 1507273645130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.997833, 47.455667, 1.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1v0", "mag": 4.7, "time": 1507273552100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 146.6145, 13.8504, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989973", "mag": 1.3, "time": 1507272833815, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7833, 64.8537, 19.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000b2dh", "mag": 3.3, "time": 1507270603000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.92, 49.06, 22.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989967", "mag": 1.9, "time": 1507270303410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3206, 61.7195, 41.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38020152", "mag": 1.08, "time": 1507270230410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.557333, 32.948833, 3.78 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1um", "mag": 2.7, "time": 1507269804040, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4493, 42.6517, 7.67 ] } }, - { "type": "Feature", "properties": { "id": "nc72905156", "mag": 1.79, "time": 1507269478010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.801167, 38.822, 2.67 ] } }, - { "type": "Feature", "properties": { "id": "nc71107634", "mag": 1.13, "time": 1507269413290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.478167, 38.6015, 12.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1un", "mag": 4.3, "time": 1507269388630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.4985, 51.6139, 71.76 ] } }, - { "type": "Feature", "properties": { "id": "uu60251357", "mag": 1.47, "time": 1507268672130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.455333, 42.652833, 2.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16989960", "mag": 1.1, "time": 1507268319981, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2116, 64.2744, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61935031", "mag": 1.75, "time": 1507267817920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.428833, 19.329, 10.185 ] } }, - { "type": "Feature", "properties": { "id": "nc72905151", "mag": 1.08, "time": 1507267299070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.823167, 37.607, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259404", "mag": 1.03, "time": 1507266753410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.532167, 46.873, 11.23 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1u8", "mag": 4.6, "time": 1507265974560, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -64.1261, -17.5702, 36.33 ] } }, - { "type": "Feature", "properties": { "id": "ci38020112", "mag": 1.06, "time": 1507265623210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.434833, 33.0315, 3.46 ] } }, - { "type": "Feature", "properties": { "id": "nc72905146", "mag": 1.56, "time": 1507265461960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7915, 38.8195, 1.42 ] } }, - { "type": "Feature", "properties": { "id": "uw61338091", "mag": 1.62, "time": 1507265317630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.2, 47.583333, 23.03 ] } }, - { "type": "Feature", "properties": { "id": "uw61338086", "mag": 1.33, "time": 1507265080940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.200333, 47.583833, 23.12 ] } }, - { "type": "Feature", "properties": { "id": "uu60251347", "mag": 1.61, "time": 1507264823080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.494833, 42.639667, 0.79 ] } }, - { "type": "Feature", "properties": { "id": "nc71107639", "mag": 1.32, "time": 1507263429870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.9235, 39.599833, 20.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72905131", "mag": 1.06, "time": 1507263391130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.831, 37.5295, 5.95 ] } }, - { "type": "Feature", "properties": { "id": "nc72905121", "mag": 1.41, "time": 1507263129660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.403, 38.364167, 8.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1tr", "mag": 4.8, "time": 1507262599510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 151.9528, -10.3953, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989915", "mag": 1.5, "time": 1507260314998, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3718, 63.0764, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61338061", "mag": 1.26, "time": 1507260032120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.744833, 47.490167, 16.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16989910", "mag": 2.1, "time": 1507259762026, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6057, 63.4194, 106.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72905106", "mag": 1.0, "time": 1507258246340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.822, 38.814833, 1.61 ] } }, - { "type": "Feature", "properties": { "id": "nc72905101", "mag": 2.97, "time": 1507257072490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -125.777167, 41.2375, 7.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16989906", "mag": 1.6, "time": 1507256091995, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.063, 65.8813, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38020032", "mag": 1.89, "time": 1507255962830, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7975, 33.5, 5.36 ] } }, - { "type": "Feature", "properties": { "id": "ci38020024", "mag": 1.53, "time": 1507255628970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.875167, 33.957, 3.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1t0", "mag": 4.8, "time": 1507255428530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -25.496, 0.9934, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1sv", "mag": 4.6, "time": 1507253577740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 152.1867, -9.9486, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60251342", "mag": 1.12, "time": 1507252828550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.414167, 42.5485, 6.65 ] } }, - { "type": "Feature", "properties": { "id": "nc72905066", "mag": 0.98, "time": 1507251331760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9395, 37.636, 5.66 ] } }, - { "type": "Feature", "properties": { "id": "nn00608277", "mag": 1.5, "time": 1507251023072, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.857, 37.3396, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60251327", "mag": 1.16, "time": 1507250350380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.672333, 39.4485, 12.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16989868", "mag": 1.6, "time": 1507249990990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6081, 61.1327, 14.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38019984", "mag": 1.38, "time": 1507249506910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.598667, 33.450667, 7.77 ] } }, - { "type": "Feature", "properties": { "id": "nn00608273", "mag": 1.0, "time": 1507249499810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0539, 37.1082, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38019976", "mag": 1.92, "time": 1507249308880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.377167, 34.427, 9.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1s9", "mag": 4.0, "time": 1507248914000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.348, -29.925, 48.8 ] } }, - { "type": "Feature", "properties": { "id": "uw61337986", "mag": 1.12, "time": 1507245979370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.395167, 45.685667, -0.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72905011", "mag": 2.81, "time": 1507244867710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8105, 37.472, 6.12 ] } }, - { "type": "Feature", "properties": { "id": "nc72905016", "mag": 1.36, "time": 1507244847860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7825, 38.7915, 0.56 ] } }, - { "type": "Feature", "properties": { "id": "mb80259379", "mag": 0.99, "time": 1507244598420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529, 46.871167, 12.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16989827", "mag": 1.4, "time": 1507244539965, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.2289, 64.9761, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989825", "mag": 1.8, "time": 1507243916881, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1245, 62.4971, 81.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72905001", "mag": 1.65, "time": 1507243472580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.808, 38.822, 1.64 ] } }, - { "type": "Feature", "properties": { "id": "nc72904996", "mag": 2.14, "time": 1507243164460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.588667, 40.652333, 25.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989822", "mag": 1.5, "time": 1507242888109, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.857, 61.9122, 45.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1rh", "mag": 4.6, "time": 1507242807430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 144.6063, 21.8848, 100.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16989815", "mag": 2.5, "time": 1507240652193, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.192, 61.0044, 106.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989811", "mag": 1.8, "time": 1507240498324, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.939, 62.7658, 79.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60251317", "mag": 1.66, "time": 1507240484300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.418167, 42.544333, 6.24 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1px", "mag": 2.6, "time": 1507239146260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4355, 42.5495, 8.32 ] } }, - { "type": "Feature", "properties": { "id": "mb80259359", "mag": 1.17, "time": 1507238290040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.965, 43.357333, 5.92 ] } }, - { "type": "Feature", "properties": { "id": "uw61337951", "mag": 2.3, "time": 1507238213550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.549833, 49.328833, -0.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16989718", "mag": 1.4, "time": 1507237904044, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.5289, 61.2012, 0.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16989717", "mag": 1.9, "time": 1507237796189, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.701, 59.032, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61337946", "mag": 2.27, "time": 1507237659430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.817167, 47.392167, -0.46 ] } }, - { "type": "Feature", "properties": { "id": "nc72904961", "mag": 0.97, "time": 1507237420050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8365, 37.482833, 1.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16989714", "mag": 1.7, "time": 1507235850265, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0124, 65.8954, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38019864", "mag": 1.0, "time": 1507235571440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.794167, 33.508667, 6.47 ] } }, - { "type": "Feature", "properties": { "id": "mb80259334", "mag": 1.45, "time": 1507235042560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525667, 46.872833, 11.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16989709", "mag": 1.6, "time": 1507234798667, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.3071, 63.3209, 6.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16989702", "mag": 2.5, "time": 1507234198600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.414, 63.3343, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989701", "mag": 1.8, "time": 1507234162044, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0004, 65.8966, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989699", "mag": 1.7, "time": 1507234036518, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6575, 60.1339, 106.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72904941", "mag": 1.63, "time": 1507233857390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810167, 38.8205, 2.04 ] } }, - { "type": "Feature", "properties": { "id": "nc72904936", "mag": 3.14, "time": 1507233758820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.192, 40.163167, 11.62 ] } }, - { "type": "Feature", "properties": { "id": "hv61934246", "mag": 1.02, "time": 1507233403750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.289833, 19.374, 1.772 ] } }, - { "type": "Feature", "properties": { "id": "ak16989698", "mag": 1.7, "time": 1507233388591, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0126, 65.8742, 0.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989695", "mag": 1.9, "time": 1507232812188, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9865, 65.9098, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72904926", "mag": 1.29, "time": 1507232594330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.837167, 37.504167, 0.07 ] } }, - { "type": "Feature", "properties": { "id": "ci38019816", "mag": 1.31, "time": 1507231819600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.491, 33.846167, -0.48 ] } }, - { "type": "Feature", "properties": { "id": "nc72904891", "mag": 1.41, "time": 1507229918140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.104833, 37.324833, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16989694", "mag": 1.5, "time": 1507229700025, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7663, 63.5209, 14.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72904886", "mag": 2.03, "time": 1507229279930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.3835, 40.709833, 19.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16989692", "mag": 1.6, "time": 1507228866480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0051, 65.8735, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72904881", "mag": 1.48, "time": 1507228723050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.194667, 40.598333, 15.65 ] } }, - { "type": "Feature", "properties": { "id": "ci38019744", "mag": 1.44, "time": 1507226134710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.072333, 33.020667, -0.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16989683", "mag": 2.4, "time": 1507225956631, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.785, 60.8774, 34.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38019728", "mag": 1.0, "time": 1507225418070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.720667, 36.004, 2.64 ] } }, - { "type": "Feature", "properties": { "id": "nc72904846", "mag": 1.87, "time": 1507224165330, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8105, 38.821167, 1.64 ] } }, - { "type": "Feature", "properties": { "id": "hv61934126", "mag": 1.58, "time": 1507223732510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.252167, 18.903833, 12.692 ] } }, - { "type": "Feature", "properties": { "id": "ak16989680", "mag": 2.5, "time": 1507223654781, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.5871, 67.3896, 1.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16989626", "mag": 1.5, "time": 1507223506919, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1613, 62.9421, 105.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60251267", "mag": 1.3, "time": 1507222702710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.711, 37.088833, 8.72 ] } }, - { "type": "Feature", "properties": { "id": "uu60251262", "mag": 2.09, "time": 1507221444340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.413167, 42.600333, 6.09 ] } }, - { "type": "Feature", "properties": { "id": "hv61934021", "mag": 1.71, "time": 1507221215150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.600174, 19.477667, 2.61 ] } }, - { "type": "Feature", "properties": { "id": "mb80259309", "mag": 0.99, "time": 1507220291830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.4755, 46.855833, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72904766", "mag": 1.2, "time": 1507219571830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.817667, 37.607833, 4.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1ip", "mag": 4.3, "time": 1507219416430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.6953, -3.0506, 46.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16989556", "mag": 1.8, "time": 1507219027423, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1068, 64.723, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72904761", "mag": 1.28, "time": 1507218469040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.786667, 35.167, 4.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16989554", "mag": 1.8, "time": 1507217831958, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.9487, 67.1103, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38019560", "mag": 1.18, "time": 1507217071900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.2355, 35.399833, 11.83 ] } }, - { "type": "Feature", "properties": { "id": "ld60143826", "mag": 1.25, "time": 1507215008870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -75.237833, 44.094, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72904741", "mag": 1.17, "time": 1507213799120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.883667, 37.539333, 2.63 ] } }, - { "type": "Feature", "properties": { "id": "uw61314897", "mag": 1.26, "time": 1507213038640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.924167, 46.832167, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "hv61933821", "mag": 2.22, "time": 1507211808310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.427667, 19.767167, 23.499 ] } }, - { "type": "Feature", "properties": { "id": "mb80259289", "mag": 1.11, "time": 1507209951340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.482833, 46.8195, 2.22 ] } }, - { "type": "Feature", "properties": { "id": "ci38019464", "mag": 2.55, "time": 1507209518050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.010667, 33.179667, 8.09 ] } }, - { "type": "Feature", "properties": { "id": "uu60251247", "mag": 1.23, "time": 1507208707300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.086833, 44.772167, 11.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16989517", "mag": 1.3, "time": 1507208506436, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3491, 63.087, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38019448", "mag": 1.15, "time": 1507207944620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.294333, 34.679333, 2.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16989485", "mag": 1.9, "time": 1507207780001, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.6654, 67.5326, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72904706", "mag": 1.66, "time": 1507207659710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.798167, 38.793833, 3.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16989482", "mag": 1.4, "time": 1507206716138, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4807, 64.7367, 8.7 ] } }, - { "type": "Feature", "properties": { "id": "uw61314867", "mag": 1.16, "time": 1507206461330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.192333, 47.183667, 14.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16989481", "mag": 2.6, "time": 1507206068023, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.1435, 51.4576, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72904681", "mag": 2.64, "time": 1507204013350, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8035, 38.791333, 3.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1f7", "mag": 5.0, "time": 1507202248310, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 126.4874, 7.3643, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259279", "mag": 1.25, "time": 1507201170830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.476333, 44.006167, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989448", "mag": 1.0, "time": 1507200035021, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9384, 64.5888, 18.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1dj", "mag": 4.7, "time": 1507198268580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 49.1899, 31.277, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259274", "mag": 1.3, "time": 1507198163850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.318333, 46.1425, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80259269", "mag": 2.63, "time": 1507197824690, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.317333, 46.126333, 14.98 ] } }, - { "type": "Feature", "properties": { "id": "ci38019328", "mag": 2.0, "time": 1507197738510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.290167, 34.678, 2.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1da", "mag": 4.5, "time": 1507196589420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.5051, -25.068, 564.41 ] } }, - { "type": "Feature", "properties": { "id": "ci38019312", "mag": 1.27, "time": 1507196570560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.412333, 35.621833, 7.71 ] } }, - { "type": "Feature", "properties": { "id": "mb80259264", "mag": 1.58, "time": 1507195834720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.989667, 43.0535, 5.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16989416", "mag": 1.9, "time": 1507192569868, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8165, 59.7884, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259259", "mag": 1.73, "time": 1507192054540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.3, 46.1355, 13.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16989388", "mag": 2.2, "time": 1507191783280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8358, 59.8781, 1.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1c3", "mag": 5.4, "time": 1507191096920, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.5742, -22.4118, 112.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72904646", "mag": 2.52, "time": 1507190856940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.472, 40.616833, 21.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16989386", "mag": 1.8, "time": 1507190760834, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.611, 63.1832, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37167708", "mag": 1.38, "time": 1507190349370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.7095, 33.2065, 10.46 ] } }, - { "type": "Feature", "properties": { "id": "hv61933706", "mag": 1.21, "time": 1507190060680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2125, 19.363, 1.776 ] } }, - { "type": "Feature", "properties": { "id": "nc72904641", "mag": 1.23, "time": 1507189755650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.236667, 37.334333, 8.36 ] } }, - { "type": "Feature", "properties": { "id": "ci38019264", "mag": 1.99, "time": 1507188934660, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2315, 32.416667, 18.41 ] } }, - { "type": "Feature", "properties": { "id": "uu60251227", "mag": 1.34, "time": 1507188766440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.442667, 42.578833, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "mb80259244", "mag": 1.28, "time": 1507188159830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527833, 46.866167, 12.04 ] } }, - { "type": "Feature", "properties": { "id": "hv61933701", "mag": 2.09, "time": 1507187842930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.470673, 19.211, 37.73 ] } }, - { "type": "Feature", "properties": { "id": "nc72904626", "mag": 0.96, "time": 1507187453970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.572333, 39.013167, -0.67 ] } }, - { "type": "Feature", "properties": { "id": "uu60251207", "mag": 1.35, "time": 1507187087800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.301167, 39.1075, 2.75 ] } }, - { "type": "Feature", "properties": { "id": "ci38019256", "mag": 2.06, "time": 1507186145760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.372167, 33.358833, 11.42 ] } }, - { "type": "Feature", "properties": { "id": "ci38019248", "mag": 1.49, "time": 1507186142240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.366, 33.357667, 11.67 ] } }, - { "type": "Feature", "properties": { "id": "uw61314807", "mag": 1.16, "time": 1507185870880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.191167, 47.179833, 15.66 ] } }, - { "type": "Feature", "properties": { "id": "se60045413", "mag": 1.81, "time": 1507185703120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -83.742167, 35.985167, 18.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72904601", "mag": 0.95, "time": 1507185126040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819, 37.603333, 3.65 ] } }, - { "type": "Feature", "properties": { "id": "ci38019240", "mag": 1.25, "time": 1507185093960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.394, 35.618833, 8.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16989380", "mag": 1.9, "time": 1507184561453, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3822, 60.6535, 53.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989379", "mag": 1.0, "time": 1507183395241, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.2677, 63.314, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38019200", "mag": 1.99, "time": 1507181070780, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.806833, 36.043833, 1.22 ] } }, - { "type": "Feature", "properties": { "id": "ci38019192", "mag": 1.69, "time": 1507180426220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.807333, 36.043167, 1.21 ] } }, - { "type": "Feature", "properties": { "id": "nc72904556", "mag": 1.22, "time": 1507178909260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7625, 38.821667, 1.49 ] } }, - { "type": "Feature", "properties": { "id": "ci38019184", "mag": 1.33, "time": 1507178811140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.319833, 33.886333, 15.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16989373", "mag": 2.2, "time": 1507178319160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0253, 59.7752, 99.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16989370", "mag": 2.0, "time": 1507178108703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9621, 62.3999, 67.6 ] } }, - { "type": "Feature", "properties": { "id": "nc71107619", "mag": 2.37, "time": 1507175814060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793167, 38.814333, 3.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72904521", "mag": 2.61, "time": 1507175806240, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.792, 38.813833, 3.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16989344", "mag": 1.8, "time": 1507174164228, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5816, 59.9877, 48.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61314692", "mag": 1.1, "time": 1507174062970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.048833, 48.836333, 3.53 ] } }, - { "type": "Feature", "properties": { "id": "mb80259229", "mag": 1.6, "time": 1507174016680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526667, 46.874333, 12.15 ] } }, - { "type": "Feature", "properties": { "id": "uu60251182", "mag": 2.38, "time": 1507172461010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.415167, 42.5495, 8.84 ] } }, - { "type": "Feature", "properties": { "id": "ci38019104", "mag": 1.08, "time": 1507172395710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.846167, 33.711167, 14.99 ] } }, - { "type": "Feature", "properties": { "id": "uw61314677", "mag": 1.65, "time": 1507171780320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.027667, 48.845833, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60251177", "mag": 1.51, "time": 1507171597620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.880667, 37.041, 17.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72904476", "mag": 1.12, "time": 1507171050970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7565, 38.782501, 0.82 ] } }, - { "type": "Feature", "properties": { "id": "nc72904471", "mag": 1.34, "time": 1507170987390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.753167, 38.775667, 1.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16989336", "mag": 1.2, "time": 1507169863981, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2568, 63.5162, 8.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72904466", "mag": 1.16, "time": 1507169797040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.808667, 37.467667, 1.31 ] } }, - { "type": "Feature", "properties": { "id": "ci37167548", "mag": 1.21, "time": 1507169669520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3645, 33.350667, 11.33 ] } }, - { "type": "Feature", "properties": { "id": "ci38019080", "mag": 1.35, "time": 1507169663590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3545, 33.3525, 12.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16989295", "mag": 4.3, "time": 1507169038804, "felt": 3, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ -152.901, 58.3623, 46.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38019056", "mag": 2.12, "time": 1507167035520, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.805167, 36.042, 1.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16989291", "mag": 1.7, "time": 1507165460879, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1162, 61.3056, 37.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00608181", "mag": 1.2, "time": 1507165236408, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.7192, 37.7977, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b190", "mag": 2.6, "time": 1507164698800, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7663, 36.4461, 6.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16989285", "mag": 2.3, "time": 1507164594638, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5337, 60.8331, 35.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38018992", "mag": 1.21, "time": 1507164594280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.435667, 33.033167, 6.13 ] } }, - { "type": "Feature", "properties": { "id": "nc72905406", "mag": 1.37, "time": 1507163603630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.975, 40.912333, 6.11 ] } }, - { "type": "Feature", "properties": { "id": "ak16989282", "mag": 2.6, "time": 1507162971426, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.8816, 53.7666, 69.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000b185", "mag": 3.4, "time": 1507162321850, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.755, 36.45, 7.23 ] } }, - { "type": "Feature", "properties": { "id": "ci38018976", "mag": 1.34, "time": 1507162296820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.6665, 33.961333, 15.54 ] } }, - { "type": "Feature", "properties": { "id": "nc72904421", "mag": 1.81, "time": 1507162198800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.311667, 40.594833, 17.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16989280", "mag": 2.0, "time": 1507162092700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.2549, 67.5542, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259214", "mag": 1.11, "time": 1507161815690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529, 46.873667, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00608178", "mag": 1.2, "time": 1507161066465, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.8195, 37.303, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38018944", "mag": 1.13, "time": 1507160279190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.801333, 36.0425, 0.57 ] } }, - { "type": "Feature", "properties": { "id": "ci38018936", "mag": 1.06, "time": 1507160033160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.352833, 33.1335, 7.01 ] } }, - { "type": "Feature", "properties": { "id": "ci38018928", "mag": 0.95, "time": 1507159919230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.758833, 33.67, 13.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16989265", "mag": 2.4, "time": 1507159550480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7536, 62.8345, 98.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989262", "mag": 1.2, "time": 1507158170981, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4466, 64.9696, 1.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16989256", "mag": 2.1, "time": 1507157336866, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3316, 62.6072, 87.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000b16h", "mag": 4.5, "time": 1507156394080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.7169, -23.9861, 195.32 ] } }, - { "type": "Feature", "properties": { "id": "mb80259199", "mag": 1.02, "time": 1507156049410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.531, 46.862667, 9.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16989147", "mag": 1.8, "time": 1507155523233, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2126, 62.1419, 50.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80259194", "mag": 2.1, "time": 1507155343850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.326833, 46.116, 15.12 ] } }, - { "type": "Feature", "properties": { "id": "us2000b15z", "mag": 3.5, "time": 1507154804460, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7425, 36.4507, 4.85 ] } }, - { "type": "Feature", "properties": { "id": "ak16989143", "mag": 1.6, "time": 1507154781579, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2414, 61.1185, 60.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38018808", "mag": 0.95, "time": 1507153541570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.803667, 36.042, 1.12 ] } }, - { "type": "Feature", "properties": { "id": "mb80259184", "mag": 2.43, "time": 1507153540560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529, 46.875, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38018800", "mag": 1.11, "time": 1507153075770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.805667, 36.044667, 1.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72904366", "mag": 2.17, "time": 1507152989540, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821833, 37.603167, 4.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72904361", "mag": 2.03, "time": 1507152804460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.802, 38.819667, 3.31 ] } }, - { "type": "Feature", "properties": { "id": "ci38018776", "mag": 1.23, "time": 1507152409830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.796667, 33.506833, 4.99 ] } }, - { "type": "Feature", "properties": { "id": "ci38018760", "mag": 1.23, "time": 1507152333150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.805333, 36.044167, 1.08 ] } }, - { "type": "Feature", "properties": { "id": "ci38018752", "mag": 1.02, "time": 1507152229710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.803833, 36.0435, 1.58 ] } }, - { "type": "Feature", "properties": { "id": "nc72904356", "mag": 1.39, "time": 1507151361960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.986333, 37.451833, 11.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000b152", "mag": 4.2, "time": 1507151144560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5193, 15.6807, 43.81 ] } }, - { "type": "Feature", "properties": { "id": "mb80259179", "mag": 1.09, "time": 1507150593920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.249667, 45.922167, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00608141", "mag": 1.4, "time": 1507150245096, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.5709, 37.2677, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "uw61314607", "mag": 2.13, "time": 1507149876900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.029167, 48.8415, 0.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16989132", "mag": 3.2, "time": 1507149758758, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.904, 54.6732, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38018704", "mag": 1.42, "time": 1507149228410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.937167, 32.9105, -0.2 ] } }, - { "type": "Feature", "properties": { "id": "hv61932706", "mag": 2.34, "time": 1507148766410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.0805, 19.384667, 3.233 ] } }, - { "type": "Feature", "properties": { "id": "ci38018696", "mag": 1.43, "time": 1507148649160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.469333, 33.481, 7.42 ] } }, - { "type": "Feature", "properties": { "id": "ci38018688", "mag": 1.23, "time": 1507148125030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.7775, 34.859167, -1.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16989124", "mag": 2.3, "time": 1507147085613, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9048, 62.8046, 5.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16989120", "mag": 1.9, "time": 1507146960353, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.3904, 61.7684, 33.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72904326", "mag": 1.4, "time": 1507146844270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.835, 37.6255, 3.28 ] } }, - { "type": "Feature", "properties": { "id": "ci38018648", "mag": 1.34, "time": 1507146046240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.282833, 33.307, 10.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000b12w", "mag": 4.1, "time": 1507145834470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.5682, 23.7468, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61314577", "mag": 2.31, "time": 1507145284260, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.101667, 47.519667, 24.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16989116", "mag": 2.0, "time": 1507144999479, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9792, 59.2967, 30.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72904301", "mag": 1.44, "time": 1507144400690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.590333, 37.9535, 3.71 ] } }, - { "type": "Feature", "properties": { "id": "nc72904291", "mag": 0.97, "time": 1507144116270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.807335, 38.823166, 0.51 ] } }, - { "type": "Feature", "properties": { "id": "ci38018592", "mag": 0.98, "time": 1507144088190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.191, 34.995667, -0.84 ] } }, - { "type": "Feature", "properties": { "id": "nc71107609", "mag": 1.42, "time": 1507143933230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8315, 37.459167, 2.81 ] } }, - { "type": "Feature", "properties": { "id": "nc72904286", "mag": 2.01, "time": 1507143903920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.127667, 36.540667, 3.02 ] } }, - { "type": "Feature", "properties": { "id": "mb80259164", "mag": 1.54, "time": 1507143801870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.466667, 46.003833, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989114", "mag": 1.5, "time": 1507143799499, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2987, 62.9001, 136.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72904276", "mag": 2.19, "time": 1507143670520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.125833, 36.539667, 3.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16989112", "mag": 1.5, "time": 1507143346025, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9517, 60.4284, 76.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989109", "mag": 1.6, "time": 1507142888288, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4575, 68.4924, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us1000alvi", "mag": 4.8, "time": 1507142880510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 69.2314, -22.7343, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b11q", "mag": 4.3, "time": 1507142721780, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0179, 16.6332, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00608130", "mag": 2.0, "time": 1507142028227, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6247, 38.6437, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38018568", "mag": 1.17, "time": 1507141815580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.480167, 33.8245, -0.64 ] } }, - { "type": "Feature", "properties": { "id": "nc72904241", "mag": 1.13, "time": 1507141805960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.843333, 37.550333, -1.19 ] } }, - { "type": "Feature", "properties": { "id": "nc71107614", "mag": 1.26, "time": 1507141794500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.9105, 37.975, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72904226", "mag": 1.44, "time": 1507141566380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.839167, 37.554167, -0.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72904231", "mag": 0.95, "time": 1507141526700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.848, 37.565167, -0.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16989106", "mag": 1.6, "time": 1507141095901, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5043, 63.2003, 100.7 ] } }, - { "type": "Feature", "properties": { "id": "nn00608125", "mag": 1.1, "time": 1507140434096, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.0698, 39.2152, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60251107", "mag": 2.02, "time": 1507140276970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.438667, 42.623, -0.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16989101", "mag": 1.7, "time": 1507139784743, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7521, 62.788, 15.0 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70236238", "mag": 1.83, "time": 1507139648960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.036, 37.001167, 5.77 ] } }, - { "type": "Feature", "properties": { "id": "ci38018464", "mag": 0.95, "time": 1507138418030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.469667, 34.0245, -0.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72904196", "mag": 1.0, "time": 1507136805190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.407833, 36.764667, 10.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16989095", "mag": 1.5, "time": 1507135541282, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2816, 62.4313, 44.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38018408", "mag": 1.57, "time": 1507134824880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797167, 33.499, 4.25 ] } }, - { "type": "Feature", "properties": { "id": "nn00608107", "mag": 2.1, "time": 1507134616795, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9268, 38.3958, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72904171", "mag": 1.38, "time": 1507133031670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.614333, 36.881, 6.94 ] } }, - { "type": "Feature", "properties": { "id": "nc72904166", "mag": 2.71, "time": 1507132718170, "felt": 28, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.609333, 36.8815, 6.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16989087", "mag": 1.4, "time": 1507131238883, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.032, 63.5134, 6.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0yw", "mag": 4.4, "time": 1507130270240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7831, 15.8774, 9.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16989083", "mag": 2.0, "time": 1507129786603, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5468, 62.9914, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989080", "mag": 1.7, "time": 1507129070012, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8528, 63.1143, 130.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000b14r", "mag": 2.9, "time": 1507127377130, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -78.3466, -0.2479, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00608088", "mag": 1.1, "time": 1507126739396, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.8623, 39.6344, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0xy", "mag": 4.3, "time": 1507120048520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.219, 14.9246, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38018272", "mag": 1.04, "time": 1507119983420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.979333, 33.952, 16.95 ] } }, - { "type": "Feature", "properties": { "id": "ci38018264", "mag": 1.21, "time": 1507118298180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.153667, 33.576, 12.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16988954", "mag": 1.4, "time": 1507117165370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.0651, 59.0371, 113.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988951", "mag": 1.7, "time": 1507117164179, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7431, 61.7579, 50.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988955", "mag": 1.2, "time": 1507117137925, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.2404, 63.315, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38018256", "mag": 1.97, "time": 1507116401470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.047667, 33.9995, 14.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16988947", "mag": 1.3, "time": 1507116091533, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.038, 61.8748, 115.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16988943", "mag": 2.6, "time": 1507115904863, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.3287, 60.8439, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259149", "mag": 1.42, "time": 1507115359390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.520833, 46.866833, 12.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16988941", "mag": 2.0, "time": 1507115138670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7265, 59.549, 35.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16988937", "mag": 1.7, "time": 1507114508883, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.561, 63.6903, 125.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72904051", "mag": 1.09, "time": 1507113834280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793, 38.8355, 1.85 ] } }, - { "type": "Feature", "properties": { "id": "ci38018224", "mag": 1.17, "time": 1507113370200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.608833, 33.080833, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72904041", "mag": 1.12, "time": 1507113327750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.942, 36.506, 4.31 ] } }, - { "type": "Feature", "properties": { "id": "uu60251097", "mag": 2.09, "time": 1507111719760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.414333, 42.55, 7.34 ] } }, - { "type": "Feature", "properties": { "id": "nc72904031", "mag": 0.97, "time": 1507110773350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.365667, 36.7845, 3.47 ] } }, - { "type": "Feature", "properties": { "id": "mb80259134", "mag": 2.46, "time": 1507108546600, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527833, 46.867833, 13.28 ] } }, - { "type": "Feature", "properties": { "id": "ci38018200", "mag": 1.17, "time": 1507108523230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.5975, 34.0275, 11.16 ] } }, - { "type": "Feature", "properties": { "id": "nc72904011", "mag": 1.65, "time": 1507108226290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.59, 39.034, 1.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16988931", "mag": 1.6, "time": 1507107916290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.4053, 65.8348, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38018192", "mag": 1.04, "time": 1507107119810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.243833, 34.561167, 7.55 ] } }, - { "type": "Feature", "properties": { "id": "uw61337191", "mag": 1.11, "time": 1507106498380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.3995, 47.466167, 20.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16988930", "mag": 1.5, "time": 1507105167087, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3314, 63.0932, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903991", "mag": 1.0, "time": 1507105008930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.831667, 37.479167, 7.18 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0vg", "mag": 4.8, "time": 1507102453200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0265, 15.081, 39.52 ] } }, - { "type": "Feature", "properties": { "id": "uu60251092", "mag": 1.15, "time": 1507102301120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.109167, 37.453, 7.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72903961", "mag": 0.99, "time": 1507102290690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.886, 37.634, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72903951", "mag": 1.13, "time": 1507102067530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.873, 37.655, 2.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16988890", "mag": 2.1, "time": 1507101218109, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6853, 59.7843, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903941", "mag": 1.93, "time": 1507099899370, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.174833, 36.7355, 8.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16988888", "mag": 2.1, "time": 1507099796449, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.599, 58.1927, 18.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988886", "mag": 1.1, "time": 1507099794659, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1044, 65.1213, 20.9 ] } }, - { "type": "Feature", "properties": { "id": "hv61932126", "mag": 2.54, "time": 1507098254160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.471, 19.958167, 34.056 ] } }, - { "type": "Feature", "properties": { "id": "ci38018128", "mag": 1.48, "time": 1507095935630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.237333, 33.3585, 9.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16988874", "mag": 2.0, "time": 1507095643589, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4213, 59.0929, 75.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80259124", "mag": 1.12, "time": 1507094472670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5195, 46.889167, 10.71 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0ue", "mag": 4.7, "time": 1507093737820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 145.7448, 18.3756, 172.11 ] } }, - { "type": "Feature", "properties": { "id": "hv61932021", "mag": 1.47, "time": 1507093555340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.7645, 19.608333, 19.406 ] } }, - { "type": "Feature", "properties": { "id": "uu60251087", "mag": 1.84, "time": 1507092267430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.456667, 42.600833, 1.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16988835", "mag": 1.4, "time": 1507091990426, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8997, 62.5624, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16988834", "mag": 2.0, "time": 1507091511196, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6239, 61.9391, 35.9 ] } }, - { "type": "Feature", "properties": { "id": "hv61931981", "mag": 2.06, "time": 1507091217900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.6845, 18.778833, 34.132 ] } }, - { "type": "Feature", "properties": { "id": "ak16988831", "mag": 1.7, "time": 1507090320674, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0205, 61.3011, 30.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988828", "mag": 1.6, "time": 1507090167802, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1141, 63.8125, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38018104", "mag": 0.97, "time": 1507089080620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.364, 33.395667, 5.23 ] } }, - { "type": "Feature", "properties": { "id": "ci38018096", "mag": 1.15, "time": 1507088756230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.118, 33.743333, 14.37 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0th", "mag": 5.0, "time": 1507087351060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.1517, -31.5827, 35.55 ] } }, - { "type": "Feature", "properties": { "id": "nc72903886", "mag": 1.89, "time": 1507087145860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.157333, 36.593167, 6.68 ] } }, - { "type": "Feature", "properties": { "id": "nc72903881", "mag": 1.09, "time": 1507086787130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.718666, 38.771667, 2.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0t5", "mag": 5.2, "time": 1507086128100, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.1988, -23.1056, 126.96 ] } }, - { "type": "Feature", "properties": { "id": "nn00608095", "mag": 1.8, "time": 1507085141975, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.2313, 37.1571, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988758", "mag": 1.7, "time": 1507084302637, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3056, 61.634, 42.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72903856", "mag": 1.42, "time": 1507084182620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.847167, 37.6515, 3.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16988756", "mag": 1.9, "time": 1507083972695, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8168, 61.2547, 28.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38018048", "mag": 1.01, "time": 1507081338310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.112167, 34.101167, 8.93 ] } }, - { "type": "Feature", "properties": { "id": "mb80259119", "mag": 1.6, "time": 1507080820140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.521833, 46.872833, 10.74 ] } }, - { "type": "Feature", "properties": { "id": "mb80259154", "mag": 1.65, "time": 1507080779330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5265, 46.876167, 11.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16988720", "mag": 2.3, "time": 1507079042841, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4064, 60.3952, 12.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00608069", "mag": 1.7, "time": 1507077765338, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.5495, 40.2609, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16988717", "mag": 1.6, "time": 1507077365759, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3311, 63.2608, 0.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61931706", "mag": 1.47, "time": 1507077049100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.6385, 19.553667, 11.424 ] } }, - { "type": "Feature", "properties": { "id": "ci38018040", "mag": 0.98, "time": 1507076389190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.269, 34.0685, 15.7 ] } }, - { "type": "Feature", "properties": { "id": "uw61337006", "mag": 0.96, "time": 1507074699210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.751333, 47.996333, 14.52 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0rt", "mag": 4.2, "time": 1507074238890, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -82.7745, 8.5663, 30.59 ] } }, - { "type": "Feature", "properties": { "id": "ci38018024", "mag": 1.57, "time": 1507073295750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.681, 35.0345, -0.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16988594", "mag": 2.0, "time": 1507073162743, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2617, 62.1345, 75.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988588", "mag": 1.3, "time": 1507072732101, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2839, 61.0371, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61336986", "mag": 1.86, "time": 1507072508440, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.616667, 48.275333, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "uw61336981", "mag": 1.89, "time": 1507072212820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.6095, 48.259, 5.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16988584", "mag": 1.0, "time": 1507071678363, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3354, 64.9934, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903836", "mag": 1.12, "time": 1507071527650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.805, 38.822667, 2.85 ] } }, - { "type": "Feature", "properties": { "id": "nc72903831", "mag": 1.06, "time": 1507071133930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.808998, 38.823166, 1.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16994062", "mag": 1.2, "time": 1507071050929, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8464, 63.0394, 121.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00608062", "mag": 1.5, "time": 1507069440991, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.445, 37.5469, 5.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72903806", "mag": 1.23, "time": 1507069427950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.739333, 38.805667, 1.44 ] } }, - { "type": "Feature", "properties": { "id": "uw61336956", "mag": 1.0, "time": 1507069356480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.319167, 46.078167, -1.11 ] } }, - { "type": "Feature", "properties": { "id": "ak16988555", "mag": 2.0, "time": 1507069258013, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.1558, 67.7665, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988552", "mag": 1.6, "time": 1507069137803, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3107, 61.1448, 20.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0q2", "mag": 4.2, "time": 1507068153470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2992, 15.6198, 60.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38018000", "mag": 1.69, "time": 1507067212670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.446333, 34.153333, 6.34 ] } }, - { "type": "Feature", "properties": { "id": "mb80259099", "mag": 1.07, "time": 1507067005720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.4045, 43.682, 5.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16988545", "mag": 1.7, "time": 1507066676846, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6733, 65.2302, 8.7 ] } }, - { "type": "Feature", "properties": { "id": "nn00608050", "mag": 1.7, "time": 1507066159273, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0874, 39.024, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38017984", "mag": 1.71, "time": 1507065949300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.347667, 33.392, 3.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60251062", "mag": 1.76, "time": 1507065772640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.412333, 42.583667, 5.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16988519", "mag": 2.6, "time": 1507065657270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.2687, 57.0749, 82.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16988491", "mag": 1.6, "time": 1507065428977, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.3929, 65.0131, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16988489", "mag": 1.2, "time": 1507065333200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.6212, 63.3407, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988484", "mag": 2.3, "time": 1507065014972, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0452, 62.216, 67.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72905396", "mag": 1.11, "time": 1507064824530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.4595, 41.531833, 2.93 ] } }, - { "type": "Feature", "properties": { "id": "uu60251057", "mag": 2.05, "time": 1507064724100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.399, 42.521333, 8.16 ] } }, - { "type": "Feature", "properties": { "id": "ci38017976", "mag": 1.59, "time": 1507064335800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.445833, 34.1535, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72903776", "mag": 1.19, "time": 1507063701570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8805, 37.529167, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0nr", "mag": 5.7, "time": 1507063144760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -49.3194, 13.4552, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903771", "mag": 2.49, "time": 1507062907080, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.767, 38.799167, 0.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16988466", "mag": 1.3, "time": 1507062241011, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.5134, 62.1795, 23.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988439", "mag": 2.2, "time": 1507061510846, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8761, 60.5934, 142.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0n8", "mag": 4.5, "time": 1507061510710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 166.7231, 55.3488, 28.06 ] } }, - { "type": "Feature", "properties": { "id": "ci38017952", "mag": 1.07, "time": 1507061299680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.4405, 34.156167, 8.27 ] } }, - { "type": "Feature", "properties": { "id": "ak16988437", "mag": 1.3, "time": 1507061230777, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0856, 61.3457, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16988435", "mag": 1.5, "time": 1507060035702, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9837, 61.6046, 61.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72903741", "mag": 1.18, "time": 1507059288800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.764831, 38.788502, -0.61 ] } }, - { "type": "Feature", "properties": { "id": "ci38017936", "mag": 1.69, "time": 1507059189120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7955, 33.4895, 4.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16994048", "mag": 1.6, "time": 1507059099655, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6496, 59.6816, 88.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16994047", "mag": 1.4, "time": 1507058879703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6613, 58.3127, 61.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00608048", "mag": 1.1, "time": 1507058710135, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.9271, 40.1731, 13.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38017912", "mag": 1.43, "time": 1507058424320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.440833, 34.1545, 6.88 ] } }, - { "type": "Feature", "properties": { "id": "ci38017904", "mag": 1.19, "time": 1507057846620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.1795, 35.002, -0.83 ] } }, - { "type": "Feature", "properties": { "id": "ci38017896", "mag": 1.26, "time": 1507057788590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.941667, 32.908, -0.33 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0lw", "mag": 5.2, "time": 1507057466210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -28.8364, -55.2702, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80259069", "mag": 1.71, "time": 1507056294930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.503, 46.830333, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16988418", "mag": 1.8, "time": 1507056127213, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.6502, 57.4998, 47.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903726", "mag": 1.14, "time": 1507056074240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.84, 37.503833, 0.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16988415", "mag": 1.4, "time": 1507055512017, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8175, 61.6607, 28.4 ] } }, - { "type": "Feature", "properties": { "id": "hv61931361", "mag": 2.65, "time": 1507055057800, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.324, 19.406667, 7.018 ] } }, - { "type": "Feature", "properties": { "id": "ci38017848", "mag": 1.04, "time": 1507054498390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.44, 34.157667, 8.94 ] } }, - { "type": "Feature", "properties": { "id": "uu60251037", "mag": 1.12, "time": 1507053937840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.424333, 42.592167, 6.15 ] } }, - { "type": "Feature", "properties": { "id": "hv61931346", "mag": 2.16, "time": 1507053691890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.373667, 20.034833, 13.532 ] } }, - { "type": "Feature", "properties": { "id": "mb80259064", "mag": 1.12, "time": 1507053599620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.609167, 46.334833, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988394", "mag": 1.6, "time": 1507052715999, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9718, 60.8946, 14.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16988390", "mag": 1.9, "time": 1507052122028, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3579, 61.0247, 111.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72903716", "mag": 2.07, "time": 1507052014050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.787667, 37.598833, 5.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16994042", "mag": 2.0, "time": 1507051700735, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4244, 59.8428, 129.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0jm", "mag": 4.6, "time": 1507050191000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.1126, -2.5625, 21.57 ] } }, - { "type": "Feature", "properties": { "id": "ci38017808", "mag": 1.9, "time": 1507049580810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.445167, 33.264333, 2.22 ] } }, - { "type": "Feature", "properties": { "id": "nn00608002", "mag": 1.2, "time": 1507049448566, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.2901, 37.8049, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60251027", "mag": 1.41, "time": 1507048713320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.760333, 39.998667, 8.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16988364", "mag": 1.1, "time": 1507048704427, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9116, 61.1262, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988361", "mag": 1.8, "time": 1507048669896, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1084, 64.9183, 18.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38017800", "mag": 0.98, "time": 1507048261760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.446833, 34.154333, 7.94 ] } }, - { "type": "Feature", "properties": { "id": "nc72903676", "mag": 1.69, "time": 1507047264490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8285, 37.455833, 2.67 ] } }, - { "type": "Feature", "properties": { "id": "nc72903671", "mag": 1.3, "time": 1507047173830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.5795, 37.287833, 7.31 ] } }, - { "type": "Feature", "properties": { "id": "ci38017744", "mag": 1.05, "time": 1507046707770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.136833, 34.054167, 9.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72903666", "mag": 2.58, "time": 1507046582120, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.464333, 36.750833, 7.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16988359", "mag": 1.4, "time": 1507045972022, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1249, 62.9454, 112.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16988358", "mag": 1.6, "time": 1507045690910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2536, 60.0003, 13.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16994035", "mag": 1.7, "time": 1507044159018, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6674, 59.3569, 72.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16988345", "mag": 2.7, "time": 1507043705635, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0117, 59.5043, 89.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903631", "mag": 1.33, "time": 1507043277890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.800667, 38.820167, 3.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16994033", "mag": 1.6, "time": 1507043019584, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3814, 58.3192, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16988343", "mag": 2.7, "time": 1507042999732, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3915, 51.6134, 9.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16994031", "mag": 1.7, "time": 1507042763401, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1107, 59.3023, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16994030", "mag": 1.3, "time": 1507042659104, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9147, 62.9235, 104.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16994029", "mag": 1.6, "time": 1507042166290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0354, 59.6428, 85.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0gv", "mag": 2.1, "time": 1507041358070, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.8228, 36.4458, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988332", "mag": 1.4, "time": 1507041247450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2842, 62.1118, 75.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38017688", "mag": 1.7, "time": 1507041034810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.665167, 35.975833, 2.12 ] } }, - { "type": "Feature", "properties": { "id": "hv61931251", "mag": 2.87, "time": 1507040757870, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.370833, 20.027333, 12.259 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0gr", "mag": 4.6, "time": 1507040383740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 175.9616, -39.6706, 78.62 ] } }, - { "type": "Feature", "properties": { "id": "nc72903611", "mag": 1.04, "time": 1507039230370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.979333, 37.537333, 3.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16988330", "mag": 1.8, "time": 1507038947118, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.8047, 53.5035, 24.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0k7", "mag": 2.6, "time": 1507038712390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.1971, 51.3674, 18.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0gm", "mag": 4.5, "time": 1507038514350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 94.7848, 25.0488, 74.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16988328", "mag": 1.3, "time": 1507038483396, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5284, 62.2253, 16.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16994023", "mag": 1.9, "time": 1507038160436, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.9795, 54.3692, 39.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16994021", "mag": 1.3, "time": 1507037424410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3659, 61.871, 45.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38017640", "mag": 0.99, "time": 1507035054330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.962167, 34.044333, 11.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16994019", "mag": 2.4, "time": 1507034930692, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.8074, 51.67, 77.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16988323", "mag": 2.5, "time": 1507033401817, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.3851, 54.2478, 11.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16988320", "mag": 1.8, "time": 1507033125169, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8594, 61.9955, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72903576", "mag": 1.25, "time": 1507033081250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.496833, 35.946833, 9.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16988318", "mag": 1.5, "time": 1507032487878, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.705, 62.0401, 40.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72903571", "mag": 1.19, "time": 1507032219730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.973167, 37.635667, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988315", "mag": 1.6, "time": 1507031200996, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.1077, 57.8662, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72903561", "mag": 1.07, "time": 1507031172540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.802002, 38.825832, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16988314", "mag": 1.7, "time": 1507031152426, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0389, 60.0214, 78.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80259049", "mag": 2.51, "time": 1507030950500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.353833, 43.520167, 3.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72903556", "mag": 1.59, "time": 1507030601280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.887667, 37.630333, 6.72 ] } }, - { "type": "Feature", "properties": { "id": "ci38017616", "mag": 1.23, "time": 1507030424420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.812833, 34.096833, 13.63 ] } }, - { "type": "Feature", "properties": { "id": "ci38017608", "mag": 1.47, "time": 1507030255050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.808167, 34.092333, 14.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72903546", "mag": 1.09, "time": 1507029639750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.82267, 38.807835, 1.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16988306", "mag": 2.7, "time": 1507027595732, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4068, 51.6479, 12.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72903531", "mag": 1.14, "time": 1507027098870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.763168, 38.789001, 0.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16988304", "mag": 1.4, "time": 1507026885090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5708, 61.3679, 26.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16994008", "mag": 1.6, "time": 1507025162686, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.958, 61.2532, 105.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16994007", "mag": 1.2, "time": 1507024176706, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1195, 62.8909, 99.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988295", "mag": 2.1, "time": 1507023250156, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3958, 51.6323, 10.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16988294", "mag": 1.3, "time": 1507023225669, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7855, 61.7554, 59.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16988292", "mag": 2.6, "time": 1507022763592, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7772, 53.1343, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988287", "mag": 1.2, "time": 1507022053291, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.872, 64.5325, 18.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16988284", "mag": 1.3, "time": 1507021950836, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.929, 64.5216, 18.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16988282", "mag": 1.4, "time": 1507021938525, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.8923, 58.4847, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38017544", "mag": 1.28, "time": 1507021318130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.791333, 33.687167, 16.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16988279", "mag": 2.0, "time": 1507020554043, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2158, 61.698, 77.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80259034", "mag": 1.18, "time": 1507020432130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.521333, 46.873, 11.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0fa", "mag": 4.2, "time": 1507019233190, "felt": 43, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.0212, -33.014, 17.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16988271", "mag": 1.8, "time": 1507019136375, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1655, 60.4739, 86.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60250997", "mag": 1.69, "time": 1507019083210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.137833, 42.522333, -0.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16993998", "mag": 1.8, "time": 1507018712322, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0756, 60.1685, 13.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72903491", "mag": 1.22, "time": 1507017869360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.486, 36.378, 5.97 ] } }, - { "type": "Feature", "properties": { "id": "ci38017536", "mag": 1.46, "time": 1507016252180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.479, 32.737333, 7.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16988268", "mag": 1.4, "time": 1507015945802, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0368, 61.1636, 0.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16988267", "mag": 1.2, "time": 1507015806607, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4998, 63.1031, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38017504", "mag": 1.41, "time": 1507014429310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.363333, 34.832, 3.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16988254", "mag": 4.1, "time": 1507013968245, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.3923, 54.6037, 20.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16988252", "mag": 1.7, "time": 1507013732258, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7964, 59.8936, 15.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80259004", "mag": 1.07, "time": 1507013501160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523, 46.877333, 10.49 ] } }, - { "type": "Feature", "properties": { "id": "nn00607998", "mag": 1.1, "time": 1507013301155, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.3199, 37.7813, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16993990", "mag": 1.4, "time": 1507012650027, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.264, 62.5244, 86.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988247", "mag": 2.1, "time": 1507012115547, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4061, 51.6742, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988245", "mag": 1.0, "time": 1507011961646, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.539, 63.1068, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38017496", "mag": 1.24, "time": 1507011934810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.013833, 33.662167, 11.95 ] } }, - { "type": "Feature", "properties": { "id": "ci38017488", "mag": 1.25, "time": 1507011688900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.047333, 33.171, 5.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16993987", "mag": 1.9, "time": 1507011535768, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.4878, 51.73, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16993986", "mag": 2.3, "time": 1507011386112, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3903, 51.6732, 5.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38017472", "mag": 1.5, "time": 1507010945840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.936833, 33.147, 7.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16988244", "mag": 1.2, "time": 1507010895307, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.6337, 63.3262, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38017464", "mag": 1.4, "time": 1507008876900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.4845, 32.748667, 13.78 ] } }, - { "type": "Feature", "properties": { "id": "ci38017456", "mag": 1.19, "time": 1507008741980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.783833, 33.267833, 11.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0ef", "mag": 4.9, "time": 1507008633680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9398, 15.4089, 62.32 ] } }, - { "type": "Feature", "properties": { "id": "mb80258984", "mag": 1.01, "time": 1507006889790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.430667, 43.6785, 7.63 ] } }, - { "type": "Feature", "properties": { "id": "mb80258979", "mag": 1.31, "time": 1507006468040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5225, 46.871167, 10.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16988238", "mag": 2.4, "time": 1507005858917, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.1659, 51.8129, 90.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16993983", "mag": 1.4, "time": 1507004701069, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7077, 62.778, 79.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38017432", "mag": 1.1, "time": 1507003677250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.790667, 33.485333, 4.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16988237", "mag": 1.5, "time": 1507003090709, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0237, 61.1529, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80258949", "mag": 1.2, "time": 1507002724530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529833, 46.869, 10.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16988235", "mag": 2.7, "time": 1507001740915, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.6571, 52.9982, 32.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00607958", "mag": 1.2, "time": 1507001239948, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.3057, 38.4484, 5.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988229", "mag": 1.6, "time": 1506999699601, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3039, 62.7285, 79.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988225", "mag": 1.7, "time": 1506999179710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.178, 66.888, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "mb80258939", "mag": 1.1, "time": 1506998768510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528833, 46.860333, 12.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16988222", "mag": 2.7, "time": 1506998450736, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.4948, 53.5386, 57.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16988221", "mag": 1.2, "time": 1506998296606, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3526, 63.268, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16988218", "mag": 1.0, "time": 1506997994823, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.5335, 53.8446, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16988217", "mag": 2.2, "time": 1506997972933, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.6125, 58.9289, 125.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72903391", "mag": 1.03, "time": 1506997840780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.847336, 38.829834, 1.06 ] } }, - { "type": "Feature", "properties": { "id": "nc72903396", "mag": 1.23, "time": 1506997715100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.315667, 37.487833, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38017400", "mag": 1.05, "time": 1506997467730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.334333, 33.346333, 9.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16993974", "mag": 1.4, "time": 1506996608838, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2536, 62.5803, 93.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16988215", "mag": 1.6, "time": 1506996320652, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.155, 61.9755, 70.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16993972", "mag": 1.6, "time": 1506995513010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7768, 60.1335, 76.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16993971", "mag": 1.2, "time": 1506995387104, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6738, 61.6682, 50.5 ] } }, - { "type": "Feature", "properties": { "id": "hv61930601", "mag": 2.1, "time": 1506994522010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.565506, 19.795834, 15.58 ] } }, - { "type": "Feature", "properties": { "id": "ak16993970", "mag": 1.1, "time": 1506994269143, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0156, 64.7374, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72903381", "mag": 1.16, "time": 1506991878630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.803169, 38.824001, 2.33 ] } }, - { "type": "Feature", "properties": { "id": "ci38017368", "mag": 1.36, "time": 1506989712460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.168667, 34.0055, 13.99 ] } }, - { "type": "Feature", "properties": { "id": "uw61336686", "mag": 1.47, "time": 1506988725560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.044167, 49.145, -1.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16988200", "mag": 2.8, "time": 1506988653897, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6324, 61.3885, 39.1 ] } }, - { "type": "Feature", "properties": { "id": "nm60207781", "mag": 1.99, "time": 1506988371180, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.444833, 36.088167, 13.18 ] } }, - { "type": "Feature", "properties": { "id": "us2000az70", "mag": 4.7, "time": 1506987102640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 91.8995, 12.8626, 27.25 ] } }, - { "type": "Feature", "properties": { "id": "ci38017360", "mag": 1.72, "time": 1506986970860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.674, 35.035333, -0.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000azc7", "mag": 2.4, "time": 1506986577400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.6124, 36.8167, 5.123 ] } }, - { "type": "Feature", "properties": { "id": "nm60207771", "mag": 1.11, "time": 1506984309110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.517167, 36.232667, 8.34 ] } }, - { "type": "Feature", "properties": { "id": "ci38017336", "mag": 1.0, "time": 1506984123180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2705, 33.975833, 4.84 ] } }, - { "type": "Feature", "properties": { "id": "nc72903356", "mag": 1.77, "time": 1506983102870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.991833, 40.153833, 4.17 ] } }, - { "type": "Feature", "properties": { "id": "uw61336646", "mag": 1.36, "time": 1506982150130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.4015, 46.173833, -0.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayh7", "mag": 4.4, "time": 1506982074330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.7039, -22.2431, 108.4 ] } }, - { "type": "Feature", "properties": { "id": "uw61336631", "mag": 1.27, "time": 1506980575160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.930333, 48.1035, -1.28 ] } }, - { "type": "Feature", "properties": { "id": "us2000aya0", "mag": 5.3, "time": 1506980277150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 167.7345, -19.4817, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903316", "mag": 1.65, "time": 1506979898940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.802, 38.824833, 2.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72903311", "mag": 1.09, "time": 1506979301540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.531667, 37.139833, 8.93 ] } }, - { "type": "Feature", "properties": { "id": "nc72903306", "mag": 1.08, "time": 1506978484410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.444667, 36.959667, 6.72 ] } }, - { "type": "Feature", "properties": { "id": "nc72903301", "mag": 1.46, "time": 1506978005870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.351667, 39.5165, 4.32 ] } }, - { "type": "Feature", "properties": { "id": "mb80258889", "mag": 2.36, "time": 1506975888040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.9055, 47.358667, 13.73 ] } }, - { "type": "Feature", "properties": { "id": "nc72903286", "mag": 0.97, "time": 1506975385450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.946833, 37.590333, 0.28 ] } }, - { "type": "Feature", "properties": { "id": "ci38017200", "mag": 0.96, "time": 1506974805670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.503167, 33.8695, -0.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000axzc", "mag": 2.8, "time": 1506974101570, "felt": 18, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -102.3612, 35.5909, 5.45 ] } }, - { "type": "Feature", "properties": { "id": "nc72903271", "mag": 2.25, "time": 1506973045100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.609167, 36.880667, 6.31 ] } }, - { "type": "Feature", "properties": { "id": "mb80258884", "mag": 1.4, "time": 1506972979050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5355, 46.8805, 12.28 ] } }, - { "type": "Feature", "properties": { "id": "nc72903261", "mag": 1.85, "time": 1506971674240, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.831833, 37.455667, 1.78 ] } }, - { "type": "Feature", "properties": { "id": "ci38017136", "mag": 1.08, "time": 1506971129830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.192, 34.993167, -0.84 ] } }, - { "type": "Feature", "properties": { "id": "mb80258874", "mag": 1.49, "time": 1506970982010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.4715, 45.995667, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38017120", "mag": 0.99, "time": 1506970881590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.649167, 35.932833, 2.94 ] } }, - { "type": "Feature", "properties": { "id": "nc72903251", "mag": 1.78, "time": 1506970847010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.308833, 40.750667, -0.79 ] } }, - { "type": "Feature", "properties": { "id": "nc72903246", "mag": 1.41, "time": 1506970631190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.932667, 35.639, 4.96 ] } }, - { "type": "Feature", "properties": { "id": "nc72903241", "mag": 1.21, "time": 1506970286520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.679167, 38.533833, 5.88 ] } }, - { "type": "Feature", "properties": { "id": "ci38017104", "mag": 1.66, "time": 1506970188840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.133167, 34.279, 6.09 ] } }, - { "type": "Feature", "properties": { "id": "us2000axxi", "mag": 4.6, "time": 1506969995010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 102.3915, -7.056, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80258869", "mag": 1.46, "time": 1506969854670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523167, 46.87, 10.71 ] } }, - { "type": "Feature", "properties": { "id": "ci38017064", "mag": 1.26, "time": 1506968962060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.623333, 33.912167, 10.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72903226", "mag": 0.96, "time": 1506968036980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.880333, 37.530667, 2.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000axwl", "mag": 4.6, "time": 1506968031500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 94.5291, 21.4218, 96.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72904986", "mag": 1.14, "time": 1506968001000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.718167, 40.935167, 12.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16988088", "mag": 2.2, "time": 1506967247502, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9366, 59.642, 98.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00607868", "mag": 1.0, "time": 1506966403731, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.4944, 37.2386, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72903211", "mag": 0.98, "time": 1506965951300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.833, 37.457667, 1.76 ] } }, - { "type": "Feature", "properties": { "id": "ci37167228", "mag": 1.57, "time": 1506964185870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.4615, 34.328667, 3.74 ] } }, - { "type": "Feature", "properties": { "id": "ci38016984", "mag": 1.25, "time": 1506964183390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.466833, 34.3255, 4.39 ] } }, - { "type": "Feature", "properties": { "id": "nc72903196", "mag": 1.36, "time": 1506963756010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.827833, 37.456667, 2.57 ] } }, - { "type": "Feature", "properties": { "id": "mb80258854", "mag": 1.03, "time": 1506962682500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528667, 46.8625, 13.48 ] } }, - { "type": "Feature", "properties": { "id": "nc72903176", "mag": 1.21, "time": 1506962394170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.827833, 37.457167, 2.28 ] } }, - { "type": "Feature", "properties": { "id": "nc72903166", "mag": 1.88, "time": 1506961834060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.827167, 37.4555, 1.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72903156", "mag": 1.69, "time": 1506961396620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8265, 37.456333, 2.16 ] } }, - { "type": "Feature", "properties": { "id": "nc72903146", "mag": 3.02, "time": 1506961086740, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.829, 37.453667, 2.61 ] } }, - { "type": "Feature", "properties": { "id": "ci38016888", "mag": 1.17, "time": 1506960224640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0325, 33.879333, -0.97 ] } }, - { "type": "Feature", "properties": { "id": "nc72903131", "mag": 1.08, "time": 1506959715450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.371333, 35.706833, 1.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16988071", "mag": 1.4, "time": 1506959208997, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.9837, 67.1697, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00607854", "mag": 1.7, "time": 1506958960926, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.8425, 36.5559, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60250907", "mag": 2.05, "time": 1506957621760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4145, 42.546333, 7.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72903111", "mag": 1.41, "time": 1506957279300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.997333, 36.462667, 5.69 ] } }, - { "type": "Feature", "properties": { "id": "nm60207666", "mag": 2.19, "time": 1506957159610, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.8025, 36.5505, 12.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16988065", "mag": 2.7, "time": 1506956391417, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8151, 61.2492, 19.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80258839", "mag": 1.19, "time": 1506955175250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526167, 46.870333, 10.04 ] } }, - { "type": "Feature", "properties": { "id": "us2000axtv", "mag": 4.7, "time": 1506953290020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.1289, 2.6798, 25.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72903096", "mag": 1.04, "time": 1506952925800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.822667, 37.513833, 8.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16987055", "mag": 1.1, "time": 1506952513029, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2609, 64.6409, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72903081", "mag": 1.18, "time": 1506950851670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.751663, 38.832832, 0.68 ] } }, - { "type": "Feature", "properties": { "id": "us2000axtl", "mag": 4.7, "time": 1506950716850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 51.6372, 28.6895, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80258829", "mag": 1.08, "time": 1506950613020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.524667, 46.868167, 9.75 ] } }, - { "type": "Feature", "properties": { "id": "mb80258824", "mag": 1.16, "time": 1506950147300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523333, 46.866667, 11.08 ] } }, - { "type": "Feature", "properties": { "id": "uu60250902", "mag": 1.34, "time": 1506949268120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.084, 44.7795, 11.23 ] } }, - { "type": "Feature", "properties": { "id": "mb80258814", "mag": 1.19, "time": 1506949148400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527333, 46.855833, 14.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61929981", "mag": 2.4, "time": 1506948942340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.592667, 19.465333, 0.033 ] } }, - { "type": "Feature", "properties": { "id": "us2000axsh", "mag": 2.6, "time": 1506947996150, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5037, 36.2851, 3.93 ] } }, - { "type": "Feature", "properties": { "id": "mb80258799", "mag": 1.69, "time": 1506947507620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527833, 46.869833, 10.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16987046", "mag": 1.5, "time": 1506947130357, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1189, 63.1205, 16.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72903071", "mag": 1.5, "time": 1506946592080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.885667, 36.3165, 6.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000axs4", "mag": 4.3, "time": 1506946114440, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -61.2682, 13.209, 136.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000axsa", "mag": 4.3, "time": 1506945001990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 176.4854, -37.3176, 354.86 ] } }, - { "type": "Feature", "properties": { "id": "mb80258789", "mag": 2.2, "time": 1506944699010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.533, 46.869833, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60250897", "mag": 1.6, "time": 1506943796070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.218667, 42.571667, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16986042", "mag": 1.3, "time": 1506943225411, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.912, 63.0196, 66.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16986039", "mag": 1.4, "time": 1506941366267, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.3257, 63.3321, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38016776", "mag": 1.44, "time": 1506940900650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.510667, 34.2985, 9.93 ] } }, - { "type": "Feature", "properties": { "id": "hv61929926", "mag": 2.13, "time": 1506940825170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.524002, 19.919001, 20.11 ] } }, - { "type": "Feature", "properties": { "id": "mb80258769", "mag": 1.48, "time": 1506940203900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.33, 46.119833, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000axrm", "mag": 4.9, "time": 1506939736050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -88.2184, 12.3486, 35.55 ] } }, - { "type": "Feature", "properties": { "id": "ci38016768", "mag": 1.12, "time": 1506938746370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.067167, 34.208333, 2.04 ] } }, - { "type": "Feature", "properties": { "id": "ci38016760", "mag": 1.75, "time": 1506938502900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.064833, 34.207833, 2.06 ] } }, - { "type": "Feature", "properties": { "id": "nc72903041", "mag": 1.87, "time": 1506938425810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.908833, 36.368667, 8.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16985035", "mag": 1.7, "time": 1506938303105, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1495, 63.1057, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38016752", "mag": 1.08, "time": 1506938024070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.448833, 33.481, 8.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16985032", "mag": 1.1, "time": 1506937259442, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8806, 64.6842, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "nm60207636", "mag": 1.71, "time": 1506936707930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -90.1365, 35.88, 10.55 ] } }, - { "type": "Feature", "properties": { "id": "uu60250892", "mag": 1.5, "time": 1506936161680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.480833, 42.384833, 5.67 ] } }, - { "type": "Feature", "properties": { "id": "mb80258764", "mag": 2.37, "time": 1506936112630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.534333, 46.8675, 13.36 ] } }, - { "type": "Feature", "properties": { "id": "mb80258759", "mag": 3.08, "time": 1506934838560, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529167, 46.872333, 11.44 ] } }, - { "type": "Feature", "properties": { "id": "ci38016728", "mag": 1.01, "time": 1506934828760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.065667, 34.2065, 1.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000axr0", "mag": 4.3, "time": 1506933668380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8824, 16.708, 65.53 ] } }, - { "type": "Feature", "properties": { "id": "ci37398445", "mag": 0.97, "time": 1506933339570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.460667, 34.332333, 5.88 ] } }, - { "type": "Feature", "properties": { "id": "nc72903031", "mag": 1.45, "time": 1506933218670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.812667, 38.805, 2.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0e8", "mag": 1.4, "time": 1506931958320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.32, 43.6653, 7.15 ] } }, - { "type": "Feature", "properties": { "id": "uu60250882", "mag": 1.44, "time": 1506931830720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4165, 42.520333, 8.15 ] } }, - { "type": "Feature", "properties": { "id": "uu60250877", "mag": 1.13, "time": 1506930804620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.414333, 42.544333, 7.62 ] } }, - { "type": "Feature", "properties": { "id": "ci38016688", "mag": 1.28, "time": 1506929655950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.003333, 33.1775, 4.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16985021", "mag": 2.3, "time": 1506927665686, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5448, 63.1998, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16985020", "mag": 1.7, "time": 1506927499500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.4204, 67.3068, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80258749", "mag": 1.94, "time": 1506926930660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523333, 46.874, 11.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16985018", "mag": 1.1, "time": 1506926698712, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.829, 65.5759, 9.2 ] } }, - { "type": "Feature", "properties": { "id": "hv61929841", "mag": 1.98, "time": 1506926298850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.412338, 19.245501, 33.84 ] } }, - { "type": "Feature", "properties": { "id": "se60045313", "mag": 1.9, "time": 1506925923790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -82.894667, 34.9895, 0.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16984019", "mag": 1.1, "time": 1506925731082, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5467, 65.155, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80258744", "mag": 1.32, "time": 1506925562230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528833, 46.867167, 11.58 ] } }, - { "type": "Feature", "properties": { "id": "ci38016672", "mag": 0.97, "time": 1506925004450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.422833, 33.04, 10.21 ] } }, - { "type": "Feature", "properties": { "id": "ak16984018", "mag": 1.4, "time": 1506924871383, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2817, 61.9608, 23.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60250872", "mag": 1.58, "time": 1506924776930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.033833, 38.600333, 7.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16984009", "mag": 3.0, "time": 1506924381290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1032, 58.7701, 99.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60250867", "mag": 1.58, "time": 1506924167170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.409667, 42.562167, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000axq4", "mag": 4.2, "time": 1506924037060, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 174.3565, -41.7636, 24.13 ] } }, - { "type": "Feature", "properties": { "id": "ci38016664", "mag": 1.49, "time": 1506923205850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.589167, 32.780833, 12.71 ] } }, - { "type": "Feature", "properties": { "id": "ci38016656", "mag": 2.39, "time": 1506923145240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.009833, 33.179833, 9.12 ] } }, - { "type": "Feature", "properties": { "id": "us2000axq3", "mag": 4.7, "time": 1506923126070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.4587, -21.8514, 582.95 ] } }, - { "type": "Feature", "properties": { "id": "ci38016648", "mag": 2.46, "time": 1506922959220, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.010167, 33.179, 8.89 ] } }, - { "type": "Feature", "properties": { "id": "uw61336471", "mag": 3.25, "time": 1506922219710, "felt": 66, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8935, 47.887833, 54.22 ] } }, - { "type": "Feature", "properties": { "id": "nm60207631", "mag": 1.51, "time": 1506922179830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.527833, 36.243667, 7.74 ] } }, - { "type": "Feature", "properties": { "id": "nn00607885", "mag": 1.0, "time": 1506921346217, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0518, 37.0814, 8.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000axpv", "mag": 4.8, "time": 1506921205270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 72.4324, 38.1132, 115.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16983007", "mag": 1.4, "time": 1506919945331, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5212, 66.5767, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72902986", "mag": 1.91, "time": 1506919685230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.524833, 35.967333, 10.71 ] } }, - { "type": "Feature", "properties": { "id": "us2000axpm", "mag": 2.2, "time": 1506919604410, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5118, 36.9048, 4.52 ] } }, - { "type": "Feature", "properties": { "id": "uw61336446", "mag": 1.27, "time": 1506919122930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.245667, 46.345833, 7.97 ] } }, - { "type": "Feature", "properties": { "id": "ci38016584", "mag": 2.31, "time": 1506918555650, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7985, 33.500167, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60250862", "mag": 1.41, "time": 1506917347110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.411167, 42.640167, -1.04 ] } }, - { "type": "Feature", "properties": { "id": "ci38016576", "mag": 1.0, "time": 1506916919110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.43, 33.028833, 3.21 ] } }, - { "type": "Feature", "properties": { "id": "ci38016568", "mag": 1.08, "time": 1506916645840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.048333, 33.2415, 5.47 ] } }, - { "type": "Feature", "properties": { "id": "uu60250857", "mag": 1.42, "time": 1506916237980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.446167, 42.608333, 6.68 ] } }, - { "type": "Feature", "properties": { "id": "ci38016552", "mag": 1.32, "time": 1506915577280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.482167, 35.754, 3.27 ] } }, - { "type": "Feature", "properties": { "id": "hv61929701", "mag": 2.26, "time": 1506915466040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.021835, 19.397499, 0.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000axp9", "mag": 2.5, "time": 1506915178660, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5196, 36.2819, 4.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16982006", "mag": 3.4, "time": 1506913363596, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.9176, 55.7636, 20.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000axp5", "mag": 2.7, "time": 1506913350820, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5073, 46.8582, 10.64 ] } }, - { "type": "Feature", "properties": { "id": "mb80258724", "mag": 1.27, "time": 1506912496350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.017333, 44.484667, 7.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72902956", "mag": 1.67, "time": 1506912463450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.4705, 40.704167, 17.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60250847", "mag": 1.01, "time": 1506911908120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.418333, 42.516667, 6.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16982001", "mag": 1.1, "time": 1506909373983, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8167, 61.2439, 26.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60250837", "mag": 1.18, "time": 1506909364560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.411833, 42.520667, 7.35 ] } }, - { "type": "Feature", "properties": { "id": "mb80258714", "mag": 1.56, "time": 1506908562340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523167, 46.872833, 12.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16981996", "mag": 1.3, "time": 1506908205944, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5285, 63.1691, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16982000", "mag": 1.4, "time": 1506908156528, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6012, 59.5948, 56.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000axnx", "mag": 2.6, "time": 1506907742490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4159, 42.5178, 6.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16981992", "mag": 1.8, "time": 1506907678571, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.2312, 63.3329, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72902936", "mag": 1.52, "time": 1506905787330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.426, 38.404, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "uu60250827", "mag": 1.35, "time": 1506905780190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4175, 42.518833, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60250822", "mag": 1.43, "time": 1506905571670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.422333, 42.512667, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61929496", "mag": 1.71, "time": 1506905364520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.584503, 19.484333, 2.03 ] } }, - { "type": "Feature", "properties": { "id": "ak16981986", "mag": 1.5, "time": 1506903663272, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7914, 61.5177, 34.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38016496", "mag": 1.6, "time": 1506903468250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.793667, 33.502333, 5.16 ] } }, - { "type": "Feature", "properties": { "id": "ci38016488", "mag": 1.3, "time": 1506903227250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.5175, 34.2865, 7.02 ] } }, - { "type": "Feature", "properties": { "id": "nn00607841", "mag": 2.5, "time": 1506901760242, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.7954, 37.1971, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72902911", "mag": 2.66, "time": 1506901676700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.506167, 40.3085, 21.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16981979", "mag": 2.0, "time": 1506901404559, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6022, 63.105, 120.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990868", "mag": 2.0, "time": 1506900397361, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1198, 58.9916, 108.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16980981", "mag": 1.3, "time": 1506899671796, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.1479, 60.8928, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38016456", "mag": 1.6, "time": 1506899253540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2755, 33.976333, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72902901", "mag": 1.02, "time": 1506898875730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810165, 38.816834, 1.1 ] } }, - { "type": "Feature", "properties": { "id": "mb80258679", "mag": 1.05, "time": 1506897817900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525833, 46.891833, 12.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16980976", "mag": 1.1, "time": 1506897164997, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.9167, 60.5402, 8.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16980971", "mag": 1.8, "time": 1506896659586, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1362, 61.9345, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16980968", "mag": 2.0, "time": 1506896402168, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9985, 65.5166, 15.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16980965", "mag": 1.5, "time": 1506895579977, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.6538, 59.9364, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38016448", "mag": 1.52, "time": 1506895319020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.830833, 33.712, 16.9 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70236163", "mag": 2.36, "time": 1506894257160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.905833, 36.996333, 9.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16990861", "mag": 1.1, "time": 1506893923115, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3425, 61.0789, 57.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00607826", "mag": 1.4, "time": 1506893733690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6519, 39.1963, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16980964", "mag": 1.2, "time": 1506892711109, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8709, 61.4311, 46.5 ] } }, - { "type": "Feature", "properties": { "id": "uw61336341", "mag": 1.82, "time": 1506892129610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.567667, 49.3235, -1.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16990859", "mag": 1.9, "time": 1506891719402, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.8509, 57.8862, 54.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16980963", "mag": 1.2, "time": 1506891059795, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5477, 60.1976, 34.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80258669", "mag": 1.06, "time": 1506890613170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.515667, 46.8785, 11.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16980956", "mag": 2.1, "time": 1506890459542, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.2618, 53.748, 49.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16980945", "mag": 1.5, "time": 1506890359030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.5485, 59.782, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16980939", "mag": 2.7, "time": 1506890337968, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2691, 59.2151, 55.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16980943", "mag": 2.0, "time": 1506890332904, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1083, 61.5648, 11.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000axlg", "mag": 2.5, "time": 1506890067740, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.7952, 35.9855, 3.13 ] } }, - { "type": "Feature", "properties": { "id": "nc72902871", "mag": 1.2, "time": 1506890044550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.619333, 36.969667, 5.21 ] } }, - { "type": "Feature", "properties": { "id": "ak16980936", "mag": 1.3, "time": 1506889965804, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.4052, 62.336, 46.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16980933", "mag": 1.6, "time": 1506888599699, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.5246, 51.8512, 19.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80258664", "mag": 1.08, "time": 1506888514540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525167, 46.889833, 12.19 ] } }, - { "type": "Feature", "properties": { "id": "nc72902866", "mag": 1.72, "time": 1506888000180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.3795, 40.710333, 18.86 ] } }, - { "type": "Feature", "properties": { "id": "us2000axkq", "mag": 3.3, "time": 1506887023210, "felt": 9, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.4467, 36.1992, 5.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000axkh", "mag": 4.4, "time": 1506885748640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3923, 15.6065, 68.63 ] } }, - { "type": "Feature", "properties": { "id": "us2000axkg", "mag": 4.7, "time": 1506885628670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 131.0709, 30.4016, 52.09 ] } }, - { "type": "Feature", "properties": { "id": "nc72902851", "mag": 1.6, "time": 1506885379850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.806167, 38.816833, 2.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16979941", "mag": 1.1, "time": 1506885213719, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2184, 62.3649, 80.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72902846", "mag": 1.16, "time": 1506883965960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.676, 37.612, 3.61 ] } }, - { "type": "Feature", "properties": { "id": "nn00607803", "mag": 1.2, "time": 1506883429003, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.7983, 37.0626, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990850", "mag": 1.4, "time": 1506881346159, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4695, 60.2829, 104.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72902836", "mag": 1.01, "time": 1506881205680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.800835, 38.831833, 1.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16979936", "mag": 1.1, "time": 1506880968876, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7414, 62.1039, 54.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00607807", "mag": 1.1, "time": 1506880810251, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1156, 38.2725, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "hv61928951", "mag": 2.13, "time": 1506880210700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.408493, 19.198166, 32.85 ] } }, - { "type": "Feature", "properties": { "id": "nn00607796", "mag": 1.4, "time": 1506880150990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.7769, 37.082, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16979932", "mag": 1.3, "time": 1506879650012, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5344, 59.9497, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16979928", "mag": 1.4, "time": 1506878561352, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7881, 59.4532, 86.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000axj4", "mag": 4.9, "time": 1506877281250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6588, -24.2867, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61336301", "mag": 1.08, "time": 1506877137600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.289333, 46.525667, 12.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000axiu", "mag": 4.8, "time": 1506876485410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -76.1816, -45.7692, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902831", "mag": 2.39, "time": 1506876142050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8365, 37.5015, 0.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16978937", "mag": 1.2, "time": 1506875682364, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0123, 63.225, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990844", "mag": 1.0, "time": 1506875638383, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3476, 60.399, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16978936", "mag": 1.3, "time": 1506875438694, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1025, 62.0191, 64.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16990842", "mag": 1.6, "time": 1506873845866, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.7815, 51.9812, 27.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16977948", "mag": 2.0, "time": 1506871550948, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.142, 60.236, 132.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000axi9", "mag": 4.2, "time": 1506870604300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.8183, -18.2769, 600.28 ] } }, - { "type": "Feature", "properties": { "id": "nc72902801", "mag": 1.08, "time": 1506869234490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.736333, 37.427833, 11.17 ] } }, - { "type": "Feature", "properties": { "id": "nc72902796", "mag": 0.97, "time": 1506869005720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.80983, 38.822666, 2.38 ] } }, - { "type": "Feature", "properties": { "id": "nc72902791", "mag": 1.02, "time": 1506868646100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.018, 37.4345, 4.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000axi8", "mag": 4.5, "time": 1506868536330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 92.3426, 12.898, 30.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72902781", "mag": 1.48, "time": 1506867941180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.033833, 37.4125, 0.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000axhz", "mag": 4.5, "time": 1506867628470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.306, 40.1598, 57.26 ] } }, - { "type": "Feature", "properties": { "id": "uw61336271", "mag": 1.68, "time": 1506867619960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.078833, 44.103667, -0.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16990839", "mag": 1.7, "time": 1506867169462, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.3848, 56.4945, 79.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000axhv", "mag": 5.0, "time": 1506866880330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.5287, -22.8028, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16976960", "mag": 1.2, "time": 1506866784677, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7487, 60.0824, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60250707", "mag": 2.06, "time": 1506866738590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.447833, 42.650333, 2.93 ] } }, - { "type": "Feature", "properties": { "id": "mb80258644", "mag": 1.07, "time": 1506866437550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525833, 46.866, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61928751", "mag": 1.73, "time": 1506865813980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.633499, 19.408501, 4.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16976951", "mag": 1.0, "time": 1506864160172, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.909, 58.2689, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16976949", "mag": 1.0, "time": 1506864011046, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.6138, 60.5977, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990832", "mag": 1.4, "time": 1506863730810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1725, 60.1804, 135.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16975974", "mag": 1.1, "time": 1506862307453, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3672, 61.3015, 47.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000axhf", "mag": 4.6, "time": 1506862144080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 91.9129, 12.7332, 25.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16975970", "mag": 1.3, "time": 1506861392092, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.0328, 59.3749, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16975965", "mag": 1.4, "time": 1506860447567, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3802, 59.7999, 122.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16975961", "mag": 1.9, "time": 1506860241377, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.3702, 58.1855, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38016296", "mag": 0.97, "time": 1506860065660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.200333, 33.034167, 6.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72902736", "mag": 1.01, "time": 1506859858880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793999, 38.812668, 3.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16975960", "mag": 2.0, "time": 1506859830456, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.5366, 51.4282, 50.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16974988", "mag": 1.1, "time": 1506859403703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7216, 57.888, 61.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00607763", "mag": 2.0, "time": 1506858283945, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6834, 40.0949, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16974986", "mag": 1.5, "time": 1506857978595, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6219, 59.7494, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38016272", "mag": 1.31, "time": 1506857701950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.46, 34.330833, 3.08 ] } }, - { "type": "Feature", "properties": { "id": "mb80258619", "mag": 1.22, "time": 1506857080460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.509667, 46.908167, 15.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16974980", "mag": 2.0, "time": 1506856935435, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4679, 51.6302, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16974977", "mag": 1.7, "time": 1506856591674, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.0171, 58.9928, 112.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16990818", "mag": 1.6, "time": 1506856352544, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6069, 60.035, 157.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72902701", "mag": 1.04, "time": 1506856284600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.718, 38.742333, 1.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16974975", "mag": 1.2, "time": 1506856083450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.5011, 64.299, 14.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16974972", "mag": 1.5, "time": 1506855936313, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5182, 59.9216, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38016224", "mag": 1.28, "time": 1506855241040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.731167, 33.649, 12.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16990815", "mag": 2.8, "time": 1506854643419, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.4705, 51.8814, 165.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61928636", "mag": 2.82, "time": 1506854300970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.485667, 20.355333, 14.282 ] } }, - { "type": "Feature", "properties": { "id": "ak16974969", "mag": 1.4, "time": 1506854297360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.6332, 59.9863, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72902676", "mag": 1.69, "time": 1506853476410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.984, 37.5295, 2.12 ] } }, - { "type": "Feature", "properties": { "id": "ak16973994", "mag": 1.0, "time": 1506853292474, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0636, 62.2825, 41.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607794", "mag": 1.1, "time": 1506852962371, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9213, 38.3646, 5.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38016200", "mag": 1.06, "time": 1506852815200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.791833, 33.502167, 4.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000axgb", "mag": 5.1, "time": 1506852415110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.6916, -24.4751, 87.71 ] } }, - { "type": "Feature", "properties": { "id": "ci38016192", "mag": 1.27, "time": 1506852211900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.464167, 36.311167, 0.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16990809", "mag": 1.3, "time": 1506851397558, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4428, 58.7981, 124.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16973987", "mag": 1.3, "time": 1506850332700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1498, 59.6631, 104.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72902646", "mag": 1.37, "time": 1506850223860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.452, 37.402167, 4.64 ] } }, - { "type": "Feature", "properties": { "id": "us2000axfz", "mag": 4.0, "time": 1506849733290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8612, 14.9405, 53.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16973981", "mag": 1.6, "time": 1506849720561, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2003, 60.1713, 129.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16973012", "mag": 1.1, "time": 1506849332753, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7558, 59.8604, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000axfu", "mag": 4.4, "time": 1506848263400, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.7814, 18.4858, 79.09 ] } }, - { "type": "Feature", "properties": { "id": "ci38016176", "mag": 1.75, "time": 1506848220800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.651333, 35.934333, 2.81 ] } }, - { "type": "Feature", "properties": { "id": "ci38016160", "mag": 1.37, "time": 1506846375610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.908333, 35.5955, 1.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16990805", "mag": 2.5, "time": 1506845582617, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.7071, 51.7987, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16972044", "mag": 1.1, "time": 1506843571095, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4859, 61.0501, 21.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000axfi", "mag": 4.1, "time": 1506843463030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -77.5019, -1.5006, 197.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16972038", "mag": 1.5, "time": 1506842124989, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6539, 62.7976, 71.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16972036", "mag": 1.2, "time": 1506841940900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8258, 61.6968, 61.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80258604", "mag": 1.59, "time": 1506841735050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.459167, 46.866, 10.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38016112", "mag": 1.44, "time": 1506840801230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2085, 34.452833, 11.88 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70236143", "mag": 1.72, "time": 1506840567300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.7785, 37.328333, 4.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16990799", "mag": 1.1, "time": 1506840419377, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7218, 59.2315, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16971064", "mag": 2.6, "time": 1506838204059, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5055, 59.3191, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000axek", "mag": 3.2, "time": 1506836917300, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7711, 36.4532, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16970116", "mag": 2.7, "time": 1506836847043, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9474, 62.6019, 6.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72902586", "mag": 1.42, "time": 1506836822020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8205, 37.604, 4.13 ] } }, - { "type": "Feature", "properties": { "id": "nc72902581", "mag": 1.71, "time": 1506836766960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8205, 37.604333, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61928476", "mag": 1.81, "time": 1506836276760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.631836, 19.188999, 0.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16970114", "mag": 1.3, "time": 1506835946408, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.345, 60.1863, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60250622", "mag": 2.13, "time": 1506835247610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.578, 38.7305, -0.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000axe4", "mag": 4.2, "time": 1506834536440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 146.1269, -6.2836, 59.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000axdz", "mag": 4.1, "time": 1506833874150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -85.5987, 9.126, 39.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16970083", "mag": 2.0, "time": 1506833288717, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6914, 61.3678, 29.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16969148", "mag": 1.9, "time": 1506832174570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.9412, 51.6192, 50.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16969146", "mag": 1.0, "time": 1506831622152, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.577, 62.7735, 79.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38016048", "mag": 1.04, "time": 1506831472900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.833167, 33.669167, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38016040", "mag": 1.1, "time": 1506831149410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.485, 36.3695, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80258549", "mag": 1.59, "time": 1506830710300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5235, 46.889833, 13.14 ] } }, - { "type": "Feature", "properties": { "id": "hv61928346", "mag": 2.95, "time": 1506829826670, "felt": 21, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.095333, 19.715167, 33.794 ] } }, - { "type": "Feature", "properties": { "id": "ak16990790", "mag": 1.0, "time": 1506829471423, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.2898, 60.1429, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902546", "mag": 1.45, "time": 1506828244030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.157167, 36.626, 8.14 ] } }, - { "type": "Feature", "properties": { "id": "mb80258544", "mag": 1.11, "time": 1506828010380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526333, 46.871, 10.92 ] } }, - { "type": "Feature", "properties": { "id": "nc72902531", "mag": 1.44, "time": 1506827498200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.228833, 36.619333, 4.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16968180", "mag": 2.0, "time": 1506827492404, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.739, 61.1833, 86.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000axpk", "mag": 1.6, "time": 1506827393900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -70.9053, 41.6481, 6.51 ] } }, - { "type": "Feature", "properties": { "id": "ci38015992", "mag": 1.15, "time": 1506827015230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.3845, 35.111667, 5.93 ] } }, - { "type": "Feature", "properties": { "id": "hv61928261", "mag": 2.05, "time": 1506825377030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.476502, 19.216, 37.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16990784", "mag": 1.4, "time": 1506825243899, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.2232, 51.7576, 46.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61336131", "mag": 1.16, "time": 1506825168050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.9095, 48.316167, 1.09 ] } }, - { "type": "Feature", "properties": { "id": "mb80258539", "mag": 1.53, "time": 1506824807150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528833, 46.877, 11.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16967237", "mag": 1.8, "time": 1506824784256, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7866, 53.1332, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16990782", "mag": 2.0, "time": 1506823956350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.6834, 51.2465, 35.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16990781", "mag": 1.3, "time": 1506823856677, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.521, 59.9658, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902506", "mag": 1.22, "time": 1506821920520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.7125, 37.351167, 7.83 ] } }, - { "type": "Feature", "properties": { "id": "us2000axct", "mag": 5.1, "time": 1506821726490, "felt": 125, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -73.1491, 7.5135, 142.73 ] } }, - { "type": "Feature", "properties": { "id": "ci38015920", "mag": 1.75, "time": 1506821149880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.354833, 33.961167, 5.95 ] } }, - { "type": "Feature", "properties": { "id": "us2000axcn", "mag": 4.9, "time": 1506821107970, "felt": 24, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.5685, 36.9167, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16990780", "mag": 2.5, "time": 1506821107760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.8117, 51.8357, 61.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38015912", "mag": 1.0, "time": 1506820492420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.119167, 33.9365, 14.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16990779", "mag": 1.3, "time": 1506819992776, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.8841, 57.2184, 46.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16990778", "mag": 1.0, "time": 1506819499573, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4019, 63.1122, 97.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72902491", "mag": 1.79, "time": 1506819103020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.939, 37.635333, 5.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16966268", "mag": 1.8, "time": 1506818601975, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9252, 60.1498, 112.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16966264", "mag": 1.5, "time": 1506818511725, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4432, 51.7288, 13.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16966263", "mag": 2.1, "time": 1506818242272, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7041, 52.7581, 14.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16990774", "mag": 1.5, "time": 1506818099252, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4546, 51.7076, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16990772", "mag": 2.7, "time": 1506817440647, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.6939, 51.8802, 15.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000axc3", "mag": 4.5, "time": 1506817163710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 126.9456, 7.2071, 68.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16965336", "mag": 1.9, "time": 1506816635445, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9899, 60.0896, 71.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16965329", "mag": 1.2, "time": 1506816385660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3486, 64.9885, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000axbx", "mag": 4.3, "time": 1506816328880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.9474, 51.9828, 27.38 ] } }, - { "type": "Feature", "properties": { "id": "hv61928136", "mag": 2.02, "time": 1506816129630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.123672, 19.313999, 2.22 ] } }, - { "type": "Feature", "properties": { "id": "uu60250512", "mag": 2.38, "time": 1506814998100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.459167, 42.663667, 2.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000axbj", "mag": 3.2, "time": 1506814776660, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4566, 42.652, 6.15 ] } }, - { "type": "Feature", "properties": { "id": "us2000axba", "mag": 2.8, "time": 1506814745510, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4606, 42.6545, 4.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000axb6", "mag": 2.7, "time": 1506814557760, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.473, 42.6754, 3.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16964389", "mag": 1.2, "time": 1506813911112, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5092, 62.3699, 51.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38015880", "mag": 1.87, "time": 1506813831910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.455333, 34.324167, 2.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000axas", "mag": 5.5, "time": 1506813329570, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 128.5426, 3.9405, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16964388", "mag": 1.6, "time": 1506812976279, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5291, 59.2674, 85.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16989805", "mag": 1.4, "time": 1506812398891, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7509, 60.014, 105.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16964387", "mag": 1.0, "time": 1506812112182, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1116, 62.3522, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16964380", "mag": 1.0, "time": 1506811899089, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6933, 62.6659, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00607730", "mag": 1.0, "time": 1506811774166, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9049, 37.2915, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00607738", "mag": 1.0, "time": 1506811292528, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.8999, 37.2878, 3.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607737", "mag": 1.1, "time": 1506811240125, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9056, 37.279, 6.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00607728", "mag": 1.1, "time": 1506811230164, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9061, 37.2885, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60250442", "mag": 2.43, "time": 1506810599500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4515, 42.661, 2.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16963468", "mag": 1.2, "time": 1506810291866, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5204, 63.352, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607721", "mag": 1.4, "time": 1506807445148, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.6755, 40.2201, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16963443", "mag": 1.1, "time": 1506806484011, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3476, 61.4217, 25.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16963413", "mag": 2.3, "time": 1506806152613, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.0067, 60.9307, 14.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16962501", "mag": 4.2, "time": 1506806106026, "felt": 17, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ -152.2422, 59.621, 83.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16989798", "mag": 1.1, "time": 1506805696616, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7955, 61.7318, 98.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax9r", "mag": 4.7, "time": 1506805651800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 139.9751, 27.653, 485.8 ] } }, - { "type": "Feature", "properties": { "id": "uw61335981", "mag": 1.82, "time": 1506805100680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.056833, 48.412333, 50.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72902471", "mag": 2.5, "time": 1506804691550, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.2745, 38.558167, 6.21 ] } }, - { "type": "Feature", "properties": { "id": "nc71107604", "mag": 0.96, "time": 1506804690650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.780167, 35.5105, 3.92 ] } }, - { "type": "Feature", "properties": { "id": "ci38015856", "mag": 1.0, "time": 1506804008820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.791, 33.512, 6.24 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax9d", "mag": 4.1, "time": 1506803686610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 122.7108, -8.0939, 216.64 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax9h", "mag": 3.5, "time": 1506803627030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.5125, 17.7855, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61927906", "mag": 3.49, "time": 1506803617560, "felt": 9, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.469, 19.209667, 35.947 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax99", "mag": 4.7, "time": 1506802488710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 143.8145, 21.6564, 64.59 ] } }, - { "type": "Feature", "properties": { "id": "ci38015848", "mag": 1.38, "time": 1506802371860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.363167, 33.357333, 10.38 ] } }, - { "type": "Feature", "properties": { "id": "nc72902466", "mag": 1.77, "time": 1506801988210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.781, 38.796667, 3.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16962490", "mag": 1.1, "time": 1506800090127, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1783, 59.7871, 69.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16962484", "mag": 1.5, "time": 1506799366659, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6852, 63.5864, 3.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00607710", "mag": 1.2, "time": 1506799171022, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.1362, 38.2888, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16962480", "mag": 3.0, "time": 1506798820424, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.1572, 55.8639, 11.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16989794", "mag": 1.9, "time": 1506798785904, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.2132, 52.0688, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80258414", "mag": 1.87, "time": 1506798465250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525333, 46.872833, 11.78 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax8b", "mag": 2.5, "time": 1506797682590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4618, 42.6659, 3.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16962476", "mag": 1.4, "time": 1506797627539, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5093, 61.3123, 6.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16961588", "mag": 1.1, "time": 1506797036668, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7901, 63.2441, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0d3", "mag": 4.1, "time": 1506796297940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8027, 15.4984, 19.41 ] } }, - { "type": "Feature", "properties": { "id": "ci38015776", "mag": 1.28, "time": 1506796206280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.89, 34.349167, 2.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16961586", "mag": 2.0, "time": 1506795961720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.8619, 51.4801, 41.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16961585", "mag": 1.1, "time": 1506795458511, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5581, 61.5616, 72.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38015752", "mag": 1.52, "time": 1506795424490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.160667, 34.4365, 4.43 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax7s", "mag": 4.8, "time": 1506795349220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9189, 16.1602, 51.93 ] } }, - { "type": "Feature", "properties": { "id": "nc72904876", "mag": 1.25, "time": 1506795206390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.484167, 40.699167, 11.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16961582", "mag": 1.1, "time": 1506794436503, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.6079, 60.1354, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16961580", "mag": 1.1, "time": 1506794299451, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.5942, 60.1565, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16961575", "mag": 1.6, "time": 1506793157002, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.119, 51.4689, 25.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax76", "mag": 4.9, "time": 1506789944160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -90.9767, 1.0533, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902376", "mag": 1.84, "time": 1506788771420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8085, 38.817833, 3.12 ] } }, - { "type": "Feature", "properties": { "id": "nc72902381", "mag": 1.19, "time": 1506788628860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.3415, 37.8225, -0.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16960680", "mag": 2.9, "time": 1506788491228, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.9778, 51.4147, 57.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16989782", "mag": 1.1, "time": 1506788345464, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.7866, 57.4545, 53.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72902371", "mag": 1.16, "time": 1506786770930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.691, 38.7405, 1.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax6w", "mag": 2.6, "time": 1506785489440, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5446, 36.2305, 5.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16959801", "mag": 1.0, "time": 1506785312713, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7001, 61.542, 58.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80258389", "mag": 1.27, "time": 1506783781070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.531167, 46.8685, 11.42 ] } }, - { "type": "Feature", "properties": { "id": "ci38015696", "mag": 2.28, "time": 1506783542670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.492667, 34.216, 5.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16959795", "mag": 1.6, "time": 1506783111232, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5985, 59.916, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902346", "mag": 1.53, "time": 1506782817930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.249667, 37.864833, 5.03 ] } }, - { "type": "Feature", "properties": { "id": "nc72902336", "mag": 1.34, "time": 1506782106540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819833, 37.603833, 4.12 ] } }, - { "type": "Feature", "properties": { "id": "ci38015672", "mag": 1.46, "time": 1506781658250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.2715, 34.059333, 15.26 ] } }, - { "type": "Feature", "properties": { "id": "uw61335861", "mag": 1.05, "time": 1506780581040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.452333, 48.382667, 22.31 ] } }, - { "type": "Feature", "properties": { "id": "hv61927751", "mag": 2.29, "time": 1506780487200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.627833, 19.405333, 3.602 ] } }, - { "type": "Feature", "properties": { "id": "ak16958915", "mag": 1.1, "time": 1506779690755, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.5599, 60.3017, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16958913", "mag": 1.2, "time": 1506779388174, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.6949, 63.8592, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16989774", "mag": 1.1, "time": 1506778517082, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4836, 62.981, 94.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38015648", "mag": 1.53, "time": 1506777358020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.461667, 34.329167, 3.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16958909", "mag": 1.8, "time": 1506777347886, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.2124, 67.8158, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38015640", "mag": 2.0, "time": 1506777335770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.658167, 31.867, 1.78 ] } }, - { "type": "Feature", "properties": { "id": "ci38015616", "mag": 1.28, "time": 1506776191250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.768833, 33.326833, 12.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16958907", "mag": 1.2, "time": 1506775842000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4069, 62.3275, 86.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902306", "mag": 1.41, "time": 1506775748110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.82, 37.605333, 4.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16958905", "mag": 2.0, "time": 1506775349934, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.7202, 67.3687, 4.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00607651", "mag": 1.2, "time": 1506775034180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8976, 38.3688, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16958026", "mag": 2.8, "time": 1506774114627, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.7286, 67.3815, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "uu60250312", "mag": 2.59, "time": 1506774047790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.635, 37.764167, 13.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16958023", "mag": 1.6, "time": 1506773722633, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6494, 63.1022, 115.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16989768", "mag": 1.6, "time": 1506773709105, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.8697, 59.0106, 105.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902286", "mag": 1.55, "time": 1506773378420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.898833, 37.522667, 12.57 ] } }, - { "type": "Feature", "properties": { "id": "ld60143701", "mag": 0.98, "time": 1506773153350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.5095, 40.809333, 11.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16958020", "mag": 1.2, "time": 1506771142867, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0654, 62.1893, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16957154", "mag": 1.4, "time": 1506770413805, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3117, 61.0872, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38015552", "mag": 1.58, "time": 1506769732230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.155, 34.5615, 2.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16989763", "mag": 1.5, "time": 1506768979985, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1722, 60.0493, 117.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60250297", "mag": 1.97, "time": 1506768169440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4255, 42.547, 7.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16957134", "mag": 1.5, "time": 1506768169245, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9682, 61.4708, 39.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax5m", "mag": 5.2, "time": 1506767402460, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 128.7797, 1.8973, 37.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16989760", "mag": 1.1, "time": 1506766077754, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8184, 60.0072, 67.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72902251", "mag": 1.22, "time": 1506766057090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.800833, 38.792667, 2.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16956252", "mag": 1.6, "time": 1506765146662, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3164, 61.6465, 25.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax55", "mag": 4.4, "time": 1506764918800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0971, 15.3765, 35.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16956250", "mag": 3.1, "time": 1506764602367, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3876, 51.6362, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60250277", "mag": 1.1, "time": 1506764348800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.411333, 38.962833, -1.36 ] } }, - { "type": "Feature", "properties": { "id": "nc72902211", "mag": 2.24, "time": 1506763678540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.1355, 37.688333, 25.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16955383", "mag": 2.0, "time": 1506763079790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7222, 59.2509, 16.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16955380", "mag": 1.1, "time": 1506762584802, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0664, 61.8814, 35.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72902196", "mag": 1.37, "time": 1506761418100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7435, 38.788, 0.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax4r", "mag": 2.5, "time": 1506761330980, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5543, 36.2286, 1.38 ] } }, - { "type": "Feature", "properties": { "id": "ci38015488", "mag": 1.48, "time": 1506761301510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3055, 33.255167, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38015480", "mag": 1.54, "time": 1506760683740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.638333, 33.165167, 2.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16955371", "mag": 2.5, "time": 1506760322340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.9144, 51.2732, 19.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72902186", "mag": 1.08, "time": 1506759358360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.750832, 38.806835, 0.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72902176", "mag": 1.52, "time": 1506758934270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.270833, 39.463167, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16955365", "mag": 2.3, "time": 1506758896299, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.4581, 50.7723, 29.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16955363", "mag": 1.2, "time": 1506758873795, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2563, 61.2042, 65.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72902161", "mag": 1.43, "time": 1506758269830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820833, 37.604167, 3.89 ] } }, - { "type": "Feature", "properties": { "id": "nc72902151", "mag": 1.08, "time": 1506757752200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.095167, 36.564333, 8.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16954507", "mag": 1.7, "time": 1506757551919, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.4734, 51.7808, 63.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16954502", "mag": 1.5, "time": 1506757337943, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7203, 60.1564, 96.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16954501", "mag": 1.2, "time": 1506757146790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0463, 62.4859, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16954494", "mag": 1.2, "time": 1506755657374, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4986, 59.9398, 15.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16989746", "mag": 1.4, "time": 1506755147399, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.4214, 51.6622, 47.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72902146", "mag": 1.49, "time": 1506754443300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7965, 38.821167, 2.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16953640", "mag": 1.8, "time": 1506754020475, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3389, 63.5229, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38015432", "mag": 1.45, "time": 1506753848290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.784, 34.512167, 18.77 ] } }, - { "type": "Feature", "properties": { "id": "nc72902141", "mag": 1.71, "time": 1506753528720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9575, 37.590333, -0.13 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax3z", "mag": 5.0, "time": 1506753276470, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.7893, -37.146, 51.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax3x", "mag": 4.0, "time": 1506752562800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1802, 15.1606, 44.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax3v", "mag": 5.5, "time": 1506752076970, "felt": 45, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 105.0015, 32.3196, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72902116", "mag": 1.62, "time": 1506750865330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.599667, 37.407833, 9.53 ] } }, - { "type": "Feature", "properties": { "id": "ci38015368", "mag": 1.67, "time": 1506750508810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.076333, 36.188833, 2.55 ] } }, - { "type": "Feature", "properties": { "id": "mb80258359", "mag": 1.02, "time": 1506750398880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.9725, 47.5955, 16.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax3j", "mag": 2.7, "time": 1506750040910, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.2913, 46.8038, 7.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16952767", "mag": 1.8, "time": 1506749904921, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3454, 60.3536, 81.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16952766", "mag": 2.3, "time": 1506749189648, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.3954, 52.6671, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax39", "mag": 4.5, "time": 1506748759440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 146.5825, -6.071, 46.79 ] } }, - { "type": "Feature", "properties": { "id": "nc72902081", "mag": 1.59, "time": 1506748525170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.82, 37.603833, 3.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16989740", "mag": 1.2, "time": 1506747601510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7455, 63.2374, 127.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60250227", "mag": 1.55, "time": 1506747254170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.416167, 42.576, 7.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16989738", "mag": 2.1, "time": 1506746345789, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.3938, 52.2402, 166.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax2y", "mag": 2.0, "time": 1506744973730, "felt": 15, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -103.5373, 31.4264, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax2z", "mag": 4.2, "time": 1506744770640, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 56.8179, 27.8699, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16951924", "mag": 1.9, "time": 1506744732618, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0884, 59.736, 45.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72902041", "mag": 1.11, "time": 1506744250250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.833, 37.493667, -0.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16989735", "mag": 1.2, "time": 1506741220731, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9578, 61.9828, 69.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16951083", "mag": 2.6, "time": 1506741030111, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6653, 59.3044, 110.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16989733", "mag": 1.9, "time": 1506739580500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.7167, 57.5293, 92.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax2n", "mag": 4.5, "time": 1506739554570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 136.7409, -3.3243, 53.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16951081", "mag": 1.2, "time": 1506738073140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.643, 59.7863, 2.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38015232", "mag": 1.78, "time": 1506737478680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.242833, 34.689, 2.49 ] } }, - { "type": "Feature", "properties": { "id": "nm60207556", "mag": 1.6, "time": 1506737274410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.540333, 36.441167, 8.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16951079", "mag": 1.0, "time": 1506737168134, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6248, 59.7789, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16989730", "mag": 1.0, "time": 1506736917340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.3855, 61.2392, 35.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16951077", "mag": 2.7, "time": 1506736523109, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.4182, 51.6603, 65.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00607629", "mag": 1.3, "time": 1506736488217, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.2269, 38.6102, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16989728", "mag": 1.8, "time": 1506734962617, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4354, 59.672, 120.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax2c", "mag": 4.2, "time": 1506734849800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1267, 15.2552, 35.18 ] } }, - { "type": "Feature", "properties": { "id": "ci38015192", "mag": 1.59, "time": 1506734841110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.231333, 34.69, 2.26 ] } }, - { "type": "Feature", "properties": { "id": "nc72901986", "mag": 1.53, "time": 1506733264430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820667, 37.604833, 4.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16950243", "mag": 1.5, "time": 1506732735872, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8027, 59.8685, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989726", "mag": 1.2, "time": 1506732275435, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7993, 62.6213, 100.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000b217", "mag": 4.4, "time": 1506731641840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.5238, -17.429, 578.55 ] } }, - { "type": "Feature", "properties": { "id": "nc72901976", "mag": 1.18, "time": 1506731621270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821, 37.608667, 4.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16950242", "mag": 1.2, "time": 1506731391196, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6362, 63.7125, 120.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16989723", "mag": 1.7, "time": 1506730448510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6879, 60.1242, 106.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38015160", "mag": 1.92, "time": 1506730343820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.0465, 33.1715, 3.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16950224", "mag": 2.7, "time": 1506729701559, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9689, 62.8827, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38015152", "mag": 2.71, "time": 1506729570740, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.046167, 33.172833, 9.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16989254", "mag": 1.6, "time": 1506729481572, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.2839, 51.9212, 67.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16950219", "mag": 1.3, "time": 1506729013003, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.9672, 64.4141, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16950216", "mag": 1.6, "time": 1506728300228, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1933, 61.9028, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax17", "mag": 4.7, "time": 1506727132760, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 120.696, 13.6996, 135.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16949390", "mag": 2.0, "time": 1506727039137, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6767, 61.5138, 15.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16949386", "mag": 1.2, "time": 1506726713734, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3628, 64.9795, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72901936", "mag": 1.7, "time": 1506726391160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.822, 37.604667, 4.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38015128", "mag": 1.14, "time": 1506725917420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.794167, 33.499833, 4.55 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax0h", "mag": 4.3, "time": 1506725523560, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.9693, 6.7514, 162.39 ] } }, - { "type": "Feature", "properties": { "id": "nc72901926", "mag": 1.27, "time": 1506725219450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819667, 37.6045, 3.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16989247", "mag": 1.4, "time": 1506725194385, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2194, 60.3483, 70.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72901921", "mag": 1.68, "time": 1506724972140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.7985, 38.0515, 10.15 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0b0", "mag": 4.2, "time": 1506724750370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.7775, 14.8225, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awzq", "mag": 4.2, "time": 1506724590080, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.1967, -31.7027, 34.99 ] } }, - { "type": "Feature", "properties": { "id": "uu60250212", "mag": 1.71, "time": 1506723678770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.33, 44.419, 8.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16948452", "mag": 1.0, "time": 1506723638356, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5236, 61.0736, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60250207", "mag": 0.97, "time": 1506723591620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.331, 44.419667, 7.85 ] } }, - { "type": "Feature", "properties": { "id": "ak16948450", "mag": 2.2, "time": 1506723243356, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3899, 51.6225, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16989243", "mag": 1.8, "time": 1506723039650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.6224, 58.8526, 127.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38015088", "mag": 2.26, "time": 1506722552150, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2355, 34.1175, 22.24 ] } }, - { "type": "Feature", "properties": { "id": "us2000awz1", "mag": 4.9, "time": 1506721850800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0878, 15.2008, 58.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000awyk", "mag": 3.0, "time": 1506721368710, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -126.71, 43.4329, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awyj", "mag": 2.5, "time": 1506721170670, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.8727, 36.4662, 8.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16948433", "mag": 1.1, "time": 1506720878279, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3481, 63.5145, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38015064", "mag": 1.38, "time": 1506720751740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.9775, 33.998333, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72901896", "mag": 1.79, "time": 1506720632350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.822, 37.604667, 3.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16948427", "mag": 2.1, "time": 1506720336314, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3588, 61.6517, 20.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72901891", "mag": 2.87, "time": 1506720104700, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.352667, 38.643167, 5.77 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax7e", "mag": 2.5, "time": 1506719402880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.5572, 49.4225, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awxt", "mag": 4.4, "time": 1506718802820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8406, 16.1453, 55.29 ] } }, - { "type": "Feature", "properties": { "id": "nc72901871", "mag": 1.92, "time": 1506717945880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.878667, 37.535, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38015016", "mag": 1.05, "time": 1506717237070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.142333, 33.336167, -0.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000awx6", "mag": 4.7, "time": 1506717060150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3377, 14.7629, 21.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72901856", "mag": 1.02, "time": 1506716541140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.722, 38.777668, 1.65 ] } }, - { "type": "Feature", "properties": { "id": "mb80258329", "mag": 1.68, "time": 1506716143860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.210167, 46.588333, 0.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16989238", "mag": 1.6, "time": 1506715318085, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.6762, 51.2251, 46.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38015000", "mag": 1.05, "time": 1506715194050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.174667, 33.223167, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16989237", "mag": 1.3, "time": 1506715107803, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4109, 51.6654, 14.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16989236", "mag": 1.8, "time": 1506714300796, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.0656, 51.6073, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16946778", "mag": 1.8, "time": 1506713921345, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0358, 59.8156, 103.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000awvi", "mag": 4.7, "time": 1506713408290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8244, 14.6951, 25.26 ] } }, - { "type": "Feature", "properties": { "id": "us2000awvc", "mag": 5.3, "time": 1506713101350, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 160.0808, 53.2159, 47.81 ] } }, - { "type": "Feature", "properties": { "id": "nc72901811", "mag": 1.13, "time": 1506712684050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.839833, 37.5695, 1.15 ] } }, - { "type": "Feature", "properties": { "id": "ci38014936", "mag": 1.22, "time": 1506711284740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.962833, 36.582167, 5.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16945947", "mag": 1.1, "time": 1506711226973, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7372, 61.7159, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "uw61335536", "mag": 1.21, "time": 1506711131520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.5445, 46.492667, -1.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72901801", "mag": 1.03, "time": 1506711093580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.840332, 38.841, 1.28 ] } }, - { "type": "Feature", "properties": { "id": "ci38014904", "mag": 1.27, "time": 1506710840540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.351833, 35.050333, -1.01 ] } }, - { "type": "Feature", "properties": { "id": "nc72901786", "mag": 1.25, "time": 1506710565410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.638, 38.771, 3.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72901781", "mag": 1.14, "time": 1506710562310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.813333, 37.477, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax1j", "mag": 2.6, "time": 1506708957540, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -126.9812, 40.4991, 10.41 ] } }, - { "type": "Feature", "properties": { "id": "uu60250167", "mag": 1.43, "time": 1506708811550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.408333, 42.627833, 0.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16945940", "mag": 2.2, "time": 1506708598408, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1805, 65.8694, 11.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000awu0", "mag": 4.4, "time": 1506708535930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.7041, -29.9428, 24.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16989230", "mag": 1.2, "time": 1506708266694, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.5133, 51.924, 29.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72901741", "mag": 0.97, "time": 1506707146210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.823167, 37.608833, 3.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16945938", "mag": 1.3, "time": 1506706984307, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.5563, 65.3108, 1.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16945133", "mag": 1.4, "time": 1506706312872, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5157, 60.0338, 76.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16945129", "mag": 1.8, "time": 1506705516485, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4094, 62.2086, 43.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72901691", "mag": 1.19, "time": 1506705001740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819833, 37.604, 4.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16945122", "mag": 2.7, "time": 1506704480054, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3979, 51.6138, 9.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16945116", "mag": 1.6, "time": 1506703818483, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7333, 62.8722, 95.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72901686", "mag": 1.37, "time": 1506703671060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.763167, 38.815, 1.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16989222", "mag": 1.3, "time": 1506703480244, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.9223, 60.0784, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000aws4", "mag": 4.2, "time": 1506703454020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.2978, -24.5018, 178.46 ] } }, - { "type": "Feature", "properties": { "id": "ak16945111", "mag": 1.4, "time": 1506703443591, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3415, 60.1469, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aws9", "mag": 2.8, "time": 1506703434610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.561, 46.8309, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16945098", "mag": 2.9, "time": 1506703414975, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.2265, 52.0599, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72901676", "mag": 1.08, "time": 1506702827030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8685, 37.573667, 2.96 ] } }, - { "type": "Feature", "properties": { "id": "ci38014752", "mag": 1.38, "time": 1506702364640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9525, 33.161667, 8.71 ] } }, - { "type": "Feature", "properties": { "id": "nc72901666", "mag": 2.1, "time": 1506702098440, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.822, 37.604167, 4.23 ] } }, - { "type": "Feature", "properties": { "id": "hv61926636", "mag": 2.18, "time": 1506702014920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.601833, 20.052667, 34.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16944301", "mag": 1.2, "time": 1506702004530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4859, 61.9357, 38.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000awn9", "mag": 4.6, "time": 1506701320270, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 30.6565, 36.9513, 89.38 ] } }, - { "type": "Feature", "properties": { "id": "nc72901651", "mag": 1.66, "time": 1506701302480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.628333, 36.892667, -0.13 ] } }, - { "type": "Feature", "properties": { "id": "us2000awp8", "mag": 5.0, "time": 1506701291670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 143.8294, 21.3911, 69.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16944298", "mag": 1.9, "time": 1506700558070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3591, 59.6184, 107.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16944296", "mag": 1.5, "time": 1506699999652, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.347, 60.6887, 39.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16944295", "mag": 2.3, "time": 1506699741265, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.4266, 51.6803, 2.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16944283", "mag": 3.0, "time": 1506699614700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.523, 51.6975, 12.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989214", "mag": 1.4, "time": 1506699333969, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.5572, 51.8006, 17.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16944280", "mag": 1.6, "time": 1506699330322, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4554, 63.4968, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000awju", "mag": 4.4, "time": 1506698634990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.674, 15.7931, 74.04 ] } }, - { "type": "Feature", "properties": { "id": "nc72901616", "mag": 1.45, "time": 1506698546300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.190833, 36.066, 9.01 ] } }, - { "type": "Feature", "properties": { "id": "nc72901611", "mag": 1.16, "time": 1506698374110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820167, 37.606167, 4.24 ] } }, - { "type": "Feature", "properties": { "id": "uu60250142", "mag": 1.31, "time": 1506698139210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.502167, 42.0255, -0.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16989212", "mag": 1.5, "time": 1506697780188, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1692, 61.0412, 92.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72901601", "mag": 1.58, "time": 1506697356900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8215, 37.603833, 3.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16944278", "mag": 1.3, "time": 1506696524699, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.2498, 63.4064, 80.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16943485", "mag": 1.7, "time": 1506695993154, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7332, 58.8106, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16943478", "mag": 1.7, "time": 1506695477590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7502, 58.8134, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000awj3", "mag": 2.5, "time": 1506695343600, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.0981, 36.3324, 6.543 ] } }, - { "type": "Feature", "properties": { "id": "ak16943471", "mag": 2.5, "time": 1506695221683, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.9597, 58.9824, 104.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60250137", "mag": 1.65, "time": 1506694436450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.506667, 42.031167, 2.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16943466", "mag": 1.3, "time": 1506694161233, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3879, 63.5817, 1.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989205", "mag": 2.0, "time": 1506693991548, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.2136, 52.0676, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72901566", "mag": 2.08, "time": 1506693960730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.862333, 37.5625, 4.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16943439", "mag": 1.3, "time": 1506693558920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0206, 61.729, 33.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38014568", "mag": 2.51, "time": 1506693023860, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.270167, 33.67, 4.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000awib", "mag": 5.0, "time": 1506692997440, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 67.9437, 39.8728, 20.04 ] } }, - { "type": "Feature", "properties": { "id": "nc72901551", "mag": 1.74, "time": 1506692955010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821167, 37.605667, 4.05 ] } }, - { "type": "Feature", "properties": { "id": "nc72901546", "mag": 2.76, "time": 1506692724780, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.822, 37.606167, 4.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16942648", "mag": 1.5, "time": 1506692473989, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3697, 60.1847, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60250132", "mag": 1.79, "time": 1506692243980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.431, 42.543833, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80258279", "mag": 1.06, "time": 1506691959070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.531833, 46.8625, 13.38 ] } }, - { "type": "Feature", "properties": { "id": "nc72901536", "mag": 1.82, "time": 1506691724930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821, 37.605667, 4.02 ] } }, - { "type": "Feature", "properties": { "id": "nn00607504", "mag": 1.8, "time": 1506690215490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.7002, 37.7048, 16.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16942645", "mag": 2.8, "time": 1506689890335, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.2102, 52.0495, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61926461", "mag": 1.62, "time": 1506689375520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.457667, 19.1075, 28.777 ] } }, - { "type": "Feature", "properties": { "id": "ci38014488", "mag": 1.71, "time": 1506688966950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.030167, 36.589833, 2.83 ] } }, - { "type": "Feature", "properties": { "id": "uu60250122", "mag": 1.68, "time": 1506688495310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.410833, 42.548333, 8.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38014464", "mag": 1.51, "time": 1506688363340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.292833, 33.924, 11.12 ] } }, - { "type": "Feature", "properties": { "id": "uu60250117", "mag": 1.2, "time": 1506688147640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.451, 42.651167, 3.75 ] } }, - { "type": "Feature", "properties": { "id": "nn00607501", "mag": 1.5, "time": 1506687351344, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1244, 38.2711, 14.1 ] } }, - { "type": "Feature", "properties": { "id": "mb80258269", "mag": 1.01, "time": 1506686927230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.712667, 47.670333, 12.54 ] } }, - { "type": "Feature", "properties": { "id": "hv61926436", "mag": 2.78, "time": 1506686302190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.030667, 19.839833, 12.705 ] } }, - { "type": "Feature", "properties": { "id": "ak16941853", "mag": 1.9, "time": 1506685697166, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2959, 57.1271, 73.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000awh4", "mag": 4.5, "time": 1506685520260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0117, 15.1312, 54.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16941849", "mag": 1.4, "time": 1506685238756, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2101, 65.8679, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000awh2", "mag": 3.2, "time": 1506684953300, "felt": 21, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -105.3739, 35.8708, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72901446", "mag": 1.81, "time": 1506683864270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8685, 37.5745, 2.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16989195", "mag": 2.8, "time": 1506683238639, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.2168, 53.4134, 215.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16941846", "mag": 2.8, "time": 1506683013276, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4342, 51.6411, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38014408", "mag": 1.09, "time": 1506682934740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.248167, 34.684167, 3.67 ] } }, - { "type": "Feature", "properties": { "id": "ci38014400", "mag": 1.41, "time": 1506682423780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.6475, 32.295833, 17.59 ] } }, - { "type": "Feature", "properties": { "id": "uw61335391", "mag": 1.31, "time": 1506682259150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.713833, 45.779, 4.47 ] } }, - { "type": "Feature", "properties": { "id": "nn00607493", "mag": 1.3, "time": 1506681999912, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1157, 38.2921, 8.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000awgp", "mag": 4.0, "time": 1506681630910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.1308, 51.5953, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38014376", "mag": 2.27, "time": 1506680323320, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.236167, 34.686333, 2.51 ] } }, - { "type": "Feature", "properties": { "id": "nc72901411", "mag": 1.72, "time": 1506679482310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821833, 37.606833, 4.18 ] } }, - { "type": "Feature", "properties": { "id": "uu60250092", "mag": 1.5, "time": 1506678952480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.408833, 42.556667, 7.57 ] } }, - { "type": "Feature", "properties": { "id": "nc72901396", "mag": 1.23, "time": 1506677982920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.0275, 36.556333, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38014304", "mag": 1.52, "time": 1506677845800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.798333, 33.502667, 4.26 ] } }, - { "type": "Feature", "properties": { "id": "uu60250087", "mag": 1.18, "time": 1506677776470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.772667, 41.2685, 12.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000awgf", "mag": 4.7, "time": 1506677102490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 143.7467, 21.3618, 39.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16989192", "mag": 1.2, "time": 1506676690210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7405, 63.338, 95.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38014288", "mag": 1.53, "time": 1506676635710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.671, 33.215333, 3.29 ] } }, - { "type": "Feature", "properties": { "id": "nc72901376", "mag": 1.15, "time": 1506676399250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.721832, 38.776001, 1.56 ] } }, - { "type": "Feature", "properties": { "id": "nc72901366", "mag": 1.25, "time": 1506676178310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.838167, 37.489833, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00607489", "mag": 1.9, "time": 1506676166910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2245, 38.4923, 40.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989191", "mag": 1.8, "time": 1506675279572, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.0102, 58.492, 85.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989190", "mag": 1.3, "time": 1506674952846, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1298, 60.9057, 47.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000awfl", "mag": 4.4, "time": 1506674809710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.929, 14.9856, 43.22 ] } }, - { "type": "Feature", "properties": { "id": "uu60250082", "mag": 1.77, "time": 1506674053050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.7785, 38.186667, 4.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16989188", "mag": 1.8, "time": 1506673945397, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.291, 51.5518, 1.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16940268", "mag": 1.1, "time": 1506673847917, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1687, 63.2488, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72901291", "mag": 1.25, "time": 1506673221590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.898667, 37.523167, 12.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16940267", "mag": 1.0, "time": 1506672847451, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5017, 66.1069, 17.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38014192", "mag": 1.18, "time": 1506671965070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.4335, 34.163833, 7.61 ] } }, - { "type": "Feature", "properties": { "id": "us2000awf5", "mag": 4.2, "time": 1506671826720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 90.3467, 33.9272, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00607584", "mag": 1.4, "time": 1506671521193, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1177, 38.2758, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38014184", "mag": 2.46, "time": 1506671466000, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.978833, 33.994167, 4.88 ] } }, - { "type": "Feature", "properties": { "id": "nn00607484", "mag": 1.8, "time": 1506671441804, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1188, 38.2704, 11.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72901256", "mag": 1.15, "time": 1506670814700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8105, 38.808833, 0.67 ] } }, - { "type": "Feature", "properties": { "id": "nc72901241", "mag": 1.25, "time": 1506670284580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.989667, 36.427667, 2.31 ] } }, - { "type": "Feature", "properties": { "id": "nc72901231", "mag": 1.07, "time": 1506669441060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.540833, 37.406667, 8.01 ] } }, - { "type": "Feature", "properties": { "id": "uw61335361", "mag": 1.94, "time": 1506668594230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.733667, 47.824, 24.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000awej", "mag": 4.2, "time": 1506668295660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 55.3123, 28.2886, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72901196", "mag": 0.96, "time": 1506668052570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.571833, 36.012667, 3.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16940266", "mag": 1.2, "time": 1506668048758, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.5877, 62.1976, 22.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72901186", "mag": 1.14, "time": 1506667805720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.848167, 37.6535, 2.83 ] } }, - { "type": "Feature", "properties": { "id": "nc72901176", "mag": 1.25, "time": 1506667100210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.838333, 37.506167, 0.64 ] } }, - { "type": "Feature", "properties": { "id": "nc72901171", "mag": 2.27, "time": 1506666779210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.835333, 37.507167, -1.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16940265", "mag": 1.4, "time": 1506666562961, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3945, 61.6303, 33.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16940263", "mag": 1.0, "time": 1506666497414, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1712, 62.2695, 52.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72901166", "mag": 1.28, "time": 1506666202970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834167, 37.5065, 0.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000awe6", "mag": 2.6, "time": 1506666160200, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.6816, 35.8653, 6.569 ] } }, - { "type": "Feature", "properties": { "id": "nn00607469", "mag": 1.0, "time": 1506665961601, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.5308, 38.52, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38014104", "mag": 1.28, "time": 1506665954550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.982833, 33.1725, 3.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16989182", "mag": 1.1, "time": 1506665936336, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.485, 62.1641, 22.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72901156", "mag": 2.23, "time": 1506665326530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8385, 37.505167, 1.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72901146", "mag": 3.34, "time": 1506665130490, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8355, 37.5055, 1.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16989181", "mag": 1.9, "time": 1506664620963, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.5107, 52.4839, 24.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72901116", "mag": 1.16, "time": 1506664498090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.824833, 37.605667, 4.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16939483", "mag": 1.1, "time": 1506663985990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9358, 61.1521, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72901106", "mag": 1.19, "time": 1506663736480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.78717, 38.829334, 1.02 ] } }, - { "type": "Feature", "properties": { "id": "nm60207436", "mag": 1.74, "time": 1506663708600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.653833, 36.539667, 9.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000awdv", "mag": 4.5, "time": 1506663030100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.5233, -24.0812, 546.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16939475", "mag": 1.7, "time": 1506662432885, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8708, 60.1234, 43.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60250077", "mag": 1.14, "time": 1506662404800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.55, 41.1085, 19.56 ] } }, - { "type": "Feature", "properties": { "id": "nc72901046", "mag": 1.46, "time": 1506661869950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.846833, 37.647833, 3.02 ] } }, - { "type": "Feature", "properties": { "id": "ci38013856", "mag": 2.0, "time": 1506660542280, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.978, 33.995, 4.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16989177", "mag": 1.2, "time": 1506660008320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4686, 63.102, 104.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16945113", "mag": 2.3, "time": 1506659927913, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.0654, 53.6407, 46.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000awd5", "mag": 5.0, "time": 1506659595610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1021, 14.8894, 24.04 ] } }, - { "type": "Feature", "properties": { "id": "nc72901021", "mag": 1.62, "time": 1506659436560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.826833, 38.814, 1.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000awd1", "mag": 3.0, "time": 1506658713990, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.6968, 35.8549, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80258249", "mag": 2.26, "time": 1506658662520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.514, 46.840833, 13.41 ] } }, - { "type": "Feature", "properties": { "id": "ci38013816", "mag": 1.03, "time": 1506658457830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.02, 34.015, 13.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16938672", "mag": 1.1, "time": 1506657671332, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.311, 64.8546, 17.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000awcv", "mag": 5.6, "time": 1506657622320, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0465, 14.9039, 21.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16945097", "mag": 2.0, "time": 1506657417279, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.3696, 53.5031, 41.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72900986", "mag": 1.05, "time": 1506657208460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.835833, 37.502333, -0.01 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235973", "mag": 1.64, "time": 1506657154290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.887333, 37.201833, 5.03 ] } }, - { "type": "Feature", "properties": { "id": "nc72900981", "mag": 1.98, "time": 1506656801880, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8045, 38.832333, 1.64 ] } }, - { "type": "Feature", "properties": { "id": "nc72900976", "mag": 1.12, "time": 1506656629400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.758667, 38.793499, 0.77 ] } }, - { "type": "Feature", "properties": { "id": "ci38013768", "mag": 1.6, "time": 1506656062720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.976, 33.995833, 3.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16937888", "mag": 1.8, "time": 1506653782695, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9369, 62.1991, 64.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16989171", "mag": 1.9, "time": 1506653188688, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.5129, 51.845, 110.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61925851", "mag": 0.95, "time": 1506653113010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.463667, 19.481, 6.56 ] } }, - { "type": "Feature", "properties": { "id": "ci38013744", "mag": 1.0, "time": 1506653104110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.302333, 34.099, 15.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000awce", "mag": 4.4, "time": 1506652310280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.7803, 35.9821, 42.36 ] } }, - { "type": "Feature", "properties": { "id": "ci38013736", "mag": 2.07, "time": 1506652304260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.259833, 32.454333, 2.17 ] } }, - { "type": "Feature", "properties": { "id": "ci38013720", "mag": 2.39, "time": 1506651375080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.569, 31.324, 4.82 ] } }, - { "type": "Feature", "properties": { "id": "ci38013712", "mag": 1.12, "time": 1506651359620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.924833, 33.976167, 6.34 ] } }, - { "type": "Feature", "properties": { "id": "nn00607452", "mag": 1.0, "time": 1506651336185, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.1923, 35.5727, 11.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38013704", "mag": 0.97, "time": 1506651243970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7885, 33.494833, 5.39 ] } }, - { "type": "Feature", "properties": { "id": "ci38013688", "mag": 1.05, "time": 1506650990920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.791167, 33.5105, 6.09 ] } }, - { "type": "Feature", "properties": { "id": "ak16937883", "mag": 2.4, "time": 1506650514315, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.9834, 51.7396, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72900931", "mag": 1.16, "time": 1506649983200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.720497, 38.775501, 1.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16937869", "mag": 2.6, "time": 1506649468698, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8838, 61.8075, 66.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60013219", "mag": 1.32, "time": 1506648472160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.687, 41.150667, 12.61 ] } }, - { "type": "Feature", "properties": { "id": "uu60250062", "mag": 2.53, "time": 1506648435990, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.936667, 38.921333, 10.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000awbw", "mag": 4.5, "time": 1506648405500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.976, 52.0498, 29.97 ] } }, - { "type": "Feature", "properties": { "id": "us2000awbq", "mag": 4.9, "time": 1506648161110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.1717, 52.3421, 33.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16937823", "mag": 1.0, "time": 1506648034498, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0631, 63.4906, 4.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16989160", "mag": 1.6, "time": 1506646713769, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.579, 51.7059, 15.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72900911", "mag": 1.15, "time": 1506646505210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834333, 37.504, -0.73 ] } }, - { "type": "Feature", "properties": { "id": "ci38013672", "mag": 2.61, "time": 1506646378780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.570333, 31.324667, 4.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16937047", "mag": 1.0, "time": 1506646107258, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4881, 63.0417, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16937045", "mag": 1.9, "time": 1506646058692, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.135, 67.8468, 16.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72900906", "mag": 1.03, "time": 1506645880090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.876831, 38.8405, 2.17 ] } }, - { "type": "Feature", "properties": { "id": "nc72900886", "mag": 1.63, "time": 1506645570060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.818333, 38.816667, 2.21 ] } }, - { "type": "Feature", "properties": { "id": "ci38013656", "mag": 2.24, "time": 1506645489800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.313, 34.094167, 17.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38013632", "mag": 1.51, "time": 1506645195410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7955, 33.502667, 3.76 ] } }, - { "type": "Feature", "properties": { "id": "nc72900876", "mag": 1.03, "time": 1506644780060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.818, 37.470667, 1.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72900871", "mag": 1.62, "time": 1506644672730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.585667, 37.234667, 6.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16937041", "mag": 1.3, "time": 1506644621941, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3267, 62.8222, 57.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16937039", "mag": 1.7, "time": 1506644576562, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.2144, 60.0462, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16937037", "mag": 1.1, "time": 1506644052798, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.3512, 58.196, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16989154", "mag": 1.6, "time": 1506643362489, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3692, 51.6466, 12.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16937036", "mag": 1.4, "time": 1506643250597, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7379, 61.4006, 18.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000awbb", "mag": 4.9, "time": 1506643017480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 144.7489, 19.052, 30.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16989677", "mag": 1.5, "time": 1506642839250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8862, 61.8988, 105.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16936268", "mag": 1.2, "time": 1506642106483, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9604, 62.3327, 42.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00607431", "mag": 1.9, "time": 1506641437450, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.5187, 36.978, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72900841", "mag": 1.93, "time": 1506641348540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821, 37.606667, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72900846", "mag": 1.13, "time": 1506641325970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.818833, 37.608333, 4.24 ] } }, - { "type": "Feature", "properties": { "id": "nc72904266", "mag": 0.96, "time": 1506641269180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.0985, 41.357, -1.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16989674", "mag": 1.6, "time": 1506641141934, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9034, 59.5213, 94.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000awa2", "mag": 4.4, "time": 1506640604400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.6403, 51.5228, 41.23 ] } }, - { "type": "Feature", "properties": { "id": "nn00607821", "mag": 1.1, "time": 1506640364409, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9062, 38.3722, 8.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw9p", "mag": 5.4, "time": 1506640275740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.7911, -24.8725, 440.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1wl", "mag": 4.8, "time": 1506639694670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.5676, 1.0849, 4.38 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw9e", "mag": 4.7, "time": 1506639688220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 133.3331, 2.9053, 15.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16989671", "mag": 1.7, "time": 1506639639127, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3134, 59.6717, 111.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16936241", "mag": 2.5, "time": 1506639635527, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1768, 68.4586, 17.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72900821", "mag": 1.1, "time": 1506639127150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834833, 37.500333, -1.77 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw90", "mag": 5.1, "time": 1506638831750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.5949, -34.0499, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw8l", "mag": 4.3, "time": 1506638537770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 130.4998, -6.5326, 108.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72900811", "mag": 2.32, "time": 1506638416610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.1135, 35.6885, 5.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72900806", "mag": 1.35, "time": 1506638081190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.878833, 37.534, 2.41 ] } }, - { "type": "Feature", "properties": { "id": "uw61335056", "mag": 1.84, "time": 1506638058160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.417833, 45.624333, -1.28 ] } }, - { "type": "Feature", "properties": { "id": "mb80258209", "mag": 1.37, "time": 1506637878310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.521333, 46.910833, 10.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16935473", "mag": 1.9, "time": 1506637576311, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.5454, 67.5431, 1.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16935469", "mag": 2.0, "time": 1506637236181, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4826, 58.8115, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16989667", "mag": 2.0, "time": 1506636836791, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4008, 59.8707, 143.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16989666", "mag": 1.1, "time": 1506636594038, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2636, 62.56, 91.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72900796", "mag": 1.35, "time": 1506636488490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.710833, 38.743, 2.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16935467", "mag": 1.1, "time": 1506635722873, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2148, 64.8337, 24.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16989663", "mag": 1.2, "time": 1506634878192, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0761, 62.868, 105.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw7x", "mag": 3.3, "time": 1506634428280, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 19.9413, 39.9063, 10.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16989662", "mag": 1.3, "time": 1506634090975, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8044, 63.1677, 125.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1wj", "mag": 4.0, "time": 1506633989680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 150.778, 49.1768, 363.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16935454", "mag": 2.6, "time": 1506633516577, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9288, 61.8846, 49.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16935459", "mag": 2.8, "time": 1506633516034, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7041, 61.8689, 59.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00607410", "mag": 2.0, "time": 1506633382650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9234, 38.4032, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16935451", "mag": 1.7, "time": 1506632963331, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.6029, 62.2054, 19.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38013352", "mag": 1.79, "time": 1506632691350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.990833, 33.765333, 14.42 ] } }, - { "type": "Feature", "properties": { "id": "nn00607723", "mag": 1.0, "time": 1506632347835, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1182, 38.2802, 11.5 ] } }, - { "type": "Feature", "properties": { "id": "hv61925221", "mag": 1.37, "time": 1506631999030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.430333, 19.4155, 3.336 ] } }, - { "type": "Feature", "properties": { "id": "ak16935443", "mag": 2.3, "time": 1506631969817, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.484, 61.7831, 31.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw54", "mag": 2.4, "time": 1506631716330, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.3897, 35.6755, 5.86 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw51", "mag": 4.7, "time": 1506631326570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.2381, -7.2814, 142.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16989658", "mag": 1.3, "time": 1506630830832, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5815, 63.2958, 125.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16935439", "mag": 1.8, "time": 1506629924653, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1989, 60.9639, 35.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38013336", "mag": 1.94, "time": 1506629828900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.131167, 32.218833, 17.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16989656", "mag": 1.2, "time": 1506629660078, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0033, 63.1036, 120.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80258194", "mag": 1.36, "time": 1506628850530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525833, 46.870167, 10.85 ] } }, - { "type": "Feature", "properties": { "id": "ak16989655", "mag": 1.6, "time": 1506628609513, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2274, 59.9548, 119.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989654", "mag": 1.5, "time": 1506627145969, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4925, 59.606, 72.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72900741", "mag": 1.19, "time": 1506626419400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.631667, 36.039167, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16989653", "mag": 1.4, "time": 1506626367074, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3296, 60.9023, 42.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000aw2q", "mag": 4.9, "time": 1506625864960, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -84.1381, 3.222, 33.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60249967", "mag": 1.41, "time": 1506625553170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.457167, 42.614667, 6.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16933835", "mag": 2.9, "time": 1506625397763, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -171.0327, 52.1592, 53.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38013288", "mag": 1.11, "time": 1506625160340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.118167, 33.2435, 12.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16989651", "mag": 1.3, "time": 1506624662212, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6565, 62.7268, 75.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00607390", "mag": 1.2, "time": 1506624316884, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.0954, 35.994, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16933797", "mag": 2.1, "time": 1506623643983, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.596, 60.994, 73.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16933794", "mag": 1.9, "time": 1506623613173, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8361, 62.7886, 1.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38013264", "mag": 1.24, "time": 1506622262550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.530333, 35.347, 5.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16989648", "mag": 1.6, "time": 1506621791811, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5986, 59.752, 76.2 ] } }, - { "type": "Feature", "properties": { "id": "hv61924821", "mag": 2.4, "time": 1506621499160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.122167, 19.331, 7.032 ] } }, - { "type": "Feature", "properties": { "id": "ak16933793", "mag": 1.6, "time": 1506621344909, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8725, 59.9048, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72900701", "mag": 1.21, "time": 1506621263930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.129833, 36.62, 9.54 ] } }, - { "type": "Feature", "properties": { "id": "mb80258169", "mag": 1.95, "time": 1506620957630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.495833, 46.896167, 10.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16989646", "mag": 1.2, "time": 1506620810224, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5002, 61.5482, 31.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72900691", "mag": 1.44, "time": 1506620029980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.995833, 39.427167, 0.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16989645", "mag": 1.5, "time": 1506619134173, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0379, 60.1776, 121.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38013232", "mag": 1.17, "time": 1506618737450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792167, 33.506833, 5.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000avzh", "mag": 4.6, "time": 1506618485320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.5691, 2.1483, 97.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000avzb", "mag": 4.9, "time": 1506617586500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 120.0401, 6.0164, 50.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16933018", "mag": 1.2, "time": 1506617374262, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7645, 61.7278, 64.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61924676", "mag": 1.37, "time": 1506617124930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.142167, 19.3215, 5.152 ] } }, - { "type": "Feature", "properties": { "id": "ak16989643", "mag": 1.6, "time": 1506616564611, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.8062, 60.4189, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16989642", "mag": 1.4, "time": 1506615776447, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9273, 61.5228, 95.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989641", "mag": 1.3, "time": 1506615666771, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3551, 60.8947, 43.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000avyw", "mag": 2.7, "time": 1506615478140, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4394, 42.5767, 8.98 ] } }, - { "type": "Feature", "properties": { "id": "nc72900646", "mag": 1.38, "time": 1506615468050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.0045, 36.4415, 0.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16989640", "mag": 1.3, "time": 1506615161794, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0408, 63.589, 132.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16989639", "mag": 1.2, "time": 1506615119980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3231, 63.0526, 91.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16933017", "mag": 2.0, "time": 1506614678900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.3488, 68.1439, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16989637", "mag": 2.0, "time": 1506614163379, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.1177, 57.8245, 115.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72900616", "mag": 1.97, "time": 1506613917930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.833833, 37.506167, 0.46 ] } }, - { "type": "Feature", "properties": { "id": "ak16933016", "mag": 1.5, "time": 1506613537003, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1247, 62.197, 80.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72900606", "mag": 1.53, "time": 1506612805340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.996667, 39.425333, 0.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16989634", "mag": 1.6, "time": 1506612409300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4495, 58.785, 109.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989633", "mag": 1.3, "time": 1506612360069, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6854, 61.515, 2.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000avy5", "mag": 2.4, "time": 1506612136390, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.1391, 37.351, 10.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16932254", "mag": 1.6, "time": 1506612041072, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9819, 62.3692, 40.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000avxu", "mag": 2.3, "time": 1506611699680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.3926, 36.3885, 15.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16932252", "mag": 1.4, "time": 1506611616543, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7975, 61.8375, 20.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72900586", "mag": 1.03, "time": 1506611392120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.821335, 38.808834, 2.14 ] } }, - { "type": "Feature", "properties": { "id": "nc72900581", "mag": 1.68, "time": 1506611003850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.995167, 39.428167, 0.76 ] } }, - { "type": "Feature", "properties": { "id": "nc72900571", "mag": 3.21, "time": 1506610414710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.1635, 40.137833, 15.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16932251", "mag": 2.9, "time": 1506610104421, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.9091, 51.7632, 40.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60249947", "mag": 1.1, "time": 1506608975840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.421333, 42.593667, 5.84 ] } }, - { "type": "Feature", "properties": { "id": "nc72900556", "mag": 1.09, "time": 1506608575910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821333, 37.6065, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60249942", "mag": 1.52, "time": 1506608341480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.415667, 42.591167, 5.46 ] } }, - { "type": "Feature", "properties": { "id": "ak16932247", "mag": 2.1, "time": 1506608150712, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4995, 59.282, 98.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16989627", "mag": 1.2, "time": 1506607597338, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5495, 63.4604, 104.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16989625", "mag": 1.6, "time": 1506607488149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3463, 61.0393, 106.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16932246", "mag": 1.4, "time": 1506606933995, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1075, 61.1056, 49.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16932241", "mag": 2.4, "time": 1506606217414, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3566, 59.8225, 132.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00607373", "mag": 1.4, "time": 1506605920785, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.4887, 38.6992, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989622", "mag": 1.0, "time": 1506605668248, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.09, 62.8911, 77.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16932239", "mag": 1.5, "time": 1506605540122, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5382, 63.0052, 72.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72900531", "mag": 1.45, "time": 1506605237980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.023333, 37.519667, 2.73 ] } }, - { "type": "Feature", "properties": { "id": "uw61334636", "mag": 1.41, "time": 1506604992060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.905, 48.235833, 11.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16989620", "mag": 1.1, "time": 1506604766781, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9752, 64.7557, 17.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72900521", "mag": 1.23, "time": 1506604242090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.078, 37.663333, 7.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16989619", "mag": 1.3, "time": 1506603071727, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.42, 61.0462, 108.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60249937", "mag": 2.05, "time": 1506602964450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.440333, 42.584, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16931481", "mag": 1.0, "time": 1506601991313, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.596, 66.821, 3.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16989616", "mag": 1.3, "time": 1506601744056, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1565, 57.9069, 53.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16989615", "mag": 1.2, "time": 1506601651411, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3908, 68.9058, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16931479", "mag": 1.4, "time": 1506601472327, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4079, 61.6728, 40.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16931477", "mag": 1.1, "time": 1506601302752, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8998, 65.8646, 6.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72900496", "mag": 1.36, "time": 1506601178090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.88, 37.535, 2.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16931475", "mag": 1.2, "time": 1506600842484, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.174, 61.7151, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72900446", "mag": 2.75, "time": 1506598677940, "felt": 11, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.825333, 38.840167, 1.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16930710", "mag": 2.2, "time": 1506598490657, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4189, 62.1612, 87.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000avvw", "mag": 5.3, "time": 1506598185690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.558, 28.7786, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16989610", "mag": 1.2, "time": 1506597726479, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1805, 63.0271, 90.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72900431", "mag": 1.92, "time": 1506596753080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.485667, 38.5015, 5.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16989609", "mag": 1.5, "time": 1506596722964, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.1313, 51.5863, 44.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16930709", "mag": 1.4, "time": 1506596180091, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9834, 61.0931, 56.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16930708", "mag": 3.1, "time": 1506595515294, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 176.7195, 51.6195, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16989606", "mag": 1.5, "time": 1506595427986, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.5238, 51.5739, 68.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72900416", "mag": 1.17, "time": 1506594935360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.096, 36.553167, 9.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16930706", "mag": 1.2, "time": 1506593895889, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.338, 63.1851, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38012984", "mag": 1.12, "time": 1506593315340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.6855, 35.838833, 4.14 ] } }, - { "type": "Feature", "properties": { "id": "nc72900391", "mag": 1.49, "time": 1506592222290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.823333, 37.607, 4.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16930705", "mag": 1.1, "time": 1506591630653, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3689, 61.3755, 23.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38012952", "mag": 1.31, "time": 1506591135600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.834333, 32.734667, 5.37 ] } }, - { "type": "Feature", "properties": { "id": "hv61924526", "mag": 1.45, "time": 1506590418070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.421333, 19.392167, 9.534 ] } }, - { "type": "Feature", "properties": { "id": "nc72900381", "mag": 1.63, "time": 1506590284210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.2205, 38.063167, 9.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000avu4", "mag": 4.4, "time": 1506589563580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.6261, -23.7242, 196.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16989602", "mag": 2.7, "time": 1506589434755, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.4192, 52.1877, 22.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38012928", "mag": 1.18, "time": 1506589107820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7675, 33.325167, 12.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16989601", "mag": 1.5, "time": 1506589104993, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4957, 51.6758, 15.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16929945", "mag": 2.3, "time": 1506588754779, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7058, 62.131, 34.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16929940", "mag": 2.6, "time": 1506588542400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.6191, 66.8364, 10.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00607351", "mag": 1.4, "time": 1506588343442, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9118, 38.3801, 6.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16929936", "mag": 2.0, "time": 1506587984225, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4437, 61.9903, 29.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80258129", "mag": 1.62, "time": 1506587784100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525167, 46.868167, 10.62 ] } }, - { "type": "Feature", "properties": { "id": "nc72900351", "mag": 1.19, "time": 1506586386820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.880833, 37.536333, 3.07 ] } }, - { "type": "Feature", "properties": { "id": "us2000avte", "mag": 4.7, "time": 1506586379850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 117.1706, -10.7291, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000avtg", "mag": 5.3, "time": 1506586316130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 145.2449, 20.2657, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16929174", "mag": 2.3, "time": 1506586272361, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7694, 61.6101, 47.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72900346", "mag": 1.18, "time": 1506586053100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.823, 37.610167, 4.21 ] } }, - { "type": "Feature", "properties": { "id": "uw61334586", "mag": 2.19, "time": 1506585933680, "felt": 9, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.6315, 48.074, -0.77 ] } }, - { "type": "Feature", "properties": { "id": "nn00607345", "mag": 1.8, "time": 1506585602623, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6237, 38.7874, 8.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16929171", "mag": 1.6, "time": 1506585414754, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.1681, 58.2365, 0.7 ] } }, - { "type": "Feature", "properties": { "id": "hv61924441", "mag": 1.7, "time": 1506585350220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.865167, 19.430333, 13.243 ] } }, - { "type": "Feature", "properties": { "id": "nc72900326", "mag": 1.41, "time": 1506585322460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.751, 38.783, 2.58 ] } }, - { "type": "Feature", "properties": { "id": "ak16929167", "mag": 2.4, "time": 1506585219017, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.0108, 65.3932, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16929164", "mag": 1.6, "time": 1506585151006, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7632, 61.6155, 48.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607342", "mag": 1.4, "time": 1506584922597, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6325, 38.7911, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16929162", "mag": 1.5, "time": 1506584839080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6957, 59.8727, 1.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80258114", "mag": 1.59, "time": 1506584469140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525167, 46.867333, 10.81 ] } }, - { "type": "Feature", "properties": { "id": "mb80258109", "mag": 1.16, "time": 1506584073450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.53, 46.878167, 13.02 ] } }, - { "type": "Feature", "properties": { "id": "ci38012872", "mag": 1.17, "time": 1506583959450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.817833, 34.8665, 6.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16989588", "mag": 1.8, "time": 1506583466047, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2642, 60.2053, 132.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000awdi", "mag": 1.5, "time": 1506583342200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.1659, 45.241, 4.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000avsq", "mag": 4.8, "time": 1506582689240, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.4054, 37.4649, 44.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16928412", "mag": 1.8, "time": 1506582059678, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.6189, 67.5652, 16.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16928397", "mag": 2.0, "time": 1506580602424, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1188, 61.1485, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16928399", "mag": 1.1, "time": 1506580596261, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8057, 66.0421, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72900281", "mag": 1.14, "time": 1506579131440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.88, 37.5365, 3.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16928394", "mag": 1.6, "time": 1506578908430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0895, 61.7515, 17.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38012840", "mag": 0.96, "time": 1506578825230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.767667, 36.025167, 1.05 ] } }, - { "type": "Feature", "properties": { "id": "ci38012832", "mag": 1.0, "time": 1506578679490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.884833, 33.846833, 11.18 ] } }, - { "type": "Feature", "properties": { "id": "uu60249902", "mag": 1.26, "time": 1506578472190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.285833, 41.514167, 1.58 ] } }, - { "type": "Feature", "properties": { "id": "uu60249897", "mag": 1.56, "time": 1506578161990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4205, 42.5195, 5.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16989578", "mag": 1.2, "time": 1506577617968, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0285, 60.9615, 99.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16927642", "mag": 2.5, "time": 1506576956542, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4519, 60.4702, 49.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16927639", "mag": 1.1, "time": 1506575989243, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9371, 64.4345, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000avrg", "mag": 4.2, "time": 1506575321430, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9228, 16.6784, 58.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16927634", "mag": 1.4, "time": 1506574806948, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9601, 61.6771, 57.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000avr9", "mag": 3.0, "time": 1506574593800, "felt": 16, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.8025, 35.9915, 5.225 ] } }, - { "type": "Feature", "properties": { "id": "nc72900251", "mag": 1.08, "time": 1506573201460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.876833, 37.531833, 2.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16989573", "mag": 1.0, "time": 1506573124099, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1846, 68.5953, 17.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72900241", "mag": 2.37, "time": 1506572664450, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8255, 37.454833, 2.13 ] } }, - { "type": "Feature", "properties": { "id": "nc72900236", "mag": 1.11, "time": 1506572038110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.088333, 36.5915, 6.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16927631", "mag": 2.2, "time": 1506572029624, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.6248, 51.535, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16989570", "mag": 1.3, "time": 1506571605724, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1124, 61.418, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000avr1", "mag": 2.8, "time": 1506571358890, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.1712, 37.3741, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000avqw", "mag": 3.2, "time": 1506571014630, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.1535, 37.3739, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000avr2", "mag": 4.9, "time": 1506570988200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 151.8102, -5.2471, 64.55 ] } }, - { "type": "Feature", "properties": { "id": "nc72900206", "mag": 1.12, "time": 1506569953990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.878833, 37.5315, 2.34 ] } }, - { "type": "Feature", "properties": { "id": "nc72900201", "mag": 1.78, "time": 1506569868050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.191167, 36.174833, 16.31 ] } }, - { "type": "Feature", "properties": { "id": "mb80258089", "mag": 0.96, "time": 1506568483250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5215, 46.872833, 14.45 ] } }, - { "type": "Feature", "properties": { "id": "nc72900166", "mag": 1.94, "time": 1506568350160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.970833, 36.399167, 0.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72900156", "mag": 1.95, "time": 1506567041430, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8805, 37.535167, 2.92 ] } }, - { "type": "Feature", "properties": { "id": "nn00607321", "mag": 1.0, "time": 1506566989487, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.0173, 39.5809, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38012696", "mag": 1.54, "time": 1506566359150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3855, 33.309667, 7.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16926883", "mag": 1.4, "time": 1506564828219, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7449, 64.3314, 9.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16926881", "mag": 1.6, "time": 1506563449576, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7299, 60.5992, 21.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000avqf", "mag": 3.5, "time": 1506563003590, "felt": 11, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -1.5206, 47.8948, 7.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000avq4", "mag": 3.4, "time": 1506562916490, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -83.8862, 9.972, 12.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16926876", "mag": 1.5, "time": 1506562750811, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2038, 62.3276, 80.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16989563", "mag": 2.4, "time": 1506562282380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.5433, 52.3165, 175.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38012648", "mag": 1.44, "time": 1506561221540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.9255, 33.975833, 5.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16989561", "mag": 1.2, "time": 1506560682030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3529, 60.5442, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60249877", "mag": 2.9, "time": 1506560508370, "felt": 9, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.946, 38.905, 8.36 ] } }, - { "type": "Feature", "properties": { "id": "ci38012624", "mag": 1.0, "time": 1506559691050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.812, 36.016833, 1.28 ] } }, - { "type": "Feature", "properties": { "id": "ci38012616", "mag": 1.66, "time": 1506559333880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.939667, 33.686667, 9.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16926874", "mag": 1.3, "time": 1506559196699, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5701, 61.4562, 64.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72900121", "mag": 1.32, "time": 1506558055260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.2635, 39.396667, 0.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16989559", "mag": 1.0, "time": 1506557933118, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9128, 61.7015, 46.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38012608", "mag": 1.47, "time": 1506557437030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.089667, 35.6985, 2.41 ] } }, - { "type": "Feature", "properties": { "id": "nc72900106", "mag": 1.15, "time": 1506556889810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.794, 38.821167, 2.63 ] } }, - { "type": "Feature", "properties": { "id": "nn00607313", "mag": 1.3, "time": 1506556883650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1041, 37.378, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80258084", "mag": 1.57, "time": 1506556538250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526333, 46.874833, 14.66 ] } }, - { "type": "Feature", "properties": { "id": "nn00607310", "mag": 1.6, "time": 1506556172753, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.059, 37.1112, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16926873", "mag": 1.3, "time": 1506556116361, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.4042, 53.8015, 12.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72900096", "mag": 1.12, "time": 1506556022400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.731667, 38.760166, 1.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16988195", "mag": 1.9, "time": 1506555035171, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0633, 60.0089, 114.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000avn9", "mag": 4.2, "time": 1506555004800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 119.4365, -8.2451, 154.02 ] } }, - { "type": "Feature", "properties": { "id": "nc72900086", "mag": 1.16, "time": 1506554882180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.738335, 38.755333, 0.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16926134", "mag": 1.1, "time": 1506554881350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.2845, 60.8545, 21.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16988193", "mag": 1.0, "time": 1506554670593, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1097, 62.4437, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16926036", "mag": 1.3, "time": 1506554241873, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6125, 61.555, 35.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72900081", "mag": 1.22, "time": 1506554024900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.832, 37.5385, 4.78 ] } }, - { "type": "Feature", "properties": { "id": "ci38012576", "mag": 1.27, "time": 1506553539380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.392833, 34.878667, 4.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16926028", "mag": 1.6, "time": 1506553116940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.5885, 67.5732, 17.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38012568", "mag": 1.61, "time": 1506552976740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.758833, 33.666667, 13.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16926026", "mag": 1.6, "time": 1506552344260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6143, 63.0496, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988188", "mag": 1.0, "time": 1506552342400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0102, 64.7419, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16926025", "mag": 1.7, "time": 1506551886678, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4287, 51.666, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60249842", "mag": 1.14, "time": 1506551770950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.297667, 41.517833, 3.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16926021", "mag": 1.0, "time": 1506550963839, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7318, 63.2463, 16.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38012528", "mag": 1.36, "time": 1506549674520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792167, 33.505667, 5.04 ] } }, - { "type": "Feature", "properties": { "id": "us2000avlw", "mag": 4.5, "time": 1506549399140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 123.4716, 24.998, 125.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16988184", "mag": 1.9, "time": 1506549387020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.4366, 51.4823, 54.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72900041", "mag": 1.15, "time": 1506549261590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.745331, 38.788502, 0.88 ] } }, - { "type": "Feature", "properties": { "id": "uu60249832", "mag": 1.22, "time": 1506548944800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.294333, 41.516333, 2.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000avm6", "mag": 4.7, "time": 1506548861390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.5824, 28.7476, 33.11 ] } }, - { "type": "Feature", "properties": { "id": "hv61923721", "mag": 1.68, "time": 1506548248460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.233167, 19.411667, 26.335 ] } }, - { "type": "Feature", "properties": { "id": "ak16988183", "mag": 1.1, "time": 1506547027410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5065, 62.8856, 85.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16988182", "mag": 1.3, "time": 1506546817449, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3499, 60.4052, 65.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000avkb", "mag": 4.8, "time": 1506546638200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.5529, 28.769, 38.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000avk0", "mag": 4.4, "time": 1506545901120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -73.9242, -10.8691, 104.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72900011", "mag": 1.24, "time": 1506545494440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7435, 38.775167, 0.33 ] } }, - { "type": "Feature", "properties": { "id": "mb80258059", "mag": 1.99, "time": 1506545099310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.533833, 46.865333, 12.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16988181", "mag": 1.9, "time": 1506544970602, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.5993, 58.8739, 125.1 ] } }, - { "type": "Feature", "properties": { "id": "nc71107599", "mag": 1.73, "time": 1506544649060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.852333, 36.770333, 5.22 ] } }, - { "type": "Feature", "properties": { "id": "nc72900001", "mag": 1.02, "time": 1506544641500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.307333, 35.890833, 9.61 ] } }, - { "type": "Feature", "properties": { "id": "uw61334351", "mag": 1.62, "time": 1506543856900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.103667, 46.818167, -0.37 ] } }, - { "type": "Feature", "properties": { "id": "us2000avim", "mag": 4.5, "time": 1506542712990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.6095, -15.1614, 131.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16924547", "mag": 1.3, "time": 1506542654107, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6538, 61.2784, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72899976", "mag": 1.46, "time": 1506542639270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.024, 37.520333, 2.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16988179", "mag": 1.4, "time": 1506542327610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9637, 61.5729, 96.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16988178", "mag": 1.2, "time": 1506541938004, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1366, 60.2787, 53.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16924544", "mag": 1.5, "time": 1506541523210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.1298, 59.8511, 15.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16924540", "mag": 3.0, "time": 1506540667871, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.8525, 51.0507, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16924539", "mag": 1.3, "time": 1506540652841, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.178, 61.5488, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38012400", "mag": 0.98, "time": 1506540581720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.481833, 33.471167, 13.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16988174", "mag": 1.1, "time": 1506540333948, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.501, 61.2429, 47.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38012384", "mag": 1.3, "time": 1506539422810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.197, 34.992, -0.84 ] } }, - { "type": "Feature", "properties": { "id": "mb80258049", "mag": 1.59, "time": 1506539240620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.472833, 46.002167, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72899931", "mag": 1.55, "time": 1506538588360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.4435, 38.569833, 7.29 ] } }, - { "type": "Feature", "properties": { "id": "ci38012368", "mag": 1.32, "time": 1506538425860, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.193167, 34.018167, 9.75 ] } }, - { "type": "Feature", "properties": { "id": "ci38012360", "mag": 1.78, "time": 1506537986730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.929, 33.395, 16.07 ] } }, - { "type": "Feature", "properties": { "id": "mb80258044", "mag": 1.34, "time": 1506537974910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.524833, 46.870667, 11.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80258039", "mag": 1.67, "time": 1506537644220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525, 46.873167, 11.84 ] } }, - { "type": "Feature", "properties": { "id": "ci38012352", "mag": 1.26, "time": 1506537396500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.313333, 35.0755, -0.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16988173", "mag": 2.5, "time": 1506536259670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2174, 55.267, 28.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16923724", "mag": 1.8, "time": 1506535852212, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.5095, 57.4219, 64.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38012280", "mag": 1.04, "time": 1506535593850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.8595, 37.1805, -1.52 ] } }, - { "type": "Feature", "properties": { "id": "mb80258024", "mag": 1.14, "time": 1506535428310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.542833, 46.867, 15.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16923723", "mag": 1.8, "time": 1506535251777, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8081, 59.8933, 18.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72899896", "mag": 1.43, "time": 1506534720980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.1055, 37.325167, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "nn00607242", "mag": 1.3, "time": 1506533616061, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.8105, 37.3086, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16922991", "mag": 1.3, "time": 1506533488405, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0074, 62.0045, 73.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16922987", "mag": 1.8, "time": 1506533174170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1276, 62.1421, 107.7 ] } }, - { "type": "Feature", "properties": { "id": "mb80258019", "mag": 1.36, "time": 1506533071220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.9895, 46.553167, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38012256", "mag": 1.4, "time": 1506532727840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.796333, 33.501667, 4.58 ] } }, - { "type": "Feature", "properties": { "id": "ak16922978", "mag": 3.9, "time": 1506532451736, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.5261, 52.9317, 19.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16922973", "mag": 1.3, "time": 1506532279574, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0546, 62.1579, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16922968", "mag": 2.2, "time": 1506532267245, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0431, 59.4743, 92.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16922975", "mag": 1.9, "time": 1506532266486, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1368, 59.6598, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16922963", "mag": 1.1, "time": 1506530768012, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1018, 64.1209, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16924550", "mag": 2.4, "time": 1506530256430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.6494, 52.9731, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000avec", "mag": 2.6, "time": 1506529974600, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.0737, 44.3257, 12.14 ] } }, - { "type": "Feature", "properties": { "id": "nc72899871", "mag": 1.08, "time": 1506529473980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.836, 37.569167, 1.23 ] } }, - { "type": "Feature", "properties": { "id": "ci38012176", "mag": 1.03, "time": 1506529247980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.795833, 33.502, 4.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16922238", "mag": 1.6, "time": 1506529055903, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.7065, 67.422, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72899866", "mag": 1.85, "time": 1506528932600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.995833, 39.432667, 3.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000ave0", "mag": 4.1, "time": 1506528488760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 119.9926, -7.5373, 611.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000avdr", "mag": 4.1, "time": 1506527126210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.0234, -7.2935, 121.06 ] } }, - { "type": "Feature", "properties": { "id": "nc72899831", "mag": 1.23, "time": 1506526130580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.231667, 35.611, 3.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16988160", "mag": 1.6, "time": 1506525379416, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9254, 58.9648, 66.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80257999", "mag": 1.8, "time": 1506524825390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.533333, 46.866, 13.41 ] } }, - { "type": "Feature", "properties": { "id": "nc72899816", "mag": 1.11, "time": 1506524218360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.989167, 37.558167, 1.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16988159", "mag": 1.2, "time": 1506524092965, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7404, 58.8609, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38012112", "mag": 1.73, "time": 1506523530510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.417833, 34.440833, 0.65 ] } }, - { "type": "Feature", "properties": { "id": "nc72899796", "mag": 0.95, "time": 1506523499180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8715, 37.492667, 3.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16921504", "mag": 1.8, "time": 1506522635679, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3466, 59.8103, 47.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16988157", "mag": 1.5, "time": 1506522267480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.561, 57.6875, 76.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61311512", "mag": 1.06, "time": 1506522173600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.941333, 47.1825, 15.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16920785", "mag": 2.4, "time": 1506522058371, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.3316, 56.7652, 41.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16920784", "mag": 1.4, "time": 1506521703637, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.533, 60.0761, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61923421", "mag": 1.78, "time": 1506521436470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.401167, 19.199167, 32.961 ] } }, - { "type": "Feature", "properties": { "id": "ak16920775", "mag": 2.0, "time": 1506520826084, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.649, 61.9693, 57.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16920772", "mag": 2.0, "time": 1506520439615, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2196, 59.6108, 85.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16920758", "mag": 2.9, "time": 1506520230887, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3755, 61.9643, 42.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80257989", "mag": 1.28, "time": 1506520220400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5215, 46.870167, 11.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16920757", "mag": 1.0, "time": 1506520046138, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5503, 65.1678, 11.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00607209", "mag": 1.5, "time": 1506519994705, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.7233, 40.1708, 10.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38012040", "mag": 1.13, "time": 1506519953180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.935333, 34.4565, 9.26 ] } }, - { "type": "Feature", "properties": { "id": "nc72899776", "mag": 1.01, "time": 1506519567480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.840667, 37.5315, -1.51 ] } }, - { "type": "Feature", "properties": { "id": "nc72899766", "mag": 1.77, "time": 1506519075660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.243667, 39.398333, 12.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72899761", "mag": 1.35, "time": 1506518981970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.745833, 38.784333, 1.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000avce", "mag": 2.7, "time": 1506518011840, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.555, 46.8463, 8.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16920754", "mag": 2.5, "time": 1506517941863, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.4288, 51.3519, 42.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16920753", "mag": 1.2, "time": 1506517783977, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.1318, 60.4494, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16920743", "mag": 2.6, "time": 1506516302533, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0235, 61.6238, 41.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988145", "mag": 1.2, "time": 1506515748862, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9213, 61.1389, 61.5 ] } }, - { "type": "Feature", "properties": { "id": "mb80257979", "mag": 1.95, "time": 1506514222430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528667, 46.869667, 13.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16920741", "mag": 1.4, "time": 1506513863630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.4582, 62.4107, 39.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16920740", "mag": 2.1, "time": 1506513265227, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.2773, 65.177, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16920737", "mag": 1.4, "time": 1506513028050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1779, 58.0206, 30.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16920020", "mag": 1.9, "time": 1506512934355, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.4027, 59.1963, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16920019", "mag": 1.3, "time": 1506511124207, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9174, 59.9564, 76.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38011952", "mag": 1.07, "time": 1506511069520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.789667, 33.489167, 5.35 ] } }, - { "type": "Feature", "properties": { "id": "mb80257974", "mag": 1.33, "time": 1506510967360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526833, 46.881, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000avaw", "mag": 2.7, "time": 1506509852090, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -103.2764, 31.1697, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72899726", "mag": 1.29, "time": 1506508915160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.809, 38.828833, 0.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72899721", "mag": 1.52, "time": 1506508865060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.074167, 36.490333, 6.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16920017", "mag": 1.5, "time": 1506508671618, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.664, 59.7325, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72899716", "mag": 1.33, "time": 1506507368050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.621833, 36.9715, 5.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16988138", "mag": 1.5, "time": 1506506488102, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3194, 60.198, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72899711", "mag": 1.1, "time": 1506506346060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.830667, 37.480333, -1.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16920009", "mag": 1.7, "time": 1506506054796, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8154, 59.9932, 104.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16988136", "mag": 1.4, "time": 1506505999692, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1528, 59.8387, 71.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16920005", "mag": 1.7, "time": 1506505194635, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0126, 61.1428, 12.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16920003", "mag": 1.3, "time": 1506504555844, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.6373, 60.4592, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61923186", "mag": 1.49, "time": 1506503971290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2035, 19.597167, 24.581 ] } }, - { "type": "Feature", "properties": { "id": "nn00607200", "mag": 1.3, "time": 1506503935311, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.2622, 38.0846, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000av9q", "mag": 3.0, "time": 1506503712310, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -103.2693, 31.1511, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72899701", "mag": 1.06, "time": 1506503394340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819167, 37.604333, 4.32 ] } }, - { "type": "Feature", "properties": { "id": "mb80257964", "mag": 1.06, "time": 1506503136100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529667, 46.8705, 10.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60249807", "mag": 1.65, "time": 1506503101030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.067, 42.665833, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38011904", "mag": 1.21, "time": 1506502961890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.0485, 33.171333, 5.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000av9i", "mag": 4.2, "time": 1506502867800, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.3374, -29.45, 38.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16919291", "mag": 2.0, "time": 1506502630723, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.4344, 59.1851, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60249797", "mag": 1.72, "time": 1506502497570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.061667, 42.664667, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38011896", "mag": 1.37, "time": 1506502201400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.052, 33.172, 6.03 ] } }, - { "type": "Feature", "properties": { "id": "ci38011880", "mag": 1.16, "time": 1506501606110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.542667, 32.944667, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "us2000av94", "mag": 4.6, "time": 1506500888720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 54.1871, 28.1091, 45.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16919288", "mag": 1.0, "time": 1506500817789, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4269, 65.2147, 15.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16988130", "mag": 2.0, "time": 1506500078029, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.5053, 51.0555, 12.3 ] } }, - { "type": "Feature", "properties": { "id": "nc71107564", "mag": 1.29, "time": 1506499044330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.570833, 38.927167, 9.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000av8z", "mag": 4.3, "time": 1506498944880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.1801, -21.2747, 610.22 ] } }, - { "type": "Feature", "properties": { "id": "nc72899666", "mag": 1.1, "time": 1506498551180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8395, 37.568167, 1.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16918579", "mag": 1.9, "time": 1506498372082, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5535, 59.8103, 129.5 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235883", "mag": 1.79, "time": 1506498339870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.776167, 37.332333, 4.84 ] } }, - { "type": "Feature", "properties": { "id": "nc72899656", "mag": 1.07, "time": 1506497879900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.818169, 38.816334, 2.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16988128", "mag": 1.7, "time": 1506497626569, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.5074, 58.9707, 125.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607194", "mag": 1.4, "time": 1506496907372, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0035, 38.4922, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16918577", "mag": 2.4, "time": 1506495198173, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.3064, 51.5599, 38.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607192", "mag": 1.3, "time": 1506495045147, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1202, 38.2811, 9.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16917880", "mag": 1.4, "time": 1506494125518, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4062, 59.5783, 46.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38011824", "mag": 2.15, "time": 1506493452570, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.377, 34.425667, 6.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16917877", "mag": 1.0, "time": 1506493181446, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.74, 66.8722, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16988124", "mag": 2.0, "time": 1506492309885, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.6222, 51.5723, 70.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16917874", "mag": 1.0, "time": 1506491782705, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3009, 62.1686, 20.4 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235878", "mag": 1.72, "time": 1506491740260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.966167, 37.277667, 3.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16917871", "mag": 2.2, "time": 1506491690990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.227, 67.4203, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80257949", "mag": 1.15, "time": 1506491507770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.53, 46.8695, 10.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16917866", "mag": 2.4, "time": 1506491501818, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2772, 62.1792, 19.3 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235873", "mag": 2.14, "time": 1506491075330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.886, 37.201833, 5.78 ] } }, - { "type": "Feature", "properties": { "id": "mb80257939", "mag": 1.58, "time": 1506490489800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.536833, 46.867667, 13.76 ] } }, - { "type": "Feature", "properties": { "id": "nn00607189", "mag": 1.5, "time": 1506490367737, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.114, 38.2859, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38011800", "mag": 2.36, "time": 1506490230430, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.3735, 34.4205, 2.68 ] } }, - { "type": "Feature", "properties": { "id": "ci38011808", "mag": 1.19, "time": 1506490229680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.296833, 33.257333, 11.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72899631", "mag": 1.3, "time": 1506489660140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.492333, 37.643167, 10.59 ] } }, - { "type": "Feature", "properties": { "id": "ci38011776", "mag": 1.48, "time": 1506489097510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.050333, 33.1715, 3.79 ] } }, - { "type": "Feature", "properties": { "id": "ci38011760", "mag": 1.09, "time": 1506488442000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1045, 34.032667, 6.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16917162", "mag": 1.2, "time": 1506488287570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7916, 59.8749, 12.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16917160", "mag": 1.7, "time": 1506488119627, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8594, 59.8596, 52.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38011736", "mag": 1.35, "time": 1506488015210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.011667, 33.275333, 2.98 ] } }, - { "type": "Feature", "properties": { "id": "ci38011728", "mag": 1.28, "time": 1506487875520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.796667, 33.492, 4.46 ] } }, - { "type": "Feature", "properties": { "id": "ci38011720", "mag": 2.62, "time": 1506487715700, "felt": 25, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.372333, 34.4215, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60249762", "mag": 1.11, "time": 1506487228770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.7735, 44.765667, 7.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72899586", "mag": 2.03, "time": 1506485795570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.784333, 38.836667, 1.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000av7z", "mag": 5.3, "time": 1506485581610, "felt": 2, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 139.7504, -3.5926, 60.39 ] } }, - { "type": "Feature", "properties": { "id": "nn00607179", "mag": 1.2, "time": 1506485505469, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6245, 38.788, 6.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000av80", "mag": 5.0, "time": 1506485392430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -43.5388, 28.7234, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000av7x", "mag": 2.7, "time": 1506485373140, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -103.2078, 31.1233, 1.49 ] } }, - { "type": "Feature", "properties": { "id": "nc72899571", "mag": 1.02, "time": 1506485084470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.004333, 37.796167, 1.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16988118", "mag": 1.8, "time": 1506483937222, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.399, 51.7067, 17.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16916451", "mag": 1.9, "time": 1506483073029, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0454, 59.6347, 103.9 ] } }, - { "type": "Feature", "properties": { "id": "uw61311302", "mag": 2.23, "time": 1506482912030, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.555, 44.547167, 12.72 ] } }, - { "type": "Feature", "properties": { "id": "uw61311297", "mag": 1.11, "time": 1506482481740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.683, 45.372667, -1.63 ] } }, - { "type": "Feature", "properties": { "id": "ci38011704", "mag": 1.57, "time": 1506482455900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.519833, 32.888, 10.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16988116", "mag": 2.0, "time": 1506482397355, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3801, 51.6434, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72899551", "mag": 1.76, "time": 1506481720510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.880667, 38.659333, 5.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16915757", "mag": 1.4, "time": 1506480400030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.6852, 64.9151, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00607173", "mag": 1.2, "time": 1506479979561, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.4858, 38.7006, 5.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000av7a", "mag": 2.7, "time": 1506479406560, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.8806, 37.2184, 2.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16988114", "mag": 1.6, "time": 1506479371570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.3827, 51.4303, 27.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38011664", "mag": 1.8, "time": 1506478585030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.628167, 35.076167, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16915754", "mag": 2.0, "time": 1506478364486, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3878, 61.6649, 31.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16915750", "mag": 1.2, "time": 1506477958824, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6683, 62.8518, 73.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16915745", "mag": 1.8, "time": 1506477442438, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.6565, 53.4796, 20.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000av70", "mag": 4.7, "time": 1506476740040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.4332, -21.409, 120.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16915060", "mag": 1.3, "time": 1506476367132, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7491, 63.2266, 126.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000av6x", "mag": 4.7, "time": 1506475551840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 126.6287, 4.6053, 83.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16915057", "mag": 2.4, "time": 1506475504238, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2738, 57.0675, 69.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38011648", "mag": 2.25, "time": 1506474971480, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7765, 33.325667, 11.63 ] } }, - { "type": "Feature", "properties": { "id": "nm60207341", "mag": 1.82, "time": 1506473928680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.549667, 36.4815, 9.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16988107", "mag": 1.9, "time": 1506471772798, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4471, 51.7337, 16.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16988106", "mag": 1.6, "time": 1506471697831, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0762, 58.2594, 21.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000b1dn", "mag": 4.3, "time": 1506471581400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.4161, 40.39, 49.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16915048", "mag": 1.6, "time": 1506471507429, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7558, 60.1282, 31.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16914368", "mag": 1.9, "time": 1506469962223, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0546, 60.9937, 12.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000av6e", "mag": 4.8, "time": 1506469452030, "felt": 11, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 145.0971, 14.1324, 113.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16914364", "mag": 1.0, "time": 1506469276260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0231, 64.8914, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38011608", "mag": 1.21, "time": 1506468838030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792667, 33.506, 6.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16949369", "mag": 1.0, "time": 1506468623879, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2412, 61.8508, 14.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72899501", "mag": 0.98, "time": 1506468157640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.873833, 37.624833, 2.99 ] } }, - { "type": "Feature", "properties": { "id": "ci38011600", "mag": 1.67, "time": 1506468079690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.679333, 35.033667, -0.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000b02y", "mag": 4.2, "time": 1506467949880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2432, 15.0466, 41.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16914361", "mag": 1.9, "time": 1506467622189, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6178, 65.1477, 10.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80257914", "mag": 1.23, "time": 1506467597640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.632, 46.8715, 5.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16914358", "mag": 1.0, "time": 1506466926514, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3996, 64.9811, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16914359", "mag": 1.0, "time": 1506466913331, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0673, 63.4886, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72899481", "mag": 1.12, "time": 1506466887280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.808502, 38.832001, 1.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16949365", "mag": 1.7, "time": 1506466403289, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9009, 59.9001, 97.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00607152", "mag": 1.1, "time": 1506466364846, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6252, 38.7877, 5.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000av5w", "mag": 4.8, "time": 1506465046570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -11.6494, -2.0113, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61311237", "mag": 2.77, "time": 1506464518680, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.953167, 44.251833, 24.14 ] } }, - { "type": "Feature", "properties": { "id": "ci38011536", "mag": 1.75, "time": 1506464439110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.304167, 33.253667, 10.84 ] } }, - { "type": "Feature", "properties": { "id": "ci38011520", "mag": 1.59, "time": 1506463692350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.216, 33.010333, 6.85 ] } }, - { "type": "Feature", "properties": { "id": "us2000av56", "mag": 4.2, "time": 1506463598300, "felt": 37, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.2376, -31.7843, 7.09 ] } }, - { "type": "Feature", "properties": { "id": "nn00607136", "mag": 2.8, "time": 1506462799119, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6217, 38.7826, 6.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38011488", "mag": 1.81, "time": 1506462726380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.750667, 33.516333, 3.18 ] } }, - { "type": "Feature", "properties": { "id": "nc72899441", "mag": 2.97, "time": 1506462683270, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.0155, 40.263833, 11.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16949362", "mag": 1.6, "time": 1506462418457, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0128, 59.6612, 95.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16949359", "mag": 1.6, "time": 1506461654966, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3493, 59.8886, 123.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000av40", "mag": 5.4, "time": 1506461346270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.9476, -23.5856, 538.01 ] } }, - { "type": "Feature", "properties": { "id": "nc72899416", "mag": 1.3, "time": 1506461324290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810333, 38.8215, 0.97 ] } }, - { "type": "Feature", "properties": { "id": "mb80257904", "mag": 0.95, "time": 1506461125950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.496, 46.8605, 16.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16913020", "mag": 1.1, "time": 1506460729533, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0111, 65.8632, 12.1 ] } }, - { "type": "Feature", "properties": { "id": "mb80257894", "mag": 1.08, "time": 1506460594630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.515167, 43.545833, 12.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16913017", "mag": 1.8, "time": 1506459899986, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.56, 59.8031, 16.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16913011", "mag": 1.9, "time": 1506459063460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6788, 61.3357, 16.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72899391", "mag": 1.35, "time": 1506458512440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.735333, 38.789833, 1.23 ] } }, - { "type": "Feature", "properties": { "id": "hv61922451", "mag": 1.7, "time": 1506458350950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.471167, 19.227667, 34.865 ] } }, - { "type": "Feature", "properties": { "id": "nc72899386", "mag": 1.89, "time": 1506458341570, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.609667, 36.888333, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000av31", "mag": 5.8, "time": 1506457331560, "felt": 45, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.4059, 40.3206, 36.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16949355", "mag": 1.3, "time": 1506457099270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1826, 62.1538, 80.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000av2y", "mag": 2.6, "time": 1506456843780, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.9668, 37.2773, 4.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16912327", "mag": 2.1, "time": 1506456421978, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8619, 59.5574, 79.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16912325", "mag": 1.6, "time": 1506456406002, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0714, 61.2493, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16912323", "mag": 1.4, "time": 1506455786083, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6417, 63.0711, 110.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72899366", "mag": 1.19, "time": 1506455697960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.989167, 35.677333, -0.35 ] } }, - { "type": "Feature", "properties": { "id": "mb80257869", "mag": 1.78, "time": 1506455523560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.4975, 46.900667, 11.16 ] } }, - { "type": "Feature", "properties": { "id": "nc72899361", "mag": 1.14, "time": 1506455417130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.6625, 36.100833, 0.94 ] } }, - { "type": "Feature", "properties": { "id": "uw61311182", "mag": 1.51, "time": 1506454723910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.398833, 46.488167, 17.99 ] } }, - { "type": "Feature", "properties": { "id": "ci38011384", "mag": 1.37, "time": 1506454231340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.897333, 32.7725, -0.37 ] } }, - { "type": "Feature", "properties": { "id": "mb80257864", "mag": 1.46, "time": 1506454190410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.413167, 45.912833, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38011376", "mag": 1.05, "time": 1506454146060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797167, 33.509, 6.71 ] } }, - { "type": "Feature", "properties": { "id": "nn00607108", "mag": 1.0, "time": 1506454067433, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.4885, 38.5144, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16912305", "mag": 1.2, "time": 1506453243306, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4352, 61.6115, 33.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000av22", "mag": 5.4, "time": 1506452898220, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 132.7412, 1.2169, 17.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72899341", "mag": 0.98, "time": 1506452133100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.783165, 38.837833, 0.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000av1t", "mag": 4.3, "time": 1506452028320, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6352, 16.5993, 104.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16911656", "mag": 1.1, "time": 1506451444842, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9798, 65.8633, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80257849", "mag": 1.17, "time": 1506451369960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.531667, 46.869333, 10.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16911652", "mag": 1.7, "time": 1506451256386, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2303, 62.9438, 64.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72899331", "mag": 1.39, "time": 1506451169180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.46, 37.983333, -0.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16949348", "mag": 1.2, "time": 1506450622498, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9789, 62.4498, 80.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72899311", "mag": 1.66, "time": 1506450429900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.811, 38.812, 2.48 ] } }, - { "type": "Feature", "properties": { "id": "ci38011328", "mag": 1.82, "time": 1506450379870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7965, 33.5035, 6.49 ] } }, - { "type": "Feature", "properties": { "id": "ci38011320", "mag": 1.66, "time": 1506450370460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.948, 35.292167, 17.31 ] } }, - { "type": "Feature", "properties": { "id": "hv61922336", "mag": 3.25, "time": 1506450097970, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.231, 19.290833, 8.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16949347", "mag": 1.4, "time": 1506449901001, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1914, 59.4295, 70.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38011304", "mag": 1.2, "time": 1506449584430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.813667, 36.025833, 1.31 ] } }, - { "type": "Feature", "properties": { "id": "ci38011296", "mag": 0.98, "time": 1506449444340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.8115, 36.028167, 0.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16911638", "mag": 2.2, "time": 1506449441975, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1385, 62.9479, 63.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80257844", "mag": 1.11, "time": 1506448956940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.532, 46.8605, 12.58 ] } }, - { "type": "Feature", "properties": { "id": "ak16949345", "mag": 1.5, "time": 1506448347584, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8207, 61.1514, 89.2 ] } }, - { "type": "Feature", "properties": { "id": "uw61311142", "mag": 1.41, "time": 1506448094510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.884, 43.419667, -0.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72899291", "mag": 1.2, "time": 1506447644460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.291667, 36.660333, 3.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16949344", "mag": 2.0, "time": 1506446368069, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.7955, 55.6327, 123.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80257839", "mag": 1.6, "time": 1506446229250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.530333, 46.872167, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16949343", "mag": 1.8, "time": 1506445879278, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.0092, 56.5802, 60.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16910871", "mag": 2.2, "time": 1506445763160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3757, 60.912, 119.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16910870", "mag": 1.2, "time": 1506445355025, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.837, 62.5503, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16949340", "mag": 1.4, "time": 1506445236601, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4629, 59.6817, 72.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16910864", "mag": 1.6, "time": 1506444383456, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3694, 61.142, 20.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16910865", "mag": 1.1, "time": 1506444338515, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0798, 62.3953, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16910858", "mag": 2.0, "time": 1506443746387, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5248, 63.5317, 72.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60249707", "mag": 1.38, "time": 1506443129640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.442, 42.558833, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38011192", "mag": 1.03, "time": 1506442702510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.823833, 33.4855, 7.53 ] } }, - { "type": "Feature", "properties": { "id": "nc72899266", "mag": 1.49, "time": 1506442696750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.809833, 37.472833, 3.95 ] } }, - { "type": "Feature", "properties": { "id": "mb80257829", "mag": 1.46, "time": 1506441830940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.498, 46.901167, 10.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72903841", "mag": 1.48, "time": 1506440751200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.182167, 40.8515, 3.06 ] } }, - { "type": "Feature", "properties": { "id": "uu60249692", "mag": 1.82, "time": 1506439249930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.139833, 42.7365, 4.13 ] } }, - { "type": "Feature", "properties": { "id": "ci38011112", "mag": 2.13, "time": 1506439108770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.289833, 33.302833, 10.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000auyd", "mag": 2.6, "time": 1506439089180, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4364, 42.61, 9.35 ] } }, - { "type": "Feature", "properties": { "id": "nc72899236", "mag": 2.73, "time": 1506439073310, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821, 37.6035, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61922126", "mag": 1.89, "time": 1506438530250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.504837, 19.188499, 37.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16910217", "mag": 1.3, "time": 1506438468368, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3857, 61.4705, 26.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60249677", "mag": 1.01, "time": 1506437975140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.090667, 41.940333, 4.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16909586", "mag": 1.8, "time": 1506436541694, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9329, 61.1528, 1.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16909585", "mag": 1.5, "time": 1506436508165, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.6533, 59.6178, 1.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60249672", "mag": 1.15, "time": 1506436401660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.9865, 44.768833, 6.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16949332", "mag": 2.7, "time": 1506436259231, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 177.8212, 50.3055, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16949331", "mag": 1.5, "time": 1506435973793, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.5906, 57.0801, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61922056", "mag": 1.6, "time": 1506435671030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.617667, 19.403833, 11.352 ] } }, - { "type": "Feature", "properties": { "id": "nc72899211", "mag": 1.32, "time": 1506435393920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.617833, 36.045, 5.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16949330", "mag": 2.3, "time": 1506435252977, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.7207, 53.0759, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000auxj", "mag": 4.2, "time": 1506434841590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.3743, -28.3432, 19.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16909580", "mag": 1.0, "time": 1506433271780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9281, 62.7345, 65.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38011056", "mag": 2.34, "time": 1506433147890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.097167, 32.109167, 21.13 ] } }, - { "type": "Feature", "properties": { "id": "ci38011048", "mag": 1.64, "time": 1506433002700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.275333, 33.9755, 2.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16909574", "mag": 2.4, "time": 1506432197049, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1982, 63.4664, 63.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72899196", "mag": 2.34, "time": 1506431642070, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.2285, 36.1555, 11.25 ] } }, - { "type": "Feature", "properties": { "id": "ci38011032", "mag": 1.31, "time": 1506431195640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.599833, 33.196, 3.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16949325", "mag": 1.3, "time": 1506430179945, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5507, 57.5978, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16908944", "mag": 1.5, "time": 1506430094548, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7286, 62.9807, 109.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16949323", "mag": 1.4, "time": 1506429667875, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -132.545, 57.8313, 1.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16908941", "mag": 1.9, "time": 1506428870068, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.9939, 51.4819, 42.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16949321", "mag": 2.3, "time": 1506428515529, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.9246, 51.994, 156.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000auwv", "mag": 4.8, "time": 1506428086930, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.1449, -37.4108, 11.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16949320", "mag": 1.7, "time": 1506428031233, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.8671, 57.0274, 77.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72899171", "mag": 1.37, "time": 1506428015870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.786167, 37.594333, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16949319", "mag": 1.6, "time": 1506427960144, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0976, 58.7839, 68.4 ] } }, - { "type": "Feature", "properties": { "id": "hv61921941", "mag": 1.75, "time": 1506427855790, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.293667, 19.364833, 29.473 ] } }, - { "type": "Feature", "properties": { "id": "mb80257779", "mag": 1.22, "time": 1506426612780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.524667, 46.871167, 11.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16908309", "mag": 2.6, "time": 1506426273590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0017, 63.0698, 125.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16908307", "mag": 1.4, "time": 1506425656703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0459, 60.021, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72899161", "mag": 1.33, "time": 1506425143350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.737833, 38.803333, 1.75 ] } }, - { "type": "Feature", "properties": { "id": "us2000auwh", "mag": 4.6, "time": 1506424969320, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 168.1159, -17.1048, 50.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16908306", "mag": 1.2, "time": 1506424570466, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.412, 53.8051, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16908302", "mag": 1.9, "time": 1506424147684, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7411, 59.5065, 69.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60249657", "mag": 1.69, "time": 1506424086980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.4815, 38.756167, 9.29 ] } }, - { "type": "Feature", "properties": { "id": "mb80257774", "mag": 1.11, "time": 1506422972160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.387167, 44.8185, 11.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16908296", "mag": 1.6, "time": 1506420872410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9572, 61.1571, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00607058", "mag": 1.0, "time": 1506420232880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8963, 38.401, 10.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16949310", "mag": 1.6, "time": 1506419827018, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2644, 60.0718, 129.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72899136", "mag": 1.49, "time": 1506419498990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.041333, 37.633667, -1.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16908294", "mag": 1.4, "time": 1506419088568, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.8181, 63.4737, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16949308", "mag": 1.7, "time": 1506418915220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9641, 60.3111, 134.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38010936", "mag": 1.35, "time": 1506418490150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.104333, 34.0325, 5.61 ] } }, - { "type": "Feature", "properties": { "id": "nc72899131", "mag": 1.28, "time": 1506417966210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.931833, 37.595833, 0.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16908292", "mag": 1.7, "time": 1506417940616, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8017, 59.9121, 74.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16908290", "mag": 1.7, "time": 1506417796960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.402, 60.1704, 11.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16949304", "mag": 1.7, "time": 1506416080631, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.871, 57.3937, 48.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16949303", "mag": 1.2, "time": 1506415360742, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6564, 63.2669, 130.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607053", "mag": 3.4, "time": 1506415206305, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8949, 38.3653, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72899106", "mag": 1.38, "time": 1506414957350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.0225, 37.5205, 2.13 ] } }, - { "type": "Feature", "properties": { "id": "us2000auvr", "mag": 4.4, "time": 1506414806850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -77.3187, -5.8706, 42.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72899101", "mag": 1.35, "time": 1506414495100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.810667, 37.473333, 3.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0x1", "mag": 4.0, "time": 1506414428310, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 115.4547, -8.3437, 7.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16907660", "mag": 2.5, "time": 1506414139904, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.2525, 63.3098, 5.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000auvl", "mag": 4.9, "time": 1506413746400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.8693, -24.5502, 549.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16907657", "mag": 1.7, "time": 1506413744657, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.558, 61.3722, 73.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00607084", "mag": 1.1, "time": 1506413686395, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8996, 38.399, 10.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000ax0p", "mag": 3.0, "time": 1506413645840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.222, 52.6448, 36.78 ] } }, - { "type": "Feature", "properties": { "id": "ci38010856", "mag": 1.11, "time": 1506413205840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.4375, 33.438833, 9.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16907655", "mag": 1.3, "time": 1506412718967, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6643, 61.4913, 19.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16907652", "mag": 1.7, "time": 1506412362070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6643, 61.6414, 22.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16907651", "mag": 1.5, "time": 1506411582373, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2404, 59.9305, 72.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16949296", "mag": 1.3, "time": 1506411274342, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6597, 58.8354, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72899096", "mag": 1.03, "time": 1506410824310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.914, 37.573833, -1.62 ] } }, - { "type": "Feature", "properties": { "id": "nc72899091", "mag": 1.42, "time": 1506410795100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.807833, 38.8245, 2.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16907650", "mag": 2.0, "time": 1506410193440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.8603, 66.702, 16.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16949292", "mag": 1.6, "time": 1506409745435, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.82, 59.4363, 78.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16907646", "mag": 1.1, "time": 1506408445621, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.778, 62.2517, 10.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60249632", "mag": 2.87, "time": 1506407470180, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.651333, 44.820667, 6.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16907641", "mag": 2.2, "time": 1506407401881, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1721, 59.3036, 66.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16949289", "mag": 1.7, "time": 1506406926287, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.737, 59.5006, 82.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38010824", "mag": 1.17, "time": 1506406440560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.498833, 34.926833, 12.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000auv4", "mag": 4.9, "time": 1506404788280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 101.3356, -5.7378, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000auv3", "mag": 5.0, "time": 1506404673850, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.5505, -21.3378, 232.1 ] } }, - { "type": "Feature", "properties": { "id": "mb80257744", "mag": 1.03, "time": 1506404152920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.522667, 46.9085, 12.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000auuz", "mag": 4.6, "time": 1506404004140, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9602, 15.0621, 55.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16949287", "mag": 1.5, "time": 1506403834555, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1229, 59.9191, 124.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72899076", "mag": 0.97, "time": 1506403715720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.825667, 37.454833, 1.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72899066", "mag": 0.96, "time": 1506402794840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.798332, 38.824833, 2.56 ] } }, - { "type": "Feature", "properties": { "id": "mb80257739", "mag": 1.14, "time": 1506402535080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5275, 46.880667, 10.59 ] } }, - { "type": "Feature", "properties": { "id": "ci38010800", "mag": 1.46, "time": 1506401555090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.061, 34.207167, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38010792", "mag": 1.16, "time": 1506401392950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.064333, 34.207333, 2.74 ] } }, - { "type": "Feature", "properties": { "id": "nn00607042", "mag": 1.5, "time": 1506400440104, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0413, 37.0804, 8.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16906991", "mag": 2.7, "time": 1506400345749, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.4106, 60.9055, 24.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000autd", "mag": 6.4, "time": 1506399600760, "felt": 2, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ -176.9366, -23.7135, 98.07 ] } }, - { "type": "Feature", "properties": { "id": "mb80257724", "mag": 1.75, "time": 1506399115590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525167, 46.8815, 10.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16949284", "mag": 1.4, "time": 1506398641123, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.643, 58.8409, 11.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16949283", "mag": 1.3, "time": 1506398319488, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6304, 58.8355, 8.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16906355", "mag": 2.3, "time": 1506398227222, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8611, 62.7984, 13.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72899031", "mag": 1.73, "time": 1506396860580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.823667, 37.455333, 2.55 ] } }, - { "type": "Feature", "properties": { "id": "nc72899036", "mag": 1.13, "time": 1506396779490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.764167, 38.956, 1.48 ] } }, - { "type": "Feature", "properties": { "id": "uu60249592", "mag": 1.7, "time": 1506396582400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.943167, 39.753833, 3.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16949281", "mag": 1.5, "time": 1506396506568, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7269, 58.5151, 73.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16906353", "mag": 1.3, "time": 1506396340348, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2988, 62.3609, 81.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61310902", "mag": 1.38, "time": 1506395899750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.737167, 47.576333, 17.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16906350", "mag": 2.1, "time": 1506395022337, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6717, 59.8577, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235803", "mag": 1.67, "time": 1506394171170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.620667, 37.161167, 4.48 ] } }, - { "type": "Feature", "properties": { "id": "nc72899026", "mag": 1.36, "time": 1506393508660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.823833, 37.4545, 2.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16906345", "mag": 1.8, "time": 1506393385073, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.5638, 59.8105, 0.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16906344", "mag": 1.2, "time": 1506393361198, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.4631, 62.5638, 3.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16906343", "mag": 1.2, "time": 1506392589335, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2072, 61.6959, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "uw61310887", "mag": 1.1, "time": 1506392466960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.9235, 46.755833, 4.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16906342", "mag": 1.8, "time": 1506392061053, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.9619, 58.719, 83.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16906341", "mag": 1.1, "time": 1506391622110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.393, 62.6136, 80.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16905725", "mag": 2.0, "time": 1506390933341, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6474, 61.5055, 2.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000aus0", "mag": 5.1, "time": 1506390162180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.2892, -18.0618, 578.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16905719", "mag": 1.0, "time": 1506388357140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8119, 61.2841, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16949271", "mag": 1.1, "time": 1506387919524, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.616, 62.8641, 85.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000avl1", "mag": 4.1, "time": 1506387869490, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.2679, -38.2792, 18.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16905595", "mag": 1.0, "time": 1506387645089, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.7961, 60.4358, 8.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aur8", "mag": 3.9, "time": 1506387254290, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -77.6296, -12.1347, 37.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16905592", "mag": 1.5, "time": 1506385892986, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6406, 61.6796, 57.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16905589", "mag": 1.7, "time": 1506385708409, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0359, 62.3774, 41.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72898986", "mag": 1.94, "time": 1506385192120, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.759667, 38.955667, 4.16 ] } }, - { "type": "Feature", "properties": { "id": "nn00607067", "mag": 1.1, "time": 1506385008302, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0721, 39.3599, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0hk", "mag": 4.4, "time": 1506383865610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 130.4109, -4.9919, 96.04 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0hl", "mag": 4.5, "time": 1506383851620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 3.755, 79.5651, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16905583", "mag": 2.0, "time": 1506383021414, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7759, 59.8203, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "hv61921341", "mag": 2.37, "time": 1506382999970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.826167, 19.509167, 12.397 ] } }, - { "type": "Feature", "properties": { "id": "nc72898971", "mag": 1.13, "time": 1506382612420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7125, 38.7455, 1.45 ] } }, - { "type": "Feature", "properties": { "id": "nc72898966", "mag": 1.63, "time": 1506382205240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.579, 36.013, 4.29 ] } }, - { "type": "Feature", "properties": { "id": "ci38010640", "mag": 1.0, "time": 1506381899530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792667, 33.508833, 4.84 ] } }, - { "type": "Feature", "properties": { "id": "ci38010624", "mag": 1.86, "time": 1506381762630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.681667, 35.033833, -0.82 ] } }, - { "type": "Feature", "properties": { "id": "nc72898956", "mag": 1.13, "time": 1506381482700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.320667, 37.6445, 0.55 ] } }, - { "type": "Feature", "properties": { "id": "mb80257694", "mag": 1.58, "time": 1506381447950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523833, 46.872833, 11.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0hj", "mag": 4.3, "time": 1506380384190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 115.85, -10.6682, 39.69 ] } }, - { "type": "Feature", "properties": { "id": "ci38010616", "mag": 1.42, "time": 1506380222440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.0935, 33.013167, -0.56 ] } }, - { "type": "Feature", "properties": { "id": "nc72898946", "mag": 1.13, "time": 1506379343550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7885, 38.832167, 1.97 ] } }, - { "type": "Feature", "properties": { "id": "ld60143416", "mag": 1.71, "time": 1506378906690, "felt": 170, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.513833, 40.798667, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988709", "mag": 1.6, "time": 1506378800677, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4035, 60.0163, 139.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80257689", "mag": 1.5, "time": 1506378570060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528833, 46.865833, 11.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000aunr", "mag": 2.5, "time": 1506378435420, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.154, 37.3519, 3.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16988708", "mag": 1.0, "time": 1506378350972, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.034, 64.3489, 10.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aunh", "mag": 5.0, "time": 1506377223500, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 124.3318, 0.8223, 219.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60249557", "mag": 1.72, "time": 1506377199600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.460833, 42.646667, 2.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0hh", "mag": 4.3, "time": 1506376802200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.4659, -19.6395, 545.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16905558", "mag": 1.3, "time": 1506376658938, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.4807, 65.756, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38010544", "mag": 1.52, "time": 1506375768450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792333, 33.492, 4.2 ] } }, - { "type": "Feature", "properties": { "id": "uw61333756", "mag": 1.11, "time": 1506375211030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.748833, 46.851167, 1.54 ] } }, - { "type": "Feature", "properties": { "id": "ci38010536", "mag": 1.15, "time": 1506374622610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.200667, 33.034833, 4.46 ] } }, - { "type": "Feature", "properties": { "id": "nc72898906", "mag": 1.32, "time": 1506373159300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.887667, 37.572333, 1.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16904952", "mag": 1.2, "time": 1506373039217, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2776, 63.8003, 116.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16904950", "mag": 1.1, "time": 1506372955267, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1161, 63.268, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72898901", "mag": 1.01, "time": 1506372828820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.791667, 37.454333, 7.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16904346", "mag": 1.5, "time": 1506372342933, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0547, 61.007, 13.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38010512", "mag": 1.25, "time": 1506372237980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.492167, 33.822333, -0.52 ] } }, - { "type": "Feature", "properties": { "id": "ci38010488", "mag": 3.1, "time": 1506371483300, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.220833, 32.220833, 20.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000aulg", "mag": 5.9, "time": 1506371363480, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 152.7133, -6.2113, 5.98 ] } }, - { "type": "Feature", "properties": { "id": "hv61921136", "mag": 1.72, "time": 1506370768560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.421333, 19.223333, 34.311 ] } }, - { "type": "Feature", "properties": { "id": "mb80257664", "mag": 1.07, "time": 1506370613150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526, 46.868, 10.18 ] } }, - { "type": "Feature", "properties": { "id": "us2000aukx", "mag": 2.6, "time": 1506370456500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -99.1495, 36.4119, 5.948 ] } }, - { "type": "Feature", "properties": { "id": "us2000auky", "mag": 4.2, "time": 1506370103510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 107.7299, -5.8793, 306.63 ] } }, - { "type": "Feature", "properties": { "id": "mb80257659", "mag": 1.44, "time": 1506369980640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.530333, 46.8795, 12.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16904319", "mag": 1.4, "time": 1506369740689, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5073, 60.0082, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16904318", "mag": 1.1, "time": 1506369510333, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5651, 61.4244, 63.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16904316", "mag": 1.1, "time": 1506368211425, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7001, 61.5145, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aukb", "mag": 4.3, "time": 1506368143480, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.1586, 40.3587, 11.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16904315", "mag": 1.2, "time": 1506367996393, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8124, 59.8382, 15.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72898871", "mag": 1.41, "time": 1506367887720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.785167, 38.8375, 1.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16988695", "mag": 2.2, "time": 1506366990125, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.3689, 51.4218, 56.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37166748", "mag": 1.04, "time": 1506366454300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.018667, 33.163167, -0.77 ] } }, - { "type": "Feature", "properties": { "id": "hv61921056", "mag": 2.06, "time": 1506366154290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.950667, 19.540833, 15.491 ] } }, - { "type": "Feature", "properties": { "id": "ak16903722", "mag": 2.0, "time": 1506365944635, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.478, 51.697, 15.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38010408", "mag": 1.27, "time": 1506365436790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.4445, 35.5745, 10.25 ] } }, - { "type": "Feature", "properties": { "id": "ci38010416", "mag": 1.17, "time": 1506365362690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.862667, 34.343333, -1.71 ] } }, - { "type": "Feature", "properties": { "id": "uu60249527", "mag": 1.29, "time": 1506365138370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.712833, 41.8725, 4.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16903609", "mag": 2.1, "time": 1506365025587, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8085, 63.1578, 132.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38010400", "mag": 1.04, "time": 1506364534100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.790833, 33.495667, 4.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00606969", "mag": 1.1, "time": 1506364516065, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.689, 40.0864, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16903599", "mag": 2.5, "time": 1506364456407, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8848, 59.5329, 96.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80257649", "mag": 1.4, "time": 1506364202040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5255, 46.866667, 10.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72898846", "mag": 1.62, "time": 1506364136870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.781833, 36.209, 7.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16903591", "mag": 1.5, "time": 1506363943453, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7347, 60.3302, 112.7 ] } }, - { "type": "Feature", "properties": { "id": "mb80257644", "mag": 1.05, "time": 1506363692190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525167, 46.8665, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38010376", "mag": 1.42, "time": 1506363664230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792667, 33.4945, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aufz", "mag": 5.1, "time": 1506363043200, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 106.3876, -5.9298, 150.05 ] } }, - { "type": "Feature", "properties": { "id": "nc72898836", "mag": 1.32, "time": 1506362896010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.104, 37.324, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16903584", "mag": 1.0, "time": 1506362694028, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.2167, 63.9342, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80257639", "mag": 1.36, "time": 1506362284340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.615667, 46.316833, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16903579", "mag": 2.0, "time": 1506362237262, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1637, 59.6819, 106.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72898821", "mag": 1.99, "time": 1506361978590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.778667, 36.215667, 8.08 ] } }, - { "type": "Feature", "properties": { "id": "us2000auf8", "mag": 3.0, "time": 1506361091820, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.3303, 40.4414, 11.43 ] } }, - { "type": "Feature", "properties": { "id": "ci38010336", "mag": 2.11, "time": 1506360496580, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797167, 33.486667, 3.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16988686", "mag": 1.5, "time": 1506360479843, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.7769, 51.9886, 24.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38010328", "mag": 1.51, "time": 1506359920880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.977, 33.995333, 18.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16988684", "mag": 1.6, "time": 1506359020522, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4355, 59.7613, 127.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72898791", "mag": 1.48, "time": 1506357667280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.679333, 40.288667, 4.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72898786", "mag": 1.55, "time": 1506357321970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.322, 35.752333, 11.93 ] } }, - { "type": "Feature", "properties": { "id": "nc72898781", "mag": 1.12, "time": 1506356229990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.811333, 38.794833, 2.79 ] } }, - { "type": "Feature", "properties": { "id": "ci38010256", "mag": 1.04, "time": 1506354566340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.858833, 33.8575, 16.19 ] } }, - { "type": "Feature", "properties": { "id": "ci38010272", "mag": 2.41, "time": 1506354509850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9285, 31.688833, 11.63 ] } }, - { "type": "Feature", "properties": { "id": "mb80257609", "mag": 1.3, "time": 1506354504500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.534667, 46.896, 11.48 ] } }, - { "type": "Feature", "properties": { "id": "mb80257604", "mag": 1.12, "time": 1506354406140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.531833, 46.867, 11.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16902391", "mag": 1.7, "time": 1506354336298, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8601, 62.0271, 60.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16902390", "mag": 1.1, "time": 1506354175816, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3984, 60.1663, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16901812", "mag": 1.4, "time": 1506353222973, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.1565, 60.3908, 0.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16901813", "mag": 1.3, "time": 1506353183037, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6264, 58.8255, 1.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16901809", "mag": 2.0, "time": 1506352267382, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0949, 59.636, 10.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000aucr", "mag": 4.6, "time": 1506352047620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 167.4691, -14.8531, 132.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16901806", "mag": 1.8, "time": 1506351538258, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8449, 59.8126, 1.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80257594", "mag": 0.98, "time": 1506349616550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.521333, 46.870833, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38010208", "mag": 1.21, "time": 1506348868740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.552, 33.526167, 13.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16901226", "mag": 1.1, "time": 1506348768479, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2671, 59.9538, 54.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000aubr", "mag": 4.6, "time": 1506348737440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 167.0258, -12.6224, 229.97 ] } }, - { "type": "Feature", "properties": { "id": "ci38010200", "mag": 1.19, "time": 1506348702870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.953833, 34.8405, 11.97 ] } }, - { "type": "Feature", "properties": { "id": "us2000aubf", "mag": 4.4, "time": 1506348571430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1777, 15.5423, 60.99 ] } }, - { "type": "Feature", "properties": { "id": "nc72898721", "mag": 1.03, "time": 1506348240990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.838333, 38.837334, 1.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16901214", "mag": 2.7, "time": 1506348231637, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0448, 63.3492, 76.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000aub9", "mag": 4.3, "time": 1506347727000, "felt": 65, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.99, -32.683, 24.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72898706", "mag": 1.78, "time": 1506347531490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.838, 38.837833, 1.83 ] } }, - { "type": "Feature", "properties": { "id": "ci38010176", "mag": 0.96, "time": 1506346983830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.271667, 33.976667, 5.12 ] } }, - { "type": "Feature", "properties": { "id": "us2000aubt", "mag": 4.7, "time": 1506346771440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.6657, -38.3887, 23.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16988672", "mag": 1.9, "time": 1506346449512, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.0765, 51.5898, 46.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16901206", "mag": 2.2, "time": 1506346185448, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7016, 61.5212, 15.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16901204", "mag": 1.6, "time": 1506346082012, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4545, 63.1289, 110.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72898686", "mag": 1.5, "time": 1506345854120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.787167, 36.211667, 7.46 ] } }, - { "type": "Feature", "properties": { "id": "ak16988669", "mag": 1.8, "time": 1506344531244, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.2595, 53.699, 44.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16901203", "mag": 1.5, "time": 1506343558401, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.1793, 57.6776, 1.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72898666", "mag": 1.04, "time": 1506343096950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.862667, 37.613167, 7.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16900637", "mag": 2.0, "time": 1506342621159, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2424, 60.321, 83.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38010152", "mag": 1.32, "time": 1506342413630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.241667, 34.439, 7.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000aua8", "mag": 4.6, "time": 1506342291600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.282, -28.2916, 30.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72898661", "mag": 1.86, "time": 1506342035450, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.000167, 36.431, -0.28 ] } }, - { "type": "Feature", "properties": { "id": "ci38010136", "mag": 1.46, "time": 1506341314650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.559, 35.341833, 7.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16900622", "mag": 1.0, "time": 1506340661643, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.7013, 64.8764, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0h7", "mag": 4.2, "time": 1506340490190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 138.5087, 34.8799, 210.56 ] } }, - { "type": "Feature", "properties": { "id": "nc72898636", "mag": 1.46, "time": 1506340210490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.256667, 36.100167, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0hp", "mag": 4.2, "time": 1506340162430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4582, -17.8551, 595.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000au9u", "mag": 4.6, "time": 1506340077990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4978, -17.9975, 539.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16988664", "mag": 1.8, "time": 1506339965395, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4489, 51.676, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "hv61920741", "mag": 2.06, "time": 1506339899560, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.473667, 19.201667, 36.657 ] } }, - { "type": "Feature", "properties": { "id": "ci38010120", "mag": 0.99, "time": 1506339434380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.471167, 34.247833, 12.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16900621", "mag": 1.0, "time": 1506338627047, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.3115, 62.9535, 74.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72898616", "mag": 2.36, "time": 1506338018430, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.938333, 37.838667, 4.07 ] } }, - { "type": "Feature", "properties": { "id": "hv61920671", "mag": 1.81, "time": 1506336741780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.023667, 19.815, 11.479 ] } }, - { "type": "Feature", "properties": { "id": "mb80257584", "mag": 1.42, "time": 1506336624590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.521667, 46.869333, 11.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16900062", "mag": 1.8, "time": 1506336050720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8893, 60.3211, 15.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38010104", "mag": 1.06, "time": 1506335970890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7915, 33.506667, 6.39 ] } }, - { "type": "Feature", "properties": { "id": "nc72898601", "mag": 0.95, "time": 1506335637390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.6475, 37.476667, 8.18 ] } }, - { "type": "Feature", "properties": { "id": "nc72898596", "mag": 1.23, "time": 1506335593850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.2805, 36.094, 6.76 ] } }, - { "type": "Feature", "properties": { "id": "nc72898591", "mag": 1.04, "time": 1506335405570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.839333, 38.843166, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000au8v", "mag": 4.9, "time": 1506334920720, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 139.9741, -3.5898, 72.65 ] } }, - { "type": "Feature", "properties": { "id": "nn00606909", "mag": 1.4, "time": 1506334911790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.943, 37.551, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80257579", "mag": 1.3, "time": 1506333510580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523833, 46.872333, 11.79 ] } }, - { "type": "Feature", "properties": { "id": "mb80257574", "mag": 0.99, "time": 1506333384010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523, 46.875167, 11.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000au8b", "mag": 5.0, "time": 1506332531610, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 154.0023, -5.3939, 63.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16899481", "mag": 1.2, "time": 1506332463619, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8097, 60.337, 8.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16899478", "mag": 2.7, "time": 1506332457083, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.9674, 51.7565, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16899480", "mag": 2.7, "time": 1506332456973, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.9649, 51.7427, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72898561", "mag": 1.34, "time": 1506332073270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.401667, 37.650667, 3.17 ] } }, - { "type": "Feature", "properties": { "id": "mb80257569", "mag": 2.91, "time": 1506332057970, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525833, 46.879333, 11.49 ] } }, - { "type": "Feature", "properties": { "id": "nn00606905", "mag": 1.5, "time": 1506331668203, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9249, 38.3947, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38010072", "mag": 1.11, "time": 1506331415690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.790167, 33.497667, 5.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16988657", "mag": 1.9, "time": 1506331001341, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4079, 51.6208, 15.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16899468", "mag": 1.4, "time": 1506330891437, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3579, 60.2131, 58.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16899467", "mag": 1.1, "time": 1506330692323, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4142, 68.5865, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16899465", "mag": 1.0, "time": 1506330113229, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.991, 61.1695, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00606904", "mag": 2.5, "time": 1506329813575, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.1098, 39.0988, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16899462", "mag": 1.3, "time": 1506329610880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9036, 64.8595, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38010048", "mag": 1.15, "time": 1506329091670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.815, 33.9555, 13.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000au7c", "mag": 3.5, "time": 1506329082460, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5238, 46.8486, 10.68 ] } }, - { "type": "Feature", "properties": { "id": "ci38010040", "mag": 1.01, "time": 1506328796420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.568, 35.1735, 8.56 ] } }, - { "type": "Feature", "properties": { "id": "nn00606901", "mag": 1.2, "time": 1506328748981, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8911, 38.3811, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16898909", "mag": 1.4, "time": 1506327817672, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2932, 60.6736, 39.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16988651", "mag": 1.6, "time": 1506327629626, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8348, 59.5881, 89.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60249397", "mag": 2.17, "time": 1506327209020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.448333, 38.993, -0.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16898901", "mag": 1.1, "time": 1506326924743, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.6407, 58.3143, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000au6h", "mag": 4.7, "time": 1506326546500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.4008, -4.8417, 219.24 ] } }, - { "type": "Feature", "properties": { "id": "uu60249392", "mag": 1.79, "time": 1506326456200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.448, 42.620667, 6.55 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235773", "mag": 2.04, "time": 1506326285610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.968667, 37.281833, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000au5z", "mag": 4.4, "time": 1506325840560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.7801, 14.8764, 57.41 ] } }, - { "type": "Feature", "properties": { "id": "nc72898491", "mag": 0.95, "time": 1506325310440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.818667, 37.478667, 0.05 ] } }, - { "type": "Feature", "properties": { "id": "nc72898486", "mag": 1.27, "time": 1506324949470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8175, 37.479333, 0.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16898346", "mag": 2.1, "time": 1506324898662, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.5224, 64.5882, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000au5p", "mag": 4.4, "time": 1506324432650, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.5244, -30.022, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000au5l", "mag": 4.5, "time": 1506324225060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1793, 15.5215, 66.49 ] } }, - { "type": "Feature", "properties": { "id": "nc72898461", "mag": 1.64, "time": 1506323849520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.818167, 37.478667, 0.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000au5i", "mag": 4.6, "time": 1506323785060, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 106.9645, -8.3755, 34.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72898456", "mag": 1.01, "time": 1506323761220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.818833, 37.478167, 0.69 ] } }, - { "type": "Feature", "properties": { "id": "nn00606939", "mag": 1.6, "time": 1506320868071, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.5993, 41.6963, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988646", "mag": 1.6, "time": 1506320845663, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7721, 59.5535, 80.8 ] } }, - { "type": "Feature", "properties": { "id": "ci38009968", "mag": 1.23, "time": 1506320510170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.738333, 33.655, 17.08 ] } }, - { "type": "Feature", "properties": { "id": "us2000au57", "mag": 5.0, "time": 1506320285610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -25.7407, -59.0289, 23.15 ] } }, - { "type": "Feature", "properties": { "id": "nn00606937", "mag": 1.7, "time": 1506320281288, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.604, 41.7004, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80257544", "mag": 1.02, "time": 1506320165840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.538333, 46.891333, 11.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16897784", "mag": 1.7, "time": 1506319825200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9967, 59.5158, 86.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16897782", "mag": 1.0, "time": 1506319406475, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2438, 65.7781, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16897779", "mag": 1.8, "time": 1506318873463, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4148, 69.0584, 10.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72898431", "mag": 2.32, "time": 1506318557110, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.909, 37.334167, 8.51 ] } }, - { "type": "Feature", "properties": { "id": "nc72898406", "mag": 1.9, "time": 1506317549980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.705833, 39.697, 8.09 ] } }, - { "type": "Feature", "properties": { "id": "ak16988640", "mag": 1.4, "time": 1506317208929, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.0479, 57.5544, 76.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16988639", "mag": 1.2, "time": 1506316463527, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9489, 61.4034, 66.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00606934", "mag": 1.4, "time": 1506315296099, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8855, 37.2234, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000b0hn", "mag": 4.2, "time": 1506314791590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -27.4466, -60.0959, 87.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72898391", "mag": 0.97, "time": 1506314750800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.80867, 38.800999, 1.95 ] } }, - { "type": "Feature", "properties": { "id": "nc72898386", "mag": 2.07, "time": 1506314732630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810833, 38.797667, 3.49 ] } }, - { "type": "Feature", "properties": { "id": "nc72898381", "mag": 1.3, "time": 1506314425330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1325, 38.050167, 2.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16897226", "mag": 1.1, "time": 1506314336648, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.1369, 63.4162, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000au3u", "mag": 4.3, "time": 1506313752770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7839, 15.5489, 36.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16897223", "mag": 1.5, "time": 1506313722965, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5906, 61.3427, 45.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16897221", "mag": 1.1, "time": 1506313193707, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.457, 63.4294, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988635", "mag": 1.2, "time": 1506312840546, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0928, 61.1303, 26.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16988634", "mag": 1.1, "time": 1506312758288, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7179, 62.8463, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72898366", "mag": 1.09, "time": 1506312288130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.797501, 38.824165, 1.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16897219", "mag": 1.1, "time": 1506311801540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.8303, 63.2243, 16.3 ] } }, - { "type": "Feature", "properties": { "id": "uw61333436", "mag": 1.41, "time": 1506311554000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.943833, 48.589333, 4.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16896672", "mag": 2.4, "time": 1506311539840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6826, 63.2689, 133.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38009904", "mag": 1.71, "time": 1506311193160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.813167, 34.048833, 13.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16896671", "mag": 1.0, "time": 1506310652342, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.6095, 62.9432, 11.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38009840", "mag": 1.15, "time": 1506308854410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.765333, 33.325667, 12.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16896670", "mag": 1.3, "time": 1506308756498, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.6787, 59.995, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16896669", "mag": 1.3, "time": 1506308490557, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.667, 59.9936, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61920451", "mag": 2.11, "time": 1506307247260, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.050167, 19.765, 47.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16896663", "mag": 1.7, "time": 1506306347139, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.57, 59.4416, 74.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16896659", "mag": 1.5, "time": 1506306011000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5629, 61.3391, 37.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16896656", "mag": 1.3, "time": 1506306004481, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1978, 60.2569, 10.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16896653", "mag": 1.8, "time": 1506305432732, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6915, 61.3592, 87.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988622", "mag": 2.2, "time": 1506305398552, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.4539, 55.424, 127.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72898321", "mag": 0.97, "time": 1506303023560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821, 37.470667, 1.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38009824", "mag": 1.77, "time": 1506302722490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.721333, 32.171167, -0.08 ] } }, - { "type": "Feature", "properties": { "id": "us2000au34", "mag": 4.2, "time": 1506301011430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6458, 15.9582, 41.89 ] } }, - { "type": "Feature", "properties": { "id": "nc72898311", "mag": 1.53, "time": 1506300409700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.760333, 38.787333, 2.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72898316", "mag": 1.17, "time": 1506300389070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.902833, 37.434167, 1.61 ] } }, - { "type": "Feature", "properties": { "id": "uu60249337", "mag": 1.05, "time": 1506300187150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.028, 44.797667, 10.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16896106", "mag": 1.8, "time": 1506299319432, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0832, 61.9049, 66.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16895566", "mag": 1.9, "time": 1506298140072, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.9051, 57.7026, 76.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16988619", "mag": 1.6, "time": 1506298131890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9559, 60.0816, 113.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00606884", "mag": 1.4, "time": 1506297047630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0863, 37.3768, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000au2t", "mag": 4.6, "time": 1506295898530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 130.3868, 31.2471, 159.23 ] } }, - { "type": "Feature", "properties": { "id": "us2000au2s", "mag": 4.7, "time": 1506295771740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3651, 15.6767, 54.03 ] } }, - { "type": "Feature", "properties": { "id": "uu60249317", "mag": 2.04, "time": 1506295039370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.424667, 42.575667, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16935438", "mag": 1.4, "time": 1506294396969, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.934, 60.3588, 65.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72898291", "mag": 1.5, "time": 1506294312930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.799167, 37.544833, 8.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16895561", "mag": 1.1, "time": 1506294004090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0019, 62.1675, 14.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16895559", "mag": 1.7, "time": 1506293152617, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9808, 60.2626, 58.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72898281", "mag": 1.51, "time": 1506291814030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.123, 38.044833, 2.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16895553", "mag": 2.2, "time": 1506291209658, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.9667, 58.2749, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60249297", "mag": 2.2, "time": 1506289719780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.027, 44.7975, 11.07 ] } }, - { "type": "Feature", "properties": { "id": "nc72898251", "mag": 1.06, "time": 1506289376180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.80867, 38.824501, 1.89 ] } }, - { "type": "Feature", "properties": { "id": "nn00606863", "mag": 1.6, "time": 1506289302497, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1188, 37.3786, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16895018", "mag": 1.1, "time": 1506289187928, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5309, 62.2207, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72898246", "mag": 1.11, "time": 1506288942820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8205, 37.474667, -0.27 ] } }, - { "type": "Feature", "properties": { "id": "nc72898241", "mag": 1.11, "time": 1506288826190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819667, 37.477167, 0.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16935433", "mag": 1.6, "time": 1506288360789, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4754, 58.4123, 46.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16935432", "mag": 2.5, "time": 1506287912932, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.0291, 52.8069, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16895001", "mag": 2.4, "time": 1506287325387, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3822, 59.9552, 133.4 ] } }, - { "type": "Feature", "properties": { "id": "nc71107574", "mag": 1.82, "time": 1506286958930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.1525, 38.965833, 3.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72898236", "mag": 1.93, "time": 1506286874150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.849, 36.277667, 7.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16894980", "mag": 2.3, "time": 1506286457929, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5039, 61.3116, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000au0x", "mag": 4.1, "time": 1506285951620, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 137.7689, 33.0106, 343.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16894459", "mag": 1.4, "time": 1506285529465, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7694, 59.8585, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16894458", "mag": 3.5, "time": 1506285383201, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4213, 51.6336, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61919931", "mag": 1.61, "time": 1506285094170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2325, 19.4085, 26.679 ] } }, - { "type": "Feature", "properties": { "id": "nm60207286", "mag": 1.46, "time": 1506284271340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.900667, 36.601833, 4.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72898226", "mag": 1.94, "time": 1506284238360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819, 37.476167, 0.74 ] } }, - { "type": "Feature", "properties": { "id": "hv61919891", "mag": 2.03, "time": 1506284234210, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.278503, 19.407, 0.61 ] } }, - { "type": "Feature", "properties": { "id": "us2000au0l", "mag": 5.0, "time": 1506283809180, "felt": 1, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 102.0863, -3.3959, 96.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16894448", "mag": 1.6, "time": 1506283718319, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1504, 61.1564, 63.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72898216", "mag": 1.02, "time": 1506283590520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.826836, 38.841167, 1.21 ] } }, - { "type": "Feature", "properties": { "id": "nc72898211", "mag": 1.57, "time": 1506283158900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.113333, 38.042667, 2.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16894439", "mag": 2.3, "time": 1506283079762, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.7022, 51.6829, 87.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72898206", "mag": 1.24, "time": 1506283017210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.777, 35.512, 0.74 ] } }, - { "type": "Feature", "properties": { "id": "ci38009648", "mag": 0.95, "time": 1506282824500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.909333, 33.494, 13.21 ] } }, - { "type": "Feature", "properties": { "id": "nc72898196", "mag": 1.08, "time": 1506282126770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.81, 38.806833, 2.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16893920", "mag": 1.6, "time": 1506281844692, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.421, 62.907, 126.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72898191", "mag": 1.6, "time": 1506281467240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.010167, 37.8015, 1.31 ] } }, - { "type": "Feature", "properties": { "id": "nc72898186", "mag": 2.26, "time": 1506281041390, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8185, 37.474833, -0.18 ] } }, - { "type": "Feature", "properties": { "id": "uw61333306", "mag": 1.11, "time": 1506280827540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.812333, 48.284667, 12.62 ] } }, - { "type": "Feature", "properties": { "id": "ci38009608", "mag": 1.3, "time": 1506280518180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.038, 33.0905, 2.11 ] } }, - { "type": "Feature", "properties": { "id": "nc72898176", "mag": 2.1, "time": 1506280314320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.818333, 37.475833, 0.78 ] } }, - { "type": "Feature", "properties": { "id": "ak16935422", "mag": 1.6, "time": 1506280296755, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7731, 59.4501, 75.7 ] } }, - { "type": "Feature", "properties": { "id": "hv61919726", "mag": 1.9, "time": 1506279270940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.4185, 19.110833, 41.621 ] } }, - { "type": "Feature", "properties": { "id": "ak16935421", "mag": 1.7, "time": 1506279143123, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.5363, 51.7438, 15.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16893907", "mag": 2.1, "time": 1506278978748, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.4135, 66.1088, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61333296", "mag": 1.51, "time": 1506278869250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.581833, 47.593, 24.95 ] } }, - { "type": "Feature", "properties": { "id": "nc72898171", "mag": 1.13, "time": 1506278629370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.543167, 38.264833, 8.24 ] } }, - { "type": "Feature", "properties": { "id": "nn00606834", "mag": 1.5, "time": 1506278416314, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.885, 38.3509, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38009568", "mag": 1.23, "time": 1506278315340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.492333, 35.604833, 5.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16893391", "mag": 2.3, "time": 1506277628203, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.1998, 53.9184, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16893390", "mag": 1.1, "time": 1506277025981, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1933, 68.4549, 18.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16893388", "mag": 1.5, "time": 1506276710660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.3135, 68.0219, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16935416", "mag": 1.8, "time": 1506276357546, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.0551, 51.7225, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72898146", "mag": 1.54, "time": 1506276015270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810333, 38.836, 1.98 ] } }, - { "type": "Feature", "properties": { "id": "nn00606827", "mag": 1.3, "time": 1506274049277, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6642, 36.4428, 7.2 ] } }, - { "type": "Feature", "properties": { "id": "uw61333281", "mag": 2.14, "time": 1506273261550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.502167, 49.447833, -0.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000atz0", "mag": 4.3, "time": 1506273226630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.369, -22.6476, 261.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38009520", "mag": 2.39, "time": 1506272765060, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.032333, 33.096333, 9.36 ] } }, - { "type": "Feature", "properties": { "id": "nc72898121", "mag": 1.18, "time": 1506272385880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.880667, 37.538167, 3.63 ] } }, - { "type": "Feature", "properties": { "id": "us2000atyw", "mag": 4.9, "time": 1506272236140, "felt": 49, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 27.2871, 36.912, 8.66 ] } }, - { "type": "Feature", "properties": { "id": "uw61333276", "mag": 0.97, "time": 1506272212660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.677, 48.245, 8.69 ] } }, - { "type": "Feature", "properties": { "id": "ci38009504", "mag": 1.59, "time": 1506272197880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.0285, 33.096, 10.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16935414", "mag": 1.3, "time": 1506271871925, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3105, 62.8907, 109.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16892357", "mag": 1.5, "time": 1506271104455, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2217, 60.9895, 43.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16892356", "mag": 1.0, "time": 1506270748541, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7754, 66.4015, 0.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00606816", "mag": 1.3, "time": 1506270455535, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.3547, 38.3427, 11.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16892349", "mag": 2.1, "time": 1506269387778, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9052, 64.2272, 113.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16892348", "mag": 1.2, "time": 1506269350233, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0305, 61.1531, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60249237", "mag": 1.72, "time": 1506268839820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.899, 38.3125, 1.61 ] } }, - { "type": "Feature", "properties": { "id": "nc72898066", "mag": 2.26, "time": 1506268374330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820667, 37.604333, 4.11 ] } }, - { "type": "Feature", "properties": { "id": "hv61919541", "mag": 2.2, "time": 1506268362680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.553, 19.106833, 58.134 ] } }, - { "type": "Feature", "properties": { "id": "nc72898071", "mag": 1.35, "time": 1506268343880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.978833, 37.602333, 0.75 ] } }, - { "type": "Feature", "properties": { "id": "uw61333251", "mag": 0.99, "time": 1506267835060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.7565, 46.8405, 0.46 ] } }, - { "type": "Feature", "properties": { "id": "uu60249227", "mag": 1.55, "time": 1506267791100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.045667, 38.595, 10.17 ] } }, - { "type": "Feature", "properties": { "id": "nc72898046", "mag": 1.31, "time": 1506267662950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.359333, 36.063833, 13.03 ] } }, - { "type": "Feature", "properties": { "id": "uw61333241", "mag": 1.02, "time": 1506266858960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.7535, 46.835833, -0.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000atyb", "mag": 4.2, "time": 1506265370020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9623, 16.5258, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16891829", "mag": 1.1, "time": 1506265012702, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.7832, 60.3293, 15.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61333221", "mag": 2.23, "time": 1506264885990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.458, 41.843167, 29.32 ] } }, - { "type": "Feature", "properties": { "id": "ci38009392", "mag": 2.47, "time": 1506263949730, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.965667, 33.074, 3.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16891827", "mag": 1.6, "time": 1506263040480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.0762, 68.8735, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16935406", "mag": 1.9, "time": 1506262994682, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4328, 58.9133, 119.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60249217", "mag": 1.98, "time": 1506261948290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.8955, 38.308167, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "uw61333201", "mag": 1.01, "time": 1506261154820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.757333, 46.836833, 0.83 ] } }, - { "type": "Feature", "properties": { "id": "nn00606861", "mag": 1.0, "time": 1506260845911, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9076, 39.4306, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16891323", "mag": 1.6, "time": 1506260101784, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2725, 63.8369, 122.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16935404", "mag": 1.9, "time": 1506259949572, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.9271, 51.4777, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16891318", "mag": 1.4, "time": 1506258938436, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.1228, 60.1784, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16935403", "mag": 1.5, "time": 1506258927685, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.537, 59.7654, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awkh", "mag": 4.5, "time": 1506257940620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.6787, -21.4068, 6.58 ] } }, - { "type": "Feature", "properties": { "id": "ci38009360", "mag": 1.01, "time": 1506257616920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.6935, 33.4475, 13.86 ] } }, - { "type": "Feature", "properties": { "id": "hv61919476", "mag": 2.71, "time": 1506257049620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.326172, 19.400499, 6.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000azwe", "mag": 4.0, "time": 1506256906900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0503, 15.0164, 47.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16935402", "mag": 1.3, "time": 1506256449894, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1247, 62.5252, 67.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000atx8", "mag": 4.5, "time": 1506256396240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.2151, 16.4456, 23.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000awke", "mag": 4.3, "time": 1506254896510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -99.7664, -36.2005, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000atx1", "mag": 4.3, "time": 1506253816940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8221, 15.5422, 39.51 ] } }, - { "type": "Feature", "properties": { "id": "nc72897966", "mag": 1.94, "time": 1506252917940, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.353833, 38.334333, 8.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16890316", "mag": 1.9, "time": 1506251419309, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7084, 53.1628, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16935399", "mag": 2.2, "time": 1506251253254, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.9705, 58.4119, 157.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000awkb", "mag": 4.4, "time": 1506250943050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.3134, -22.0133, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38009336", "mag": 1.4, "time": 1506250687150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.573, 33.198833, 3.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16935398", "mag": 1.7, "time": 1506250678217, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.541, 51.1205, 34.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37166588", "mag": 1.39, "time": 1506250675520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.547333, 33.281167, 1.13 ] } }, - { "type": "Feature", "properties": { "id": "ci38009328", "mag": 1.47, "time": 1506250567750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.565833, 33.2015, 2.63 ] } }, - { "type": "Feature", "properties": { "id": "us2000azw4", "mag": 4.0, "time": 1506250079340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2354, 15.2643, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72897961", "mag": 1.0, "time": 1506249470110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.771164, 38.839333, 1.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16890295", "mag": 3.1, "time": 1506249009854, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.4939, 58.556, 142.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38009320", "mag": 1.29, "time": 1506248967650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.577833, 33.1915, 3.45 ] } }, - { "type": "Feature", "properties": { "id": "us2000awka", "mag": 4.5, "time": 1506248797510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 101.4422, -3.5379, 76.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16889805", "mag": 1.1, "time": 1506248542391, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6804, 65.8304, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16889804", "mag": 1.4, "time": 1506248465317, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0578, 61.0579, 16.4 ] } }, - { "type": "Feature", "properties": { "id": "hv61919431", "mag": 2.09, "time": 1506248237750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.282165, 19.41, 0.97 ] } }, - { "type": "Feature", "properties": { "id": "us2000atwe", "mag": 5.8, "time": 1506247572180, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0996, 15.3335, 55.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16889794", "mag": 1.8, "time": 1506247473558, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2731, 60.4252, 19.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16889792", "mag": 1.2, "time": 1506245981072, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4789, 61.3979, 20.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16935392", "mag": 2.2, "time": 1506245821194, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.1457, 52.299, 147.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61333151", "mag": 1.32, "time": 1506245720210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.3825, 46.455, 17.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000atw1", "mag": 4.3, "time": 1506245575860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -86.8213, 11.9773, 72.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16889787", "mag": 1.5, "time": 1506245559319, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1034, 61.6735, 30.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72897941", "mag": 1.12, "time": 1506245298510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.880333, 37.529333, 3.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16889785", "mag": 1.4, "time": 1506245231368, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6899, 61.5181, 15.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000atvx", "mag": 4.0, "time": 1506245211400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.2276, 16.4152, 5.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16889300", "mag": 1.5, "time": 1506244274159, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0562, 62.8873, 108.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16889299", "mag": 1.7, "time": 1506243971468, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.0331, 60.0823, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16889298", "mag": 1.2, "time": 1506242695770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7525, 61.9971, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61919256", "mag": 2.47, "time": 1506242595490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.234167, 19.416667, 25.716 ] } }, - { "type": "Feature", "properties": { "id": "ak16889296", "mag": 1.5, "time": 1506242565319, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7169, 65.857, 21.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72897921", "mag": 1.06, "time": 1506242001250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8435, 37.469667, 2.92 ] } }, - { "type": "Feature", "properties": { "id": "nc72897911", "mag": 2.08, "time": 1506241606310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.552333, 36.824833, 5.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16888862", "mag": 1.4, "time": 1506241109945, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2949, 62.9113, 106.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38009280", "mag": 1.11, "time": 1506240906400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0385, 33.996167, 14.68 ] } }, - { "type": "Feature", "properties": { "id": "us2000atvi", "mag": 2.6, "time": 1506240803150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4513, 42.6043, 5.23 ] } }, - { "type": "Feature", "properties": { "id": "us2000atvl", "mag": 4.0, "time": 1506239983840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9034, 16.4793, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16888812", "mag": 1.7, "time": 1506239643860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1541, 59.6562, 69.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16935382", "mag": 1.8, "time": 1506239506704, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5249, 57.6124, 45.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80257374", "mag": 1.2, "time": 1506238135570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.523333, 46.868, 11.76 ] } }, - { "type": "Feature", "properties": { "id": "nn00606790", "mag": 1.5, "time": 1506237560657, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.1999, 42.1841, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000atv2", "mag": 4.3, "time": 1506236966640, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.864, -35.1565, 48.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16888374", "mag": 1.9, "time": 1506236724000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8397, 62.9467, 106.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16888373", "mag": 1.0, "time": 1506236683719, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1115, 61.3903, 3.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60249142", "mag": 1.26, "time": 1506236544020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.028333, 44.8, 10.63 ] } }, - { "type": "Feature", "properties": { "id": "nc72897871", "mag": 1.79, "time": 1506236124510, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.845333, 35.541667, 5.98 ] } }, - { "type": "Feature", "properties": { "id": "nc72897866", "mag": 2.12, "time": 1506235870210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.3545, 38.341333, 8.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16935379", "mag": 1.6, "time": 1506235725999, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.5436, 51.4418, 21.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000atuj", "mag": 4.6, "time": 1506235179700, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -75.5466, -14.3043, 33.52 ] } }, - { "type": "Feature", "properties": { "id": "nc72903821", "mag": 1.02, "time": 1506234997060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.948167, 41.046333, 9.53 ] } }, - { "type": "Feature", "properties": { "id": "nc72897856", "mag": 1.71, "time": 1506234937540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8185, 37.471333, 1.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16935378", "mag": 1.3, "time": 1506234863595, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9435, 61.261, 59.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38009240", "mag": 0.99, "time": 1506234721960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.828167, 33.977667, 16.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16935377", "mag": 3.3, "time": 1506234648623, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.3164, 50.4387, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16888327", "mag": 1.1, "time": 1506234051194, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0067, 67.8619, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61919146", "mag": 1.76, "time": 1506233551670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.438667, 19.110833, 40.565 ] } }, - { "type": "Feature", "properties": { "id": "nc72897836", "mag": 1.19, "time": 1506233494190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.879667, 37.536833, 3.32 ] } }, - { "type": "Feature", "properties": { "id": "nc72897831", "mag": 1.19, "time": 1506233212800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.880167, 37.536833, 3.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16935375", "mag": 1.1, "time": 1506232927752, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.625, 63.077, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16887898", "mag": 1.9, "time": 1506232339124, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4442, 51.588, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000atud", "mag": 4.6, "time": 1506232184760, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 122.3102, 23.9217, 19.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16887893", "mag": 1.8, "time": 1506231025885, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6676, 61.5229, 16.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000attv", "mag": 3.2, "time": 1506230915380, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4686, 42.6086, 5.28 ] } }, - { "type": "Feature", "properties": { "id": "ci38009080", "mag": 1.1, "time": 1506230493370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.65, 35.937333, 3.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72897801", "mag": 1.86, "time": 1506230402950, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.880833, 37.5355, 3.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000attk", "mag": 4.4, "time": 1506229834430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.9698, 16.526, 14.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16887845", "mag": 2.2, "time": 1506229788458, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3609, 60.3798, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38009064", "mag": 2.54, "time": 1506229471590, "felt": 15, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.708833, 34.611167, -0.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16887419", "mag": 2.5, "time": 1506228712730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.1558, 57.6827, 0.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60249092", "mag": 1.45, "time": 1506228417670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.041833, 38.6065, 7.11 ] } }, - { "type": "Feature", "properties": { "id": "uu60013144", "mag": 2.65, "time": 1506227971910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.063667, 38.596667, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "uu60249087", "mag": 3.34, "time": 1506227924130, "felt": 52, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.056, 38.615, 7.09 ] } }, - { "type": "Feature", "properties": { "id": "ci38009040", "mag": 1.66, "time": 1506227707260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.754667, 32.691333, 7.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16887417", "mag": 1.4, "time": 1506227635748, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4813, 59.9807, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61919026", "mag": 1.76, "time": 1506225952210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.284164, 19.394167, 2.71 ] } }, - { "type": "Feature", "properties": { "id": "hv61918996", "mag": 1.99, "time": 1506224898090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.28067, 19.403999, 1.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000atsq", "mag": 4.1, "time": 1506223896740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.2705, -18.0175, 148.09 ] } }, - { "type": "Feature", "properties": { "id": "ak16935368", "mag": 2.3, "time": 1506222958411, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.4834, 51.3236, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16886952", "mag": 1.2, "time": 1506222874628, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.387, 59.9979, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nm60207271", "mag": 1.17, "time": 1506222175440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.522833, 36.477167, 7.22 ] } }, - { "type": "Feature", "properties": { "id": "nc72897746", "mag": 1.28, "time": 1506221915120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.720833, 38.788, 2.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16886490", "mag": 1.1, "time": 1506220290807, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.3418, 62.9812, 77.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000atse", "mag": 4.6, "time": 1506220200040, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.2801, -27.8834, 30.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16935365", "mag": 1.8, "time": 1506220032447, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.1268, 57.8123, 70.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72897736", "mag": 1.07, "time": 1506219512840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8245, 37.478833, 1.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16935364", "mag": 2.4, "time": 1506219397177, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.8092, 52.1986, 20.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72897726", "mag": 2.48, "time": 1506219108260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -125.023333, 40.3465, 9.33 ] } }, - { "type": "Feature", "properties": { "id": "us2000atsa", "mag": 4.2, "time": 1506218615340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8425, 16.574, 39.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16935363", "mag": 1.0, "time": 1506217950145, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5769, 68.6004, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72897701", "mag": 1.48, "time": 1506217326030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819333, 37.475, -0.04 ] } }, - { "type": "Feature", "properties": { "id": "nc72897696", "mag": 1.19, "time": 1506216792400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.125, 36.5355, 3.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16886371", "mag": 2.1, "time": 1506216606733, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.8852, 51.4616, 53.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000atrn", "mag": 3.8, "time": 1506215497620, "felt": 67, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.1371, 36.3727, 2.82 ] } }, - { "type": "Feature", "properties": { "id": "nc72897686", "mag": 2.17, "time": 1506215076790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.141167, 36.555, 2.89 ] } }, - { "type": "Feature", "properties": { "id": "ci38008976", "mag": 1.32, "time": 1506215071310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.450333, 34.2865, 7.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000atrk", "mag": 5.0, "time": 1506214584220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 161.7808, -10.6598, 47.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16885992", "mag": 2.0, "time": 1506214179876, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6803, 63.2188, 129.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38008968", "mag": 1.0, "time": 1506214163490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8005, 33.996, 18.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16885991", "mag": 1.4, "time": 1506214156491, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6167, 63.06, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16885975", "mag": 2.0, "time": 1506213434632, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5807, 63.0643, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16885911", "mag": 1.9, "time": 1506213142249, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5965, 63.0635, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000atre", "mag": 4.4, "time": 1506212946200, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -88.7877, 12.9849, 60.16 ] } }, - { "type": "Feature", "properties": { "id": "nc72897676", "mag": 1.44, "time": 1506212851640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.836167, 37.574667, 1.65 ] } }, - { "type": "Feature", "properties": { "id": "ci38008928", "mag": 1.02, "time": 1506212597460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.178333, 33.195833, 6.76 ] } }, - { "type": "Feature", "properties": { "id": "ci38008920", "mag": 1.07, "time": 1506212251010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.430333, 34.0525, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16885578", "mag": 1.8, "time": 1506211566495, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6255, 61.4518, 71.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16885576", "mag": 1.5, "time": 1506211049943, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.5978, 61.5229, 17.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16885547", "mag": 1.3, "time": 1506210780241, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.6346, 63.8335, 106.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16885533", "mag": 1.6, "time": 1506209676573, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5334, 61.8507, 43.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72897656", "mag": 1.03, "time": 1506208996140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7145, 38.772667, 2.47 ] } }, - { "type": "Feature", "properties": { "id": "ci38008912", "mag": 1.4, "time": 1506208905320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.801167, 33.9745, 17.62 ] } }, - { "type": "Feature", "properties": { "id": "ci38008904", "mag": 1.35, "time": 1506208456300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.924333, 33.9845, 4.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000atqq", "mag": 4.5, "time": 1506207994550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9873, 16.6593, 8.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16885149", "mag": 1.0, "time": 1506207804984, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3702, 64.9969, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60249057", "mag": 2.12, "time": 1506207074140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.304, 44.720667, 6.11 ] } }, - { "type": "Feature", "properties": { "id": "nc72897646", "mag": 1.23, "time": 1506206872800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.735333, 38.787167, 1.28 ] } }, - { "type": "Feature", "properties": { "id": "us2000atq4", "mag": 4.6, "time": 1506204121620, "felt": 194, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.616, -33.7421, 44.72 ] } }, - { "type": "Feature", "properties": { "id": "ci38008864", "mag": 1.58, "time": 1506203611410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.609, 33.181333, 2.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16884706", "mag": 3.1, "time": 1506202930250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.1771, 51.8267, 132.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000atpq", "mag": 4.9, "time": 1506201617890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 124.82, 7.5438, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000atpp", "mag": 4.9, "time": 1506201494980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 124.8199, 7.5946, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16884645", "mag": 1.0, "time": 1506201077397, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.96, 64.7531, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000atpb", "mag": 5.7, "time": 1506199628760, "felt": 53, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 124.8736, 7.6285, 31.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16884300", "mag": 2.8, "time": 1506199486287, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.6652, 52.5903, 67.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72897611", "mag": 1.26, "time": 1506199458450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821667, 37.604333, 4.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16884298", "mag": 1.2, "time": 1506198439700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.5445, 59.7818, 0.1 ] } }, - { "type": "Feature", "properties": { "id": "uw61332966", "mag": 1.38, "time": 1506197756870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.684333, 48.248, 9.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16884247", "mag": 2.2, "time": 1506197594492, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.0461, 51.8485, 92.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16883936", "mag": 1.0, "time": 1506196999226, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8099, 64.7452, 10.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38008816", "mag": 1.2, "time": 1506196919720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.403833, 34.223333, 11.34 ] } }, - { "type": "Feature", "properties": { "id": "nc72897586", "mag": 2.51, "time": 1506196446140, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.396167, 40.494333, 25.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72897566", "mag": 2.07, "time": 1506194792800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.835833, 37.572667, 1.63 ] } }, - { "type": "Feature", "properties": { "id": "nc72897561", "mag": 1.83, "time": 1506194678430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8365, 37.574, 1.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16883864", "mag": 2.8, "time": 1506194224396, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.8992, 51.3293, 31.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16883866", "mag": 1.0, "time": 1506193955730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8833, 59.8983, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72897541", "mag": 1.74, "time": 1506193009290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820833, 37.6045, 4.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16883553", "mag": 1.2, "time": 1506192900100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4017, 65.5315, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16883554", "mag": 1.2, "time": 1506192680980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.0611, 67.1099, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000atnx", "mag": 2.6, "time": 1506192601240, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4214, 42.5566, 9.03 ] } }, - { "type": "Feature", "properties": { "id": "ak16883552", "mag": 1.1, "time": 1506192410113, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.197, 60.3011, 0.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72897531", "mag": 2.28, "time": 1506191594770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821667, 37.604, 4.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000augr", "mag": 4.5, "time": 1506191531170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.4442, -11.942, 15.62 ] } }, - { "type": "Feature", "properties": { "id": "ci38008760", "mag": 1.23, "time": 1506190682920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.415167, 33.1465, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38008752", "mag": 1.14, "time": 1506190401470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.972, 33.217167, 7.81 ] } }, - { "type": "Feature", "properties": { "id": "nc72897521", "mag": 1.68, "time": 1506190013010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.811833, 38.821167, 1.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16883482", "mag": 1.4, "time": 1506189726896, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.742, 64.4224, 18.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16923786", "mag": 2.7, "time": 1506189654902, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.1544, 53.4208, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "hv61918336", "mag": 2.94, "time": 1506189242240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.611167, 19.4215, 2.482 ] } }, - { "type": "Feature", "properties": { "id": "us2000atn1", "mag": 4.4, "time": 1506188901480, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 125.1457, 7.0739, 96.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72897511", "mag": 1.1, "time": 1506188786860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.7965, 37.484667, 7.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16883178", "mag": 2.9, "time": 1506188673480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5715, 58.1668, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16923784", "mag": 1.7, "time": 1506187667099, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6425, 60.6215, 67.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000atms", "mag": 5.0, "time": 1506187553100, "felt": 30, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.9096, -30.7535, 117.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38008720", "mag": 1.14, "time": 1506187127550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.4515, 34.231833, 12.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72897476", "mag": 2.49, "time": 1506186613660, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.3425, 36.714, -0.57 ] } }, - { "type": "Feature", "properties": { "id": "nc72897471", "mag": 1.19, "time": 1506186452260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.773834, 38.833832, 1.91 ] } }, - { "type": "Feature", "properties": { "id": "ci38008696", "mag": 1.09, "time": 1506186268310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.848333, 36.183167, 3.2 ] } }, - { "type": "Feature", "properties": { "id": "ci38008688", "mag": 1.35, "time": 1506185983910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.845167, 36.179667, 2.43 ] } }, - { "type": "Feature", "properties": { "id": "nc72897466", "mag": 1.85, "time": 1506185948480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.807, 38.052667, 0.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000atmg", "mag": 4.4, "time": 1506185133990, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 71.1291, 36.4703, 91.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000atmf", "mag": 4.5, "time": 1506184783190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.21, -28.772, 131.62 ] } }, - { "type": "Feature", "properties": { "id": "nc72897451", "mag": 1.44, "time": 1506184758630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.9955, 36.407667, 6.86 ] } }, - { "type": "Feature", "properties": { "id": "ci38008672", "mag": 2.68, "time": 1506184689590, "felt": 16, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8015, 33.498333, 5.63 ] } }, - { "type": "Feature", "properties": { "id": "ci38008664", "mag": 1.11, "time": 1506184563870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.261167, 34.006833, 14.43 ] } }, - { "type": "Feature", "properties": { "id": "us2000atmc", "mag": 2.7, "time": 1506184527900, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4447, 42.5711, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000atma", "mag": 4.4, "time": 1506183893420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7171, 16.8156, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72897441", "mag": 1.31, "time": 1506183491090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.606833, 37.170833, 12.95 ] } }, - { "type": "Feature", "properties": { "id": "nc72897436", "mag": 1.56, "time": 1506183390100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.606833, 37.198667, 10.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16882778", "mag": 2.6, "time": 1506183338101, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.6342, 57.1033, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16923782", "mag": 2.0, "time": 1506182696586, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8058, 59.0921, 75.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16882769", "mag": 3.1, "time": 1506182496691, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.0149, 52.3026, 176.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000atm1", "mag": 4.3, "time": 1506182042160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 62.7519, 26.1798, 45.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16882474", "mag": 1.9, "time": 1506181429544, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7141, 61.0689, 15.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16882473", "mag": 1.1, "time": 1506181415825, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.5959, 60.5708, 14.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72897426", "mag": 1.24, "time": 1506180532690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.623667, 37.188167, 10.74 ] } }, - { "type": "Feature", "properties": { "id": "ci38008584", "mag": 1.58, "time": 1506180105990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.444, 33.030667, 2.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000atlk", "mag": 3.8, "time": 1506180000610, "felt": 14, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4292, 42.5433, 9.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000atlf", "mag": 4.2, "time": 1506179194220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0107, 16.603, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80257194", "mag": 1.15, "time": 1506178837080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525833, 46.886, 12.66 ] } }, - { "type": "Feature", "properties": { "id": "nn00606739", "mag": 1.0, "time": 1506178325112, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.0924, 40.2311, 5.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38008536", "mag": 1.59, "time": 1506177881730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.795667, 33.495667, 3.67 ] } }, - { "type": "Feature", "properties": { "id": "us2000atkr", "mag": 4.9, "time": 1506177106540, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8831, 16.6905, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000atku", "mag": 4.2, "time": 1506176872070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.97, 16.7939, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72897386", "mag": 1.06, "time": 1506176360420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.811667, 38.818667, 2.57 ] } }, - { "type": "Feature", "properties": { "id": "ci38008512", "mag": 2.34, "time": 1506176315810, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0575, 34.503333, 8.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000atkn", "mag": 4.4, "time": 1506176300040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.1269, 16.7434, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16882104", "mag": 1.1, "time": 1506175629079, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8075, 60.3407, 9.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72897361", "mag": 0.96, "time": 1506174820850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.612, 37.392833, 13.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16881826", "mag": 2.5, "time": 1506174802909, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.6324, 58.8539, 123.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38008496", "mag": 1.78, "time": 1506174424760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.817167, 34.867667, 4.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16881795", "mag": 1.1, "time": 1506173527174, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8881, 64.8661, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000atke", "mag": 5.1, "time": 1506173434140, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 120.8176, 13.6704, 193.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000atk8", "mag": 4.8, "time": 1506173052110, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9123, 16.7308, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16881771", "mag": 1.2, "time": 1506172200912, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8726, 64.8605, 11.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16881749", "mag": 1.6, "time": 1506171778198, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8844, 64.8563, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000atjy", "mag": 4.3, "time": 1506171499860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.9043, -2.9658, 44.93 ] } }, - { "type": "Feature", "properties": { "id": "uu60248857", "mag": 1.35, "time": 1506171338590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.890833, 37.000833, 18.28 ] } }, - { "type": "Feature", "properties": { "id": "us2000atjv", "mag": 6.1, "time": 1506171182420, "felt": 203, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9509, 16.7732, 9.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16881467", "mag": 1.4, "time": 1506170949832, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8768, 64.9158, 8.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16881459", "mag": 1.7, "time": 1506170669236, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6941, 64.6752, 17.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16881453", "mag": 1.5, "time": 1506170369239, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9047, 64.8585, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000atjm", "mag": 4.6, "time": 1506169519350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.1923, 31.1823, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000avhc", "mag": 2.6, "time": 1506167877970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.84, 52.2553, 189.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16881171", "mag": 2.3, "time": 1506167030162, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.8612, 51.6605, 44.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60248832", "mag": 1.05, "time": 1506167017860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.340667, 40.274333, 3.24 ] } }, - { "type": "Feature", "properties": { "id": "us2000augc", "mag": 4.6, "time": 1506166612290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 154.9573, -5.8521, 181.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16881170", "mag": 1.2, "time": 1506166372386, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7852, 62.5649, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16881168", "mag": 1.3, "time": 1506166038103, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5567, 63.2977, 0.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72897346", "mag": 1.79, "time": 1506165696260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.112333, 37.231, 6.72 ] } }, - { "type": "Feature", "properties": { "id": "us2000avha", "mag": 3.4, "time": 1506165671380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.4308, 52.2784, 36.52 ] } }, - { "type": "Feature", "properties": { "id": "ci38008448", "mag": 1.41, "time": 1506165347360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.561667, 32.957167, 8.78 ] } }, - { "type": "Feature", "properties": { "id": "ak16881165", "mag": 1.3, "time": 1506165145820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3968, 60.1913, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16881154", "mag": 1.7, "time": 1506164474729, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4355, 60.0468, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16923760", "mag": 1.5, "time": 1506164269172, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.3627, 51.5307, 19.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000atis", "mag": 5.8, "time": 1506163088980, "felt": 26, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1625, 15.6979, 74.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16880880", "mag": 2.0, "time": 1506162923314, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4514, 58.8323, 121.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16880879", "mag": 1.5, "time": 1506162509845, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4379, 59.9894, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72897331", "mag": 1.09, "time": 1506162381540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.827, 37.610667, 4.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16880874", "mag": 1.6, "time": 1506161778674, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9513, 62.6833, 55.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16880872", "mag": 2.2, "time": 1506161709130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.2999, 57.8298, 119.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16880868", "mag": 1.9, "time": 1506161335096, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.0011, 60.342, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16880864", "mag": 1.5, "time": 1506160533641, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2829, 64.8808, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72897316", "mag": 1.12, "time": 1506160300400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.288667, 36.670833, 2.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000ati0", "mag": 4.5, "time": 1506158356450, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -77.7746, 9.1385, 52.29 ] } }, - { "type": "Feature", "properties": { "id": "nc72897301", "mag": 3.32, "time": 1506157219710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.0845, 40.348333, 11.62 ] } }, - { "type": "Feature", "properties": { "id": "uw61332771", "mag": 1.35, "time": 1506157207660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.313333, 47.606333, 8.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72897271", "mag": 1.14, "time": 1506156362630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.254167, 36.643167, 6.03 ] } }, - { "type": "Feature", "properties": { "id": "ak16880667", "mag": 1.1, "time": 1506155808049, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.5764, 61.5311, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ati7", "mag": 3.5, "time": 1506155357560, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.0524, 41.3116, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000atht", "mag": 4.7, "time": 1506154802240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 152.0272, 44.3731, 31.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16880659", "mag": 1.0, "time": 1506154668324, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.1159, 65.4383, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16880589", "mag": 2.0, "time": 1506153946841, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6279, 61.5946, 79.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72897246", "mag": 1.31, "time": 1506153823970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.762, 38.794, 0.72 ] } }, - { "type": "Feature", "properties": { "id": "ci38008352", "mag": 1.63, "time": 1506153604550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.4425, 33.0265, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00606675", "mag": 1.2, "time": 1506152057931, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9167, 38.4054, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16880394", "mag": 3.6, "time": 1506152017544, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.3853, 52.2081, 31.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16923747", "mag": 1.9, "time": 1506151958661, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4175, 51.6761, 16.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38008344", "mag": 1.48, "time": 1506151638300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.324167, 33.310833, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60248802", "mag": 2.41, "time": 1506151450100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.419667, 42.565833, 9.15 ] } }, - { "type": "Feature", "properties": { "id": "us2000ath8", "mag": 4.1, "time": 1506151137510, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2976, 15.8203, 61.65 ] } }, - { "type": "Feature", "properties": { "id": "nc72897236", "mag": 1.32, "time": 1506151113910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.898167, 37.524833, 12.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000ath6", "mag": 4.1, "time": 1506150769430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3958, 15.2768, 10.51 ] } }, - { "type": "Feature", "properties": { "id": "ci38008328", "mag": 1.27, "time": 1506150100050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.200167, 33.893167, 7.86 ] } }, - { "type": "Feature", "properties": { "id": "nn00606672", "mag": 1.5, "time": 1506150086518, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2696, 38.2952, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000augd", "mag": 4.4, "time": 1506150000550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 144.8812, 20.1804, 76.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38008320", "mag": 1.19, "time": 1506149119830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.9395, 33.982167, 4.39 ] } }, - { "type": "Feature", "properties": { "id": "us2000atgz", "mag": 4.2, "time": 1506149095090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -87.0247, 10.6523, 19.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16880326", "mag": 2.0, "time": 1506149068802, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0613, 61.3779, 34.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ath2", "mag": 4.7, "time": 1506149033340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.7584, -3.0863, 34.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16880327", "mag": 1.1, "time": 1506149006055, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.2865, 68.6023, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "uw61332671", "mag": 1.77, "time": 1506147857710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.281667, 47.7015, 25.73 ] } }, - { "type": "Feature", "properties": { "id": "nc72897231", "mag": 2.11, "time": 1506147638730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6555, 36.061833, 9.09 ] } }, - { "type": "Feature", "properties": { "id": "us2000aug5", "mag": 4.5, "time": 1506146537200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.8683, -24.2891, 524.27 ] } }, - { "type": "Feature", "properties": { "id": "ci38008296", "mag": 1.25, "time": 1506146485640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.616, 33.586167, 13.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16880116", "mag": 1.8, "time": 1506145682289, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.2213, 66.2475, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00606730", "mag": 1.3, "time": 1506145648978, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.1876, 38.2127, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38008288", "mag": 1.58, "time": 1506145525140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.4415, 32.5255, 16.12 ] } }, - { "type": "Feature", "properties": { "id": "nn00606667", "mag": 1.5, "time": 1506145236843, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.917, 38.3346, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000atgp", "mag": 4.5, "time": 1506143865490, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.7175, 9.7486, 52.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000athl", "mag": 4.4, "time": 1506143271620, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 108.9322, -8.2399, 66.53 ] } }, - { "type": "Feature", "properties": { "id": "nc72897216", "mag": 1.88, "time": 1506142958730, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.9835, 40.89, 15.76 ] } }, - { "type": "Feature", "properties": { "id": "nc72897211", "mag": 1.17, "time": 1506142616000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.827667, 38.837166, 1.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72897201", "mag": 0.95, "time": 1506142430900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.848, 38.839168, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72897191", "mag": 1.9, "time": 1506141940330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.177333, 40.264333, 3.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16879870", "mag": 2.3, "time": 1506141876996, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6246, 59.199, 103.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16879869", "mag": 1.3, "time": 1506141297637, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.7807, 60.3298, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00606723", "mag": 1.0, "time": 1506140560559, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2867, 38.4929, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38008224", "mag": 0.95, "time": 1506140386650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.208667, 33.3405, 11.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16879830", "mag": 1.4, "time": 1506140318328, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2827, 60.4409, 47.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00606722", "mag": 1.2, "time": 1506140002001, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9021, 38.3867, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00606720", "mag": 1.1, "time": 1506139980519, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2929, 38.489, 10.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72897176", "mag": 1.78, "time": 1506139907070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.285333, 38.488, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72897171", "mag": 1.19, "time": 1506139518870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.735336, 38.790001, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72897166", "mag": 2.9, "time": 1506138206720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -126.992667, 40.335333, 11.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000atgc", "mag": 4.2, "time": 1506137667560, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9729, 15.6003, 33.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72897161", "mag": 3.28, "time": 1506137168410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.014, 40.471167, 11.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16879595", "mag": 2.4, "time": 1506137087441, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8458, 58.348, 0.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16923736", "mag": 1.3, "time": 1506135643558, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0957, 61.7127, 43.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16879403", "mag": 1.0, "time": 1506135058360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4982, 63.0889, 5.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16923734", "mag": 2.5, "time": 1506133328382, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.4425, 54.2787, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16879357", "mag": 2.6, "time": 1506132937319, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3477, 59.8339, 130.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16879346", "mag": 2.2, "time": 1506132165090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.4939, 67.7172, 16.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16879344", "mag": 2.6, "time": 1506132016431, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.1196, 54.9637, 82.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00606656", "mag": 1.3, "time": 1506130971840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.3283, 38.6945, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72897141", "mag": 2.05, "time": 1506130087910, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.4195, 40.470333, 27.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16879132", "mag": 1.4, "time": 1506129632041, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0373, 62.0301, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000atfh", "mag": 2.6, "time": 1506129518070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4417, 42.5563, 10.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72897136", "mag": 1.16, "time": 1506129465180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.888333, 36.006167, 8.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16879131", "mag": 1.2, "time": 1506128472934, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7081, 62.2652, 36.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72897126", "mag": 2.19, "time": 1506127820390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.640167, 36.048667, 19.79 ] } }, - { "type": "Feature", "properties": { "id": "us2000aug3", "mag": 4.3, "time": 1506127768780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 130.2316, -6.5899, 129.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000atfc", "mag": 4.4, "time": 1506126533850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4878, -17.8955, 579.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16878940", "mag": 1.3, "time": 1506126488960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.4306, 62.433, 39.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16923727", "mag": 1.8, "time": 1506125768611, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7156, 59.1725, 89.1 ] } }, - { "type": "Feature", "properties": { "id": "uw61332606", "mag": 1.37, "time": 1506125724350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8475, 47.767167, 17.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000atf6", "mag": 4.6, "time": 1506125651480, "felt": 34, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 74.5944, 34.2131, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16923726", "mag": 1.0, "time": 1506125523162, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4554, 62.0263, 40.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16926133", "mag": 2.1, "time": 1506124308750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.1191, 56.3855, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00606641", "mag": 1.1, "time": 1506124233235, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9048, 38.3823, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000atex", "mag": 5.3, "time": 1506124170400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.0234, 31.3473, 31.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16878728", "mag": 1.1, "time": 1506123741185, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3949, 64.9801, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61332586", "mag": 1.03, "time": 1506123697550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.176833, 48.224167, 9.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16926129", "mag": 1.4, "time": 1506123469629, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.8468, 66.6906, 13.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16878722", "mag": 1.4, "time": 1506123273253, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.5552, 60.2789, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000awr8", "mag": 4.2, "time": 1506122891910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 144.1488, -4.6487, 111.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ateh", "mag": 4.9, "time": 1506122747420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 159.6233, -7.7533, 37.28 ] } }, - { "type": "Feature", "properties": { "id": "uw61332576", "mag": 1.22, "time": 1506122597830, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.362, 45.695667, -0.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16926127", "mag": 1.8, "time": 1506122331683, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.4507, 53.4966, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72897116", "mag": 3.91, "time": 1506122239050, "felt": 60, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.417333, 40.495333, 26.88 ] } }, - { "type": "Feature", "properties": { "id": "nc72897111", "mag": 2.5, "time": 1506122222600, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.119, 36.5365, 3.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16878700", "mag": 1.8, "time": 1506121093447, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.734, 61.0547, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000awr7", "mag": 4.8, "time": 1506120979560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -35.8191, 7.4851, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80257104", "mag": 0.96, "time": 1506120805630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.649833, 45.463833, 2.97 ] } }, - { "type": "Feature", "properties": { "id": "ci38008136", "mag": 1.88, "time": 1506120529920, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8015, 33.496833, 4.18 ] } }, - { "type": "Feature", "properties": { "id": "nc72897096", "mag": 1.12, "time": 1506120001160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.939167, 37.600667, 1.08 ] } }, - { "type": "Feature", "properties": { "id": "us2000awra", "mag": 4.0, "time": 1506119896150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 128.7982, -5.8817, 310.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16926125", "mag": 2.1, "time": 1506118947000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1588, 60.2166, 143.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38008120", "mag": 1.02, "time": 1506118476380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0015, 34.316333, 6.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72897091", "mag": 1.46, "time": 1506118411060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8605, 39.795333, 0.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16926124", "mag": 1.8, "time": 1506118096316, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.2941, 60.3659, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72897081", "mag": 1.12, "time": 1506117239720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.262833, 36.6425, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72897086", "mag": 2.87, "time": 1506117196030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -126.983667, 40.3995, 16.96 ] } }, - { "type": "Feature", "properties": { "id": "hv61917311", "mag": 1.89, "time": 1506116007530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.434662, 19.227833, 33.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16926123", "mag": 1.1, "time": 1506115983704, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6992, 61.5094, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16926121", "mag": 1.9, "time": 1506115445859, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1112, 60.0903, 117.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16926120", "mag": 1.1, "time": 1506115334031, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0777, 62.5847, 77.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000awr9", "mag": 4.3, "time": 1506115308090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.1151, -17.7862, 593.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16926119", "mag": 2.3, "time": 1506114986922, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.0025, 54.0581, 74.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16926118", "mag": 1.7, "time": 1506114971248, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8129, 59.8684, 52.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72897066", "mag": 0.96, "time": 1506114595240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793999, 38.820167, 2.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000atdb", "mag": 2.4, "time": 1506114466770, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.7172, 36.3761, 4.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16926117", "mag": 2.5, "time": 1506113979958, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.1399, 56.7494, 112.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16878294", "mag": 1.9, "time": 1506113817766, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1371, 60.4549, 78.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16878292", "mag": 1.4, "time": 1506113608674, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3651, 61.5158, 28.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16878288", "mag": 2.0, "time": 1506113191350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6595, 59.6404, 74.9 ] } }, - { "type": "Feature", "properties": { "id": "hv61917256", "mag": 1.43, "time": 1506112916300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.825667, 19.312167, 8.904 ] } }, - { "type": "Feature", "properties": { "id": "us2000atcg", "mag": 3.0, "time": 1506112409690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -126.6543, 40.4678, 10.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16878117", "mag": 1.1, "time": 1506111493188, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4364, 62.2279, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16878112", "mag": 1.8, "time": 1506111203565, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6978, 58.82, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "nm60207231", "mag": 0.97, "time": 1506111124010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.499167, 36.239, 6.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000atbf", "mag": 5.7, "time": 1506109815030, "felt": 112, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ -126.8342, 40.4144, 11.01 ] } }, - { "type": "Feature", "properties": { "id": "nn00606606", "mag": 1.7, "time": 1506109275519, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.0338, 40.677, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72897011", "mag": 1.34, "time": 1506108443760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.041, 35.58, -0.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16877921", "mag": 1.1, "time": 1506108429374, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.752, 61.522, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38008072", "mag": 1.35, "time": 1506108266330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.202333, 34.987667, -0.83 ] } }, - { "type": "Feature", "properties": { "id": "nc72897001", "mag": 1.91, "time": 1506107768510, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7205, 38.773333, 1.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16877871", "mag": 1.9, "time": 1506107175373, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7465, 59.9075, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80257054", "mag": 1.62, "time": 1506107025590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.474333, 46.006833, -2.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16877869", "mag": 1.6, "time": 1506107008752, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4734, 63.1712, 116.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38008032", "mag": 1.22, "time": 1506106977520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.345, 35.0535, -1.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000atab", "mag": 4.5, "time": 1506106483030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 163.2943, 54.9226, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72896976", "mag": 1.19, "time": 1506105877560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.816833, 37.4545, 1.72 ] } }, - { "type": "Feature", "properties": { "id": "nc72896966", "mag": 1.64, "time": 1506105469690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.945833, 41.046833, 10.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72896961", "mag": 1.88, "time": 1506105394080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.951833, 41.047667, 13.46 ] } }, - { "type": "Feature", "properties": { "id": "ak16926108", "mag": 2.2, "time": 1506105113528, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.5222, 56.3354, 50.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60248707", "mag": 1.68, "time": 1506104631990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.397333, 42.534833, 3.76 ] } }, - { "type": "Feature", "properties": { "id": "ci38007992", "mag": 1.55, "time": 1506104354710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.9245, 35.899167, 6.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16926107", "mag": 1.2, "time": 1506103639337, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7358, 61.509, 12.2 ] } }, - { "type": "Feature", "properties": { "id": "hv61917106", "mag": 1.63, "time": 1506102792120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.303667, 18.980667, 12.732 ] } }, - { "type": "Feature", "properties": { "id": "ak16877700", "mag": 1.7, "time": 1506102481165, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.8203, 53.8611, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16877698", "mag": 1.6, "time": 1506102300688, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.8262, 53.8452, 5.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61332361", "mag": 1.6, "time": 1506102282810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.8865, 47.171, 14.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16877680", "mag": 1.9, "time": 1506102017646, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8735, 62.7643, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60248702", "mag": 1.26, "time": 1506101951970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.430167, 42.589833, 6.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16926103", "mag": 2.3, "time": 1506101692988, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.9282, 51.3815, 44.4 ] } }, - { "type": "Feature", "properties": { "id": "uu60248697", "mag": 2.15, "time": 1506100947090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4775, 42.630333, 2.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16926102", "mag": 1.9, "time": 1506100904987, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2736, 59.4158, 101.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16877679", "mag": 1.1, "time": 1506100453436, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9781, 63.2957, 76.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80257039", "mag": 1.48, "time": 1506100139660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.555833, 46.892333, 9.34 ] } }, - { "type": "Feature", "properties": { "id": "ci38007944", "mag": 1.7, "time": 1506100079090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.656667, 34.638, 3.99 ] } }, - { "type": "Feature", "properties": { "id": "uu60248692", "mag": 1.13, "time": 1506099922660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.408833, 42.514, 6.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16877641", "mag": 3.4, "time": 1506099810694, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7965, 62.8041, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72896921", "mag": 1.1, "time": 1506099607680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.816333, 38.808833, 2.84 ] } }, - { "type": "Feature", "properties": { "id": "nc72896916", "mag": 3.01, "time": 1506099251650, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -125.362167, 40.3915, 25.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16877640", "mag": 1.4, "time": 1506099120563, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.4377, 69.5097, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "hv61917081", "mag": 2.14, "time": 1506099100410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.043667, 19.653667, 42.069 ] } }, - { "type": "Feature", "properties": { "id": "ak16926098", "mag": 1.7, "time": 1506099097278, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9448, 59.8191, 95.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37166268", "mag": 1.03, "time": 1506097971820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.496667, 33.561167, -0.73 ] } }, - { "type": "Feature", "properties": { "id": "ci38007912", "mag": 1.01, "time": 1506097946840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.406, 33.502167, 13.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16926097", "mag": 1.6, "time": 1506097726880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.164, 62.5769, 121.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72896896", "mag": 0.95, "time": 1506097561860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.062, 35.522667, 1.15 ] } }, - { "type": "Feature", "properties": { "id": "uu60248682", "mag": 1.11, "time": 1506097353810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.413333, 42.546167, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60248677", "mag": 1.32, "time": 1506097004840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.424667, 42.595, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72896881", "mag": 1.04, "time": 1506096955860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.874667, 37.619833, 8.25 ] } }, - { "type": "Feature", "properties": { "id": "nc72896886", "mag": 3.06, "time": 1506096897270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -127.211833, 40.581333, 16.62 ] } }, - { "type": "Feature", "properties": { "id": "uu60248672", "mag": 1.72, "time": 1506096443230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.447833, 42.59, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38007888", "mag": 1.36, "time": 1506095052550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7965, 33.495167, 4.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16877477", "mag": 1.5, "time": 1506094830892, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0265, 62.027, 12.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60248667", "mag": 1.93, "time": 1506094359510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4395, 42.584333, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00606574", "mag": 1.6, "time": 1506094148428, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9043, 38.3654, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "hv61917031", "mag": 1.65, "time": 1506094079130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.279333, 18.952333, 12.363 ] } }, - { "type": "Feature", "properties": { "id": "uu60248662", "mag": 2.05, "time": 1506093605010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.456167, 42.602333, 3.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000at3w", "mag": 2.6, "time": 1506093461490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.4231, 36.6952, 7.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16877317", "mag": 1.7, "time": 1506093374261, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3603, 60.6882, 68.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16926094", "mag": 2.1, "time": 1506093004583, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.8719, 54.5409, 50.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16877316", "mag": 1.4, "time": 1506092949248, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.2867, 67.5064, 1.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00606471", "mag": 1.3, "time": 1506092280598, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1113, 38.2958, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000awqu", "mag": 4.3, "time": 1506092048390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 121.5573, 18.5841, 62.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16926092", "mag": 1.3, "time": 1506091602226, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.7703, 57.7311, 11.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16877311", "mag": 1.7, "time": 1506091080231, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.9318, 61.3129, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000awqt", "mag": 4.5, "time": 1506090800020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.4373, -23.752, 560.01 ] } }, - { "type": "Feature", "properties": { "id": "nc72904206", "mag": 1.3, "time": 1506089865090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.585167, 40.4755, 15.05 ] } }, - { "type": "Feature", "properties": { "id": "uw61309452", "mag": 2.05, "time": 1506089062880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.375333, 45.841833, -0.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16926090", "mag": 1.6, "time": 1506088685970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6016, 61.227, 75.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16877153", "mag": 1.3, "time": 1506088314826, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7156, 61.5096, 6.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38007840", "mag": 1.07, "time": 1506088185480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7945, 33.498167, 6.09 ] } }, - { "type": "Feature", "properties": { "id": "nc72896831", "mag": 1.6, "time": 1506088032960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.772667, 38.806833, -0.28 ] } }, - { "type": "Feature", "properties": { "id": "nc72896826", "mag": 1.03, "time": 1506088021950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.822502, 38.836666, -0.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16877151", "mag": 1.7, "time": 1506087613938, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3362, 62.1574, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000awqs", "mag": 4.3, "time": 1506087606500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.5624, -22.5585, 578.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16877148", "mag": 1.9, "time": 1506087297503, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1731, 59.963, 87.7 ] } }, - { "type": "Feature", "properties": { "id": "nn00606565", "mag": 1.4, "time": 1506087185810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2162, 38.2627, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000at3c", "mag": 4.4, "time": 1506086932700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.2264, -0.3969, 83.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000at3j", "mag": 4.5, "time": 1506086850810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.4418, -19.1856, 573.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16877147", "mag": 1.0, "time": 1506086078366, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0434, 64.7457, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16876989", "mag": 2.3, "time": 1506085118552, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6021, 60.5947, 0.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72896781", "mag": 1.59, "time": 1506084858350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.773167, 38.807167, -0.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16926084", "mag": 2.4, "time": 1506084692420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.7372, 51.5859, 56.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72896771", "mag": 1.74, "time": 1506084487230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.771667, 38.808833, 0.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16876986", "mag": 1.4, "time": 1506084219307, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7611, 61.5102, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61916896", "mag": 1.74, "time": 1506083571850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.465667, 19.190833, 35.257 ] } }, - { "type": "Feature", "properties": { "id": "ci38007816", "mag": 1.33, "time": 1506082333690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.362833, 33.373333, 6.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16876984", "mag": 1.5, "time": 1506082188790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7152, 61.5125, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16876981", "mag": 1.8, "time": 1506082118329, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.7017, 61.5113, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16876980", "mag": 2.2, "time": 1506081950238, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1633, 59.909, 114.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38007792", "mag": 1.19, "time": 1506081499660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.503333, 35.304167, 5.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16876977", "mag": 1.9, "time": 1506081250212, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.1121, 59.2751, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16876978", "mag": 1.2, "time": 1506081151639, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9729, 61.6318, 32.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80257019", "mag": 1.05, "time": 1506080783790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526167, 46.879833, 10.93 ] } }, - { "type": "Feature", "properties": { "id": "nc72896746", "mag": 1.05, "time": 1506079850700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.73983, 38.763668, 1.53 ] } }, - { "type": "Feature", "properties": { "id": "nc72896741", "mag": 1.1, "time": 1506078851480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.806, 38.8165, 3.19 ] } }, - { "type": "Feature", "properties": { "id": "uu60248647", "mag": 1.45, "time": 1506078497740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.445, 42.561833, 8.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16926075", "mag": 1.9, "time": 1506078386128, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.8777, 58.9992, 112.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16876823", "mag": 1.1, "time": 1506078261719, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8636, 62.788, 13.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16876821", "mag": 1.4, "time": 1506077123303, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.923, 64.7739, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00606454", "mag": 2.6, "time": 1506077002610, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.5007, 36.7388, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "mb80257004", "mag": 1.43, "time": 1506075410640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5235, 46.871, 11.97 ] } }, - { "type": "Feature", "properties": { "id": "nc72896721", "mag": 1.39, "time": 1506074864460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.841333, 38.844167, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00606522", "mag": 1.1, "time": 1506074180637, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8235, 38.8303, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38007728", "mag": 1.52, "time": 1506073924220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.848, 36.181833, 2.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16926070", "mag": 1.6, "time": 1506073391784, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.2241, 61.5539, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16876665", "mag": 1.6, "time": 1506072332786, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.3288, 63.1852, 90.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61916851", "mag": 2.09, "time": 1506072148400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.868333, 20.063333, 23.409 ] } }, - { "type": "Feature", "properties": { "id": "ak16876664", "mag": 1.4, "time": 1506072136495, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5912, 61.9919, 28.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16926067", "mag": 1.3, "time": 1506071322182, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.632, 62.4195, 64.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60248637", "mag": 1.3, "time": 1506070695930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.437167, 42.637667, 5.25 ] } }, - { "type": "Feature", "properties": { "id": "us2000at26", "mag": 4.5, "time": 1506070497460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.9846, 3.8293, 107.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16926066", "mag": 1.6, "time": 1506069293924, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7084, 58.832, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "uu60248632", "mag": 2.03, "time": 1506068604640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.901833, 38.286167, 1.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16876662", "mag": 1.9, "time": 1506067828515, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4502, 59.8034, 55.7 ] } }, - { "type": "Feature", "properties": { "id": "nm60044913", "mag": 2.21, "time": 1506067533090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -92.239, 35.7905, 11.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16876658", "mag": 3.5, "time": 1506066694779, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.9518, 54.8173, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72896676", "mag": 1.45, "time": 1506066561830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.764833, 38.786167, 0.53 ] } }, - { "type": "Feature", "properties": { "id": "uw61309412", "mag": 1.49, "time": 1506066402670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.402833, 49.2735, 17.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72896671", "mag": 1.2, "time": 1506066223530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8225, 37.524667, 2.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16876647", "mag": 1.9, "time": 1506065065953, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.1147, 59.229, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60248627", "mag": 1.79, "time": 1506064954410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.417833, 42.575667, 8.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16876640", "mag": 1.0, "time": 1506063798789, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9184, 63.4232, 6.1 ] } }, - { "type": "Feature", "properties": { "id": "mb80256994", "mag": 1.71, "time": 1506063538810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.338833, 46.125333, 6.03 ] } }, - { "type": "Feature", "properties": { "id": "us2000at1d", "mag": 4.4, "time": 1506062755300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 151.9837, 45.5973, 22.46 ] } }, - { "type": "Feature", "properties": { "id": "nn00606510", "mag": 1.0, "time": 1506062740733, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9097, 38.416, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16876497", "mag": 2.9, "time": 1506062332060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.4396, 55.4155, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16876499", "mag": 1.5, "time": 1506062314773, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1276, 62.6705, 84.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16926058", "mag": 2.5, "time": 1506062164434, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.9814, 52.5733, 21.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61916751", "mag": 1.88, "time": 1506061487210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.4615, 19.287167, 7.924 ] } }, - { "type": "Feature", "properties": { "id": "ak16926055", "mag": 2.4, "time": 1506060569450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4546, 56.5041, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60248622", "mag": 1.34, "time": 1506060334660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.447833, 42.622833, 5.33 ] } }, - { "type": "Feature", "properties": { "id": "nn00606434", "mag": 1.2, "time": 1506060248714, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8235, 38.8296, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38007696", "mag": 1.17, "time": 1506059325210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.648333, 35.934, 3.86 ] } }, - { "type": "Feature", "properties": { "id": "ci38007680", "mag": 1.8, "time": 1506058671480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.570833, 35.360833, 4.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000at0m", "mag": 5.5, "time": 1506058424310, "felt": 37, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.7724, 23.5614, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000at0v", "mag": 4.5, "time": 1506056644580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 159.4959, 54.788, 131.21 ] } }, - { "type": "Feature", "properties": { "id": "mb80256984", "mag": 1.12, "time": 1506056537920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5285, 46.885167, 14.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16926054", "mag": 1.3, "time": 1506056097918, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7519, 60.0539, 56.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16876343", "mag": 1.1, "time": 1506055943779, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.827, 62.7929, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72896616", "mag": 2.0, "time": 1506055463630, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.788667, 37.456333, 7.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16926049", "mag": 2.0, "time": 1506055458648, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9681, 59.782, 98.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000at08", "mag": 4.7, "time": 1506054886300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -11.1483, -6.3489, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72896606", "mag": 0.97, "time": 1506054333450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821833, 37.5205, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aszw", "mag": 4.2, "time": 1506054023580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 26.2553, 39.1304, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72896586", "mag": 1.98, "time": 1506053997570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.883167, 37.538333, 2.49 ] } }, - { "type": "Feature", "properties": { "id": "ci38007648", "mag": 1.64, "time": 1506053954570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797167, 33.495167, 4.61 ] } }, - { "type": "Feature", "properties": { "id": "nc72896591", "mag": 1.12, "time": 1506053943320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.789333, 37.455, 7.99 ] } }, - { "type": "Feature", "properties": { "id": "us2000aszh", "mag": 2.9, "time": 1506053328020, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.682, 35.846, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16876210", "mag": 1.2, "time": 1506052567199, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7614, 63.1414, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16876208", "mag": 1.0, "time": 1506051888104, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3642, 64.8396, 21.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16876202", "mag": 2.8, "time": 1506051238210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6975, 59.8426, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38007640", "mag": 1.04, "time": 1506050700240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.074333, 32.868, 9.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16876199", "mag": 1.6, "time": 1506050508752, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1502, 60.9709, 20.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16876069", "mag": 1.7, "time": 1506048854655, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6692, 62.5598, 11.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16876067", "mag": 2.1, "time": 1506048427026, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7111, 59.884, 14.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72896561", "mag": 1.78, "time": 1506048332800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.779667, 37.392333, -2.31 ] } }, - { "type": "Feature", "properties": { "id": "nc72896556", "mag": 1.29, "time": 1506047940540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.0265, 36.559833, 6.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16926041", "mag": 2.5, "time": 1506047556201, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.992, 51.8656, 16.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60248522", "mag": 1.34, "time": 1506047158170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.026833, 44.7755, 7.13 ] } }, - { "type": "Feature", "properties": { "id": "mb80256979", "mag": 1.73, "time": 1506043831850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.558333, 46.402, 3.35 ] } }, - { "type": "Feature", "properties": { "id": "nc72896531", "mag": 1.92, "time": 1506043357560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.780833, 37.389167, -2.29 ] } }, - { "type": "Feature", "properties": { "id": "mb80256969", "mag": 2.09, "time": 1506042441670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.930333, 44.292833, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16875940", "mag": 1.1, "time": 1506041862266, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0885, 63.2553, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awqf", "mag": 4.2, "time": 1506041406940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 165.3116, -15.6295, 57.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000asyh", "mag": 4.6, "time": 1506041280550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 149.2095, 43.8815, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235693", "mag": 1.82, "time": 1506040783670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.6825, 37.184, 4.37 ] } }, - { "type": "Feature", "properties": { "id": "ci38007600", "mag": 2.86, "time": 1506040660680, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.171833, 34.730667, 1.72 ] } }, - { "type": "Feature", "properties": { "id": "hv61916496", "mag": 1.7, "time": 1506040069030, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.755667, 19.862667, 13.433 ] } }, - { "type": "Feature", "properties": { "id": "us2000awqd", "mag": 4.6, "time": 1506040066970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 90.3605, 2.1475, 15.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16875841", "mag": 1.4, "time": 1506039676822, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7004, 63.8605, 6.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000atbx", "mag": 2.6, "time": 1506039659260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5671, 46.8969, 11.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000avmv", "mag": 2.8, "time": 1506039531410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.0769, 52.3761, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80256959", "mag": 1.07, "time": 1506038377030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.445667, 43.5435, 11.24 ] } }, - { "type": "Feature", "properties": { "id": "ci38007584", "mag": 1.19, "time": 1506037977370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.764667, 33.324167, 13.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16875834", "mag": 1.4, "time": 1506037872803, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.518, 61.5639, 31.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72896516", "mag": 1.31, "time": 1506037721390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.669, 37.2905, 3.04 ] } }, - { "type": "Feature", "properties": { "id": "mb80256954", "mag": 1.13, "time": 1506037549780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.4995, 46.8705, 10.41 ] } }, - { "type": "Feature", "properties": { "id": "us2000awq8", "mag": 4.4, "time": 1506037384370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 144.5809, 38.0785, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16875828", "mag": 2.4, "time": 1506037110228, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8706, 62.7902, 14.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16875826", "mag": 1.7, "time": 1506036232042, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4937, 61.5906, 31.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000asx4", "mag": 2.7, "time": 1506036218800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5127, 36.2915, 7.461 ] } }, - { "type": "Feature", "properties": { "id": "ci38007544", "mag": 3.0, "time": 1506035447270, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.397167, 32.383, 12.07 ] } }, - { "type": "Feature", "properties": { "id": "ci38007552", "mag": 1.61, "time": 1506035381320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.115667, 34.625667, -1.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16875823", "mag": 1.6, "time": 1506035182231, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5062, 64.6747, 9.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60248487", "mag": 2.1, "time": 1506035003920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.420167, 42.525833, 7.93 ] } }, - { "type": "Feature", "properties": { "id": "mb80256939", "mag": 1.72, "time": 1506034952670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5215, 46.8665, 11.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16875817", "mag": 1.5, "time": 1506034226408, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.0329, 53.5528, 17.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awq7", "mag": 4.3, "time": 1506034167940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.929, -23.7349, 550.89 ] } }, - { "type": "Feature", "properties": { "id": "nc72896506", "mag": 1.29, "time": 1506033952800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.821, 38.814833, 2.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16875815", "mag": 1.5, "time": 1506033878487, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5575, 60.0344, 58.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16875810", "mag": 1.2, "time": 1506033325458, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4889, 59.8624, 47.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16875800", "mag": 1.4, "time": 1506032434891, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.7482, 66.977, 12.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16875653", "mag": 4.2, "time": 1506032120973, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8756, 62.7831, 20.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72896496", "mag": 1.85, "time": 1506031741740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.5285, 36.803333, 3.27 ] } }, - { "type": "Feature", "properties": { "id": "nc72896486", "mag": 1.45, "time": 1506031445490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.526667, 36.809667, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80256934", "mag": 2.12, "time": 1506031400210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.9225, 44.303333, 10.34 ] } }, - { "type": "Feature", "properties": { "id": "mb80256929", "mag": 1.26, "time": 1506030770930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.747833, 45.079167, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38007528", "mag": 1.87, "time": 1506030349230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.650167, 35.935333, 2.69 ] } }, - { "type": "Feature", "properties": { "id": "hv61916321", "mag": 2.02, "time": 1506029779130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.552333, 19.137667, 49.513 ] } }, - { "type": "Feature", "properties": { "id": "ci38007520", "mag": 1.21, "time": 1506029730430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.157, 33.634167, -0.52 ] } }, - { "type": "Feature", "properties": { "id": "hv61916316", "mag": 1.88, "time": 1506029586250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.419833, 19.099167, 42.057 ] } }, - { "type": "Feature", "properties": { "id": "hv61916311", "mag": 1.76, "time": 1506029522880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.437167, 19.160333, 37.287 ] } }, - { "type": "Feature", "properties": { "id": "nn00606376", "mag": 1.1, "time": 1506029276288, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.9551, 40.0739, 10.9 ] } }, - { "type": "Feature", "properties": { "id": "hv61916301", "mag": 1.85, "time": 1506029141190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.439167, 19.1175, 39.677 ] } }, - { "type": "Feature", "properties": { "id": "ci37166108", "mag": 1.81, "time": 1506028904370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.241667, 32.920333, 11.27 ] } }, - { "type": "Feature", "properties": { "id": "ci38007512", "mag": 1.83, "time": 1506028897230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.241167, 32.916667, 7.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16875651", "mag": 1.4, "time": 1506028324426, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8843, 61.2141, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00606357", "mag": 2.6, "time": 1506028168100, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6985, 39.7645, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00606355", "mag": 1.1, "time": 1506027762688, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.189, 38.4602, 2.1 ] } }, - { "type": "Feature", "properties": { "id": "ci38007480", "mag": 1.75, "time": 1506026384090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.371167, 35.054, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16875645", "mag": 1.7, "time": 1506026360117, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.75, 60.0811, 100.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72896461", "mag": 1.53, "time": 1506026136260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.827333, 38.841167, 1.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16911613", "mag": 1.9, "time": 1506025569386, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.0904, 58.6739, 124.2 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235678", "mag": 2.5, "time": 1506025487250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.888333, 37.204167, 6.25 ] } }, - { "type": "Feature", "properties": { "id": "ci38007472", "mag": 1.24, "time": 1506025368620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.488667, 33.850333, -0.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000ass7", "mag": 4.8, "time": 1506025352080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8962, 15.2536, 65.44 ] } }, - { "type": "Feature", "properties": { "id": "ci38007464", "mag": 1.18, "time": 1506025134310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.882167, 33.977333, 19.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16875518", "mag": 1.7, "time": 1506024448536, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5203, 61.3055, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000asr5", "mag": 2.8, "time": 1506024284460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4191, 42.5686, 11.52 ] } }, - { "type": "Feature", "properties": { "id": "ci38007448", "mag": 1.54, "time": 1506024073190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.493667, 33.846667, -0.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000asqw", "mag": 4.5, "time": 1506023938000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.359, -24.593, 89.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72896441", "mag": 0.97, "time": 1506023932370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.818337, 38.807335, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16911611", "mag": 2.0, "time": 1506023546957, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.8314, 53.8887, 16.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16875513", "mag": 2.1, "time": 1506022669821, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6752, 67.929, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16875511", "mag": 1.6, "time": 1506022479067, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0122, 60.6265, 55.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72896431", "mag": 1.59, "time": 1506022296440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821333, 37.606, 4.18 ] } }, - { "type": "Feature", "properties": { "id": "us2000asq8", "mag": 4.5, "time": 1506022120080, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 57.3957, 30.689, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16875508", "mag": 2.8, "time": 1506022088454, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5339, 56.4471, 34.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16875497", "mag": 2.8, "time": 1506021225649, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3633, 62.2263, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16875489", "mag": 2.0, "time": 1506019153622, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5458, 60.2285, 104.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38007432", "mag": 0.97, "time": 1506018755920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.4305, 33.027167, 7.61 ] } }, - { "type": "Feature", "properties": { "id": "nc72896416", "mag": 1.32, "time": 1506018676310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.105167, 37.325333, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16875470", "mag": 3.4, "time": 1506018115237, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3313, 62.0747, 82.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38007408", "mag": 1.52, "time": 1506017937430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.240833, 33.339, 3.36 ] } }, - { "type": "Feature", "properties": { "id": "ci37165948", "mag": 1.22, "time": 1506017934430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.238, 33.341, 5.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16911603", "mag": 2.2, "time": 1506016859139, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.198, 56.7455, 55.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72896411", "mag": 1.56, "time": 1506016054120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.955667, 36.390833, 1.45 ] } }, - { "type": "Feature", "properties": { "id": "us2000ask8", "mag": 5.2, "time": 1506015812780, "felt": 1, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 153.792, -5.2273, 42.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16875367", "mag": 1.0, "time": 1506015790628, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3293, 61.4367, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72896401", "mag": 1.29, "time": 1506015349390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.136833, 36.591, 7.95 ] } }, - { "type": "Feature", "properties": { "id": "nc72896396", "mag": 1.65, "time": 1506015154000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.830667, 38.841833, 1.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16875364", "mag": 1.7, "time": 1506014707392, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9511, 61.182, 6.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000asjm", "mag": 4.1, "time": 1506014582020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1412, 14.9651, 31.77 ] } }, - { "type": "Feature", "properties": { "id": "nc72896391", "mag": 1.65, "time": 1506014547620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.522667, 37.119333, 6.68 ] } }, - { "type": "Feature", "properties": { "id": "nc72896386", "mag": 2.74, "time": 1506013969600, "felt": 15, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.523, 37.119333, 7.11 ] } }, - { "type": "Feature", "properties": { "id": "uu60248457", "mag": 1.24, "time": 1506013292240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.416833, 42.5455, 6.54 ] } }, - { "type": "Feature", "properties": { "id": "nc72896381", "mag": 1.42, "time": 1506013025480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.7985, 38.024167, 4.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16875337", "mag": 1.5, "time": 1506012889205, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8562, 59.8876, 14.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16875335", "mag": 1.5, "time": 1506012588856, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.43, 69.5255, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16875333", "mag": 1.4, "time": 1506012078477, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.7448, 65.4677, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000asj3", "mag": 4.4, "time": 1506011673160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 94.8925, 24.9992, 82.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16875233", "mag": 2.0, "time": 1506011166366, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0389, 62.6945, 1.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61916021", "mag": 1.65, "time": 1506010758380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.606333, 19.988, 0.02 ] } }, - { "type": "Feature", "properties": { "id": "nc72896356", "mag": 1.08, "time": 1506008853280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.736, 38.789501, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38007344", "mag": 1.64, "time": 1506006904290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.040833, 34.932167, 7.95 ] } }, - { "type": "Feature", "properties": { "id": "uu60248432", "mag": 1.93, "time": 1506005934630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.899167, 38.2825, 1.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72896351", "mag": 1.05, "time": 1506005402280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.872833, 37.542167, 5.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16875225", "mag": 2.6, "time": 1506004864279, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.7558, 56.7802, 85.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00606271", "mag": 1.4, "time": 1506004765898, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9071, 38.404, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16911592", "mag": 1.8, "time": 1506004687871, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.776, 59.9457, 96.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16875224", "mag": 1.0, "time": 1506004284441, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.1472, 58.225, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000asgp", "mag": 3.1, "time": 1506004160400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4287, 42.5341, 7.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16875128", "mag": 1.2, "time": 1506003424957, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1414, 61.9718, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16875123", "mag": 2.2, "time": 1506003380008, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.406, 61.1636, 56.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16875122", "mag": 1.5, "time": 1506003168025, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6121, 60.6288, 27.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000asgl", "mag": 4.5, "time": 1506003018350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 150.7163, -5.3996, 143.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16911587", "mag": 2.0, "time": 1506002992795, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.2107, 54.658, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16875121", "mag": 1.3, "time": 1506002287075, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7877, 63.0935, 115.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16875120", "mag": 1.3, "time": 1506002190951, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3702, 60.2093, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72896346", "mag": 1.58, "time": 1506001285170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.046, 37.631, -2.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16875118", "mag": 1.5, "time": 1506001054310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4947, 65.9329, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16875115", "mag": 1.2, "time": 1506000273641, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8273, 59.8914, 16.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16875114", "mag": 1.0, "time": 1505999744527, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.927, 63.1123, 88.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16875113", "mag": 1.0, "time": 1505999509220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.8959, 53.8648, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72896326", "mag": 1.49, "time": 1505998900750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.040833, 37.6325, -1.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72896316", "mag": 1.09, "time": 1505998199150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.854333, 37.553667, -1.13 ] } }, - { "type": "Feature", "properties": { "id": "nc72896306", "mag": 1.43, "time": 1505997631810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.009333, 37.578833, 2.18 ] } }, - { "type": "Feature", "properties": { "id": "nm60207176", "mag": 1.81, "time": 1505997033100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.530833, 36.304833, 9.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16875021", "mag": 1.2, "time": 1505996145934, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8383, 65.938, 13.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16875018", "mag": 1.2, "time": 1505995669198, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.912, 65.5133, 9.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72896296", "mag": 1.47, "time": 1505995317350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.196833, 37.9145, 9.67 ] } }, - { "type": "Feature", "properties": { "id": "nm60207166", "mag": 1.64, "time": 1505994488630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.4975, 36.289667, 7.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000asex", "mag": 4.8, "time": 1505994269370, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.2903, 15.7805, 100.11 ] } }, - { "type": "Feature", "properties": { "id": "nn00606244", "mag": 1.4, "time": 1505993181062, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2534, 40.7726, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60248402", "mag": 1.76, "time": 1505993050130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.834, 37.5, 12.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16911577", "mag": 1.8, "time": 1505992688210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7102, 59.2193, 101.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72896276", "mag": 1.87, "time": 1505990638730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.821833, 38.807833, 2.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16911575", "mag": 1.4, "time": 1505990312220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1289, 60.9457, 91.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38007296", "mag": 1.16, "time": 1505989019560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.893333, 33.8875, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16874826", "mag": 2.4, "time": 1505988598717, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.0672, 60.3368, 3.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16874821", "mag": 3.9, "time": 1505988559362, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.0266, 58.0197, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000asdx", "mag": 3.2, "time": 1505987188740, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4339, 42.5809, 9.51 ] } }, - { "type": "Feature", "properties": { "id": "nc72896231", "mag": 1.31, "time": 1505985984190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7595, 39.290333, 11.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16874817", "mag": 1.2, "time": 1505985541058, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7623, 63.2246, 123.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72896221", "mag": 1.81, "time": 1505985066080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8215, 37.605333, 4.11 ] } }, - { "type": "Feature", "properties": { "id": "ak16911571", "mag": 1.2, "time": 1505984945428, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6774, 60.3679, 51.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000astb", "mag": 3.2, "time": 1505984479950, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 30.4877, 39.7496, 7.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16874735", "mag": 1.1, "time": 1505984351439, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1345, 61.0202, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16874733", "mag": 1.8, "time": 1505984244290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.6331, 69.6221, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16911567", "mag": 1.4, "time": 1505983878943, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6066, 58.3406, 70.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16874730", "mag": 1.6, "time": 1505983557544, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6496, 63.2391, 128.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16874715", "mag": 3.0, "time": 1505983090867, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9585, 60.2394, 134.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16874713", "mag": 1.8, "time": 1505982752561, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3398, 60.0395, 62.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16874708", "mag": 1.6, "time": 1505981986749, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5434, 62.0196, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ci38007280", "mag": 1.01, "time": 1505981662400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.966, 33.952667, 12.57 ] } }, - { "type": "Feature", "properties": { "id": "nc72896186", "mag": 1.8, "time": 1505981520300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.764333, 38.786167, 0.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16874635", "mag": 1.2, "time": 1505980470681, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9567, 61.1836, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80256854", "mag": 1.19, "time": 1505980355400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.540333, 46.865833, 13.58 ] } }, - { "type": "Feature", "properties": { "id": "hv61915846", "mag": 2.23, "time": 1505980220010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.471833, 19.187167, 6.497 ] } }, - { "type": "Feature", "properties": { "id": "nc72896176", "mag": 1.82, "time": 1505979900900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.789167, 37.455, 8.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16874613", "mag": 2.5, "time": 1505979347188, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6995, 61.302, 18.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72896141", "mag": 1.44, "time": 1505978529860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.0545, 37.976333, 16.99 ] } }, - { "type": "Feature", "properties": { "id": "us2000asd1", "mag": 4.8, "time": 1505977959710, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -73.683, -37.9104, 6.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72896116", "mag": 1.08, "time": 1505977815960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.784164, 38.838165, 0.65 ] } }, - { "type": "Feature", "properties": { "id": "ci38007272", "mag": 1.44, "time": 1505977166870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.235667, 34.473, 10.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16874540", "mag": 1.8, "time": 1505976691446, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5178, 59.5615, 114.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38007264", "mag": 1.35, "time": 1505976496140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8585, 33.885833, 13.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16874539", "mag": 1.4, "time": 1505975897075, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7553, 60.3904, 17.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16911557", "mag": 1.9, "time": 1505975896384, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.7415, 56.6876, 60.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16874533", "mag": 2.4, "time": 1505975550653, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.4341, 54.7916, 41.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16874531", "mag": 1.6, "time": 1505973877209, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0439, 60.1347, 121.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72896081", "mag": 0.98, "time": 1505973711190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.775002, 38.797669, 2.77 ] } }, - { "type": "Feature", "properties": { "id": "nc72896076", "mag": 2.49, "time": 1505973410410, "felt": 16, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.785833, 37.46, 8.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16874465", "mag": 1.3, "time": 1505973344875, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.0133, 60.1082, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16911553", "mag": 1.4, "time": 1505972962694, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3138, 59.699, 53.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16911552", "mag": 1.2, "time": 1505972745844, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4845, 60.1615, 61.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00606219", "mag": 1.3, "time": 1505972571887, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1193, 38.2806, 9.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16911551", "mag": 1.8, "time": 1505972563999, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.15, 51.5531, 43.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00606295", "mag": 1.0, "time": 1505972403264, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6227, 38.8065, 14.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60248342", "mag": 1.16, "time": 1505971839680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.427333, 42.584333, 6.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16874458", "mag": 1.0, "time": 1505971795387, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1789, 60.7931, 15.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00606215", "mag": 1.1, "time": 1505970724921, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9138, 38.4144, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00606292", "mag": 1.2, "time": 1505969821916, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9096, 38.3591, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16874386", "mag": 2.2, "time": 1505966674333, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1806, 62.1688, 58.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16874381", "mag": 1.5, "time": 1505966192127, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.3423, 67.4818, 11.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00606289", "mag": 1.1, "time": 1505965897622, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.612, 39.7777, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16874378", "mag": 1.4, "time": 1505965635289, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6084, 59.8249, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "ci38007240", "mag": 1.33, "time": 1505964848260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.392833, 34.0695, 3.63 ] } }, - { "type": "Feature", "properties": { "id": "uw61309117", "mag": 1.41, "time": 1505964727680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.537333, 45.623, 3.45 ] } }, - { "type": "Feature", "properties": { "id": "us2000asac", "mag": 2.3, "time": 1505963189900, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.6319, 35.02, 3.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72896016", "mag": 1.0, "time": 1505962244660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.777664, 38.821335, 1.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16874313", "mag": 1.6, "time": 1505961692924, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.4015, 58.981, 9.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72896006", "mag": 2.63, "time": 1505961234600, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.778, 38.822333, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16874294", "mag": 1.4, "time": 1505960998663, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7592, 62.4966, 63.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16911541", "mag": 1.2, "time": 1505959763113, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0959, 69.101, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72896001", "mag": 2.06, "time": 1505958864360, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.541, 35.984333, 10.27 ] } }, - { "type": "Feature", "properties": { "id": "ci38007216", "mag": 1.05, "time": 1505958019680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.250167, 34.038167, 14.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16874254", "mag": 3.1, "time": 1505957941327, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.4863, 51.2677, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16874229", "mag": 1.1, "time": 1505957058757, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.7027, 61.7499, 26.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16874215", "mag": 1.1, "time": 1505956445202, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6955, 63.1111, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "ci38007208", "mag": 1.4, "time": 1505955985550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.416, 33.868667, 14.65 ] } }, - { "type": "Feature", "properties": { "id": "hv61915531", "mag": 1.72, "time": 1505955195430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.279833, 19.405667, 1.328 ] } }, - { "type": "Feature", "properties": { "id": "ak16874182", "mag": 2.0, "time": 1505954859125, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6742, 63.0988, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000as95", "mag": 4.5, "time": 1505954623610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.9506, -18.3191, 525.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16874180", "mag": 1.0, "time": 1505954368489, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6875, 63.1114, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80256829", "mag": 1.22, "time": 1505954178230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.729167, 46.9255, 15.18 ] } }, - { "type": "Feature", "properties": { "id": "ci38007192", "mag": 2.27, "time": 1505953985850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.389333, 34.875667, 4.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16911531", "mag": 3.1, "time": 1505953036619, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.8238, 52.2316, 212.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16874133", "mag": 1.9, "time": 1505952707526, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3476, 61.7239, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72895971", "mag": 2.7, "time": 1505952459520, "felt": 25, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.065833, 37.977333, 16.12 ] } }, - { "type": "Feature", "properties": { "id": "us2000as7z", "mag": 5.0, "time": 1505952320920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.3417, -18.3348, 223.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16874122", "mag": 1.3, "time": 1505952267890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.1071, 68.0646, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16874119", "mag": 1.3, "time": 1505952216610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9186, 60.9563, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000as7r", "mag": 5.7, "time": 1505951964840, "felt": 7, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 113.0028, -6.141, 588.64 ] } }, - { "type": "Feature", "properties": { "id": "ci38007168", "mag": 1.0, "time": 1505951908320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.513, 33.929833, 3.12 ] } }, - { "type": "Feature", "properties": { "id": "ak16874078", "mag": 1.5, "time": 1505949607121, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.307, 64.9865, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72895936", "mag": 2.34, "time": 1505948330470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.830833, 38.8385, 2.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000as71", "mag": 4.4, "time": 1505948258880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -70.8955, -19.9851, 13.88 ] } }, - { "type": "Feature", "properties": { "id": "ci38007144", "mag": 2.26, "time": 1505947525530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.600667, 32.8185, 11.77 ] } }, - { "type": "Feature", "properties": { "id": "us2000as6n", "mag": 4.7, "time": 1505946967130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 148.002, -5.1396, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16874025", "mag": 1.8, "time": 1505946583777, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5728, 63.1811, 118.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000as5y", "mag": 5.2, "time": 1505945844590, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 147.9821, -5.1384, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000as5x", "mag": 5.9, "time": 1505945616140, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 147.8337, -5.11, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16873995", "mag": 1.3, "time": 1505944353830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7194, 63.0772, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72895916", "mag": 1.33, "time": 1505944123270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8235, 37.532, 3.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16903715", "mag": 1.5, "time": 1505944050318, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7597, 60.286, 105.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16873983", "mag": 1.6, "time": 1505944038560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.2822, 60.1956, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16873980", "mag": 1.5, "time": 1505943645116, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7128, 62.2758, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72895911", "mag": 1.05, "time": 1505943458060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.817497, 38.818165, 1.98 ] } }, - { "type": "Feature", "properties": { "id": "mb80256764", "mag": 1.19, "time": 1505942553810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.3355, 46.855167, 12.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16873969", "mag": 1.0, "time": 1505941809382, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.8648, 61.3084, 14.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16903709", "mag": 1.3, "time": 1505940388991, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1675, 59.8496, 11.5 ] } }, - { "type": "Feature", "properties": { "id": "hv61915241", "mag": 2.0, "time": 1505940250470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.695496, 19.176666, 1.78 ] } }, - { "type": "Feature", "properties": { "id": "uw61309057", "mag": 2.31, "time": 1505940000150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.92, 47.376, -0.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16873814", "mag": 1.4, "time": 1505938885178, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.4385, 61.7606, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16873808", "mag": 1.1, "time": 1505938683669, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6592, 62.5852, 59.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72895876", "mag": 1.45, "time": 1505938357840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.59, 36.021667, 3.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16873804", "mag": 1.4, "time": 1505938263457, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3926, 60.1466, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000as2f", "mag": 6.4, "time": 1505938189810, "felt": 16, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 169.0947, -18.7978, 200.19 ] } }, - { "type": "Feature", "properties": { "id": "hv61915206", "mag": 2.51, "time": 1505938077390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.033667, 19.2375, 39.578 ] } }, - { "type": "Feature", "properties": { "id": "ci38007104", "mag": 1.0, "time": 1505937649230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.0765, 32.813833, -0.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16873801", "mag": 2.0, "time": 1505937512139, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.8359, 53.871, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000as1w", "mag": 2.5, "time": 1505937361300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.0579, 36.6187, 5.828 ] } }, - { "type": "Feature", "properties": { "id": "ak16873782", "mag": 1.2, "time": 1505936869830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8873, 62.1092, 41.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80256709", "mag": 1.79, "time": 1505935321500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.451, 43.543667, 10.41 ] } }, - { "type": "Feature", "properties": { "id": "nn00606121", "mag": 1.5, "time": 1505934916827, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1139, 37.3666, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38007096", "mag": 1.15, "time": 1505934203280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.751, 34.839333, -1.28 ] } }, - { "type": "Feature", "properties": { "id": "nn00606180", "mag": 1.3, "time": 1505934149532, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1164, 38.3161, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72895851", "mag": 1.27, "time": 1505934073910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.592833, 39.610333, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16873739", "mag": 2.2, "time": 1505933777306, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4033, 69.0735, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16873736", "mag": 1.7, "time": 1505933267549, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2132, 61.1317, 38.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38007072", "mag": 2.71, "time": 1505931747440, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.389167, 32.380167, 15.18 ] } }, - { "type": "Feature", "properties": { "id": "nc72895826", "mag": 1.69, "time": 1505931012940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.428333, 36.582667, 0.68 ] } }, - { "type": "Feature", "properties": { "id": "uu60248192", "mag": 1.44, "time": 1505930780280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.474333, 42.6455, 0.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72895816", "mag": 2.1, "time": 1505929719570, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.9675, 40.890167, 14.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16873728", "mag": 1.2, "time": 1505929479491, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.582, 62.6618, 78.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16873142", "mag": 1.5, "time": 1505927860541, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2216, 61.5685, 73.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72895806", "mag": 3.65, "time": 1505927408630, "felt": 119, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.983667, 40.891333, 16.86 ] } }, - { "type": "Feature", "properties": { "id": "nc72895796", "mag": 3.18, "time": 1505926479240, "felt": 56, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.546833, 36.829167, 3.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16873012", "mag": 1.4, "time": 1505926389012, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6968, 59.7895, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000arxv", "mag": 6.1, "time": 1505925436360, "felt": 102, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 144.6601, 37.9814, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16872904", "mag": 1.0, "time": 1505925010295, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.5787, 62.1577, 21.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000arxl", "mag": 5.3, "time": 1505924711310, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 118.8822, -10.1961, 10.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000arxs", "mag": 4.4, "time": 1505923365600, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 135.4357, 33.9578, 44.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16872233", "mag": 1.2, "time": 1505923328725, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1746, 60.1861, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38007024", "mag": 0.95, "time": 1505922246000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.593333, 34.202833, 4.57 ] } }, - { "type": "Feature", "properties": { "id": "us2000arwt", "mag": 4.9, "time": 1505921548830, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 166.9265, -14.913, 39.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arwd", "mag": 2.4, "time": 1505921250610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.783, 37.3255, 5.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000awnu", "mag": 4.6, "time": 1505921168060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -28.7481, 43.6321, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60248182", "mag": 1.14, "time": 1505920908550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.455667, 42.606, 5.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000arw1", "mag": 4.4, "time": 1505920105280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 70.9001, 36.5943, 194.83 ] } }, - { "type": "Feature", "properties": { "id": "us2000awp1", "mag": 4.1, "time": 1505919984040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -82.8639, 5.1272, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16903689", "mag": 2.1, "time": 1505918855154, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.5285, 56.3302, 52.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16871415", "mag": 1.5, "time": 1505918684626, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5508, 61.18, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000arvu", "mag": 5.0, "time": 1505918528120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.1207, -17.9346, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38007016", "mag": 1.44, "time": 1505918468750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.514, 33.93, 3.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72895731", "mag": 2.2, "time": 1505918095770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.179, 40.2545, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000arvi", "mag": 5.3, "time": 1505917796770, "felt": 41, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 121.7572, 23.2931, 22.03 ] } }, - { "type": "Feature", "properties": { "id": "nc72895726", "mag": 2.76, "time": 1505917745400, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.182833, 40.246333, 11.38 ] } }, - { "type": "Feature", "properties": { "id": "uu60248172", "mag": 2.13, "time": 1505916637780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4155, 42.592833, 6.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16870720", "mag": 2.0, "time": 1505915942888, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.6193, 67.4066, 12.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16870653", "mag": 1.8, "time": 1505915336300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2998, 61.7353, 47.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80256619", "mag": 1.37, "time": 1505914951120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527333, 46.886167, 13.87 ] } }, - { "type": "Feature", "properties": { "id": "ci38006992", "mag": 1.47, "time": 1505914753140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.453667, 34.324833, 9.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72895721", "mag": 2.38, "time": 1505913728570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6465, 36.06, 20.18 ] } }, - { "type": "Feature", "properties": { "id": "ci38006968", "mag": 1.06, "time": 1505913698350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.79, 36.101, 8.43 ] } }, - { "type": "Feature", "properties": { "id": "ci38006952", "mag": 2.21, "time": 1505911740560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.197667, 32.419333, 10.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16869931", "mag": 1.0, "time": 1505911683814, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0983, 64.9958, 11.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16869929", "mag": 1.1, "time": 1505910877864, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9571, 64.0729, 125.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arkq", "mag": 5.0, "time": 1505910355700, "felt": 1, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 132.5848, 1.0854, 36.12 ] } }, - { "type": "Feature", "properties": { "id": "uu60248167", "mag": 1.05, "time": 1505910339650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.078167, 44.806167, 7.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000arkf", "mag": 2.7, "time": 1505910255780, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4578, 42.6105, 7.92 ] } }, - { "type": "Feature", "properties": { "id": "hv61914931", "mag": 1.25, "time": 1505910251630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.624833, 19.4175, 3.162 ] } }, - { "type": "Feature", "properties": { "id": "ak16869355", "mag": 1.3, "time": 1505910194393, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4867, 61.3624, 40.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60248157", "mag": 1.62, "time": 1505909926720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.418333, 42.6315, 2.43 ] } }, - { "type": "Feature", "properties": { "id": "nn00606071", "mag": 1.9, "time": 1505909820104, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.6351, 40.2652, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "ci38006936", "mag": 1.08, "time": 1505907735210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.542167, 33.157167, 16.18 ] } }, - { "type": "Feature", "properties": { "id": "nc72895696", "mag": 1.65, "time": 1505907470630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.887667, 39.9645, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60248147", "mag": 1.97, "time": 1505907452270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.426833, 42.575667, 8.53 ] } }, - { "type": "Feature", "properties": { "id": "hv61914886", "mag": 2.38, "time": 1505907343420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.275162, 19.410833, 10.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16903676", "mag": 1.3, "time": 1505907050579, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6927, 60.366, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16869212", "mag": 1.1, "time": 1505906705387, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0351, 61.9136, 37.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72895691", "mag": 1.89, "time": 1505906617690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.802667, 36.023667, 14.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16903672", "mag": 2.7, "time": 1505906309964, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.8205, 51.5611, 26.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72895686", "mag": 1.58, "time": 1505906251960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.257833, 39.404167, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16868636", "mag": 1.1, "time": 1505905797402, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.4101, 61.9294, 46.0 ] } }, - { "type": "Feature", "properties": { "id": "nm60207096", "mag": 1.74, "time": 1505905515890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.502, 36.239333, 7.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16868555", "mag": 1.6, "time": 1505904607416, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.81, 59.8821, 7.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000arj1", "mag": 4.7, "time": 1505903968940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.4191, 15.2723, 57.48 ] } }, - { "type": "Feature", "properties": { "id": "ci38006912", "mag": 1.07, "time": 1505903473810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.495167, 35.975167, 6.03 ] } }, - { "type": "Feature", "properties": { "id": "uu60248142", "mag": 1.89, "time": 1505903157450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.424333, 42.560333, 7.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16868496", "mag": 2.0, "time": 1505903116550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9125, 61.7794, 102.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16868494", "mag": 1.5, "time": 1505903092907, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2214, 61.9475, 35.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16903665", "mag": 1.3, "time": 1505902710790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7292, 62.9468, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16867924", "mag": 1.2, "time": 1505902608214, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7213, 59.8967, 2.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00606156", "mag": 1.0, "time": 1505901862661, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.6593, 38.6914, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72895661", "mag": 1.05, "time": 1505901620810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810837, 38.818668, 2.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16903662", "mag": 1.0, "time": 1505901509250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8825, 63.8483, 113.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61914831", "mag": 1.76, "time": 1505901369660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.477661, 19.182333, 34.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16867848", "mag": 1.1, "time": 1505900653451, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4004, 63.1493, 5.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000arir", "mag": 3.7, "time": 1505900227020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.1086, 55.2931, 60.27 ] } }, - { "type": "Feature", "properties": { "id": "uw61331666", "mag": 1.1, "time": 1505898593660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.672, 48.548667, -0.01 ] } }, - { "type": "Feature", "properties": { "id": "ci38006880", "mag": 2.13, "time": 1505898547760, "felt": 137, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.512, 33.929167, 3.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000arig", "mag": 4.9, "time": 1505898116470, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.0335, 30.5728, 51.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16867217", "mag": 1.6, "time": 1505898082784, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4786, 59.9819, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16867146", "mag": 1.1, "time": 1505897266615, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.8777, 60.4396, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "ci38006872", "mag": 1.46, "time": 1505897209710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797667, 33.493667, 4.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16867139", "mag": 2.2, "time": 1505896599575, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3632, 62.9389, 110.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72895641", "mag": 1.43, "time": 1505896494260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.840333, 37.569333, 1.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16903656", "mag": 1.6, "time": 1505896455015, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6591, 59.7355, 84.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60248127", "mag": 1.21, "time": 1505896112670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.409833, 42.577333, 5.18 ] } }, - { "type": "Feature", "properties": { "id": "uu60248122", "mag": 1.04, "time": 1505896073990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.420167, 42.597, 5.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000ari7", "mag": 2.8, "time": 1505895800120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4288, 42.5861, 7.69 ] } }, - { "type": "Feature", "properties": { "id": "hv61914791", "mag": 2.56, "time": 1505895324160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2775, 19.387833, 2.782 ] } }, - { "type": "Feature", "properties": { "id": "uu60248112", "mag": 2.6, "time": 1505895001440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.426333, 42.581333, 7.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16903653", "mag": 1.4, "time": 1505894006715, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.1734, 57.6592, 5.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72895626", "mag": 1.53, "time": 1505893505020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.731, 35.610333, 5.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16866448", "mag": 1.5, "time": 1505893091784, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2468, 62.4591, 77.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60013094", "mag": 1.81, "time": 1505893039830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.445667, 42.595833, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38006824", "mag": 1.12, "time": 1505893038610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.764667, 36.027, 1.93 ] } }, - { "type": "Feature", "properties": { "id": "uu60248107", "mag": 1.76, "time": 1505893022850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.440667, 42.600667, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "hv61914781", "mag": 1.67, "time": 1505892711130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.6165, 19.4305, 3.542 ] } }, - { "type": "Feature", "properties": { "id": "ak16903651", "mag": 3.0, "time": 1505892680068, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.4523, 53.0789, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60248102", "mag": 1.36, "time": 1505892622540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.435667, 42.589167, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16866421", "mag": 1.6, "time": 1505892318030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3481, 59.8279, 3.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16866396", "mag": 2.2, "time": 1505891995067, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.4096, 54.4777, 11.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61914776", "mag": 1.93, "time": 1505891884110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.875167, 19.494, 13.771 ] } }, - { "type": "Feature", "properties": { "id": "ak16866395", "mag": 1.1, "time": 1505891525159, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.5895, 59.7855, 1.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16865784", "mag": 1.7, "time": 1505890304255, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8219, 63.9434, 110.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16903645", "mag": 1.5, "time": 1505889690090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8317, 59.5969, 83.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60248092", "mag": 1.25, "time": 1505889314510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4045, 42.559, 7.09 ] } }, - { "type": "Feature", "properties": { "id": "ak16903644", "mag": 1.6, "time": 1505888156227, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.1233, 56.6112, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16903642", "mag": 1.1, "time": 1505887874395, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5943, 62.8332, 79.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000arhc", "mag": 2.7, "time": 1505887339310, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.7528, 35.56, 6.78 ] } }, - { "type": "Feature", "properties": { "id": "nn00606041", "mag": 1.5, "time": 1505886348191, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1044, 37.3927, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16865084", "mag": 2.3, "time": 1505886195952, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.96, 68.8119, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16865080", "mag": 1.0, "time": 1505886128688, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.8653, 65.3778, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16865073", "mag": 2.0, "time": 1505885821473, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.5664, 57.7913, 90.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16865048", "mag": 1.0, "time": 1505885371718, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9661, 63.2402, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000arh1", "mag": 5.3, "time": 1505885168970, "felt": 29, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.3157, -16.2747, 92.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000arha", "mag": 4.8, "time": 1505884561830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 148.9933, 44.304, 47.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16865027", "mag": 1.7, "time": 1505884405432, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8016, 59.167, 62.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16903636", "mag": 2.1, "time": 1505884147575, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.2848, 54.6322, 28.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16864392", "mag": 1.4, "time": 1505881969592, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3599, 61.7927, 48.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00606034", "mag": 1.2, "time": 1505881284660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8997, 38.3821, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16903634", "mag": 1.9, "time": 1505881021363, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3362, 59.9873, 134.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16864345", "mag": 1.4, "time": 1505880564938, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.7317, 59.9227, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16864341", "mag": 1.9, "time": 1505880299039, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2295, 62.4633, 79.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16903630", "mag": 1.6, "time": 1505878577379, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2105, 59.7151, 108.5 ] } }, - { "type": "Feature", "properties": { "id": "ci38006744", "mag": 1.15, "time": 1505878429650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.3295, 36.066833, 4.96 ] } }, - { "type": "Feature", "properties": { "id": "uu60248077", "mag": 1.22, "time": 1505878406660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.422667, 42.523667, 7.06 ] } }, - { "type": "Feature", "properties": { "id": "ci38006752", "mag": 1.09, "time": 1505878374600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.328333, 36.063333, 2.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16863731", "mag": 2.4, "time": 1505878347669, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1296, 60.1348, 9.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16903628", "mag": 1.7, "time": 1505878317110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2703, 59.8732, 126.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16863732", "mag": 1.2, "time": 1505878286762, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.9406, 59.985, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38006736", "mag": 1.86, "time": 1505878275980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.331167, 36.0625, 4.96 ] } }, - { "type": "Feature", "properties": { "id": "ci37165628", "mag": 1.61, "time": 1505878262700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.3305, 36.062833, 2.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16863728", "mag": 1.3, "time": 1505878130865, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3801, 60.7066, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000argd", "mag": 4.6, "time": 1505878085370, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8719, 16.1444, 48.73 ] } }, - { "type": "Feature", "properties": { "id": "uu60248072", "mag": 2.35, "time": 1505878084670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.423167, 42.581333, 8.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16863729", "mag": 2.5, "time": 1505878081761, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4258, 51.6886, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72895536", "mag": 1.94, "time": 1505877892960, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.286167, 36.776667, 10.03 ] } }, - { "type": "Feature", "properties": { "id": "ci38006720", "mag": 1.07, "time": 1505877439420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.752, 33.713, 15.96 ] } }, - { "type": "Feature", "properties": { "id": "uu60248067", "mag": 1.47, "time": 1505877309800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.445, 42.617667, 6.11 ] } }, - { "type": "Feature", "properties": { "id": "ci38006712", "mag": 1.07, "time": 1505875949770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.750333, 33.961833, 15.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000awn6", "mag": 4.0, "time": 1505875623990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.7511, -25.3193, 527.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000arfw", "mag": 4.9, "time": 1505875330110, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 174.3444, -41.5073, 24.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000arfs", "mag": 4.9, "time": 1505875055560, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -90.9075, 14.5711, 178.93 ] } }, - { "type": "Feature", "properties": { "id": "pr2017263000", "mag": 2.75, "time": 1505873919890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.3401, 18.9298, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16863060", "mag": 1.9, "time": 1505873560207, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1132, 59.1631, 57.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72895516", "mag": 1.58, "time": 1505873402400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.522667, 35.964833, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000arf6", "mag": 2.7, "time": 1505873292330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6365, 59.7836, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arfq", "mag": 2.8, "time": 1505872583380, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -2.1386, 37.4306, 7.84 ] } }, - { "type": "Feature", "properties": { "id": "nc72895506", "mag": 1.14, "time": 1505872092600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.103, 36.606333, 9.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000arel", "mag": 6.1, "time": 1505871807940, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 162.614, -50.7145, 19.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16862483", "mag": 2.0, "time": 1505871449331, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.323, 61.0377, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16862466", "mag": 1.1, "time": 1505870969313, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.0763, 60.3456, 0.4 ] } }, - { "type": "Feature", "properties": { "id": "mb80256529", "mag": 1.31, "time": 1505870488260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528, 46.8965, 11.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72895486", "mag": 1.47, "time": 1505870467130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.586, 36.020333, 4.08 ] } }, - { "type": "Feature", "properties": { "id": "us2000are4", "mag": 4.5, "time": 1505868292650, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.5418, -3.912, 43.33 ] } }, - { "type": "Feature", "properties": { "id": "uu60248037", "mag": 2.04, "time": 1505868182810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.450167, 42.612833, 6.23 ] } }, - { "type": "Feature", "properties": { "id": "uu60248032", "mag": 1.14, "time": 1505868031480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.415833, 42.508, 5.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000are1", "mag": 2.5, "time": 1505867820700, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7971, 36.457, 5.777 ] } }, - { "type": "Feature", "properties": { "id": "nc72895456", "mag": 1.52, "time": 1505867731230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.668833, 37.291667, 4.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000ardv", "mag": 5.0, "time": 1505866095740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 57.4066, 30.7208, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16903617", "mag": 1.9, "time": 1505866055349, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.744, 56.8763, 33.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16903616", "mag": 1.8, "time": 1505865710189, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.5947, 55.8757, 101.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16903615", "mag": 1.8, "time": 1505865589920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0266, 60.2087, 122.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ass3", "mag": 2.5, "time": 1505864736500, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.8008, 36.4519, 6.233 ] } }, - { "type": "Feature", "properties": { "id": "mb80256499", "mag": 1.38, "time": 1505864394760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.407833, 45.589, 4.43 ] } }, - { "type": "Feature", "properties": { "id": "us2000arcp", "mag": 3.0, "time": 1505863612870, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4223, 42.5909, 9.63 ] } }, - { "type": "Feature", "properties": { "id": "uw61331476", "mag": 1.93, "time": 1505863558820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.772333, 46.652333, -0.79 ] } }, - { "type": "Feature", "properties": { "id": "us2000arcv", "mag": 4.6, "time": 1505863376420, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 123.9102, 6.3611, 38.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000arck", "mag": 2.6, "time": 1505863101700, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.9891, 36.9623, 5.329 ] } }, - { "type": "Feature", "properties": { "id": "us2000arch", "mag": 4.6, "time": 1505862692240, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8625, 16.2348, 45.26 ] } }, - { "type": "Feature", "properties": { "id": "uw61331461", "mag": 1.43, "time": 1505862649350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.194333, 46.983167, -0.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16861101", "mag": 1.0, "time": 1505862438423, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3714, 64.9781, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arca", "mag": 4.7, "time": 1505862303600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.4478, -36.2513, 47.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16860573", "mag": 1.3, "time": 1505861271657, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6706, 62.0713, 0.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000arbk", "mag": 2.4, "time": 1505861097180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4595, 42.608, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aray", "mag": 3.2, "time": 1505859699230, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7506, 36.4396, 1.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000arar", "mag": 2.6, "time": 1505859474460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7831, 36.4511, 2.64 ] } }, - { "type": "Feature", "properties": { "id": "ci38006608", "mag": 0.96, "time": 1505859334750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.475333, 33.486667, 14.73 ] } }, - { "type": "Feature", "properties": { "id": "uu60247982", "mag": 1.65, "time": 1505858965080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.420667, 42.524833, 7.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16859929", "mag": 1.1, "time": 1505857928856, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.6104, 61.9413, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00605999", "mag": 1.5, "time": 1505856979033, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.7943, 38.658, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16875936", "mag": 1.7, "time": 1505856840827, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.652, 53.3989, 20.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00606301", "mag": 1.4, "time": 1505856837357, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.7768, 38.66, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00606300", "mag": 1.4, "time": 1505856822494, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.7817, 38.6647, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16859863", "mag": 1.4, "time": 1505856383099, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.06, 61.1692, 19.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60247972", "mag": 1.74, "time": 1505856071750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4475, 42.619, 6.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16859852", "mag": 1.7, "time": 1505856067799, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.5801, 68.0241, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16859850", "mag": 1.3, "time": 1505856055065, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2245, 61.5244, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00605994", "mag": 1.2, "time": 1505855929391, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1076, 37.3659, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar96", "mag": 4.9, "time": 1505855599810, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5112, 15.3218, 46.64 ] } }, - { "type": "Feature", "properties": { "id": "ci38006584", "mag": 1.62, "time": 1505855343650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.8445, 36.1795, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00605990", "mag": 1.4, "time": 1505855191998, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.3633, 38.1896, 5.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16859325", "mag": 2.3, "time": 1505854928991, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9168, 61.6291, 63.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72895401", "mag": 1.19, "time": 1505854923520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.721832, 38.778832, 1.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16859316", "mag": 1.9, "time": 1505854153817, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2675, 59.6779, 106.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar87", "mag": 4.0, "time": 1505854089550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.0339, -20.6057, 107.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16859309", "mag": 2.3, "time": 1505853828556, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9751, 62.3114, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16859297", "mag": 2.2, "time": 1505853447611, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.476, 59.9101, 122.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16859290", "mag": 3.0, "time": 1505853445730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.8511, 55.6543, 46.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16859292", "mag": 3.6, "time": 1505853411703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.4847, 57.8969, 244.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72895391", "mag": 2.22, "time": 1505852777640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.194167, 40.744, 31.83 ] } }, - { "type": "Feature", "properties": { "id": "uu60247942", "mag": 1.28, "time": 1505852539380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.439833, 42.608667, 6.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16859266", "mag": 1.1, "time": 1505852431345, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.5411, 60.0259, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar6z", "mag": 5.2, "time": 1505852287190, "felt": 32, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.7668, 37.2998, 35.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar6y", "mag": 5.2, "time": 1505852058100, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 150.8423, -5.5637, 99.91 ] } }, - { "type": "Feature", "properties": { "id": "ak16859257", "mag": 1.1, "time": 1505851589002, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.171, 64.5345, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "ci38006552", "mag": 1.38, "time": 1505851374120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.498833, 33.866667, -0.49 ] } }, - { "type": "Feature", "properties": { "id": "nc72895381", "mag": 1.43, "time": 1505851273540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.729333, 36.3275, 5.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16875922", "mag": 1.3, "time": 1505850452543, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.3232, 58.1622, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16875921", "mag": 2.9, "time": 1505849966730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.4901, 52.1476, 24.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60247932", "mag": 1.44, "time": 1505849337250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.421, 42.579, 5.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16875920", "mag": 1.3, "time": 1505849251567, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.6328, 59.921, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16858730", "mag": 1.2, "time": 1505848519202, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9009, 61.545, 3.9 ] } }, - { "type": "Feature", "properties": { "id": "hv61914226", "mag": 1.85, "time": 1505848191950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.283829, 19.389834, 2.69 ] } }, - { "type": "Feature", "properties": { "id": "ci38006520", "mag": 1.05, "time": 1505847392530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.7695, 36.0195, 2.35 ] } }, - { "type": "Feature", "properties": { "id": "ci38006512", "mag": 1.61, "time": 1505847142180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.767, 36.0195, 2.27 ] } }, - { "type": "Feature", "properties": { "id": "ci38006496", "mag": 3.65, "time": 1505846743780, "felt": 24, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.769833, 36.019333, 1.78 ] } }, - { "type": "Feature", "properties": { "id": "hv61914191", "mag": 1.84, "time": 1505846559260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.249161, 19.378334, 1.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16875918", "mag": 2.8, "time": 1505846556982, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.8186, 52.0581, 213.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72895351", "mag": 1.32, "time": 1505846239310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.104167, 37.325333, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "nc72895341", "mag": 2.76, "time": 1505846072870, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.359001, 36.981335, 8.57 ] } }, - { "type": "Feature", "properties": { "id": "ci38006480", "mag": 3.19, "time": 1505846053020, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.767333, 36.019, 1.55 ] } }, - { "type": "Feature", "properties": { "id": "nc72895286", "mag": 1.33, "time": 1505844883780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.572167, 35.430667, -0.58 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar1y", "mag": 4.6, "time": 1505844881000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.1913, -37.2281, 5.95 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar20", "mag": 7.1, "time": 1505844878420, "felt": 2048, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.4952, 18.5539, 51.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16858135", "mag": 1.6, "time": 1505844133798, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.026, 67.0927, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37766871", "mag": 1.54, "time": 1505844053390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.846, 36.179167, 2.24 ] } }, - { "type": "Feature", "properties": { "id": "ci37766863", "mag": 1.44, "time": 1505843932610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.768, 36.018667, 1.61 ] } }, - { "type": "Feature", "properties": { "id": "nm60207061", "mag": 1.72, "time": 1505843783380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.646167, 36.5445, 7.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqyy", "mag": 4.5, "time": 1505843446640, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.6161, -31.7548, 29.84 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235603", "mag": 1.89, "time": 1505842614490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.682, 37.184833, 3.97 ] } }, - { "type": "Feature", "properties": { "id": "nc72895271", "mag": 1.15, "time": 1505841330820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.259833, 36.753, 11.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqxe", "mag": 4.6, "time": 1505841149400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 128.1444, -7.5033, 158.11 ] } }, - { "type": "Feature", "properties": { "id": "uu60247882", "mag": 1.62, "time": 1505841064700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.426167, 42.5295, 8.11 ] } }, - { "type": "Feature", "properties": { "id": "nc72895256", "mag": 1.32, "time": 1505840661480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.598167, 36.752, -0.32 ] } }, - { "type": "Feature", "properties": { "id": "ci37766807", "mag": 2.45, "time": 1505840210530, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.766, 36.02, 1.86 ] } }, - { "type": "Feature", "properties": { "id": "uu60247877", "mag": 2.11, "time": 1505840158690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.448833, 42.606, 3.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16857619", "mag": 2.1, "time": 1505840007502, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8949, 63.2912, 101.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60247872", "mag": 1.62, "time": 1505839724910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.458833, 42.607, 3.95 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqvm", "mag": 2.7, "time": 1505839542100, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.469, 42.6077, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72895246", "mag": 1.35, "time": 1505839417090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.485667, 35.221333, 6.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16875914", "mag": 1.9, "time": 1505839174472, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4077, 58.8832, 118.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37766791", "mag": 1.22, "time": 1505838919650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3645, 33.1855, 10.21 ] } }, - { "type": "Feature", "properties": { "id": "ak16857617", "mag": 1.6, "time": 1505838902519, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.9995, 67.1881, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60247852", "mag": 2.07, "time": 1505838746530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4455, 42.613833, 1.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16857602", "mag": 1.1, "time": 1505837962181, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.5253, 60.121, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16857600", "mag": 1.9, "time": 1505837841567, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.1883, 53.9422, 44.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72895231", "mag": 2.9, "time": 1505837729840, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.833667, 37.507667, 1.79 ] } }, - { "type": "Feature", "properties": { "id": "us2000ary5", "mag": 2.9, "time": 1505837727410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4431, 42.6149, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60247822", "mag": 2.11, "time": 1505837448870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.455167, 42.616, 1.41 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqtm", "mag": 3.1, "time": 1505837140170, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4706, 42.6154, 8.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16875909", "mag": 2.2, "time": 1505836969879, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4914, 51.7473, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16857094", "mag": 1.1, "time": 1505836528626, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6176, 61.14, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16875907", "mag": 1.5, "time": 1505835821169, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.259, 60.5626, 90.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqsj", "mag": 2.6, "time": 1505835755980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5135, 36.2854, 4.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqsk", "mag": 2.5, "time": 1505835732030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4724, 42.6121, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16857093", "mag": 2.6, "time": 1505835424846, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4652, 51.7084, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqsh", "mag": 3.0, "time": 1505835309120, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4508, 42.6064, 4.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16857091", "mag": 1.3, "time": 1505835219788, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0197, 66.1072, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqs7", "mag": 3.5, "time": 1505834833670, "felt": 21, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4429, 42.6135, 8.34 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqwu", "mag": 2.5, "time": 1505834816200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.7965, 36.4516, 6.125 ] } }, - { "type": "Feature", "properties": { "id": "ak16875904", "mag": 1.6, "time": 1505834730734, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.9141, 57.1404, 29.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37766767", "mag": 1.14, "time": 1505834129200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.763833, 36.020667, 1.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16857088", "mag": 1.5, "time": 1505834082762, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0429, 60.6104, 77.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqrc", "mag": 4.8, "time": 1505832575280, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 178.0168, 52.0275, 131.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16875901", "mag": 1.4, "time": 1505831619582, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -137.534, 58.7008, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37766711", "mag": 1.96, "time": 1505831425050, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.765667, 36.018833, 1.51 ] } }, - { "type": "Feature", "properties": { "id": "ci37766703", "mag": 1.15, "time": 1505831411750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.764833, 36.019667, 1.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqqm", "mag": 4.5, "time": 1505831278930, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.4084, -31.8109, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16856556", "mag": 1.3, "time": 1505831243282, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7313, 59.8087, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00606015", "mag": 1.3, "time": 1505831170459, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8959, 38.3975, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16856551", "mag": 1.9, "time": 1505831042494, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6819, 63.0946, 10.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16875898", "mag": 1.7, "time": 1505829915600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2865, 59.7628, 116.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16856544", "mag": 1.6, "time": 1505829548541, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3607, 61.0755, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72895191", "mag": 1.4, "time": 1505828746900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.799667, 38.815333, 3.57 ] } }, - { "type": "Feature", "properties": { "id": "nc72895181", "mag": 1.21, "time": 1505828239020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.96, 37.587, -0.68 ] } }, - { "type": "Feature", "properties": { "id": "pr2017262003", "mag": 3.12, "time": 1505828003180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.596, 19.2688, 38.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqpx", "mag": 5.1, "time": 1505827570500, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 53.9953, 27.9548, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72895166", "mag": 2.1, "time": 1505827334280, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.801333, 38.709667, 3.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16856036", "mag": 1.5, "time": 1505826795043, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9795, 61.8762, 43.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16856032", "mag": 1.6, "time": 1505825636722, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1838, 62.582, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37766679", "mag": 0.96, "time": 1505825558280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.804167, 33.865333, 14.31 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqp7", "mag": 4.4, "time": 1505825308910, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -78.7564, -2.1725, 112.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16856030", "mag": 3.0, "time": 1505825190453, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.1381, 51.2155, 7.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00605924", "mag": 1.0, "time": 1505824470372, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0787, 37.3317, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16856028", "mag": 1.3, "time": 1505824029137, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5369, 59.9737, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16856023", "mag": 1.7, "time": 1505823902403, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0502, 66.1255, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16856015", "mag": 2.2, "time": 1505823557445, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.013, 66.1279, 12.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16856014", "mag": 1.1, "time": 1505823327376, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3053, 64.2153, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16856012", "mag": 1.2, "time": 1505823307912, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.2687, 63.3135, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16856011", "mag": 2.3, "time": 1505823122176, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.4683, 54.3778, 12.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72895111", "mag": 1.33, "time": 1505822407460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.809833, 38.802, 3.64 ] } }, - { "type": "Feature", "properties": { "id": "nm60207021", "mag": 3.8, "time": 1505821648710, "felt": 1485, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -87.909833, 38.423833, 11.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16855511", "mag": 1.6, "time": 1505821526245, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.7265, 65.4529, 0.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16875885", "mag": 2.4, "time": 1505821066912, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.3853, 52.1246, 33.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72895086", "mag": 1.5, "time": 1505820901510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.811333, 38.8115, 2.81 ] } }, - { "type": "Feature", "properties": { "id": "nn00605917", "mag": 1.0, "time": 1505819713127, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0296, 37.3121, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37766663", "mag": 1.51, "time": 1505819310540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.197333, 34.085167, 9.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16875884", "mag": 2.8, "time": 1505819249763, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -171.074, 52.1917, 55.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqlv", "mag": 4.4, "time": 1505818453350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.3742, -31.7199, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16855501", "mag": 3.4, "time": 1505818346973, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7971, 56.0595, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16855500", "mag": 2.9, "time": 1505817985167, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.3494, 51.1124, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72895061", "mag": 1.78, "time": 1505817758790, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.178833, 36.5795, 5.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72895056", "mag": 2.12, "time": 1505817518530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.177333, 36.582833, 3.53 ] } }, - { "type": "Feature", "properties": { "id": "uu60247712", "mag": 1.36, "time": 1505817061570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.018167, 44.796, 9.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16875881", "mag": 1.6, "time": 1505816115601, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2511, 57.9599, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16855499", "mag": 1.3, "time": 1505815877713, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8298, 61.5636, 56.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16855498", "mag": 2.3, "time": 1505815751742, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.7444, 52.8226, 62.9 ] } }, - { "type": "Feature", "properties": { "id": "pr2017262002", "mag": 3.05, "time": 1505815582890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.7015, 19.0933, 25.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16875878", "mag": 2.3, "time": 1505815056638, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.6299, 51.8122, 76.9 ] } }, - { "type": "Feature", "properties": { "id": "pr2017262001", "mag": 3.03, "time": 1505814906490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.723, 19.2006, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqkv", "mag": 3.1, "time": 1505814230020, "felt": 19, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.8094, 35.9883, 6.72 ] } }, - { "type": "Feature", "properties": { "id": "nn00605909", "mag": 2.0, "time": 1505812861822, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0799, 37.3335, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37766575", "mag": 1.76, "time": 1505810653690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.489167, 32.91, 3.69 ] } }, - { "type": "Feature", "properties": { "id": "hv61913891", "mag": 1.46, "time": 1505809604540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2385, 19.383667, 3.069 ] } }, - { "type": "Feature", "properties": { "id": "us2000awmg", "mag": 4.7, "time": 1505809455110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 162.925, -10.7783, 56.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000asy2", "mag": 3.0, "time": 1505809273830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.747, 56.8207, 54.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16855496", "mag": 1.1, "time": 1505809181592, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6103, 61.758, 29.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37766567", "mag": 2.63, "time": 1505808839560, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.053, 33.079333, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16854995", "mag": 1.3, "time": 1505808496915, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.3955, 61.6352, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awn2", "mag": 4.8, "time": 1505807930800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8135, 15.201, 45.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqji", "mag": 5.5, "time": 1505807596650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0446, 15.1414, 38.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16875872", "mag": 2.1, "time": 1505807457953, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.2219, 51.3226, 34.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72894976", "mag": 1.17, "time": 1505806773770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.792335, 38.809666, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37766551", "mag": 1.92, "time": 1505806527540, "felt": 28, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.473833, 34.086, 9.44 ] } }, - { "type": "Feature", "properties": { "id": "nn00605996", "mag": 1.0, "time": 1505804591858, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.786, 38.6641, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqiw", "mag": 4.9, "time": 1505804582700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5541, 15.6968, 62.85 ] } }, - { "type": "Feature", "properties": { "id": "nc72894951", "mag": 2.38, "time": 1505803512250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.804667, 38.658333, -1.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqim", "mag": 4.9, "time": 1505803059440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 162.5306, -11.0433, 31.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16858212", "mag": 1.9, "time": 1505803043301, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8602, 60.3455, 116.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16854482", "mag": 1.5, "time": 1505802327547, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6967, 63.0934, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37766535", "mag": 3.61, "time": 1505802044370, "felt": 9002, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.475667, 34.086667, 10.48 ] } }, - { "type": "Feature", "properties": { "id": "ci37766527", "mag": 1.21, "time": 1505801932130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.774833, 34.169667, 4.09 ] } }, - { "type": "Feature", "properties": { "id": "ak16875868", "mag": 1.8, "time": 1505801903580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.8368, 51.4427, 38.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16854479", "mag": 1.1, "time": 1505801695119, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7029, 61.7782, 46.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16875866", "mag": 1.4, "time": 1505801525136, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.4992, 53.7654, 79.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61331061", "mag": 2.06, "time": 1505797453620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.194667, 46.453167, 40.56 ] } }, - { "type": "Feature", "properties": { "id": "ci37766503", "mag": 1.67, "time": 1505797300060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.486333, 32.916167, 3.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16854474", "mag": 1.9, "time": 1505797038222, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0668, 60.2297, 58.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16853980", "mag": 1.1, "time": 1505796127101, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3206, 62.3117, 31.2 ] } }, - { "type": "Feature", "properties": { "id": "uw61330981", "mag": 1.13, "time": 1505795983940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.682, 46.13, 13.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16853978", "mag": 1.3, "time": 1505795947149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1655, 62.2572, 56.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00605993", "mag": 1.1, "time": 1505795780711, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1363, 37.4312, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72894911", "mag": 1.31, "time": 1505795498990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7385, 38.757333, 2.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16875861", "mag": 1.1, "time": 1505795298437, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.2708, 60.1059, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "pr2017262000", "mag": 3.54, "time": 1505794257010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.6603, 17.4281, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16875860", "mag": 2.4, "time": 1505793870359, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.7298, 54.4321, 27.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16875859", "mag": 1.7, "time": 1505793327250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1948, 59.7387, 99.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16853975", "mag": 1.6, "time": 1505792759926, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.4718, 53.5765, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72894906", "mag": 1.57, "time": 1505792076170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7735, 38.656833, -0.04 ] } }, - { "type": "Feature", "properties": { "id": "ci37766479", "mag": 1.69, "time": 1505792016930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.486333, 32.9165, 3.74 ] } }, - { "type": "Feature", "properties": { "id": "ci37766487", "mag": 1.34, "time": 1505791878570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.484833, 32.910667, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37766471", "mag": 1.85, "time": 1505791676460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.4825, 32.916333, 3.63 ] } }, - { "type": "Feature", "properties": { "id": "nc72894886", "mag": 1.72, "time": 1505789062930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.840667, 37.569167, 0.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16853477", "mag": 1.0, "time": 1505787688094, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.1719, 66.2583, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16875853", "mag": 1.7, "time": 1505787600292, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3919, 59.6211, 106.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16875852", "mag": 1.1, "time": 1505786552106, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5941, 61.448, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80256309", "mag": 1.39, "time": 1505786055440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526833, 46.8665, 12.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16853476", "mag": 1.1, "time": 1505785818136, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8501, 59.9025, 11.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16852984", "mag": 1.1, "time": 1505784566645, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6396, 62.818, 76.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqg7", "mag": 4.1, "time": 1505784206570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4373, 15.5332, 46.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60247557", "mag": 1.04, "time": 1505784051560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.714, 41.274333, 9.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60247547", "mag": 1.47, "time": 1505783841160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.707167, 41.273, 13.52 ] } }, - { "type": "Feature", "properties": { "id": "hv61913526", "mag": 1.76, "time": 1505783827370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.457833, 19.1825, 36.457 ] } }, - { "type": "Feature", "properties": { "id": "uu60247542", "mag": 2.67, "time": 1505783530250, "felt": 53, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.715333, 41.2735, 12.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16852978", "mag": 2.3, "time": 1505783525625, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6267, 63.2162, 130.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16852863", "mag": 2.5, "time": 1505781518245, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0202, 60.2096, 73.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72894856", "mag": 0.99, "time": 1505781008310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.827331, 38.841667, 1.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16852858", "mag": 1.1, "time": 1505780482987, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8182, 61.2069, 27.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72894851", "mag": 1.36, "time": 1505780335820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7775, 38.816, 2.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16852857", "mag": 1.6, "time": 1505780229532, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4, 60.0341, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16852855", "mag": 1.5, "time": 1505779887968, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8629, 61.2326, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37766415", "mag": 1.9, "time": 1505779853200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.489333, 32.905167, 5.38 ] } }, - { "type": "Feature", "properties": { "id": "ci37165308", "mag": 1.73, "time": 1505779842240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.488, 32.911333, 4.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16852849", "mag": 1.7, "time": 1505779013710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9564, 61.0148, 51.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16852847", "mag": 1.4, "time": 1505778755901, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7113, 59.8038, 2.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16852839", "mag": 1.8, "time": 1505778454412, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4318, 51.6727, 27.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16852350", "mag": 2.0, "time": 1505777928661, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5948, 59.4167, 88.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37766399", "mag": 1.34, "time": 1505777787740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.855667, 36.109333, 3.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16905714", "mag": 1.0, "time": 1505777724697, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9455, 64.7711, 1.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37766391", "mag": 0.98, "time": 1505777305130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.852333, 36.108833, 4.09 ] } }, - { "type": "Feature", "properties": { "id": "ci37766383", "mag": 1.52, "time": 1505777027970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.673833, 35.0495, -0.79 ] } }, - { "type": "Feature", "properties": { "id": "nn00605852", "mag": 1.0, "time": 1505777021809, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.5662, 37.4193, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16852327", "mag": 1.3, "time": 1505776382741, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3544, 64.9878, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72894836", "mag": 1.11, "time": 1505776268170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.826164, 38.803165, -0.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16852320", "mag": 2.2, "time": 1505774485259, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6811, 59.3157, 121.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61330861", "mag": 1.73, "time": 1505774113220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.3385, 46.609, -0.26 ] } }, - { "type": "Feature", "properties": { "id": "us2000awm5", "mag": 4.3, "time": 1505773697460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 150.1858, 46.1638, 102.95 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqck", "mag": 3.9, "time": 1505773335560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.2122, -24.1635, 187.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72894811", "mag": 1.66, "time": 1505773221810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.814667, 38.797333, 2.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000aurg", "mag": 3.7, "time": 1505773151260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.33, 54.9516, 64.12 ] } }, - { "type": "Feature", "properties": { "id": "ak16851830", "mag": 1.1, "time": 1505773086095, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3969, 60.1593, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37766351", "mag": 2.36, "time": 1505772988180, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.856, 36.108833, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqc4", "mag": 4.3, "time": 1505772810860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7554, 15.1768, 26.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16905709", "mag": 1.9, "time": 1505772157260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3386, 60.1473, 141.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72894806", "mag": 1.27, "time": 1505771972190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.114667, 39.267, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16905707", "mag": 2.2, "time": 1505771817995, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.2489, 54.4702, 80.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72894796", "mag": 2.0, "time": 1505771179880, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.128, 39.249833, 8.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16851826", "mag": 1.4, "time": 1505770110538, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6751, 61.3285, 49.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37766303", "mag": 1.45, "time": 1505769920400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.605, 32.830833, 11.11 ] } }, - { "type": "Feature", "properties": { "id": "ci37766295", "mag": 1.71, "time": 1505769761910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.604667, 32.8245, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37766287", "mag": 2.17, "time": 1505769684730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.606, 32.822667, 12.54 ] } }, - { "type": "Feature", "properties": { "id": "pr2017261003", "mag": 2.77, "time": 1505769603950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.496, 19.0255, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16851820", "mag": 1.8, "time": 1505768968360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5226, 60.8929, 114.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16851818", "mag": 1.8, "time": 1505768967170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6844, 60.3627, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61913136", "mag": 2.13, "time": 1505768803830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.602167, 19.474, 2.169 ] } }, - { "type": "Feature", "properties": { "id": "ci37766271", "mag": 1.2, "time": 1505768642090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.024833, 34.482, 7.73 ] } }, - { "type": "Feature", "properties": { "id": "ci37766255", "mag": 1.05, "time": 1505767837000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.472833, 34.117167, 12.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq9e", "mag": 4.0, "time": 1505767497800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.084, -30.3511, 16.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16851331", "mag": 3.1, "time": 1505767490141, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.4781, 55.9976, 142.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16851328", "mag": 1.1, "time": 1505767149947, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.8292, 66.9662, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37766231", "mag": 0.99, "time": 1505765477990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.581833, 34.027833, 15.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16851294", "mag": 1.2, "time": 1505764980957, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5833, 61.5338, 35.4 ] } }, - { "type": "Feature", "properties": { "id": "uw61330806", "mag": 1.54, "time": 1505764971380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.54, 46.3245, -0.47 ] } }, - { "type": "Feature", "properties": { "id": "nn00605816", "mag": 1.4, "time": 1505764963953, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1157, 37.3834, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00605865", "mag": 1.1, "time": 1505764655295, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.1142, 38.3008, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72894761", "mag": 1.86, "time": 1505764383660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820667, 37.543667, 3.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq7z", "mag": 4.9, "time": 1505764292580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6427, 15.3134, 31.07 ] } }, - { "type": "Feature", "properties": { "id": "ci37766191", "mag": 0.97, "time": 1505763617780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.450667, 34.371167, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq71", "mag": 2.7, "time": 1505763144440, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4497, 42.6436, 9.31 ] } }, - { "type": "Feature", "properties": { "id": "ci37766183", "mag": 1.36, "time": 1505762589870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.1565, 35.016333, -1.02 ] } }, - { "type": "Feature", "properties": { "id": "mb80256274", "mag": 1.49, "time": 1505762568370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.536167, 46.875, 12.74 ] } }, - { "type": "Feature", "properties": { "id": "nn00605809", "mag": 1.3, "time": 1505762272549, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.6987, 37.801, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16850796", "mag": 1.9, "time": 1505761948762, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4688, 62.7498, 82.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00605855", "mag": 1.3, "time": 1505761056131, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1168, 37.3993, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37766175", "mag": 1.17, "time": 1505760720620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.9445, 34.324333, -1.41 ] } }, - { "type": "Feature", "properties": { "id": "nc72894741", "mag": 1.25, "time": 1505760426930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8455, 38.818, 2.33 ] } }, - { "type": "Feature", "properties": { "id": "uu60247432", "mag": 1.19, "time": 1505760132640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.613667, 40.6905, 8.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16850168", "mag": 2.1, "time": 1505759367705, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.838, 63.3882, 112.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37766167", "mag": 3.51, "time": 1505759058190, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.656502, 31.030666, 5.16 ] } }, - { "type": "Feature", "properties": { "id": "nn00605797", "mag": 1.7, "time": 1505758994627, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1288, 37.4056, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16850165", "mag": 1.4, "time": 1505758989527, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4112, 62.8303, 102.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16905692", "mag": 1.1, "time": 1505758393925, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8004, 59.9261, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37766159", "mag": 1.12, "time": 1505757568700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.635, 33.146167, 7.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72894726", "mag": 0.98, "time": 1505757550510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.418667, 37.284667, 6.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16905691", "mag": 1.4, "time": 1505757310878, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9735, 60.9138, 37.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16850161", "mag": 1.0, "time": 1505757088256, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0018, 62.0064, 13.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16905689", "mag": 1.2, "time": 1505757035772, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8926, 61.2214, 62.6 ] } }, - { "type": "Feature", "properties": { "id": "pr2017261002", "mag": 2.83, "time": 1505756997070, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.5011, 19.09, 29.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq4m", "mag": 4.3, "time": 1505756979200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.2066, 15.6332, 53.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16849685", "mag": 1.4, "time": 1505755775657, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.6398, 58.3116, 3.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00605793", "mag": 2.1, "time": 1505755747277, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0899, 37.3433, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq3v", "mag": 4.1, "time": 1505755544410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8487, 15.9949, 55.32 ] } }, - { "type": "Feature", "properties": { "id": "uu60247422", "mag": 3.28, "time": 1505755278460, "felt": 662, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.609167, 40.700833, 10.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16849675", "mag": 1.0, "time": 1505754649061, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0364, 64.4942, 19.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72894701", "mag": 1.54, "time": 1505754599760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.869, 36.443167, 15.01 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235573", "mag": 2.16, "time": 1505754215540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.819333, 37.204, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72894696", "mag": 1.11, "time": 1505753360080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.779167, 38.816834, 1.68 ] } }, - { "type": "Feature", "properties": { "id": "nc72894681", "mag": 2.71, "time": 1505753271320, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.776833, 38.818833, 1.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq1c", "mag": 4.3, "time": 1505753232560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 19.9297, 40.1065, 16.32 ] } }, - { "type": "Feature", "properties": { "id": "hv61912961", "mag": 1.88, "time": 1505752987740, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.220333, 19.426333, 30.266 ] } }, - { "type": "Feature", "properties": { "id": "ak16849646", "mag": 1.9, "time": 1505752045532, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8846, 59.8511, 56.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16905682", "mag": 2.1, "time": 1505751893024, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.9783, 51.5536, 48.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16905681", "mag": 1.4, "time": 1505751513529, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5148, 59.7419, 92.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq9y", "mag": 3.0, "time": 1505751460390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.173, 52.0554, 121.43 ] } }, - { "type": "Feature", "properties": { "id": "uu60247412", "mag": 1.56, "time": 1505751055750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.8355, 39.743833, 1.73 ] } }, - { "type": "Feature", "properties": { "id": "nn00605780", "mag": 1.0, "time": 1505750947574, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0248, 38.8721, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72894651", "mag": 1.22, "time": 1505750864240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8995, 37.521833, -0.61 ] } }, - { "type": "Feature", "properties": { "id": "us2000apzi", "mag": 4.5, "time": 1505750058850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 77.1478, 40.9769, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16905679", "mag": 1.0, "time": 1505749750880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3078, 62.9046, 85.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16849178", "mag": 1.3, "time": 1505749184927, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5131, 62.8898, 90.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000apyu", "mag": 4.3, "time": 1505748920580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.1652, -31.8057, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16849177", "mag": 3.5, "time": 1505748318594, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.7225, 51.7093, 41.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72894631", "mag": 1.04, "time": 1505748063110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.787498, 38.798832, -0.32 ] } }, - { "type": "Feature", "properties": { "id": "hv61912826", "mag": 1.1, "time": 1505748041950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.431667, 19.343833, 9.245 ] } }, - { "type": "Feature", "properties": { "id": "nn00605847", "mag": 1.0, "time": 1505747832897, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1332, 37.421, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apya", "mag": 4.7, "time": 1505747639290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5858, 15.1833, 36.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16848711", "mag": 1.3, "time": 1505747504037, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7568, 59.8878, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16905675", "mag": 2.1, "time": 1505746990876, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.9195, 57.1996, 98.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72894616", "mag": 2.19, "time": 1505746390770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.149, 40.217, 6.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16848704", "mag": 2.3, "time": 1505746286875, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.7477, 53.6076, 54.8 ] } }, - { "type": "Feature", "properties": { "id": "pr2017261001", "mag": 2.61, "time": 1505746245880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -64.7745, 18.8611, 60.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16848698", "mag": 2.1, "time": 1505746048831, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6658, 61.6841, 99.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq9s", "mag": 4.1, "time": 1505745176040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3907, 51.552, 15.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000apxn", "mag": 4.9, "time": 1505745090220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.9092, -17.3471, 45.41 ] } }, - { "type": "Feature", "properties": { "id": "us2000apxj", "mag": 4.3, "time": 1505744936080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.2186, -31.8431, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00605771", "mag": 1.4, "time": 1505744651408, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1135, 37.3693, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apx5", "mag": 5.6, "time": 1505744352870, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5576, 15.2537, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16905668", "mag": 2.5, "time": 1505742582241, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.8697, 55.3906, 161.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000apwd", "mag": 5.8, "time": 1505742416590, "felt": 129, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.147, -31.82, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apz2", "mag": 2.7, "time": 1505742004420, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5215, 46.8389, 9.05 ] } }, - { "type": "Feature", "properties": { "id": "nn00605759", "mag": 1.7, "time": 1505741994692, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.124, 38.2695, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000apw7", "mag": 4.6, "time": 1505741142110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 167.9613, 54.8175, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16905665", "mag": 1.6, "time": 1505741113018, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.6727, 58.1121, 86.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16905664", "mag": 1.1, "time": 1505740639920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4494, 63.2584, 114.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72894591", "mag": 2.07, "time": 1505739410930, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.0555, 37.236667, 7.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16848204", "mag": 1.1, "time": 1505739204689, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.9796, 60.2252, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80256214", "mag": 2.14, "time": 1505739119730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5825, 46.902333, 13.02 ] } }, - { "type": "Feature", "properties": { "id": "nc72894586", "mag": 2.01, "time": 1505738526550, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.378, 36.3415, 3.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16847753", "mag": 1.3, "time": 1505737613815, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1555, 60.2089, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apvj", "mag": 5.0, "time": 1505736665230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.9085, -30.4189, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apva", "mag": 4.9, "time": 1505736421580, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9784, 16.2017, 42.11 ] } }, - { "type": "Feature", "properties": { "id": "nc72894571", "mag": 1.07, "time": 1505736271580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.784332, 38.838333, 0.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72894556", "mag": 0.97, "time": 1505736021180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.818001, 38.813499, 2.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16847743", "mag": 2.1, "time": 1505735884769, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3712, 59.8705, 71.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16847742", "mag": 1.0, "time": 1505735834346, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8742, 61.715, 45.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16905659", "mag": 1.3, "time": 1505735311381, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8392, 63.0532, 129.1 ] } }, - { "type": "Feature", "properties": { "id": "mb80256209", "mag": 1.05, "time": 1505734177450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.518, 46.853667, 12.03 ] } }, - { "type": "Feature", "properties": { "id": "mb80256199", "mag": 1.81, "time": 1505733980660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.487833, 46.873667, 12.76 ] } }, - { "type": "Feature", "properties": { "id": "nc72894526", "mag": 1.16, "time": 1505733885060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8005, 38.805833, 2.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16847290", "mag": 1.5, "time": 1505733696824, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5693, 64.3804, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72894516", "mag": 1.04, "time": 1505733506920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.814163, 38.801998, 2.32 ] } }, - { "type": "Feature", "properties": { "id": "us2000aur7", "mag": 3.1, "time": 1505733485810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.7034, 52.2855, 34.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16847284", "mag": 1.4, "time": 1505732610976, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6388, 61.2241, 50.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37765935", "mag": 1.95, "time": 1505732049210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.924667, 34.9205, 5.15 ] } }, - { "type": "Feature", "properties": { "id": "ci37765927", "mag": 1.35, "time": 1505731803760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.3425, 35.462, 3.59 ] } }, - { "type": "Feature", "properties": { "id": "nc72894501", "mag": 1.64, "time": 1505731051670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.950333, 41.046833, 9.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16905652", "mag": 2.0, "time": 1505729940504, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.5491, 54.9912, 67.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16846821", "mag": 3.6, "time": 1505729929794, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5426, 63.5414, 107.9 ] } }, - { "type": "Feature", "properties": { "id": "hv61912566", "mag": 1.91, "time": 1505728760570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.608167, 19.4375, 2.822 ] } }, - { "type": "Feature", "properties": { "id": "ak16846819", "mag": 1.2, "time": 1505728039731, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.773, 63.2917, 2.1 ] } }, - { "type": "Feature", "properties": { "id": "pr2017261000", "mag": 2.03, "time": 1505727803000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.2451, 18.1321, 32.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37765911", "mag": 1.15, "time": 1505727350640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.034667, 34.574333, 8.17 ] } }, - { "type": "Feature", "properties": { "id": "nc72894496", "mag": 1.16, "time": 1505727178720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.815002, 38.806999, 3.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16846817", "mag": 1.3, "time": 1505726686491, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5195, 61.7191, 48.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72894491", "mag": 1.99, "time": 1505726671730, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.177167, 36.580167, 5.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16846815", "mag": 1.4, "time": 1505726488235, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.0878, 61.0048, 19.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16846813", "mag": 1.3, "time": 1505726256030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0016, 62.7051, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16846811", "mag": 1.2, "time": 1505725663332, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7382, 59.7002, 39.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00605720", "mag": 1.9, "time": 1505725520932, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0964, 37.3646, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16905644", "mag": 1.4, "time": 1505724853854, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.3038, 57.9653, 66.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72894486", "mag": 1.37, "time": 1505724683560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.892833, 39.342333, 17.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16905643", "mag": 1.3, "time": 1505724218199, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9106, 60.4014, 74.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16846810", "mag": 1.2, "time": 1505724188489, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4141, 63.186, 102.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16846807", "mag": 2.8, "time": 1505723956077, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.0917, 53.5664, 54.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16846803", "mag": 1.3, "time": 1505723952516, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.705, 62.5617, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16846799", "mag": 1.9, "time": 1505723888518, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5274, 59.9845, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16846358", "mag": 1.3, "time": 1505723457765, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9157, 63.5359, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72894456", "mag": 1.22, "time": 1505721765430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.157, 36.5615, 3.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16905637", "mag": 1.8, "time": 1505721695198, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.5368, 53.884, 45.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16846355", "mag": 1.3, "time": 1505721374282, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.8253, 64.8958, 12.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16846352", "mag": 1.3, "time": 1505721334563, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.8755, 64.8906, 14.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16846351", "mag": 1.4, "time": 1505720984307, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6407, 59.7861, 56.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16905633", "mag": 1.2, "time": 1505720070282, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2909, 61.9803, 75.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16905632", "mag": 1.3, "time": 1505720064076, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7225, 60.6284, 40.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37765871", "mag": 0.96, "time": 1505719770880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.790667, 33.495, 4.99 ] } }, - { "type": "Feature", "properties": { "id": "hv61912506", "mag": 1.73, "time": 1505719651510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.218167, 19.4285, 29.836 ] } }, - { "type": "Feature", "properties": { "id": "nc72894436", "mag": 1.05, "time": 1505719249700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.0175, 37.221333, 9.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72894411", "mag": 1.53, "time": 1505718670360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.827167, 38.8125, 1.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16845911", "mag": 1.3, "time": 1505718573027, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.2238, 64.9935, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72894406", "mag": 1.22, "time": 1505718182950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.180167, 36.585333, 5.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16845908", "mag": 1.1, "time": 1505717899889, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0029, 61.1046, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16845905", "mag": 2.8, "time": 1505717405495, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.0451, 53.5595, 58.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80256179", "mag": 2.84, "time": 1505717382030, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.576167, 48.519, 10.89 ] } }, - { "type": "Feature", "properties": { "id": "ci37765839", "mag": 1.11, "time": 1505716385670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6075, 32.833667, 11.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16905628", "mag": 1.2, "time": 1505716158469, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5838, 63.1688, 113.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16905627", "mag": 1.2, "time": 1505715377323, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6661, 60.0063, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16845901", "mag": 1.6, "time": 1505714845138, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4484, 61.3659, 46.1 ] } }, - { "type": "Feature", "properties": { "id": "mb80256174", "mag": 1.81, "time": 1505714255290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529333, 46.9025, 12.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16845458", "mag": 1.9, "time": 1505713543034, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4235, 61.487, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16845453", "mag": 3.2, "time": 1505712925929, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.0259, 53.5803, 50.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000apru", "mag": 5.7, "time": 1505712483490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -12.7162, -18.5262, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00605697", "mag": 1.0, "time": 1505711755570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9167, 38.4153, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16845450", "mag": 2.7, "time": 1505711653057, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.4353, 51.7384, 88.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16845451", "mag": 1.4, "time": 1505711579811, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0383, 61.8395, 66.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72894331", "mag": 2.68, "time": 1505711256010, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -125.213167, 41.036, 15.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000apre", "mag": 3.6, "time": 1505710149350, "felt": 15, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.457, 42.6072, 5.27 ] } }, - { "type": "Feature", "properties": { "id": "uu60247312", "mag": 1.94, "time": 1505709538260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.024833, 44.791, 10.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16845447", "mag": 1.6, "time": 1505709232112, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.234, 53.4469, 14.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37765759", "mag": 1.11, "time": 1505708432940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797, 33.496667, 4.85 ] } }, - { "type": "Feature", "properties": { "id": "nm60206976", "mag": 2.5, "time": 1505708310780, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.764167, 36.103833, 7.78 ] } }, - { "type": "Feature", "properties": { "id": "nc72894281", "mag": 1.78, "time": 1505708211260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.583, 36.899833, 6.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16845444", "mag": 1.6, "time": 1505708018964, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0127, 61.0975, 1.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16845440", "mag": 1.7, "time": 1505706867753, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5639, 63.255, 126.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16845438", "mag": 3.0, "time": 1505706621950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0175, 55.7675, 33.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37765751", "mag": 1.44, "time": 1505706060150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797, 33.6865, 17.69 ] } }, - { "type": "Feature", "properties": { "id": "uu60247287", "mag": 2.42, "time": 1505704855680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.429167, 42.593667, 7.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16845431", "mag": 2.4, "time": 1505704484262, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8583, 58.216, 42.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16845430", "mag": 1.1, "time": 1505704418776, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2714, 58.1899, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80256144", "mag": 1.01, "time": 1505704182270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.526333, 46.8725, 13.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16905611", "mag": 1.0, "time": 1505704113848, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9313, 61.6519, 67.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72894211", "mag": 1.84, "time": 1505703109320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.735167, 37.656, 5.91 ] } }, - { "type": "Feature", "properties": { "id": "ak16845426", "mag": 1.6, "time": 1505702885799, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6172, 61.5636, 14.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37765687", "mag": 1.59, "time": 1505702779150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.919833, 33.9785, 4.46 ] } }, - { "type": "Feature", "properties": { "id": "nn00605680", "mag": 1.4, "time": 1505702728608, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.713, 38.8287, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16844993", "mag": 1.3, "time": 1505701093513, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.5107, 62.1708, 21.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000awky", "mag": 4.1, "time": 1505700898950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3513, 15.0304, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37765671", "mag": 1.43, "time": 1505700367060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.172167, 34.033667, 5.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16905606", "mag": 1.2, "time": 1505699859087, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8715, 60.6663, 44.3 ] } }, - { "type": "Feature", "properties": { "id": "uw61330596", "mag": 1.49, "time": 1505699530930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.847333, 47.759167, 17.25 ] } }, - { "type": "Feature", "properties": { "id": "us2000apq2", "mag": 4.2, "time": 1505699407130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2351, 15.3068, 42.58 ] } }, - { "type": "Feature", "properties": { "id": "us2000awly", "mag": 4.2, "time": 1505698782750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1304, 14.9812, 38.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16905605", "mag": 1.0, "time": 1505698554304, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.5172, 62.1736, 24.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72894176", "mag": 2.03, "time": 1505698095820, "felt": 171, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.295333, 37.912, 2.97 ] } }, - { "type": "Feature", "properties": { "id": "us2000appq", "mag": 4.5, "time": 1505697812820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 159.3367, 53.381, 85.64 ] } }, - { "type": "Feature", "properties": { "id": "ci37765639", "mag": 1.01, "time": 1505697641450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7125, 33.986833, 15.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000appj", "mag": 4.2, "time": 1505697430690, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.5275, -17.5255, 167.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16844988", "mag": 1.0, "time": 1505697245375, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1193, 62.3401, 0.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37765631", "mag": 1.87, "time": 1505697080810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.650333, 36.996833, -0.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16905602", "mag": 1.4, "time": 1505696884087, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1499, 61.9617, 114.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16844556", "mag": 1.5, "time": 1505696691069, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.8744, 60.2484, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000azbk", "mag": 4.0, "time": 1505696468620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5206, 14.824, 18.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16844553", "mag": 1.3, "time": 1505696463448, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.4081, 64.6136, 20.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72894161", "mag": 1.21, "time": 1505695849630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.818833, 37.41, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "us2000awku", "mag": 4.1, "time": 1505694807240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 145.306, 19.0286, 202.23 ] } }, - { "type": "Feature", "properties": { "id": "us2000app7", "mag": 4.4, "time": 1505694748030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 119.3564, -8.1346, 41.72 ] } }, - { "type": "Feature", "properties": { "id": "nn00605668", "mag": 1.2, "time": 1505694738920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.3624, 37.0509, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16844544", "mag": 2.0, "time": 1505694295643, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7281, 60.3555, 46.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16844543", "mag": 1.8, "time": 1505694278381, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7896, 59.8626, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72894151", "mag": 1.42, "time": 1505693902060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.912833, 37.621667, 2.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16844541", "mag": 1.3, "time": 1505693551555, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.791, 61.7452, 48.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80256109", "mag": 1.41, "time": 1505690846740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.522, 46.869667, 12.91 ] } }, - { "type": "Feature", "properties": { "id": "ci37765583", "mag": 1.3, "time": 1505690496480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.673167, 35.042833, -0.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16873959", "mag": 1.1, "time": 1505690288149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4144, 67.2216, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16844094", "mag": 1.9, "time": 1505690276630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.3972, 53.7854, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000apnm", "mag": 4.9, "time": 1505689940400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 149.5672, -4.6379, 588.19 ] } }, - { "type": "Feature", "properties": { "id": "mb80256099", "mag": 2.34, "time": 1505689339390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5195, 46.899167, 12.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16844091", "mag": 1.5, "time": 1505688162418, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.5592, 60.9727, 72.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80256084", "mag": 1.49, "time": 1505688150190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.8165, 46.9305, 13.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72894131", "mag": 0.95, "time": 1505687822870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.026667, 36.453333, 2.98 ] } }, - { "type": "Feature", "properties": { "id": "nc72894126", "mag": 1.46, "time": 1505687740270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.618333, 36.970833, 5.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16844087", "mag": 1.3, "time": 1505686236328, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3499, 60.4807, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16844084", "mag": 1.7, "time": 1505686047172, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7406, 64.6981, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16844079", "mag": 2.1, "time": 1505685489298, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3304, 60.4706, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61330461", "mag": 2.46, "time": 1505684983130, "felt": 15, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.725333, 47.439333, 22.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16873952", "mag": 2.2, "time": 1505684866449, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.006, 52.386, 9.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72894116", "mag": 1.14, "time": 1505684450170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.571833, 37.947167, 8.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16873951", "mag": 1.3, "time": 1505684432066, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.6357, 60.5724, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16843656", "mag": 1.6, "time": 1505683789980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1167, 59.7703, 41.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16843652", "mag": 1.6, "time": 1505683291823, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4894, 61.5289, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72894101", "mag": 1.41, "time": 1505682978360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834, 37.496, 1.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16843651", "mag": 2.6, "time": 1505682712646, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.4711, 51.686, 75.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72894096", "mag": 0.99, "time": 1505682599530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.816167, 37.455833, 1.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16843650", "mag": 1.2, "time": 1505682068077, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5842, 61.7746, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72894086", "mag": 1.35, "time": 1505681812610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.973667, 36.395167, 4.69 ] } }, - { "type": "Feature", "properties": { "id": "nc72894081", "mag": 1.91, "time": 1505681477080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.809167, 38.797667, 3.52 ] } }, - { "type": "Feature", "properties": { "id": "nc72894076", "mag": 1.47, "time": 1505681470510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810167, 38.799167, 3.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16873946", "mag": 1.4, "time": 1505680958230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1812, 62.2538, 76.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000apkx", "mag": 4.9, "time": 1505680147260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.9501, -18.9829, 129.26 ] } }, - { "type": "Feature", "properties": { "id": "ak16843225", "mag": 1.3, "time": 1505680062920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5209, 60.1956, 82.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37765519", "mag": 1.42, "time": 1505680024130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.293, 35.488167, 2.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16873944", "mag": 1.3, "time": 1505679233862, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2975, 62.163, 79.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16873943", "mag": 1.8, "time": 1505678992249, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.8219, 51.8825, 86.4 ] } }, - { "type": "Feature", "properties": { "id": "uw61330431", "mag": 1.0, "time": 1505678333060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.5365, 47.603667, 19.51 ] } }, - { "type": "Feature", "properties": { "id": "ci37765487", "mag": 1.12, "time": 1505676865320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.608667, 32.830167, 11.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000apke", "mag": 4.1, "time": 1505676865110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -87.5905, 12.0757, 53.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000apkd", "mag": 3.9, "time": 1505676791370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -70.2379, -31.7388, 121.68 ] } }, - { "type": "Feature", "properties": { "id": "ci37765479", "mag": 1.54, "time": 1505676576290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.605333, 32.8245, 11.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000apkc", "mag": 2.5, "time": 1505676527950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4244, 42.5958, 5.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00605653", "mag": 1.3, "time": 1505676457309, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.12, 38.2855, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72894061", "mag": 1.21, "time": 1505675373140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.059667, 36.477833, 6.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000apk4", "mag": 3.1, "time": 1505674381070, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.9818, 35.7788, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16842798", "mag": 1.4, "time": 1505672288384, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7121, 63.5719, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16842797", "mag": 2.7, "time": 1505669173773, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4976, 51.6544, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80256039", "mag": 1.09, "time": 1505668834370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.6775, 46.891833, 15.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16873938", "mag": 1.2, "time": 1505668625975, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5592, 62.857, 82.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37765423", "mag": 1.4, "time": 1505668324590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.831333, 32.775833, 2.46 ] } }, - { "type": "Feature", "properties": { "id": "ak16842795", "mag": 1.1, "time": 1505668022720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4003, 64.8531, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72894026", "mag": 1.3, "time": 1505667983860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.734667, 38.788167, 1.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16873936", "mag": 1.6, "time": 1505667107903, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.0584, 57.21, 33.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37765415", "mag": 1.52, "time": 1505666643390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.833167, 32.781833, 2.39 ] } }, - { "type": "Feature", "properties": { "id": "ci37765407", "mag": 0.98, "time": 1505666358680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.273667, 33.981333, 6.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5v", "mag": 4.3, "time": 1505665820280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.2591, 0.908, 157.83 ] } }, - { "type": "Feature", "properties": { "id": "pr2017260000", "mag": 2.31, "time": 1505665148110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.9698, 19.0821, 23.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apj3", "mag": 2.6, "time": 1505664664460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4059, 42.5497, 11.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000apj0", "mag": 2.7, "time": 1505663998840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4107, 42.5429, 8.67 ] } }, - { "type": "Feature", "properties": { "id": "uw61330391", "mag": 1.11, "time": 1505663462920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.04, 46.880167, 6.02 ] } }, - { "type": "Feature", "properties": { "id": "uu60247022", "mag": 1.06, "time": 1505663122580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.025833, 44.790333, 9.98 ] } }, - { "type": "Feature", "properties": { "id": "nn00606540", "mag": 1.3, "time": 1505663040033, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.0921, 41.885, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16873932", "mag": 1.9, "time": 1505662296127, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.8489, 51.9624, 111.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5n", "mag": 4.5, "time": 1505662282900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.7612, 44.1688, 33.57 ] } }, - { "type": "Feature", "properties": { "id": "mb80255969", "mag": 2.04, "time": 1505662108810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.516, 46.881333, 14.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5p", "mag": 4.5, "time": 1505662091100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 149.0118, -6.3464, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16873931", "mag": 1.4, "time": 1505662034661, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.362, 63.1318, 2.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000at68", "mag": 4.3, "time": 1505661360280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 148.9733, -6.4551, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16841969", "mag": 1.1, "time": 1505661169528, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6029, 66.5697, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80255949", "mag": 1.49, "time": 1505659897070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.519, 46.855, 14.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000apij", "mag": 5.4, "time": 1505659803240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.6428, -16.6386, 30.39 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5x", "mag": 5.0, "time": 1505659691430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 92.0846, 12.809, 27.48 ] } }, - { "type": "Feature", "properties": { "id": "ci37765367", "mag": 1.03, "time": 1505659458990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.19, 33.2585, 9.58 ] } }, - { "type": "Feature", "properties": { "id": "nc72893976", "mag": 1.19, "time": 1505659223910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.825, 37.453, 1.57 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5m", "mag": 4.9, "time": 1505658989080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 149.1591, -6.3567, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apie", "mag": 4.5, "time": 1505658574670, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 24.0015, 39.2721, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16841552", "mag": 1.3, "time": 1505658549717, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9309, 62.6606, 59.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000apif", "mag": 5.7, "time": 1505658367620, "felt": 0, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 148.8708, -6.3113, 18.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5l", "mag": 4.3, "time": 1505658365190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -17.9505, 64.5019, 9.15 ] } }, - { "type": "Feature", "properties": { "id": "us2000aza1", "mag": 4.2, "time": 1505658191320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5959, 15.2169, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000at6b", "mag": 4.6, "time": 1505658184020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -17.6137, 64.4904, 8.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16841550", "mag": 1.4, "time": 1505657865000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8499, 59.8804, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37765335", "mag": 1.11, "time": 1505657294840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.367, 33.357167, 9.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16841549", "mag": 1.4, "time": 1505657219284, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.0876, 69.5184, 4.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72893941", "mag": 1.51, "time": 1505657160730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.818333, 38.818167, 2.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72893946", "mag": 1.02, "time": 1505657152440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.817001, 38.8185, 2.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16873926", "mag": 1.7, "time": 1505656923604, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8082, 60.1773, 106.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16873925", "mag": 1.9, "time": 1505656654419, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6293, 59.5728, 120.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37765327", "mag": 2.88, "time": 1505656629430, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.882333, 31.6215, 9.25 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5k", "mag": 4.1, "time": 1505656609750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 126.5305, 1.7746, 37.54 ] } }, - { "type": "Feature", "properties": { "id": "nc72893936", "mag": 0.98, "time": 1505656502420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.125667, 36.566167, 8.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5i", "mag": 4.4, "time": 1505655648380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.9394, -17.3298, 553.92 ] } }, - { "type": "Feature", "properties": { "id": "se60044613", "mag": 2.03, "time": 1505655579030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -85.053333, 35.561333, 15.47 ] } }, - { "type": "Feature", "properties": { "id": "ci37765311", "mag": 1.07, "time": 1505655296260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.090333, 33.473833, 14.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16841547", "mag": 1.9, "time": 1505655282227, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7794, 63.9496, 114.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5r", "mag": 4.9, "time": 1505655030310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -11.7611, -21.01, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000as44", "mag": 2.6, "time": 1505654924870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.7236, 51.4933, 34.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16841538", "mag": 2.3, "time": 1505654819006, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.6722, 62.9044, 66.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37765303", "mag": 0.97, "time": 1505654141860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.922167, 33.9755, 4.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000aphx", "mag": 4.0, "time": 1505653928680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4533, 15.5042, 7.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16841537", "mag": 1.0, "time": 1505653531820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3466, 61.07, 12.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72893916", "mag": 0.99, "time": 1505653446980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.835, 37.479333, 0.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16841536", "mag": 1.4, "time": 1505653266021, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.6794, 67.9633, 14.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16841136", "mag": 1.5, "time": 1505652267061, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.9646, 53.8971, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00605626", "mag": 1.0, "time": 1505652081143, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2815, 36.537, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16841133", "mag": 1.8, "time": 1505651930739, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7652, 62.1126, 23.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16841130", "mag": 2.2, "time": 1505651632523, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.454, 59.2923, 97.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37765271", "mag": 1.39, "time": 1505650827610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.021167, 33.921, 2.44 ] } }, - { "type": "Feature", "properties": { "id": "hv61911226", "mag": 1.91, "time": 1505650411260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.478668, 19.212334, 38.03 ] } }, - { "type": "Feature", "properties": { "id": "ak16841124", "mag": 2.1, "time": 1505649687852, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.7865, 65.3345, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72893881", "mag": 1.23, "time": 1505648682040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.543833, 37.339667, 10.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16840722", "mag": 3.2, "time": 1505648575230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.7144, 57.2975, 42.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5g", "mag": 4.3, "time": 1505647937400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 166.6171, -11.7459, 251.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16873911", "mag": 2.6, "time": 1505647578270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.7891, 66.3882, 37.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16873910", "mag": 2.0, "time": 1505647575716, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.55, 57.7487, 89.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16873909", "mag": 2.8, "time": 1505647412246, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.7412, 66.3682, 34.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16840719", "mag": 2.1, "time": 1505647228188, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.4607, 60.5815, 14.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37765239", "mag": 1.03, "time": 1505646849520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.920667, 33.972167, 5.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000aph6", "mag": 4.2, "time": 1505646653440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.3399, -21.9058, 192.78 ] } }, - { "type": "Feature", "properties": { "id": "us2000aph5", "mag": 4.7, "time": 1505646260660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 127.0437, 3.6252, 68.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16873907", "mag": 2.2, "time": 1505645846935, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4823, 51.6608, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16873906", "mag": 1.2, "time": 1505645773090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.3827, 53.8702, 12.1 ] } }, - { "type": "Feature", "properties": { "id": "uw61330311", "mag": 1.94, "time": 1505644617240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.041167, 46.879167, 6.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16840715", "mag": 1.5, "time": 1505644280463, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.605, 61.6723, 29.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37765223", "mag": 1.02, "time": 1505644185880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.465667, 34.376833, 9.74 ] } }, - { "type": "Feature", "properties": { "id": "ci37765215", "mag": 1.28, "time": 1505644151980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.358167, 33.415667, 12.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5e", "mag": 4.5, "time": 1505644031790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 92.0628, 12.7773, 33.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16873903", "mag": 1.4, "time": 1505643609236, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5971, 61.5891, 59.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16840713", "mag": 1.9, "time": 1505643118540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.0384, 63.1445, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61911016", "mag": 2.48, "time": 1505641665420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.593167, 19.476, 2.731 ] } }, - { "type": "Feature", "properties": { "id": "ak16840350", "mag": 1.1, "time": 1505641100972, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8915, 64.848, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5c", "mag": 4.7, "time": 1505640684330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -26.4288, -59.7896, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16840314", "mag": 2.8, "time": 1505640505656, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.6831, 60.3761, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apgy", "mag": 4.9, "time": 1505640302130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.2485, 37.3415, 54.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000at65", "mag": 4.6, "time": 1505640090990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -13.5314, -7.0219, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000as3y", "mag": 2.7, "time": 1505639953270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.1147, 51.5611, 45.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000at5a", "mag": 4.8, "time": 1505639681290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -13.1689, -7.0877, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16840312", "mag": 2.1, "time": 1505638931288, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0719, 60.2719, 130.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16840302", "mag": 2.8, "time": 1505638686114, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2164, 60.4788, 97.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60246942", "mag": 1.01, "time": 1505637537950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.025833, 44.786167, 7.95 ] } }, - { "type": "Feature", "properties": { "id": "nc72893791", "mag": 1.48, "time": 1505637347930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.879167, 37.109167, 2.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16839942", "mag": 1.9, "time": 1505637129909, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8564, 60.3231, 63.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72893786", "mag": 1.14, "time": 1505636971290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.737335, 38.786167, 0.85 ] } }, - { "type": "Feature", "properties": { "id": "nc72893781", "mag": 2.61, "time": 1505636516400, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.117, 36.594333, 6.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000apg4", "mag": 4.6, "time": 1505636241220, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -82.1696, 7.5057, 23.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16839932", "mag": 1.1, "time": 1505636239228, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8157, 63.2668, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000apg0", "mag": 4.1, "time": 1505634585840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.7666, -23.8893, 236.18 ] } }, - { "type": "Feature", "properties": { "id": "ci37765143", "mag": 2.2, "time": 1505634363500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.373667, 32.9405, 7.78 ] } }, - { "type": "Feature", "properties": { "id": "nn00605603", "mag": 1.8, "time": 1505634209242, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8894, 38.3778, 11.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000apfv", "mag": 2.4, "time": 1505634047190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4463, 42.5857, 4.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16839551", "mag": 1.9, "time": 1505633391424, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7184, 59.603, 74.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72893741", "mag": 1.84, "time": 1505633100770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834167, 37.493833, 1.09 ] } }, - { "type": "Feature", "properties": { "id": "us2000apft", "mag": 2.6, "time": 1505632181750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4391, 42.6077, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37765127", "mag": 0.98, "time": 1505632149420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.605167, 32.828333, 10.94 ] } }, - { "type": "Feature", "properties": { "id": "nc72893701", "mag": 1.35, "time": 1505631284810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.952833, 37.588167, 1.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000apfk", "mag": 4.3, "time": 1505630160580, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.6223, -35.7292, 85.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16839518", "mag": 2.0, "time": 1505629372703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7555, 60.0405, 18.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72893646", "mag": 1.36, "time": 1505628925460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.736667, 38.757, 1.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16873889", "mag": 2.9, "time": 1505628904808, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.5935, 53.8081, 78.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000apfd", "mag": 2.9, "time": 1505628801990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4531, 42.5908, 5.17 ] } }, - { "type": "Feature", "properties": { "id": "uu60246882", "mag": 1.05, "time": 1505628704550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.836, 44.307333, 7.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16873888", "mag": 1.1, "time": 1505628661963, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5848, 64.1727, 10.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000apfa", "mag": 4.9, "time": 1505628478300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9805, 16.0409, 45.23 ] } }, - { "type": "Feature", "properties": { "id": "uu60246872", "mag": 1.16, "time": 1505628425450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.817667, 44.294, 7.61 ] } }, - { "type": "Feature", "properties": { "id": "uu60246867", "mag": 1.13, "time": 1505628332210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.828167, 44.305167, 7.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000apf6", "mag": 4.5, "time": 1505628213110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0121, 16.1058, 52.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16839149", "mag": 1.6, "time": 1505628012027, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2, 62.1778, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000apf5", "mag": 4.3, "time": 1505627809940, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -88.5423, 14.4117, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37765039", "mag": 1.19, "time": 1505627007650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0955, 36.761167, 1.69 ] } }, - { "type": "Feature", "properties": { "id": "uu60246847", "mag": 3.15, "time": 1505626724050, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.841667, 44.302333, 7.53 ] } }, - { "type": "Feature", "properties": { "id": "uu60246837", "mag": 2.04, "time": 1505626455220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.822333, 44.293667, 7.53 ] } }, - { "type": "Feature", "properties": { "id": "ci37765023", "mag": 1.52, "time": 1505626163830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797833, 33.501167, 4.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000apeu", "mag": 4.4, "time": 1505625898530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -86.4078, 10.7018, 35.32 ] } }, - { "type": "Feature", "properties": { "id": "nc72893621", "mag": 1.12, "time": 1505625800310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810165, 38.820499, 1.92 ] } }, - { "type": "Feature", "properties": { "id": "ci37764991", "mag": 1.62, "time": 1505625396010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.928167, 35.9015, 5.28 ] } }, - { "type": "Feature", "properties": { "id": "ci37764983", "mag": 1.96, "time": 1505624889150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.181, 33.187833, 5.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16838778", "mag": 1.4, "time": 1505624855438, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4712, 59.8595, 42.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72893601", "mag": 1.37, "time": 1505624608110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.8885, 37.105, 1.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16838775", "mag": 3.2, "time": 1505624284096, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.1812, 54.0118, 9.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000apeh", "mag": 4.3, "time": 1505624194760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -105.7123, 17.7366, 31.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16838774", "mag": 1.8, "time": 1505623546848, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7399, 59.8813, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16838756", "mag": 1.2, "time": 1505622986310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8141, 63.2696, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16838752", "mag": 1.7, "time": 1505622626171, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.3598, 64.3838, 13.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37764967", "mag": 0.95, "time": 1505622039760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1755, 33.965, 15.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16873881", "mag": 2.7, "time": 1505621586321, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.8861, 52.4075, 59.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16873880", "mag": 1.0, "time": 1505621507758, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3176, 61.144, 19.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16838400", "mag": 1.9, "time": 1505621153075, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1301, 60.8625, 64.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16838393", "mag": 2.5, "time": 1505620853506, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8794, 60.7582, 60.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16838388", "mag": 2.8, "time": 1505620146422, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7851, 59.8817, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72893571", "mag": 1.03, "time": 1505619694280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.821167, 38.807999, 1.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16838386", "mag": 2.2, "time": 1505619628700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.9053, 67.6564, 13.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72893561", "mag": 1.07, "time": 1505619296320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.822502, 38.808998, 1.93 ] } }, - { "type": "Feature", "properties": { "id": "ci37764903", "mag": 1.12, "time": 1505618790010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.147333, 34.5405, 9.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16838042", "mag": 1.6, "time": 1505617352105, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5056, 61.4142, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16838020", "mag": 1.2, "time": 1505616366369, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6618, 60.5653, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16838003", "mag": 1.0, "time": 1505615565391, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2146, 64.7331, 17.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37764863", "mag": 1.1, "time": 1505613255300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.709667, 33.653333, 15.82 ] } }, - { "type": "Feature", "properties": { "id": "ci37764847", "mag": 1.21, "time": 1505612591880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.687167, 33.6285, 12.15 ] } }, - { "type": "Feature", "properties": { "id": "ci37764839", "mag": 1.47, "time": 1505612490180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.927167, 33.971833, 17.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16837647", "mag": 1.8, "time": 1505611875649, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.771, 59.8672, 1.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16873869", "mag": 1.7, "time": 1505609079690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.474, 51.671, 16.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61910741", "mag": 2.42, "time": 1505608202930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.177667, 19.442, 41.639 ] } }, - { "type": "Feature", "properties": { "id": "ak16836972", "mag": 2.6, "time": 1505606832814, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3048, 51.6525, 97.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37764815", "mag": 0.95, "time": 1505606822450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.746333, 33.887, 16.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16836965", "mag": 2.3, "time": 1505606388180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7659, 59.8663, 5.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16836961", "mag": 2.4, "time": 1505606178328, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7941, 59.8509, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16836957", "mag": 1.8, "time": 1505606050093, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.89, 59.8885, 15.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16860570", "mag": 1.4, "time": 1505605718038, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8821, 59.8989, 17.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16860569", "mag": 1.6, "time": 1505605674005, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8902, 59.9059, 15.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16860568", "mag": 1.9, "time": 1505605456859, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8916, 59.9103, 15.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16860567", "mag": 2.3, "time": 1505605410411, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.9, 59.889, 12.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61330071", "mag": 2.57, "time": 1505605382130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.863333, 45.526833, 36.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000apcc", "mag": 5.1, "time": 1505605083280, "felt": 218, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ -136.7498, 59.9037, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000apbv", "mag": 3.9, "time": 1505604419110, "felt": 198, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.6989, 35.8586, 2.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16836912", "mag": 2.9, "time": 1505604383308, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.6017, 51.905, 128.2 ] } }, - { "type": "Feature", "properties": { "id": "uw61329986", "mag": 1.23, "time": 1505604005810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.754167, 46.857333, 1.43 ] } }, - { "type": "Feature", "properties": { "id": "us2000apbu", "mag": 4.7, "time": 1505603696310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -14.0114, -17.7554, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16860564", "mag": 1.6, "time": 1505603516964, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1524, 61.3778, 62.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000apbm", "mag": 4.5, "time": 1505603442050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1822, 15.4761, 67.03 ] } }, - { "type": "Feature", "properties": { "id": "nc72893446", "mag": 2.29, "time": 1505603337140, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.616833, 36.971, 4.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16860563", "mag": 1.5, "time": 1505603223363, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.5667, 57.9908, 15.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16860562", "mag": 1.6, "time": 1505602163820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0011, 60.0807, 110.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16836589", "mag": 1.7, "time": 1505601390855, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7769, 62.4045, 59.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72893436", "mag": 1.34, "time": 1505600967450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834167, 37.493, 0.66 ] } }, - { "type": "Feature", "properties": { "id": "uw61329976", "mag": 1.03, "time": 1505600388700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.491167, 46.067333, 18.24 ] } }, - { "type": "Feature", "properties": { "id": "ci37764791", "mag": 1.29, "time": 1505599746390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.431333, 33.040167, 10.42 ] } }, - { "type": "Feature", "properties": { "id": "nc72893421", "mag": 1.75, "time": 1505599309380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.164333, 35.816, 11.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000apln", "mag": 3.8, "time": 1505599105290, "felt": 27, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 139.4711, 35.839, 65.43 ] } }, - { "type": "Feature", "properties": { "id": "nc72893416", "mag": 2.39, "time": 1505598962550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.606167, 40.391, 23.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16836269", "mag": 2.6, "time": 1505598312964, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.1504, 57.6803, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000apay", "mag": 4.1, "time": 1505597546760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4078, 15.1552, 27.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16860558", "mag": 1.5, "time": 1505597186774, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8073, 63.0653, 123.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72893411", "mag": 1.07, "time": 1505596690170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793999, 38.805332, 0.54 ] } }, - { "type": "Feature", "properties": { "id": "ci37764743", "mag": 1.25, "time": 1505596431740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.179, 33.192167, 7.19 ] } }, - { "type": "Feature", "properties": { "id": "us2000apa3", "mag": 5.2, "time": 1505595657570, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 159.8208, 52.9335, 55.59 ] } }, - { "type": "Feature", "properties": { "id": "nc72893406", "mag": 1.68, "time": 1505595567120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.832833, 37.5715, 2.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16835937", "mag": 1.2, "time": 1505594309155, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7782, 63.4422, 11.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16835935", "mag": 1.3, "time": 1505593468147, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0825, 63.2217, 0.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37764719", "mag": 1.01, "time": 1505593021350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.509667, 36.069667, 3.41 ] } }, - { "type": "Feature", "properties": { "id": "ci37764711", "mag": 1.86, "time": 1505592937400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.217, 32.373167, 19.88 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap9e", "mag": 4.2, "time": 1505592897770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.6768, -23.7075, 201.03 ] } }, - { "type": "Feature", "properties": { "id": "nn00605530", "mag": 1.0, "time": 1505591425440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.9, 39.4039, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72893386", "mag": 1.01, "time": 1505591244480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.504167, 37.923833, 7.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap8u", "mag": 5.1, "time": 1505590529510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.552, 15.3031, 17.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16835905", "mag": 2.1, "time": 1505590055161, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0556, 59.9293, 124.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60246652", "mag": 1.36, "time": 1505589841530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.020833, 44.802, 10.59 ] } }, - { "type": "Feature", "properties": { "id": "ci37764687", "mag": 1.0, "time": 1505588714630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.973333, 33.989, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16835606", "mag": 2.1, "time": 1505588651481, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.7021, 67.8201, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37764679", "mag": 1.11, "time": 1505588640970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.2045, 34.993167, -0.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap88", "mag": 4.3, "time": 1505588283560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7095, 15.6575, 33.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16860552", "mag": 2.1, "time": 1505587762267, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2692, 60.1941, 137.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16860551", "mag": 1.2, "time": 1505586754071, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2984, 62.5136, 52.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37764631", "mag": 1.09, "time": 1505586635400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.791667, 33.507667, 4.61 ] } }, - { "type": "Feature", "properties": { "id": "ci37764623", "mag": 1.32, "time": 1505586305110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.975667, 33.992333, 5.71 ] } }, - { "type": "Feature", "properties": { "id": "nc72893361", "mag": 1.14, "time": 1505585751450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8095, 38.823167, 1.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16835287", "mag": 2.1, "time": 1505584069266, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.8156, 57.4983, 73.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap76", "mag": 4.0, "time": 1505583967320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.5572, 15.6925, 24.12 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap74", "mag": 4.7, "time": 1505583533380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.7408, 24.878, 57.27 ] } }, - { "type": "Feature", "properties": { "id": "ak16860549", "mag": 1.4, "time": 1505583090155, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0305, 61.8843, 68.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37764599", "mag": 1.28, "time": 1505582839910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.878167, 35.360667, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap78", "mag": 4.9, "time": 1505582156450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 161.507, -10.1846, 49.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap6d", "mag": 3.0, "time": 1505582077650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4285, 42.5847, 7.15 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap6b", "mag": 4.6, "time": 1505581929340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.1918, -37.2167, 6.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap64", "mag": 4.5, "time": 1505581636660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0682, 16.1115, 35.63 ] } }, - { "type": "Feature", "properties": { "id": "nc72893331", "mag": 1.49, "time": 1505581158890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.337833, 37.820167, -0.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16860548", "mag": 2.1, "time": 1505580632689, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.7764, 56.9377, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72893326", "mag": 1.43, "time": 1505580258840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.711, 38.750833, 1.46 ] } }, - { "type": "Feature", "properties": { "id": "nc72893316", "mag": 1.6, "time": 1505579747930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.717167, 38.752667, 1.24 ] } }, - { "type": "Feature", "properties": { "id": "nc72893306", "mag": 1.39, "time": 1505579471580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.0075, 37.570667, 2.07 ] } }, - { "type": "Feature", "properties": { "id": "hv61910186", "mag": 1.68, "time": 1505579377040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.611, 19.430167, 2.332 ] } }, - { "type": "Feature", "properties": { "id": "ci37764559", "mag": 1.5, "time": 1505579023330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.801833, 34.514833, 12.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16834974", "mag": 1.6, "time": 1505578926267, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7481, 62.8102, 9.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16834965", "mag": 2.6, "time": 1505578647951, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7871, 61.8971, 60.5 ] } }, - { "type": "Feature", "properties": { "id": "mb80255754", "mag": 1.22, "time": 1505578208020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.489667, 44.705667, 13.34 ] } }, - { "type": "Feature", "properties": { "id": "nc72893286", "mag": 1.35, "time": 1505577465010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.047, 36.467, 7.96 ] } }, - { "type": "Feature", "properties": { "id": "nn00605503", "mag": 1.0, "time": 1505577266743, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.9133, 37.0358, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16834664", "mag": 2.4, "time": 1505577104470, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.431, 64.4709, 16.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap48", "mag": 2.5, "time": 1505575595120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4328, 42.5757, 6.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72893281", "mag": 1.04, "time": 1505575420020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.895333, 37.565, -1.35 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap45", "mag": 2.6, "time": 1505574778570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4287, 42.5771, 8.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16834651", "mag": 1.1, "time": 1505574443625, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8572, 64.7619, 12.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72893271", "mag": 1.41, "time": 1505574428990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.946833, 37.638167, 2.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16860541", "mag": 2.0, "time": 1505574078688, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3496, 59.7545, 127.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37764535", "mag": 1.64, "time": 1505573652280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.1775, 33.193, 4.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16834350", "mag": 1.4, "time": 1505572849209, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9009, 64.7582, 0.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap3f", "mag": 2.7, "time": 1505571851260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.424, 42.5936, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16834332", "mag": 2.5, "time": 1505571656570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9804, 59.5744, 87.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap3b", "mag": 5.4, "time": 1505571537070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9072, 16.226, 27.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16860538", "mag": 1.3, "time": 1505570434361, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2424, 62.5449, 91.4 ] } }, - { "type": "Feature", "properties": { "id": "uw61329766", "mag": 1.85, "time": 1505569264490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.0445, 46.876833, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16834028", "mag": 1.9, "time": 1505568376976, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1823, 62.4985, 43.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72893206", "mag": 1.29, "time": 1505567825160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.931167, 37.587167, 0.64 ] } }, - { "type": "Feature", "properties": { "id": "ci37764455", "mag": 2.74, "time": 1505566718480, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.162, 34.381, 19.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16860534", "mag": 1.8, "time": 1505566502565, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1816, 59.9775, 117.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72893196", "mag": 1.67, "time": 1505566233320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7105, 38.752667, 1.06 ] } }, - { "type": "Feature", "properties": { "id": "pr2017259001", "mag": 2.53, "time": 1505566066240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.1556, 17.5196, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00605483", "mag": 1.9, "time": 1505565978805, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.5538, 38.7481, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37764447", "mag": 1.73, "time": 1505565806200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.609667, 33.184833, 2.89 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235458", "mag": 2.43, "time": 1505565729090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.570167, 37.344833, 5.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap2h", "mag": 5.1, "time": 1505565414430, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 154.9693, -6.4027, 84.07 ] } }, - { "type": "Feature", "properties": { "id": "nc72893191", "mag": 1.22, "time": 1505565031030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.840833, 37.499667, 1.31 ] } }, - { "type": "Feature", "properties": { "id": "nc72893176", "mag": 1.02, "time": 1505564232460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.827667, 38.837502, 1.89 ] } }, - { "type": "Feature", "properties": { "id": "nc72893171", "mag": 1.16, "time": 1505563869000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.124, 36.5485, 6.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72893166", "mag": 1.98, "time": 1505563826250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.96, 36.383333, 5.84 ] } }, - { "type": "Feature", "properties": { "id": "ak16860533", "mag": 2.3, "time": 1505563620965, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.2643, 51.2858, 23.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16833723", "mag": 1.8, "time": 1505563033811, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0307, 59.9768, 107.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16833722", "mag": 1.0, "time": 1505562940424, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5632, 63.5373, 8.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap1y", "mag": 2.6, "time": 1505562746670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -87.3487, 38.1953, 7.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16833715", "mag": 1.4, "time": 1505562545553, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0358, 63.0385, 119.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap1n", "mag": 4.9, "time": 1505561075850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.2793, -17.0456, 538.12 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap1h", "mag": 4.9, "time": 1505561004690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0304, 14.9269, 46.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72893161", "mag": 1.71, "time": 1505560933840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.120167, 35.9645, 23.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000at4t", "mag": 4.2, "time": 1505560744440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 128.8254, -7.4355, 134.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16833426", "mag": 1.4, "time": 1505560633966, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.4578, 61.5042, 28.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap1d", "mag": 2.4, "time": 1505560442800, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.8006, 35.9908, 5.836 ] } }, - { "type": "Feature", "properties": { "id": "nc72893146", "mag": 1.21, "time": 1505560059470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.829167, 37.4595, 2.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap17", "mag": 4.2, "time": 1505558287960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.162, 15.1165, 61.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80255689", "mag": 1.86, "time": 1505557588190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1525, 48.101667, 7.53 ] } }, - { "type": "Feature", "properties": { "id": "nc72893131", "mag": 1.55, "time": 1505557460780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.826, 38.836333, 2.51 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap0t", "mag": 4.5, "time": 1505557108730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2297, 14.9414, 30.52 ] } }, - { "type": "Feature", "properties": { "id": "uw61329606", "mag": 1.52, "time": 1505556991880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.998833, 47.691333, 5.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap0r", "mag": 5.4, "time": 1505556693470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 83.5155, 42.2053, 16.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72893116", "mag": 1.84, "time": 1505556472360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.136, 35.962667, 25.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000at4a", "mag": 4.0, "time": 1505555867920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 122.1193, -10.8831, 38.93 ] } }, - { "type": "Feature", "properties": { "id": "nc72893106", "mag": 2.2, "time": 1505555321940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.918167, 38.061667, 8.48 ] } }, - { "type": "Feature", "properties": { "id": "ci37764391", "mag": 3.37, "time": 1505555150630, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.616167, 33.169667, 8.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16833112", "mag": 1.5, "time": 1505554903991, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7489, 59.845, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16832833", "mag": 1.9, "time": 1505554129377, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.7145, 60.2604, 9.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16832826", "mag": 1.1, "time": 1505553506665, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3921, 63.5231, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16832818", "mag": 2.0, "time": 1505552113865, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4792, 63.0863, 5.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16860523", "mag": 1.1, "time": 1505550954800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5868, 63.8926, 99.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ap0a", "mag": 4.0, "time": 1505550836160, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 27.685, 37.0689, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37764359", "mag": 1.53, "time": 1505550124480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9555, 33.145833, 9.49 ] } }, - { "type": "Feature", "properties": { "id": "ci37764335", "mag": 1.72, "time": 1505549627950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.053167, 36.123167, 1.12 ] } }, - { "type": "Feature", "properties": { "id": "ci37764327", "mag": 1.0, "time": 1505549298090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.920833, 33.975167, 6.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16832531", "mag": 1.9, "time": 1505548305568, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9221, 64.7554, 18.3 ] } }, - { "type": "Feature", "properties": { "id": "pr2017259000", "mag": 3.64, "time": 1505548231440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -64.0526, 18.4531, 34.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00605447", "mag": 1.3, "time": 1505548133652, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.0331, 40.436, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16860520", "mag": 1.3, "time": 1505547550857, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9184, 62.2903, 70.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37764303", "mag": 0.95, "time": 1505546199690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.922833, 33.978, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16832252", "mag": 3.1, "time": 1505545940675, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.5336, 51.3744, 18.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72893051", "mag": 1.0, "time": 1505544999790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8995, 37.518833, 0.05 ] } }, - { "type": "Feature", "properties": { "id": "hv61909871", "mag": 3.66, "time": 1505544037320, "felt": 734, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.487667, 21.642167, 10.046 ] } }, - { "type": "Feature", "properties": { "id": "ak16832238", "mag": 2.6, "time": 1505543981141, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.591, 58.4419, 63.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16860517", "mag": 1.9, "time": 1505543962894, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4461, 59.504, 85.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37764247", "mag": 0.97, "time": 1505543854670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.918833, 33.976667, 6.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16832235", "mag": 1.7, "time": 1505543819625, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8364, 61.486, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000anze", "mag": 4.4, "time": 1505543417100, "felt": 29, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -90.4791, 13.6017, 52.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72893026", "mag": 0.96, "time": 1505543269370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8325, 37.540333, 4.97 ] } }, - { "type": "Feature", "properties": { "id": "nc72893021", "mag": 1.36, "time": 1505543240340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.181833, 37.775667, 14.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16831965", "mag": 1.2, "time": 1505542824882, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1125, 62.0856, 43.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72893011", "mag": 1.57, "time": 1505541411490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8025, 38.706667, 3.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16831959", "mag": 1.0, "time": 1505541221769, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.4333, 66.2529, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16831957", "mag": 1.8, "time": 1505541032598, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4004, 57.5066, 48.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000anz4", "mag": 4.4, "time": 1505540612950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -60.854, 17.4925, 32.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000anz2", "mag": 4.1, "time": 1505540153920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.143, 15.2335, 36.21 ] } }, - { "type": "Feature", "properties": { "id": "ci37764183", "mag": 1.57, "time": 1505539498920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.924667, 33.976667, 6.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000anyv", "mag": 3.7, "time": 1505539256530, "felt": 22, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4153, 42.5716, 8.12 ] } }, - { "type": "Feature", "properties": { "id": "nc72893001", "mag": 1.74, "time": 1505539200450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.266667, 39.366833, -0.52 ] } }, - { "type": "Feature", "properties": { "id": "nn00605425", "mag": 1.2, "time": 1505536942149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.719, 36.6783, 6.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37764071", "mag": 3.03, "time": 1505536766220, "felt": 99, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.926333, 33.9745, 5.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000anyf", "mag": 4.6, "time": 1505535666910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -77.9491, -1.4664, 157.52 ] } }, - { "type": "Feature", "properties": { "id": "nc72892991", "mag": 1.09, "time": 1505535129720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.777833, 39.807833, 8.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000any5", "mag": 4.3, "time": 1505534256750, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.7094, 13.2544, 54.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16831411", "mag": 1.0, "time": 1505534077361, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8446, 61.8774, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00605540", "mag": 1.1, "time": 1505533644071, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.5347, 38.3939, 14.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37764039", "mag": 1.68, "time": 1505533494970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.682, 35.141167, 11.28 ] } }, - { "type": "Feature", "properties": { "id": "ci37764031", "mag": 1.75, "time": 1505533234710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.516833, 32.862, 5.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16831410", "mag": 1.3, "time": 1505532137489, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8143, 61.3719, 31.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72892971", "mag": 0.98, "time": 1505532054400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8735, 37.542, 7.25 ] } }, - { "type": "Feature", "properties": { "id": "nm60206921", "mag": 1.9, "time": 1505531769960, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -90.3315, 35.6915, 12.51 ] } }, - { "type": "Feature", "properties": { "id": "ci37764007", "mag": 1.33, "time": 1505531552680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.105667, 34.034, 6.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16860509", "mag": 1.7, "time": 1505530441142, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2233, 59.405, 90.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16831409", "mag": 2.6, "time": 1505529914916, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.7519, 54.2192, 117.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37763991", "mag": 1.37, "time": 1505528713010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.179, 33.193833, 7.41 ] } }, - { "type": "Feature", "properties": { "id": "ci37763983", "mag": 1.44, "time": 1505528615710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.793333, 33.493667, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000anxt", "mag": 4.3, "time": 1505528560360, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -100.0309, 17.2785, 69.28 ] } }, - { "type": "Feature", "properties": { "id": "nc72892956", "mag": 1.06, "time": 1505527887720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.904167, 37.519667, -0.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16831144", "mag": 1.1, "time": 1505526547318, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6449, 63.5861, 5.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16831140", "mag": 1.8, "time": 1505526295378, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4346, 59.0192, 66.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72892946", "mag": 1.02, "time": 1505525854460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.764168, 38.786999, 0.87 ] } }, - { "type": "Feature", "properties": { "id": "ci37763959", "mag": 1.17, "time": 1505525787900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.395167, 34.877167, 11.59 ] } }, - { "type": "Feature", "properties": { "id": "nc72892941", "mag": 1.34, "time": 1505525721400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.772833, 38.807167, -0.11 ] } }, - { "type": "Feature", "properties": { "id": "nc72892936", "mag": 1.51, "time": 1505525691180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819167, 37.545, 3.75 ] } }, - { "type": "Feature", "properties": { "id": "us2000anxl", "mag": 4.6, "time": 1505525689580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.5872, 52.0486, 37.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16831132", "mag": 1.8, "time": 1505525666712, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6913, 63.5749, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16831131", "mag": 1.1, "time": 1505525600973, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6368, 63.6017, 8.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72892931", "mag": 1.16, "time": 1505524996900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.806167, 36.224833, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16830868", "mag": 2.0, "time": 1505523996780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.276, 57.4142, 39.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16860501", "mag": 1.8, "time": 1505523576256, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.099, 59.7523, 100.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16830864", "mag": 1.0, "time": 1505522724047, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.3705, 66.2593, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16830862", "mag": 1.4, "time": 1505522720015, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8357, 63.5631, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000at41", "mag": 4.6, "time": 1505522674060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 69.6259, -23.9788, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000anwt", "mag": 4.3, "time": 1505522470090, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.2357, -37.2039, 9.72 ] } }, - { "type": "Feature", "properties": { "id": "uu60246252", "mag": 1.18, "time": 1505521902190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4075, 42.596, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16830861", "mag": 1.2, "time": 1505521740882, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7991, 61.6212, 38.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16830860", "mag": 1.0, "time": 1505521253411, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9628, 64.7584, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16830858", "mag": 1.6, "time": 1505521010086, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3459, 62.5868, 57.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000at4p", "mag": 4.6, "time": 1505520028160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -30.9669, 2.8319, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16830852", "mag": 2.5, "time": 1505519615949, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8797, 64.7729, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16830848", "mag": 3.4, "time": 1505519352423, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.9613, 56.0051, 45.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16830585", "mag": 2.2, "time": 1505518242769, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9245, 64.7851, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16830502", "mag": 1.5, "time": 1505517724005, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3927, 62.7723, 62.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61909476", "mag": 1.46, "time": 1505517626230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.6105, 19.420833, 2.212 ] } }, - { "type": "Feature", "properties": { "id": "us2000anvi", "mag": 4.9, "time": 1505517194700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.9781, 67.621, 14.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16852972", "mag": 2.3, "time": 1505516822454, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.046, 51.6929, 12.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000asms", "mag": 4.2, "time": 1505515397660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 151.5667, -4.6769, 135.04 ] } }, - { "type": "Feature", "properties": { "id": "ak16830490", "mag": 2.1, "time": 1505515348546, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2666, 60.2335, 149.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000anza", "mag": 4.2, "time": 1505515078190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 91.9514, 12.8959, 27.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16852968", "mag": 1.7, "time": 1505514517165, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1028, 59.5574, 89.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16830486", "mag": 1.5, "time": 1505514413181, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8103, 64.7863, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16852966", "mag": 1.7, "time": 1505514284700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1862, 59.9258, 120.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892896", "mag": 1.71, "time": 1505514238180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.848, 40.281, 4.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqg1", "mag": 3.2, "time": 1505514207940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.4161, 53.6697, 25.19 ] } }, - { "type": "Feature", "properties": { "id": "nc72892891", "mag": 1.42, "time": 1505514193630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7085, 38.747, 1.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000antx", "mag": 2.8, "time": 1505513431240, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.9688, 37.279, 4.85 ] } }, - { "type": "Feature", "properties": { "id": "ak16830471", "mag": 1.3, "time": 1505513126878, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.0818, 58.2131, 3.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqg0", "mag": 2.6, "time": 1505512544140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.6723, 51.5577, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000antf", "mag": 4.6, "time": 1505512126220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 147.5618, -5.9077, 108.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16830466", "mag": 1.7, "time": 1505511266504, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.7109, 60.4891, 8.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000asmu", "mag": 4.3, "time": 1505510611600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 137.0445, 34.5022, 328.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000anrz", "mag": 3.1, "time": 1505510517900, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4379, 42.6057, 6.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16830211", "mag": 3.0, "time": 1505510263990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8926, 64.7765, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16852960", "mag": 1.5, "time": 1505509916511, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1722, 61.1116, 68.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16852959", "mag": 2.0, "time": 1505509441508, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4835, 51.7117, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72892861", "mag": 1.56, "time": 1505509197990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.217167, 35.152667, 7.27 ] } }, - { "type": "Feature", "properties": { "id": "nn00605401", "mag": 1.3, "time": 1505508712532, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.5746, 38.7781, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000anqp", "mag": 4.4, "time": 1505508340380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.6832, 12.6788, 125.94 ] } }, - { "type": "Feature", "properties": { "id": "nn00605391", "mag": 1.0, "time": 1505508003630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.3614, 38.5819, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37763831", "mag": 1.45, "time": 1505507271630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.356667, 34.4865, 9.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16830197", "mag": 2.1, "time": 1505507006348, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.8768, 60.2433, 18.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72892846", "mag": 2.43, "time": 1505506978320, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.075333, 36.496667, 4.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000annp", "mag": 2.3, "time": 1505506905940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4277, 42.5599, 9.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16829946", "mag": 2.6, "time": 1505506584731, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.9781, 57.0654, 81.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72892841", "mag": 1.21, "time": 1505506558180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.801833, 38.823167, 2.59 ] } }, - { "type": "Feature", "properties": { "id": "ci37763815", "mag": 1.6, "time": 1505506434580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.772667, 33.326167, 12.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16829942", "mag": 2.0, "time": 1505506388550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6381, 59.7681, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16829939", "mag": 1.3, "time": 1505506296730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3557, 64.9805, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16829919", "mag": 3.2, "time": 1505506091028, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8331, 59.8732, 91.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16829917", "mag": 1.1, "time": 1505506034459, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1896, 63.4641, 20.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72892821", "mag": 1.26, "time": 1505506033580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.407667, 37.504333, 1.03 ] } }, - { "type": "Feature", "properties": { "id": "pr2017258005", "mag": 3.43, "time": 1505505501670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -64.6295, 19.1915, 40.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16829915", "mag": 1.5, "time": 1505505395135, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6711, 60.3885, 41.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16829913", "mag": 2.1, "time": 1505505235226, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.0254, 58.4988, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16829904", "mag": 1.1, "time": 1505503708373, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5162, 63.4918, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72892806", "mag": 1.03, "time": 1505503474580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.488333, 37.450833, 4.91 ] } }, - { "type": "Feature", "properties": { "id": "ci37763759", "mag": 1.72, "time": 1505502131450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.796, 33.503167, 6.45 ] } }, - { "type": "Feature", "properties": { "id": "us2000anjp", "mag": 5.5, "time": 1505501282460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -28.3292, -55.4644, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892771", "mag": 1.05, "time": 1505500911720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.725334, 38.757, 1.52 ] } }, - { "type": "Feature", "properties": { "id": "us2000anjh", "mag": 4.5, "time": 1505500904740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 169.72, 54.0122, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61308057", "mag": 0.97, "time": 1505500854880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.858667, 48.515, 37.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16829625", "mag": 1.6, "time": 1505499922143, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3749, 60.4419, 18.3 ] } }, - { "type": "Feature", "properties": { "id": "uu60246132", "mag": 1.51, "time": 1505499901840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.420667, 42.537167, 7.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72892766", "mag": 2.33, "time": 1505499839660, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.49, 37.447667, 5.54 ] } }, - { "type": "Feature", "properties": { "id": "nc72892756", "mag": 1.0, "time": 1505499395080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.799667, 37.462333, 0.05 ] } }, - { "type": "Feature", "properties": { "id": "nc72892761", "mag": 1.02, "time": 1505499284680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.445, 37.379333, 14.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16829622", "mag": 1.1, "time": 1505498936272, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4458, 61.0059, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000anhz", "mag": 4.2, "time": 1505498539950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9892, 15.1825, 46.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16829378", "mag": 1.9, "time": 1505498347271, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.7292, 60.4845, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37763719", "mag": 1.44, "time": 1505498108300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.178169, 35.602833, 5.95 ] } }, - { "type": "Feature", "properties": { "id": "us2000anhd", "mag": 5.0, "time": 1505497546880, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 28.8132, -2.7314, 12.98 ] } }, - { "type": "Feature", "properties": { "id": "ci37763711", "mag": 1.02, "time": 1505497385540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.102833, 33.170333, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16829370", "mag": 1.8, "time": 1505496661795, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3298, 60.0961, 93.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72892746", "mag": 1.22, "time": 1505496479100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.641667, 37.477167, 6.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000angr", "mag": 4.6, "time": 1505496373980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 160.527, 53.8618, 60.06 ] } }, - { "type": "Feature", "properties": { "id": "ci37763679", "mag": 1.04, "time": 1505495567950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.808, 36.012167, 1.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16829365", "mag": 1.4, "time": 1505494067842, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3827, 63.102, 108.2 ] } }, - { "type": "Feature", "properties": { "id": "uw61308032", "mag": 1.41, "time": 1505493000220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.048333, 47.3965, 13.93 ] } }, - { "type": "Feature", "properties": { "id": "nc72892711", "mag": 1.1, "time": 1505492830650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.807, 38.822667, 2.57 ] } }, - { "type": "Feature", "properties": { "id": "uw61308027", "mag": 1.17, "time": 1505492391290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.0485, 47.395833, 13.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16829360", "mag": 2.9, "time": 1505491697051, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.4354, 53.7237, 49.7 ] } }, - { "type": "Feature", "properties": { "id": "pr2017258004", "mag": 1.98, "time": 1505491060700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.7353, 18.0013, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16829358", "mag": 1.6, "time": 1505491027770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6843, 60.3013, 49.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000angc", "mag": 4.7, "time": 1505490910540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.4948, -51.951, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16829355", "mag": 3.2, "time": 1505490508935, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.4074, 55.3684, 134.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60246117", "mag": 1.78, "time": 1505490038910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.438833, 42.587833, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37763607", "mag": 1.3, "time": 1505489472220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.491167, 33.8525, -0.5 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235413", "mag": 2.08, "time": 1505488486050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.96, 37.276667, 2.46 ] } }, - { "type": "Feature", "properties": { "id": "ak16829351", "mag": 1.4, "time": 1505488175090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4615, 63.0908, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61908956", "mag": 2.13, "time": 1505487142110, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.862333, 19.450333, 1.074 ] } }, - { "type": "Feature", "properties": { "id": "ak16829348", "mag": 2.3, "time": 1505486994801, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.5994, 64.2424, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16852936", "mag": 1.5, "time": 1505485797408, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5105, 60.533, 54.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16829346", "mag": 1.6, "time": 1505485726963, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8399, 59.9528, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80255559", "mag": 1.54, "time": 1505485070000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528, 46.898, 12.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000asmd", "mag": 4.0, "time": 1505484479350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 118.2763, -7.0257, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37763559", "mag": 1.43, "time": 1505483064830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6045, 33.127833, 7.81 ] } }, - { "type": "Feature", "properties": { "id": "ci37763535", "mag": 1.14, "time": 1505482307640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.736833, 33.222833, 12.21 ] } }, - { "type": "Feature", "properties": { "id": "ci37763527", "mag": 1.65, "time": 1505482113260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.742833, 33.223833, 11.67 ] } }, - { "type": "Feature", "properties": { "id": "ci37763511", "mag": 2.98, "time": 1505481739410, "felt": 62, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.750167, 33.221833, 11.54 ] } }, - { "type": "Feature", "properties": { "id": "nn00605319", "mag": 1.4, "time": 1505481612897, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.536, 39.4025, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16829343", "mag": 1.1, "time": 1505481511288, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.734, 60.477, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16829342", "mag": 1.1, "time": 1505481115042, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.6866, 60.4978, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000an8y", "mag": 3.0, "time": 1505480692500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.9665, 37.2798, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000aqfs", "mag": 4.0, "time": 1505480677660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 177.1015, 51.6899, 62.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72892656", "mag": 1.2, "time": 1505479917850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.478833, 36.923833, 5.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16852930", "mag": 2.2, "time": 1505479857860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.6735, 54.2139, 72.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16852929", "mag": 1.3, "time": 1505479424949, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8074, 61.6789, 63.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37763455", "mag": 1.43, "time": 1505479133890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.172833, 33.1885, 5.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000an8s", "mag": 5.0, "time": 1505479021440, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 99.4856, 1.5915, 160.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16852928", "mag": 2.1, "time": 1505478896521, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.6795, 51.3691, 28.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61307972", "mag": 0.95, "time": 1505478878910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.588, 45.973333, 13.92 ] } }, - { "type": "Feature", "properties": { "id": "mb80255544", "mag": 1.19, "time": 1505478239910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527, 46.868167, 11.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16852925", "mag": 2.1, "time": 1505477897255, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.3237, 54.8499, 18.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72892641", "mag": 1.01, "time": 1505477523520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.799667, 38.833832, 2.01 ] } }, - { "type": "Feature", "properties": { "id": "us2000an8e", "mag": 2.7, "time": 1505477274970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.525, 46.8611, 10.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16852924", "mag": 1.4, "time": 1505476792218, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5946, 57.6534, 29.9 ] } }, - { "type": "Feature", "properties": { "id": "pr2017258003", "mag": 2.18, "time": 1505476739060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.7808, 18.0135, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16852923", "mag": 2.0, "time": 1505476493650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.7994, 54.9781, 25.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000an7z", "mag": 3.8, "time": 1505475906360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.753, 54.3697, 28.05 ] } }, - { "type": "Feature", "properties": { "id": "nc72892636", "mag": 2.0, "time": 1505475684320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.723167, 38.750667, 1.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16829087", "mag": 1.6, "time": 1505475033163, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.6709, 67.7999, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16829082", "mag": 1.8, "time": 1505474984470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9722, 63.0999, 131.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16829079", "mag": 1.4, "time": 1505474678706, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.7297, 60.4779, 8.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000an7j", "mag": 2.7, "time": 1505474631800, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4441, 42.568, 7.22 ] } }, - { "type": "Feature", "properties": { "id": "nc72892626", "mag": 1.04, "time": 1505474439810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.804667, 37.458833, 0.13 ] } }, - { "type": "Feature", "properties": { "id": "ci37763407", "mag": 3.23, "time": 1505473976550, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.303167, 35.032833, 11.48 ] } }, - { "type": "Feature", "properties": { "id": "nn00605300", "mag": 1.1, "time": 1505473795002, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.7828, 38.6088, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16828841", "mag": 1.7, "time": 1505473634732, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.54, 59.9657, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61307932", "mag": 1.91, "time": 1505473610560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.044333, 46.870333, 5.23 ] } }, - { "type": "Feature", "properties": { "id": "uw61307927", "mag": 2.04, "time": 1505473528440, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.040667, 46.874167, 5.89 ] } }, - { "type": "Feature", "properties": { "id": "us2000an74", "mag": 4.6, "time": 1505473111350, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -60.5703, 14.9752, 55.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16828838", "mag": 2.3, "time": 1505473096912, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.7454, 57.1664, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235273", "mag": 1.73, "time": 1505472377400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.7775, 37.328833, 5.95 ] } }, - { "type": "Feature", "properties": { "id": "ak16828836", "mag": 1.2, "time": 1505472358115, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0141, 62.1581, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000an6x", "mag": 3.0, "time": 1505471961060, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4507, 42.5991, 6.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16828834", "mag": 1.6, "time": 1505471035679, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5654, 60.6122, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "pr2017258002", "mag": 3.3, "time": 1505471012430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -65.039, 18.7165, 49.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892606", "mag": 2.13, "time": 1505469780960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.106167, 36.291833, 27.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16852912", "mag": 1.9, "time": 1505469324601, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0438, 60.2245, 124.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16828830", "mag": 2.7, "time": 1505468486908, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.378, 53.6654, 25.8 ] } }, - { "type": "Feature", "properties": { "id": "pr2017258001", "mag": 3.31, "time": 1505468158660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.9741, 18.1111, 53.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16828827", "mag": 1.9, "time": 1505468029663, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1086, 60.3742, 87.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000an6e", "mag": 2.1, "time": 1505467401730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4369, 42.5723, 4.71 ] } }, - { "type": "Feature", "properties": { "id": "ci37763367", "mag": 1.32, "time": 1505466931820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.601167, 35.792, 0.88 ] } }, - { "type": "Feature", "properties": { "id": "hv61908811", "mag": 1.86, "time": 1505466749280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.473328, 19.201, 34.94 ] } }, - { "type": "Feature", "properties": { "id": "pr2017258000", "mag": 2.64, "time": 1505466025100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.746, 17.9996, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000an5j", "mag": 3.6, "time": 1505463761200, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4416, 42.5753, 5.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16852908", "mag": 1.3, "time": 1505463469458, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.2829, 57.3488, 39.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00605283", "mag": 1.7, "time": 1505461873940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.4437, 37.5652, 30.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72892591", "mag": 2.34, "time": 1505461865770, "felt": 34, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.815833, 37.416, -0.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72892576", "mag": 1.69, "time": 1505460536470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.027667, 35.933167, 12.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16828820", "mag": 1.4, "time": 1505460317106, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3735, 59.7943, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16852903", "mag": 1.3, "time": 1505459205027, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8448, 60.0925, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16828585", "mag": 1.4, "time": 1505458631465, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0593, 61.7131, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000an4v", "mag": 4.4, "time": 1505458308660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.5767, -21.9172, 640.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16828584", "mag": 1.4, "time": 1505458006745, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.7132, 60.0014, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16828563", "mag": 2.8, "time": 1505456528325, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4989, 60.1125, 151.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16828570", "mag": 2.5, "time": 1505456526893, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2519, 60.1326, 152.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72892551", "mag": 2.6, "time": 1505456369610, "felt": 148, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.814333, 37.412167, -0.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16828560", "mag": 1.1, "time": 1505456105481, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0298, 65.3407, 11.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37763319", "mag": 1.07, "time": 1505455402480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7685, 33.327833, 13.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16828558", "mag": 1.4, "time": 1505455356648, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3726, 61.4994, 31.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16852896", "mag": 1.9, "time": 1505455322292, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2513, 60.1603, 135.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72892546", "mag": 1.03, "time": 1505455248140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.810667, 38.83, 2.09 ] } }, - { "type": "Feature", "properties": { "id": "ak16828556", "mag": 1.6, "time": 1505455168783, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.9297, 60.9306, 19.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37763311", "mag": 1.21, "time": 1505454701910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.190167, 33.332667, 10.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16852894", "mag": 1.7, "time": 1505453971264, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8667, 60.0997, 103.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000an3z", "mag": 4.6, "time": 1505453216820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -82.4676, -42.4862, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16852893", "mag": 1.1, "time": 1505452792257, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4902, 57.7349, 15.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16828554", "mag": 1.4, "time": 1505452679971, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3948, 61.1147, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16852891", "mag": 1.6, "time": 1505451604059, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9039, 61.8273, 105.7 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235253", "mag": 1.62, "time": 1505451601330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.7765, 37.333333, 5.53 ] } }, - { "type": "Feature", "properties": { "id": "nc72892536", "mag": 2.78, "time": 1505451572070, "felt": 348, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.804667, 37.415, 2.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16828322", "mag": 1.1, "time": 1505451186525, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -138.7346, 60.4761, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000anyw", "mag": 2.0, "time": 1505450267000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -71.42, 45.73, 18.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892526", "mag": 1.26, "time": 1505449157230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.802333, 38.8245, 1.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16828321", "mag": 1.4, "time": 1505448965816, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.0369, 60.3155, 0.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000an31", "mag": 4.3, "time": 1505448638800, "felt": 9, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -76.4066, -11.9189, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80255479", "mag": 1.23, "time": 1505447369570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529333, 46.896667, 13.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16828316", "mag": 2.0, "time": 1505447351856, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1687, 59.8152, 101.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16828314", "mag": 1.7, "time": 1505447232655, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4451, 60.022, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892516", "mag": 1.1, "time": 1505446837720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.730835, 38.793999, 1.32 ] } }, - { "type": "Feature", "properties": { "id": "uu60245937", "mag": 2.38, "time": 1505446750290, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.831833, 40.139667, 5.96 ] } }, - { "type": "Feature", "properties": { "id": "nn00605251", "mag": 1.0, "time": 1505446468632, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9033, 38.4011, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61307757", "mag": 1.87, "time": 1505444885110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.039, 46.879667, 6.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16828311", "mag": 1.7, "time": 1505444727120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.9607, 69.4522, 5.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16828309", "mag": 1.6, "time": 1505444714123, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2585, 60.8639, 35.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16828078", "mag": 1.7, "time": 1505444473211, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9441, 60.8403, 88.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16852882", "mag": 1.6, "time": 1505443841428, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.2335, 53.7145, 69.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000an1z", "mag": 4.4, "time": 1505443535780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.5573, 15.2748, 63.05 ] } }, - { "type": "Feature", "properties": { "id": "nc72892506", "mag": 1.02, "time": 1505442684550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.883667, 37.553, 2.17 ] } }, - { "type": "Feature", "properties": { "id": "hv61908531", "mag": 3.04, "time": 1505439944520, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.466833, 19.197667, 35.437 ] } }, - { "type": "Feature", "properties": { "id": "ak16827839", "mag": 1.5, "time": 1505439822541, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4032, 62.4253, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37763231", "mag": 1.55, "time": 1505439516220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.3195, 34.068167, 18.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000an15", "mag": 5.2, "time": 1505439500860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5689, -26.6333, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000an0z", "mag": 4.8, "time": 1505439407990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 94.866, 18.8304, 42.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72892491", "mag": 1.99, "time": 1505438838520, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.813833, 37.412167, -0.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72892486", "mag": 3.28, "time": 1505438267780, "felt": 1110, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.805667, 37.414, -0.21 ] } }, - { "type": "Feature", "properties": { "id": "uw61307737", "mag": 1.35, "time": 1505438193040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.260833, 45.950833, -0.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000an0d", "mag": 2.7, "time": 1505437987460, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5868, 37.2136, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000an0g", "mag": 4.3, "time": 1505437868680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4079, 15.6978, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827837", "mag": 1.3, "time": 1505437000881, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7, 64.3159, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aslu", "mag": 4.1, "time": 1505436496140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.8507, -18.1469, 603.85 ] } }, - { "type": "Feature", "properties": { "id": "ci37763199", "mag": 1.36, "time": 1505435921800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.729667, 33.651667, 14.16 ] } }, - { "type": "Feature", "properties": { "id": "nc72892481", "mag": 1.05, "time": 1505435403940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.1895, 36.589667, 2.71 ] } }, - { "type": "Feature", "properties": { "id": "us2000aslz", "mag": 4.4, "time": 1505434827610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.716, 24.4725, 93.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000amzk", "mag": 4.1, "time": 1505434054870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.3134, -31.912, 136.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16827738", "mag": 1.1, "time": 1505433675781, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4097, 60.0357, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61307717", "mag": 1.13, "time": 1505433139350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.677167, 47.835167, -0.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72892476", "mag": 1.21, "time": 1505432696710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.828167, 37.448333, 11.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16827737", "mag": 2.4, "time": 1505432573787, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.6213, 54.0704, 37.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000amz3", "mag": 4.1, "time": 1505431969130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.671, 15.2225, 53.79 ] } }, - { "type": "Feature", "properties": { "id": "nc72892471", "mag": 1.5, "time": 1505431533120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.4815, 38.607167, 11.47 ] } }, - { "type": "Feature", "properties": { "id": "nc72892466", "mag": 1.83, "time": 1505431346810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.8125, 37.417833, 0.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16827381", "mag": 2.1, "time": 1505430963793, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5301, 63.0381, 100.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000amyn", "mag": 4.7, "time": 1505430410000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -172.7418, -15.3348, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892451", "mag": 1.34, "time": 1505430316610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.842333, 38.821, 2.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16827378", "mag": 1.7, "time": 1505430242693, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.6605, 59.9169, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827376", "mag": 1.4, "time": 1505430223593, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3686, 64.993, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235238", "mag": 1.58, "time": 1505429674020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.887667, 37.203667, 6.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16827373", "mag": 1.9, "time": 1505429324646, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.3648, 60.031, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827371", "mag": 1.2, "time": 1505429076761, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7478, 61.0185, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000amx5", "mag": 4.0, "time": 1505428206900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.2168, 15.3544, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892426", "mag": 2.04, "time": 1505428077100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.454833, 37.434333, 10.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16861216", "mag": 1.9, "time": 1505427925219, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.0714, 56.1589, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16827036", "mag": 2.0, "time": 1505427923919, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0766, 61.1472, 0.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000amww", "mag": 5.2, "time": 1505427661920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 170.1022, -13.8345, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37763135", "mag": 1.49, "time": 1505427523820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.866, 34.011167, 16.92 ] } }, - { "type": "Feature", "properties": { "id": "nn00605229", "mag": 2.2, "time": 1505427385689, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0155, 38.8648, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000askz", "mag": 4.1, "time": 1505426291450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.1685, -7.2026, 147.79 ] } }, - { "type": "Feature", "properties": { "id": "hv61908231", "mag": 2.43, "time": 1505426012270, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.012665, 19.708, 2.82 ] } }, - { "type": "Feature", "properties": { "id": "uu60245817", "mag": 1.37, "time": 1505425437900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.738, 38.746667, 7.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16827032", "mag": 1.7, "time": 1505425052822, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4453, 59.9712, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827035", "mag": 2.3, "time": 1505424622002, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.6154, 53.6195, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000asl6", "mag": 4.4, "time": 1505424366710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 122.1651, -12.9278, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "pr2017257005", "mag": 3.03, "time": 1505423754820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.8618, 18.9605, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000amub", "mag": 2.8, "time": 1505423589100, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.1847, 37.3761, 9.38 ] } }, - { "type": "Feature", "properties": { "id": "nc72892386", "mag": 1.71, "time": 1505423524180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.993, 37.849, 7.27 ] } }, - { "type": "Feature", "properties": { "id": "uw61307597", "mag": 1.91, "time": 1505423420600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.516333, 49.4855, -1.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16827021", "mag": 2.6, "time": 1505422812693, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9235, 64.0866, 5.1 ] } }, - { "type": "Feature", "properties": { "id": "pr2017257004", "mag": 3.1, "time": 1505421809880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.5351, 18.7848, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61307587", "mag": 2.41, "time": 1505421654690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.038167, 46.8785, 6.64 ] } }, - { "type": "Feature", "properties": { "id": "ci37763103", "mag": 1.09, "time": 1505421634220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.484667, 33.852667, -0.55 ] } }, - { "type": "Feature", "properties": { "id": "ci37763095", "mag": 2.06, "time": 1505421264070, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.377, 34.075, 2.89 ] } }, - { "type": "Feature", "properties": { "id": "ci37763087", "mag": 1.19, "time": 1505421203990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.9245, 33.981667, 6.59 ] } }, - { "type": "Feature", "properties": { "id": "uw61307577", "mag": 2.03, "time": 1505420251860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.041833, 46.875667, 6.94 ] } }, - { "type": "Feature", "properties": { "id": "ci37763071", "mag": 1.01, "time": 1505420033530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.481, 33.8295, -0.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000amr0", "mag": 3.2, "time": 1505419914220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -103.2947, 31.1684, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16826805", "mag": 1.7, "time": 1505419715229, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.541, 59.9804, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80255399", "mag": 3.06, "time": 1505419221280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.5865, 48.5185, 11.24 ] } }, - { "type": "Feature", "properties": { "id": "uu60245777", "mag": 2.41, "time": 1505419186750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.829333, 40.126, 5.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16826800", "mag": 1.6, "time": 1505419140835, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.9798, 59.9221, 1.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72892321", "mag": 1.03, "time": 1505418518980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.838833, 37.542333, 4.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16861208", "mag": 1.9, "time": 1505418243673, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0345, 59.5576, 91.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72892316", "mag": 1.93, "time": 1505418215210, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.825833, 37.479167, 0.95 ] } }, - { "type": "Feature", "properties": { "id": "uw61307562", "mag": 1.61, "time": 1505417734660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.201667, 47.657667, 24.36 ] } }, - { "type": "Feature", "properties": { "id": "nc72892311", "mag": 2.58, "time": 1505417475310, "felt": 83, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.815167, 37.412167, -0.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16826593", "mag": 3.3, "time": 1505417123986, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.9114, 52.3919, 7.2 ] } }, - { "type": "Feature", "properties": { "id": "ld60143041", "mag": 1.13, "time": 1505416429790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -78.886167, 43.172167, 4.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000amnb", "mag": 3.0, "time": 1505416249190, "felt": 10, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5193, 36.2853, 5.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16826590", "mag": 1.5, "time": 1505416113279, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1135, 61.6397, 76.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16826581", "mag": 3.0, "time": 1505415978301, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7549, 53.141, 25.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16826576", "mag": 2.1, "time": 1505415492270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9009, 60.0386, 108.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16826575", "mag": 1.4, "time": 1505414640813, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4567, 60.0012, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892281", "mag": 1.22, "time": 1505414516760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.106667, 37.328833, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16826369", "mag": 1.5, "time": 1505413533625, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.2439, 60.5671, 11.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16826365", "mag": 2.1, "time": 1505413453164, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.2344, 60.5666, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16826364", "mag": 1.2, "time": 1505413265164, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.6599, 59.9119, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37763023", "mag": 1.39, "time": 1505413136790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.316167, 35.0525, -0.97 ] } }, - { "type": "Feature", "properties": { "id": "uw61307532", "mag": 1.1, "time": 1505412859730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.3855, 45.629833, -1.63 ] } }, - { "type": "Feature", "properties": { "id": "nc72892266", "mag": 0.96, "time": 1505412496280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.823167, 37.5355, 0.22 ] } }, - { "type": "Feature", "properties": { "id": "nc72892261", "mag": 1.1, "time": 1505411783250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.808166, 38.800167, 2.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16826335", "mag": 1.2, "time": 1505411310289, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0556, 61.0558, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16826330", "mag": 1.6, "time": 1505411005327, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8642, 60.9198, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000amk5", "mag": 5.8, "time": 1505410888670, "felt": 9, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 145.732, 18.6699, 173.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72892241", "mag": 3.28, "time": 1505410337330, "felt": 1346, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.8135, 37.411667, -0.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000amw9", "mag": 2.9, "time": 1505410106220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.434, 42.5971, 8.27 ] } }, - { "type": "Feature", "properties": { "id": "ci37762975", "mag": 1.37, "time": 1505410085790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.795333, 33.494833, 5.03 ] } }, - { "type": "Feature", "properties": { "id": "us2000amja", "mag": 3.2, "time": 1505409999020, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4403, 42.586, 8.7 ] } }, - { "type": "Feature", "properties": { "id": "uw61307502", "mag": 2.03, "time": 1505409449050, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.775333, 47.590667, 26.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000amis", "mag": 4.1, "time": 1505408885650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3313, 15.7247, 66.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16826120", "mag": 2.2, "time": 1505408670072, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8183, 60.7702, 77.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000amhu", "mag": 2.5, "time": 1505407539000, "felt": 179, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.0236, 32.7967, 6.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16826109", "mag": 3.4, "time": 1505406315703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.9733, 53.4109, 37.9 ] } }, - { "type": "Feature", "properties": { "id": "pr2017257003", "mag": 1.93, "time": 1505405250720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.1335, 18.0533, 14.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16825909", "mag": 3.0, "time": 1505405033445, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.4291, 57.7254, 15.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16861191", "mag": 2.2, "time": 1505404726740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.4598, 52.5561, 41.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000amga", "mag": 4.5, "time": 1505404343560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 147.122, -6.0228, 63.06 ] } }, - { "type": "Feature", "properties": { "id": "uu60245622", "mag": 1.46, "time": 1505403828660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.640167, 41.675, 10.23 ] } }, - { "type": "Feature", "properties": { "id": "ci37762935", "mag": 1.53, "time": 1505403471570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.7005, 36.071833, 0.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16861190", "mag": 1.9, "time": 1505403359391, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.3367, 58.804, 116.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37762927", "mag": 1.08, "time": 1505403357540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.6365, 33.9595, 15.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16825908", "mag": 1.4, "time": 1505402885768, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5012, 61.3116, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16825714", "mag": 2.2, "time": 1505399922942, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.5211, 53.4862, 2.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72892201", "mag": 2.8, "time": 1505399703490, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8115, 37.473, 1.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16825708", "mag": 2.5, "time": 1505399664156, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3242, 59.9299, 129.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000amdz", "mag": 4.3, "time": 1505399623950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8439, 15.4623, 51.01 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235213", "mag": 2.12, "time": 1505398747570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.888167, 37.203167, 5.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16825704", "mag": 1.0, "time": 1505398436381, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.6928, 63.8584, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37762895", "mag": 1.82, "time": 1505398376370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.448167, 33.465, 11.86 ] } }, - { "type": "Feature", "properties": { "id": "mb80255329", "mag": 1.87, "time": 1505398289770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.534833, 46.870333, 11.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16825519", "mag": 1.8, "time": 1505397944345, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.464, 59.9879, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000amcx", "mag": 2.4, "time": 1505397840240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4117, 42.6047, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "pr2017257002", "mag": 3.32, "time": 1505397292070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.3985, 17.9023, 89.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16861180", "mag": 2.0, "time": 1505397099289, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.7867, 53.5505, 48.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16861178", "mag": 1.1, "time": 1505394745904, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8149, 59.8173, 16.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892181", "mag": 0.97, "time": 1505394542400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.833667, 37.603833, 3.53 ] } }, - { "type": "Feature", "properties": { "id": "nn00605167", "mag": 1.1, "time": 1505394484720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9328, 38.4065, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16825327", "mag": 1.8, "time": 1505394377057, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5142, 60.0065, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16825325", "mag": 1.1, "time": 1505393895767, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0247, 61.1655, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16825323", "mag": 1.3, "time": 1505393727514, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.0737, 61.1407, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ambm", "mag": 2.8, "time": 1505393579230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4339, 42.5276, 8.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72892176", "mag": 1.12, "time": 1505393008100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8295, 37.486167, 1.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16825308", "mag": 2.8, "time": 1505392115017, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.1037, 58.6121, 140.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72892171", "mag": 1.95, "time": 1505392014690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.811, 37.47, 1.05 ] } }, - { "type": "Feature", "properties": { "id": "ci37762879", "mag": 2.48, "time": 1505391903440, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.03, 34.269167, 1.91 ] } }, - { "type": "Feature", "properties": { "id": "hv61907846", "mag": 1.74, "time": 1505391154930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.801498, 20.135166, 20.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16825129", "mag": 1.8, "time": 1505390600450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.6941, 53.4145, 21.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60245547", "mag": 1.86, "time": 1505390326640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.506167, 37.5615, 15.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16825126", "mag": 1.4, "time": 1505389290941, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.5082, 60.1407, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16825125", "mag": 1.0, "time": 1505389269829, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3654, 61.4964, 18.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16861166", "mag": 1.9, "time": 1505388913353, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3862, 51.6162, 20.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16825120", "mag": 2.1, "time": 1505388602725, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.7931, 54.8482, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16825116", "mag": 1.5, "time": 1505388522841, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3442, 61.3489, 49.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16825115", "mag": 1.2, "time": 1505388281614, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5528, 61.7241, 28.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16824940", "mag": 1.2, "time": 1505387093135, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3758, 61.1701, 24.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72892141", "mag": 1.22, "time": 1505386514410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.131, 36.571833, 9.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16824937", "mag": 2.5, "time": 1505385684936, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.0082, 52.3291, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16824932", "mag": 1.6, "time": 1505384400903, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5379, 59.9886, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16824930", "mag": 1.2, "time": 1505383839558, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.3238, 66.4782, 11.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16861154", "mag": 1.9, "time": 1505383026342, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.851, 54.0129, 69.5 ] } }, - { "type": "Feature", "properties": { "id": "hv61907791", "mag": 1.61, "time": 1505382391650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.223667, 18.879, 14.409 ] } }, - { "type": "Feature", "properties": { "id": "ak16824762", "mag": 1.4, "time": 1505381878343, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4212, 60.1553, 64.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16824759", "mag": 2.0, "time": 1505381875397, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7269, 61.5265, 60.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72892131", "mag": 0.97, "time": 1505381710130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.720001, 38.778168, 1.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16824756", "mag": 2.0, "time": 1505380861272, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0471, 60.1915, 70.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16861150", "mag": 2.6, "time": 1505380391671, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.8518, 53.4455, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16824753", "mag": 2.6, "time": 1505380263376, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.1582, 56.2796, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60245457", "mag": 2.53, "time": 1505379272870, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -108.827333, 40.120667, -3.25 ] } }, - { "type": "Feature", "properties": { "id": "ci37762823", "mag": 2.96, "time": 1505378281630, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.181833, 31.831667, 18.32 ] } }, - { "type": "Feature", "properties": { "id": "nc72892121", "mag": 1.02, "time": 1505377845780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.717499, 38.774666, 2.13 ] } }, - { "type": "Feature", "properties": { "id": "nc72892116", "mag": 1.11, "time": 1505377833950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.714333, 38.776667, 1.68 ] } }, - { "type": "Feature", "properties": { "id": "us2000am81", "mag": 4.6, "time": 1505377166860, "felt": 66, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -76.4481, -11.977, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235208", "mag": 1.81, "time": 1505376928150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.570333, 37.345667, 5.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16824583", "mag": 1.6, "time": 1505376729312, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4585, 60.3656, 97.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72892106", "mag": 1.19, "time": 1505376712450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.799833, 38.712667, 4.08 ] } }, - { "type": "Feature", "properties": { "id": "ci37762815", "mag": 1.04, "time": 1505374690080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.221833, 32.924167, 12.12 ] } }, - { "type": "Feature", "properties": { "id": "ak16824572", "mag": 1.6, "time": 1505374660381, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.7598, 65.436, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000am75", "mag": 4.4, "time": 1505372640680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -72.6754, -34.2973, 1.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16824419", "mag": 1.8, "time": 1505372310107, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5103, 60.0002, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37762807", "mag": 1.14, "time": 1505372248820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.872333, 36.502833, 6.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16824418", "mag": 1.0, "time": 1505372093089, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8634, 59.8384, 41.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16824415", "mag": 1.3, "time": 1505371860862, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4454, 63.0596, 8.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37762783", "mag": 1.64, "time": 1505371108250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.625167, 32.844, 11.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16824411", "mag": 1.3, "time": 1505371053195, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1765, 60.359, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aywv", "mag": 4.0, "time": 1505370268660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6903, 15.5507, 43.43 ] } }, - { "type": "Feature", "properties": { "id": "ci37762759", "mag": 1.32, "time": 1505370002700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.733, 33.668167, 13.69 ] } }, - { "type": "Feature", "properties": { "id": "hv61907731", "mag": 1.75, "time": 1505369997330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.382, 19.236, 32.221 ] } }, - { "type": "Feature", "properties": { "id": "ci37762751", "mag": 0.96, "time": 1505369947950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.731167, 33.674333, 14.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000aywt", "mag": 4.0, "time": 1505369661520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2582, 14.9559, 25.35 ] } }, - { "type": "Feature", "properties": { "id": "nc72892081", "mag": 1.08, "time": 1505369496760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.1615, 36.5675, 3.55 ] } }, - { "type": "Feature", "properties": { "id": "us2000am6i", "mag": 4.5, "time": 1505369450740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3229, 15.1323, 35.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000am6b", "mag": 4.4, "time": 1505369156780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7112, 15.4856, 25.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000am61", "mag": 3.0, "time": 1505368177800, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.3656, 36.7402, 7.992 ] } }, - { "type": "Feature", "properties": { "id": "hv61907641", "mag": 2.26, "time": 1505367585250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.425667, 19.294167, 8.845 ] } }, - { "type": "Feature", "properties": { "id": "us2000arcx", "mag": 3.2, "time": 1505367393080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4046, 51.5999, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000am5i", "mag": 4.2, "time": 1505366427980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.0841, 14.4266, 49.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000amaf", "mag": 4.7, "time": 1505366112080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 148.0489, -1.356, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72892391", "mag": 1.0, "time": 1505365754150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.669167, 40.386833, 6.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000am56", "mag": 4.7, "time": 1505365399680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.0709, 14.4637, 52.71 ] } }, - { "type": "Feature", "properties": { "id": "mb80255284", "mag": 0.98, "time": 1505365218550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.522, 46.8975, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16861140", "mag": 1.2, "time": 1505365047321, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0097, 62.5721, 78.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37762615", "mag": 0.95, "time": 1505364900090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.405833, 33.049333, 3.39 ] } }, - { "type": "Feature", "properties": { "id": "nc72892056", "mag": 1.38, "time": 1505364695740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834, 37.54, 4.68 ] } }, - { "type": "Feature", "properties": { "id": "uw61307352", "mag": 1.78, "time": 1505364485340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.942833, 46.866667, 10.19 ] } }, - { "type": "Feature", "properties": { "id": "ak16824230", "mag": 1.9, "time": 1505364358950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.959, 59.8075, 60.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37762599", "mag": 1.23, "time": 1505364106870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.992833, 33.957167, 16.75 ] } }, - { "type": "Feature", "properties": { "id": "ci37762591", "mag": 2.12, "time": 1505363550640, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.864667, 34.336333, 2.71 ] } }, - { "type": "Feature", "properties": { "id": "nc72892041", "mag": 1.83, "time": 1505363410540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.834167, 37.540667, 4.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16824097", "mag": 1.0, "time": 1505363016608, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1668, 62.6309, 61.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000am4b", "mag": 3.2, "time": 1505362481060, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.9406, 37.3096, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16823967", "mag": 2.0, "time": 1505361191283, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2972, 61.0176, 70.0 ] } }, - { "type": "Feature", "properties": { "id": "pr2017257000", "mag": 4.32, "time": 1505360450920, "felt": 14, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.791, 18.2223, 133.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000am3s", "mag": 3.3, "time": 1505360430180, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5112, 36.2854, 3.99 ] } }, - { "type": "Feature", "properties": { "id": "ci37762583", "mag": 1.43, "time": 1505358534420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.6335, 37.005167, 1.55 ] } }, - { "type": "Feature", "properties": { "id": "ci37762575", "mag": 1.39, "time": 1505358219310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.606667, 32.828, 12.41 ] } }, - { "type": "Feature", "properties": { "id": "ci37762567", "mag": 1.41, "time": 1505358109150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.427667, 34.225833, 13.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000amd4", "mag": 3.2, "time": 1505357901130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4442, 42.5241, 6.99 ] } }, - { "type": "Feature", "properties": { "id": "us2000amd0", "mag": 3.1, "time": 1505357873450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4212, 42.5232, 8.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000am2z", "mag": 4.0, "time": 1505357591000, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4618, 42.5096, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60245162", "mag": 3.43, "time": 1505357581000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.426833, 42.522333, 7.86 ] } }, - { "type": "Feature", "properties": { "id": "ak16861134", "mag": 1.6, "time": 1505356675370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8887, 59.6609, 90.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16823826", "mag": 1.2, "time": 1505356643722, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.394, 60.1683, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000am28", "mag": 2.4, "time": 1505356555350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4263, 42.5303, 6.85 ] } }, - { "type": "Feature", "properties": { "id": "nn00605135", "mag": 1.0, "time": 1505356439739, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8899, 37.3603, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16823823", "mag": 1.2, "time": 1505356197786, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8776, 62.7371, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72892031", "mag": 0.98, "time": 1505355727940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.737663, 38.785168, 2.12 ] } }, - { "type": "Feature", "properties": { "id": "nc72892026", "mag": 1.09, "time": 1505355720450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.746833, 38.787833, 0.11 ] } }, - { "type": "Feature", "properties": { "id": "ak16861131", "mag": 1.7, "time": 1505355503652, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2915, 59.077, 76.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72892021", "mag": 1.67, "time": 1505355378570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.139667, 37.139, 11.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16823809", "mag": 1.2, "time": 1505354254705, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3285, 60.1933, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000am21", "mag": 3.2, "time": 1505353999720, "felt": 13, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 22.899, 42.6704, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37762543", "mag": 1.21, "time": 1505353838790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.543667, 34.513833, 6.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000am1y", "mag": 2.6, "time": 1505353481360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4312, 42.6014, 6.92 ] } }, - { "type": "Feature", "properties": { "id": "ak16823693", "mag": 1.0, "time": 1505351348552, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.644, 62.6994, 58.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16823694", "mag": 2.1, "time": 1505351146642, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.5002, 54.7664, 27.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16823688", "mag": 1.1, "time": 1505350854568, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6619, 59.8124, 15.7 ] } }, - { "type": "Feature", "properties": { "id": "pr2017257001", "mag": 1.33, "time": 1505350270080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.141, 18.0321, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16823577", "mag": 2.7, "time": 1505349755149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.3635, 54.4582, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16861124", "mag": 1.1, "time": 1505349382106, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.2989, 65.668, 14.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000am0x", "mag": 4.6, "time": 1505348843700, "felt": 139, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 139.6152, 35.7719, 48.83 ] } }, - { "type": "Feature", "properties": { "id": "ci37762495", "mag": 1.0, "time": 1505347877510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3345, 33.3545, 11.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16823574", "mag": 2.8, "time": 1505347636545, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.3466, 52.1109, 79.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16823573", "mag": 2.3, "time": 1505347560653, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4123, 51.617, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37762487", "mag": 1.28, "time": 1505347417680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2715, 33.976667, 5.05 ] } }, - { "type": "Feature", "properties": { "id": "hv61907326", "mag": 1.75, "time": 1505347375860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.394165, 19.238333, 32.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16861121", "mag": 1.7, "time": 1505347241023, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4, 51.6505, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61907236", "mag": 2.19, "time": 1505347011230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.3835, 19.243, 32.131 ] } }, - { "type": "Feature", "properties": { "id": "nc72891986", "mag": 1.15, "time": 1505346581750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.5475, 37.143167, 3.07 ] } }, - { "type": "Feature", "properties": { "id": "uw61307262", "mag": 1.18, "time": 1505346312450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.458833, 45.814167, -0.95 ] } }, - { "type": "Feature", "properties": { "id": "ak16823443", "mag": 1.7, "time": 1505346090013, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3313, 60.824, 55.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37762463", "mag": 2.21, "time": 1505345845770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.610333, 32.834, 14.54 ] } }, - { "type": "Feature", "properties": { "id": "ci37762455", "mag": 1.23, "time": 1505345794660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.613333, 32.828, 12.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16823442", "mag": 1.4, "time": 1505345681125, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1366, 63.4085, 115.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80255184", "mag": 0.99, "time": 1505345517200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.161833, 48.091333, 6.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16823441", "mag": 1.4, "time": 1505345131416, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9358, 61.9565, 65.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000alzg", "mag": 4.2, "time": 1505344897150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.4183, -18.058, 145.27 ] } }, - { "type": "Feature", "properties": { "id": "ak16823332", "mag": 2.8, "time": 1505344031893, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3482, 51.3154, 44.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16823330", "mag": 1.3, "time": 1505343882913, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3403, 64.9963, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000alyy", "mag": 3.2, "time": 1505343206750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5646, 46.8793, 10.55 ] } }, - { "type": "Feature", "properties": { "id": "uw61307247", "mag": 1.57, "time": 1505343065140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.347833, 44.090833, -1.55 ] } }, - { "type": "Feature", "properties": { "id": "ci37762423", "mag": 2.63, "time": 1505342925380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6105, 32.832833, 13.39 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235168", "mag": 1.72, "time": 1505342816860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.966333, 37.277833, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60245097", "mag": 1.4, "time": 1505342728590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.0425, 44.6825, 13.02 ] } }, - { "type": "Feature", "properties": { "id": "ci37762407", "mag": 1.11, "time": 1505342669930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2705, 33.978, 5.78 ] } }, - { "type": "Feature", "properties": { "id": "ak16830577", "mag": 2.2, "time": 1505342546550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.6253, 55.5692, 53.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37762415", "mag": 1.75, "time": 1505342494590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.999333, 33.073, -0.12 ] } }, - { "type": "Feature", "properties": { "id": "nn00605103", "mag": 1.1, "time": 1505342257553, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.367, 38.5022, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37762399", "mag": 1.66, "time": 1505342009270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.612333, 32.834667, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37762391", "mag": 1.75, "time": 1505341937760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.613, 32.838667, 12.07 ] } }, - { "type": "Feature", "properties": { "id": "ci37762383", "mag": 1.83, "time": 1505341540510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.614, 32.8335, 12.31 ] } }, - { "type": "Feature", "properties": { "id": "ci37762367", "mag": 3.47, "time": 1505341287040, "felt": 39, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.615833, 32.843833, 15.23 ] } }, - { "type": "Feature", "properties": { "id": "hv61907176", "mag": 1.67, "time": 1505340803980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.213667, 19.3035, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16823316", "mag": 2.5, "time": 1505340733287, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3859, 61.6698, 29.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72891951", "mag": 1.45, "time": 1505340188960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.841667, 37.532167, -1.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16830575", "mag": 1.5, "time": 1505340177499, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.5229, 57.7401, 52.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37762359", "mag": 1.73, "time": 1505340060360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.274, 33.976333, 5.08 ] } }, - { "type": "Feature", "properties": { "id": "ci37762351", "mag": 3.26, "time": 1505339982500, "felt": 19, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.276, 33.975333, 3.91 ] } }, - { "type": "Feature", "properties": { "id": "ak16830574", "mag": 1.6, "time": 1505339727053, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.4531, 53.5386, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16823310", "mag": 1.1, "time": 1505339360762, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.5682, 53.9212, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37762343", "mag": 1.12, "time": 1505339170890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.795167, 33.507167, 4.82 ] } }, - { "type": "Feature", "properties": { "id": "mb80255169", "mag": 1.13, "time": 1505339091750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.622667, 46.909667, 10.61 ] } }, - { "type": "Feature", "properties": { "id": "us2000alwi", "mag": 4.7, "time": 1505338937260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0086, 15.1566, 38.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37762335", "mag": 1.17, "time": 1505338520010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.614667, 32.832167, 10.18 ] } }, - { "type": "Feature", "properties": { "id": "ci37762327", "mag": 1.59, "time": 1505338477140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.615333, 32.843, 15.01 ] } }, - { "type": "Feature", "properties": { "id": "uu60245082", "mag": 1.54, "time": 1505338298430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.043833, 44.678167, 13.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000alvq", "mag": 5.0, "time": 1505338251370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9904, 15.7092, 39.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72891936", "mag": 1.29, "time": 1505338239110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.017333, 37.5655, -0.37 ] } }, - { "type": "Feature", "properties": { "id": "ci37762303", "mag": 1.69, "time": 1505337757160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7965, 33.504167, 5.32 ] } }, - { "type": "Feature", "properties": { "id": "uu60245072", "mag": 1.82, "time": 1505336663200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.075667, 44.674, 5.83 ] } }, - { "type": "Feature", "properties": { "id": "ci37762287", "mag": 1.49, "time": 1505336435640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.498833, 33.8575, -0.61 ] } }, - { "type": "Feature", "properties": { "id": "mb80255154", "mag": 2.29, "time": 1505335433020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.7145, 46.9035, 15.16 ] } }, - { "type": "Feature", "properties": { "id": "nc72891916", "mag": 1.11, "time": 1505334220120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7985, 38.833168, 1.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72891911", "mag": 1.01, "time": 1505333988430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.811165, 38.815666, 2.78 ] } }, - { "type": "Feature", "properties": { "id": "ak16823196", "mag": 1.7, "time": 1505333862556, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2791, 60.1339, 58.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72891901", "mag": 1.64, "time": 1505333181410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.814, 38.8085, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72891896", "mag": 1.52, "time": 1505332739060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.817667, 37.481167, 0.23 ] } }, - { "type": "Feature", "properties": { "id": "ci37762231", "mag": 1.56, "time": 1505331922920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.381833, 35.980833, 4.99 ] } }, - { "type": "Feature", "properties": { "id": "us2000alqh", "mag": 4.6, "time": 1505331447000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 112.9501, -6.0986, 590.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000alq6", "mag": 3.0, "time": 1505331233180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4525, 42.6029, 6.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16823083", "mag": 1.8, "time": 1505330838320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.8987, 61.0912, 0.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16823082", "mag": 1.3, "time": 1505330810883, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.7682, 61.1384, 6.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16823080", "mag": 1.9, "time": 1505329947650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7636, 59.6753, 80.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37762215", "mag": 1.01, "time": 1505329786970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1445, 33.667, -0.63 ] } }, - { "type": "Feature", "properties": { "id": "nc72891881", "mag": 1.2, "time": 1505329775160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.850167, 37.644667, 5.63 ] } }, - { "type": "Feature", "properties": { "id": "ci37762207", "mag": 1.15, "time": 1505329688010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.187167, 34.993167, -0.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16830566", "mag": 2.0, "time": 1505328672149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.302, 51.3949, 36.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16822979", "mag": 1.3, "time": 1505328502909, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3078, 61.2967, 15.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72891876", "mag": 1.1, "time": 1505327236230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.745666, 38.787834, 1.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16822977", "mag": 1.3, "time": 1505326599778, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0157, 63.5538, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72891871", "mag": 2.5, "time": 1505325897250, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.0595, 40.449667, 16.29 ] } }, - { "type": "Feature", "properties": { "id": "nc72891866", "mag": 1.77, "time": 1505325532440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.0005, 35.943167, 17.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72891861", "mag": 1.4, "time": 1505325215290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.600167, 35.482, -0.46 ] } }, - { "type": "Feature", "properties": { "id": "ci37762175", "mag": 1.47, "time": 1505324991750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.609, 32.840667, 14.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16822975", "mag": 1.2, "time": 1505324283732, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.2438, 62.4485, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72891851", "mag": 1.07, "time": 1505324016940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.841167, 37.491667, -0.1 ] } }, - { "type": "Feature", "properties": { "id": "se60179327", "mag": 3.2, "time": 1505323990930, "felt": 525, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -80.703, 37.472833, 17.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16822973", "mag": 1.1, "time": 1505323870033, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7446, 59.8908, 41.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16830561", "mag": 1.8, "time": 1505323399318, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9553, 59.6095, 109.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16830560", "mag": 2.0, "time": 1505322404855, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5059, 60.1768, 153.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000alkc", "mag": 4.4, "time": 1505321962400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6803, 15.7969, 43.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16830559", "mag": 1.8, "time": 1505321554841, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.8197, 51.97, 7.3 ] } }, - { "type": "Feature", "properties": { "id": "nc72891831", "mag": 2.56, "time": 1505318816290, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.704667, 40.484, 16.91 ] } }, - { "type": "Feature", "properties": { "id": "ak16822799", "mag": 1.8, "time": 1505318719906, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.4098, 51.7491, 29.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16822798", "mag": 1.1, "time": 1505318596103, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8143, 62.8428, 67.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61906796", "mag": 2.1, "time": 1505317840280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.485504, 19.219, 36.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16822695", "mag": 1.3, "time": 1505316869586, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4592, 63.3484, 0.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000asbr", "mag": 4.3, "time": 1505316791790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 152.1284, -4.88, 54.06 ] } }, - { "type": "Feature", "properties": { "id": "hv61906781", "mag": 1.87, "time": 1505316745210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.889333, 19.9115, 24.592 ] } }, - { "type": "Feature", "properties": { "id": "us2000alhx", "mag": 5.0, "time": 1505316098600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 161.9266, -10.7647, 46.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16822692", "mag": 2.1, "time": 1505315572825, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2966, 59.7717, 67.1 ] } }, - { "type": "Feature", "properties": { "id": "nm60179312", "mag": 1.77, "time": 1505315298800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.672667, 36.156667, 9.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16822691", "mag": 1.8, "time": 1505315111913, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8055, 59.8229, 63.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16822689", "mag": 1.5, "time": 1505313796189, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.627, 60.7945, 30.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37762039", "mag": 1.34, "time": 1505312641900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.791, 36.012167, 1.22 ] } }, - { "type": "Feature", "properties": { "id": "nn00605012", "mag": 1.1, "time": 1505309502885, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9116, 38.3879, 15.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16830551", "mag": 1.1, "time": 1505309158928, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8896, 60.3719, 15.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16822590", "mag": 1.1, "time": 1505309077336, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.3908, 66.2048, 11.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80255099", "mag": 1.92, "time": 1505309076210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.547833, 44.257, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72891776", "mag": 1.02, "time": 1505308975510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.918167, 37.593167, 0.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16822588", "mag": 1.4, "time": 1505308950441, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.4711, 65.4989, 11.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00604990", "mag": 2.3, "time": 1505308914949, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.818, 38.8311, 8.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37762007", "mag": 2.3, "time": 1505308483530, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.585667, 35.139667, 1.62 ] } }, - { "type": "Feature", "properties": { "id": "ci37761999", "mag": 1.26, "time": 1505308208470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6185, 32.838, 13.81 ] } }, - { "type": "Feature", "properties": { "id": "hv61906676", "mag": 1.95, "time": 1505307948740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.298996, 19.424334, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37761983", "mag": 1.11, "time": 1505307567020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.623, 32.839333, 10.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000alfh", "mag": 4.5, "time": 1505306912090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.7023, 15.8472, 95.22 ] } }, - { "type": "Feature", "properties": { "id": "mb80255094", "mag": 1.19, "time": 1505305625190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.642667, 46.956667, 13.27 ] } }, - { "type": "Feature", "properties": { "id": "ci37761967", "mag": 0.99, "time": 1505305387220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.587333, 36.179667, 0.99 ] } }, - { "type": "Feature", "properties": { "id": "nc72891766", "mag": 1.15, "time": 1505305306770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.820333, 38.804, 2.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000anw3", "mag": 2.5, "time": 1505305272030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.6774, 53.9359, 13.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37761959", "mag": 1.4, "time": 1505304763660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.829167, 32.782333, 3.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000asbk", "mag": 4.1, "time": 1505303510580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 128.1783, 2.9917, 58.22 ] } }, - { "type": "Feature", "properties": { "id": "nc72891751", "mag": 0.99, "time": 1505303358450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.082167, 35.707667, 6.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16822583", "mag": 1.1, "time": 1505302645910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3182, 60.2384, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16822582", "mag": 2.3, "time": 1505302558389, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.6566, 51.5758, 56.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000alew", "mag": 3.9, "time": 1505302030040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2516, 14.855, 22.24 ] } }, - { "type": "Feature", "properties": { "id": "mb80255084", "mag": 1.07, "time": 1505300960250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.511667, 46.9035, 5.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16822577", "mag": 1.5, "time": 1505300414194, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.9212, 64.7545, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000alee", "mag": 3.3, "time": 1505299970430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6225, 59.7836, 5.44 ] } }, - { "type": "Feature", "properties": { "id": "uu60244877", "mag": 2.35, "time": 1505299838240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.8535, 44.770833, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72891746", "mag": 1.53, "time": 1505299590270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793, 38.8215, 3.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16830540", "mag": 1.9, "time": 1505298481141, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.1134, 57.8805, 76.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000anw1", "mag": 3.0, "time": 1505298226550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.0008, 50.1653, 25.9 ] } }, - { "type": "Feature", "properties": { "id": "nn00604987", "mag": 1.7, "time": 1505298050456, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.8103, 39.3643, 9.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16822473", "mag": 1.2, "time": 1505297484913, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4897, 63.0467, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16822472", "mag": 2.4, "time": 1505297294726, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.0416, 53.5692, 24.5 ] } }, - { "type": "Feature", "properties": { "id": "uw61307017", "mag": 1.34, "time": 1505297037790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.764333, 48.271333, 1.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16830536", "mag": 1.2, "time": 1505297029108, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7778, 60.5002, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "uu60244867", "mag": 2.44, "time": 1505296698750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.422, 42.567833, 7.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000aldk", "mag": 4.3, "time": 1505296627560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9055, 15.639, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37761935", "mag": 1.02, "time": 1505296379600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.6215, 32.831333, 10.19 ] } }, - { "type": "Feature", "properties": { "id": "us2000aldd", "mag": 4.5, "time": 1505295980580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7401, 15.5449, 31.41 ] } }, - { "type": "Feature", "properties": { "id": "us2000ald3", "mag": 2.4, "time": 1505295918600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.9039, 36.2089, 4.448 ] } }, - { "type": "Feature", "properties": { "id": "ak16822468", "mag": 2.5, "time": 1505295654705, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.2898, 58.6446, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ald0", "mag": 4.3, "time": 1505295123840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.5523, -23.5684, 541.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16822374", "mag": 2.1, "time": 1505294583800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.5476, 52.7346, 39.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000alcs", "mag": 3.9, "time": 1505294302600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2348, 15.2732, 42.03 ] } }, - { "type": "Feature", "properties": { "id": "hv61906586", "mag": 2.11, "time": 1505294188360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.356003, 19.467167, 4.72 ] } }, - { "type": "Feature", "properties": { "id": "nc72891726", "mag": 1.09, "time": 1505293695870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793831, 38.822334, 2.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000alcf", "mag": 2.6, "time": 1505292526080, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4275, 42.596, 6.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16822373", "mag": 1.5, "time": 1505292217097, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.4702, 60.5679, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "nn00604985", "mag": 1.6, "time": 1505292088777, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.548, 37.4198, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891721", "mag": 1.57, "time": 1505290933360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.889333, 39.366167, 10.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16822371", "mag": 1.4, "time": 1505290808147, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.8609, 62.2453, 3.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16822294", "mag": 1.5, "time": 1505289269698, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7566, 62.9227, 94.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16822278", "mag": 1.1, "time": 1505287972451, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.7433, 64.7476, 3.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16822251", "mag": 3.4, "time": 1505287366858, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.5871, 61.6459, 24.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16822240", "mag": 4.2, "time": 1505287337046, "felt": 42, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9213, 62.8983, 79.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000albc", "mag": 2.3, "time": 1505286819380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4494, 42.6632, 10.21 ] } }, - { "type": "Feature", "properties": { "id": "ak16830527", "mag": 1.8, "time": 1505286603893, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0388, 59.8755, 109.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16822236", "mag": 1.3, "time": 1505286374065, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3111, 60.5579, 12.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72891681", "mag": 1.39, "time": 1505286150510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8285, 37.467, -1.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16822233", "mag": 1.6, "time": 1505285865490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8651, 62.2629, 96.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000alb7", "mag": 2.6, "time": 1505285839040, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4177, 42.5618, 8.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16830523", "mag": 1.7, "time": 1505285675768, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.1432, 53.7072, 69.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000alb2", "mag": 4.5, "time": 1505284765560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.084, -22.1327, 549.09 ] } }, - { "type": "Feature", "properties": { "id": "nn00605030", "mag": 1.1, "time": 1505284250632, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9094, 38.3681, 5.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16830521", "mag": 1.2, "time": 1505284146176, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8175, 60.5189, 13.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000alax", "mag": 4.7, "time": 1505283996200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 147.6079, 13.4506, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891656", "mag": 2.62, "time": 1505283657320, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.803833, 37.486167, 2.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37761831", "mag": 1.06, "time": 1505283115050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.795667, 33.5045, 6.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16822160", "mag": 1.4, "time": 1505282783934, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9732, 60.9785, 5.5 ] } }, - { "type": "Feature", "properties": { "id": "mb80255029", "mag": 1.01, "time": 1505281846410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5335, 46.862167, 10.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16822085", "mag": 1.5, "time": 1505279524459, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.8464, 60.3009, 18.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ala9", "mag": 4.5, "time": 1505279374230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.453, 15.3914, 72.28 ] } }, - { "type": "Feature", "properties": { "id": "ci37761799", "mag": 0.97, "time": 1505279080610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.108167, 34.0375, 6.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16830517", "mag": 1.1, "time": 1505278511333, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.4202, 60.2062, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80255024", "mag": 0.95, "time": 1505278401320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529833, 46.864167, 11.03 ] } }, - { "type": "Feature", "properties": { "id": "nc72891626", "mag": 1.1, "time": 1505277590570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.657667, 37.1885, 3.74 ] } }, - { "type": "Feature", "properties": { "id": "nc72891621", "mag": 1.74, "time": 1505277415750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.886167, 39.3655, 10.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16822082", "mag": 1.6, "time": 1505275993590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.0455, 67.102, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72891611", "mag": 1.07, "time": 1505275610780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.795, 38.834667, 1.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16822080", "mag": 3.5, "time": 1505275475357, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4947, 51.6652, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72891606", "mag": 2.64, "time": 1505275168490, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.793833, 38.835667, 1.89 ] } }, - { "type": "Feature", "properties": { "id": "mb80255014", "mag": 0.96, "time": 1505274355010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.537, 46.87, 9.71 ] } }, - { "type": "Feature", "properties": { "id": "nc72891581", "mag": 0.95, "time": 1505273207520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.795166, 38.836666, 1.37 ] } }, - { "type": "Feature", "properties": { "id": "mb80255009", "mag": 1.36, "time": 1505273099690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.536167, 46.872333, 11.58 ] } }, - { "type": "Feature", "properties": { "id": "pr2017256002", "mag": 2.65, "time": 1505272611930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.4988, 19.1065, 25.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891561", "mag": 0.95, "time": 1505272540610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.796669, 38.836834, 1.67 ] } }, - { "type": "Feature", "properties": { "id": "nc72891556", "mag": 1.43, "time": 1505272430980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.798333, 38.835167, 1.85 ] } }, - { "type": "Feature", "properties": { "id": "nc72891551", "mag": 2.57, "time": 1505272400990, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.795667, 38.835, 1.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000al90", "mag": 4.7, "time": 1505272023240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -73.0946, 9.5711, 124.17 ] } }, - { "type": "Feature", "properties": { "id": "mb80255004", "mag": 1.06, "time": 1505270988240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.532, 46.864667, 11.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000al8v", "mag": 4.4, "time": 1505270586710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5721, 15.2889, 34.84 ] } }, - { "type": "Feature", "properties": { "id": "ci37761727", "mag": 1.4, "time": 1505270305170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.643667, 34.5065, 17.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16822007", "mag": 1.0, "time": 1505269102037, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6691, 63.5608, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "pr2017256000", "mag": 3.12, "time": 1505269072880, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.5123, 19.091, 21.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891541", "mag": 1.06, "time": 1505268817240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.517833, 36.804167, 4.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16821999", "mag": 1.7, "time": 1505268378179, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2198, 61.7575, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000al86", "mag": 5.0, "time": 1505268098300, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5276, 15.1558, 14.07 ] } }, - { "type": "Feature", "properties": { "id": "mb80254989", "mag": 1.38, "time": 1505267929610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.540667, 46.872333, 11.48 ] } }, - { "type": "Feature", "properties": { "id": "mb80254984", "mag": 0.99, "time": 1505267728460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5535, 46.8885, 10.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16821934", "mag": 1.1, "time": 1505267091152, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2406, 64.8451, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72891516", "mag": 1.94, "time": 1505266613010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.366833, 40.4805, 29.25 ] } }, - { "type": "Feature", "properties": { "id": "pr2017256001", "mag": 3.05, "time": 1505266581450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.5053, 19.0955, 25.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37761639", "mag": 2.16, "time": 1505265949130, "felt": 80, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.768667, 33.774833, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821933", "mag": 1.0, "time": 1505265920217, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.4031, 60.2216, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37761631", "mag": 1.35, "time": 1505265794450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.333667, 32.933167, 11.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16821931", "mag": 1.3, "time": 1505265469603, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.5511, 61.3707, 12.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000al7y", "mag": 4.1, "time": 1505265414270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4234, 15.3254, 35.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16821926", "mag": 2.1, "time": 1505265047390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5313, 60.6712, 14.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821924", "mag": 1.7, "time": 1505264772966, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.5006, 65.2775, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000al7s", "mag": 4.1, "time": 1505263876510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.3188, 15.5954, 29.98 ] } }, - { "type": "Feature", "properties": { "id": "hv61906111", "mag": 1.46, "time": 1505262900730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.538167, 19.256333, 8.429 ] } }, - { "type": "Feature", "properties": { "id": "nc72891421", "mag": 1.92, "time": 1505262602400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.273167, 36.148167, 8.47 ] } }, - { "type": "Feature", "properties": { "id": "hv61906101", "mag": 2.02, "time": 1505262046800, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.276672, 19.404333, 0.19 ] } }, - { "type": "Feature", "properties": { "id": "nc72891406", "mag": 1.7, "time": 1505261981400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.865667, 36.439667, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000al7a", "mag": 3.9, "time": 1505261942310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.399, 14.9659, 29.81 ] } }, - { "type": "Feature", "properties": { "id": "hv61906081", "mag": 1.94, "time": 1505261244650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.535, 19.849, 23.752 ] } }, - { "type": "Feature", "properties": { "id": "ci37761535", "mag": 1.56, "time": 1505261179000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.165833, 34.0375, 5.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16850793", "mag": 2.2, "time": 1505260675964, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.4757, 53.3828, 38.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16821817", "mag": 1.0, "time": 1505258496556, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.5762, 67.0334, 2.1 ] } }, - { "type": "Feature", "properties": { "id": "uw61306902", "mag": 1.1, "time": 1505258286020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.374667, 45.693833, -0.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000al6d", "mag": 4.9, "time": 1505257835180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -32.4621, 58.0975, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37761503", "mag": 1.49, "time": 1505257449290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.675833, 35.043, -0.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16821811", "mag": 1.3, "time": 1505256864247, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3463, 64.994, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61905981", "mag": 1.81, "time": 1505256516770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.543333, 19.851167, 24.833 ] } }, - { "type": "Feature", "properties": { "id": "ak16821806", "mag": 2.7, "time": 1505256286618, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.4621, 65.79, 5.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16821804", "mag": 1.5, "time": 1505255958164, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3411, 61.6898, 7.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000al5m", "mag": 4.0, "time": 1505255324930, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -70.8843, -20.2485, 15.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000al5h", "mag": 4.8, "time": 1505254407650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -32.3543, 58.0241, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891326", "mag": 1.22, "time": 1505251854350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.794833, 38.819333, 2.91 ] } }, - { "type": "Feature", "properties": { "id": "ci37761407", "mag": 1.17, "time": 1505251524970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.193167, 34.9985, -0.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000al44", "mag": 4.6, "time": 1505250860230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -32.4259, 58.0753, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821734", "mag": 1.5, "time": 1505250673775, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.907, 60.3564, 8.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000al3g", "mag": 4.9, "time": 1505250247360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -32.4208, 58.165, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891306", "mag": 1.1, "time": 1505250244890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819333, 37.604167, 3.81 ] } }, - { "type": "Feature", "properties": { "id": "ci37761383", "mag": 1.74, "time": 1505250166450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.805333, 33.691833, 15.39 ] } }, - { "type": "Feature", "properties": { "id": "ci37761375", "mag": 1.49, "time": 1505248746150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.3685, 33.956333, 12.98 ] } }, - { "type": "Feature", "properties": { "id": "ci37761367", "mag": 1.03, "time": 1505248730160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.575167, 33.465333, 9.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000al2x", "mag": 4.8, "time": 1505248700330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.19, -15.0799, 144.26 ] } }, - { "type": "Feature", "properties": { "id": "nc72891286", "mag": 2.07, "time": 1505247727770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.5795, 39.603833, -0.21 ] } }, - { "type": "Feature", "properties": { "id": "ak16821575", "mag": 1.5, "time": 1505247191039, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9811, 64.7032, 15.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000al1n", "mag": 2.7, "time": 1505247025290, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.3683, 36.7446, 14.63 ] } }, - { "type": "Feature", "properties": { "id": "nc72891281", "mag": 1.59, "time": 1505246933110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.827333, 38.839, 2.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000al1t", "mag": 4.3, "time": 1505246854930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4239, 15.7169, 52.92 ] } }, - { "type": "Feature", "properties": { "id": "nc72891276", "mag": 1.98, "time": 1505246713670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.876833, 37.8095, 14.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16850781", "mag": 1.8, "time": 1505246486363, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.5902, 57.2026, 44.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37761335", "mag": 0.96, "time": 1505246263650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.759333, 33.8575, 5.49 ] } }, - { "type": "Feature", "properties": { "id": "ci37761319", "mag": 2.18, "time": 1505245563030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.385, 32.3285, 10.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16850780", "mag": 3.0, "time": 1505245054736, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.5817, 52.3665, 32.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16821568", "mag": 1.3, "time": 1505244764083, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4179, 63.5705, 4.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72891271", "mag": 2.16, "time": 1505244492580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.146667, 40.211833, 2.94 ] } }, - { "type": "Feature", "properties": { "id": "nc72891266", "mag": 1.1, "time": 1505244145950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.875667, 38.839667, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000al0z", "mag": 4.4, "time": 1505243754080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.7715, -21.9227, 347.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16821516", "mag": 1.4, "time": 1505243650979, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5267, 60.0018, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821564", "mag": 1.6, "time": 1505243467122, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.2171, 59.7927, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000akzt", "mag": 4.7, "time": 1505243351270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -32.2455, 58.0337, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000akzf", "mag": 4.3, "time": 1505243172030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6417, 15.6677, 51.24 ] } }, - { "type": "Feature", "properties": { "id": "us2000akyq", "mag": 4.4, "time": 1505241724530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9743, 16.3622, 66.45 ] } }, - { "type": "Feature", "properties": { "id": "nc72891231", "mag": 1.19, "time": 1505241397800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.244667, 39.3805, 3.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000akyh", "mag": 4.4, "time": 1505241368140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.5996, 15.3334, 74.72 ] } }, - { "type": "Feature", "properties": { "id": "us2000aky8", "mag": 4.6, "time": 1505240973270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0643, 15.2212, 44.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16850775", "mag": 1.7, "time": 1505240703529, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2159, 59.366, 81.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000akxq", "mag": 2.8, "time": 1505240585080, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4572, 42.5165, 8.78 ] } }, - { "type": "Feature", "properties": { "id": "ak16821457", "mag": 1.1, "time": 1505238948365, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1631, 60.0754, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16850772", "mag": 1.0, "time": 1505238898070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.2683, 61.5446, 35.4 ] } }, - { "type": "Feature", "properties": { "id": "hv61905641", "mag": 2.1, "time": 1505238187460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.247667, 19.393167, 36.582 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq68", "mag": 2.8, "time": 1505237765880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.9785, 55.7766, 56.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000akwr", "mag": 4.3, "time": 1505237620800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.6779, -5.2108, 218.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16821449", "mag": 2.3, "time": 1505236529463, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.4402, 53.5209, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16821379", "mag": 2.4, "time": 1505235536293, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.4636, 60.5717, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000akvp", "mag": 4.5, "time": 1505235493410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.2449, 15.2798, 73.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq63", "mag": 3.1, "time": 1505235473870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.5043, 53.6304, 25.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16821334", "mag": 1.0, "time": 1505235138364, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.7095, 60.5946, 14.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72891191", "mag": 1.63, "time": 1505235102110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.444167, 37.384167, 12.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000akwm", "mag": 4.6, "time": 1505234310180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -58.4081, 13.9047, 20.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16821326", "mag": 1.9, "time": 1505234239386, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7021, 63.9919, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37761199", "mag": 1.12, "time": 1505233979950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.139333, 35.857167, 3.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16821324", "mag": 1.0, "time": 1505233378354, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8118, 65.9855, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16821323", "mag": 2.3, "time": 1505232589454, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.3915, 52.0051, 11.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72891166", "mag": 1.17, "time": 1505232534860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.976167, 37.596833, 8.18 ] } }, - { "type": "Feature", "properties": { "id": "us2000akua", "mag": 4.5, "time": 1505231911880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.3156, -7.5665, 115.97 ] } }, - { "type": "Feature", "properties": { "id": "ci37761183", "mag": 1.38, "time": 1505231682740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.031667, 33.866, 11.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72891131", "mag": 1.13, "time": 1505231490780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821167, 37.605, 4.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq60", "mag": 3.4, "time": 1505230949090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -171.7818, 52.0274, 61.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000akty", "mag": 4.1, "time": 1505230831380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.0909, 55.1751, 22.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000asax", "mag": 4.2, "time": 1505230532990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.919, -24.5557, 553.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000aktu", "mag": 5.0, "time": 1505230101200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9204, 15.0356, 34.73 ] } }, - { "type": "Feature", "properties": { "id": "ci37761159", "mag": 0.99, "time": 1505229927560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.794, 33.505667, 4.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000akts", "mag": 4.4, "time": 1505229916500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4589, 15.8693, 40.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16850759", "mag": 2.0, "time": 1505229684203, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.4729, 57.3614, 66.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000asau", "mag": 4.5, "time": 1505228968140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.2892, -30.4261, 12.38 ] } }, - { "type": "Feature", "properties": { "id": "us2000akt9", "mag": 4.7, "time": 1505227714260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 167.6472, -14.1046, 43.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16821264", "mag": 1.4, "time": 1505227661290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5591, 61.6356, 28.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821262", "mag": 1.8, "time": 1505227098718, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5176, 60.4846, 107.4 ] } }, - { "type": "Feature", "properties": { "id": "pr2017255006", "mag": 3.11, "time": 1505226988680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.8866, 18.066, 112.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821260", "mag": 1.3, "time": 1505226855029, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.482, 62.559, 83.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37761111", "mag": 1.33, "time": 1505226544460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.166, 34.036, 5.82 ] } }, - { "type": "Feature", "properties": { "id": "nc72891096", "mag": 1.34, "time": 1505226449930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7255, 38.788667, 1.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16850755", "mag": 1.5, "time": 1505226255965, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5898, 60.4951, 99.5 ] } }, - { "type": "Feature", "properties": { "id": "uu60244417", "mag": 1.65, "time": 1505226014340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.334667, 44.621667, 2.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq5x", "mag": 3.1, "time": 1505225597950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -171.3403, 52.1694, 67.96 ] } }, - { "type": "Feature", "properties": { "id": "uu60244407", "mag": 1.34, "time": 1505225495130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.467, 42.663667, 3.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16821259", "mag": 1.2, "time": 1505225438730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3559, 60.1768, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821258", "mag": 1.2, "time": 1505225170339, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1399, 60.3035, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821221", "mag": 1.0, "time": 1505223846302, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7846, 53.7799, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16821217", "mag": 1.4, "time": 1505223357390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7209, 60.3452, 65.8 ] } }, - { "type": "Feature", "properties": { "id": "hv61905526", "mag": 1.72, "time": 1505223290340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.929167, 19.870667, 12.697 ] } }, - { "type": "Feature", "properties": { "id": "ak16821215", "mag": 1.4, "time": 1505223177976, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.314, 60.1844, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60244352", "mag": 2.41, "time": 1505222826990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.443167, 42.595, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16821210", "mag": 1.0, "time": 1505222200792, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.0089, 61.3182, 28.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000akri", "mag": 2.9, "time": 1505221931200, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.9201, 36.2062, 6.163 ] } }, - { "type": "Feature", "properties": { "id": "ak16821207", "mag": 2.0, "time": 1505221802809, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9996, 62.229, 72.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000akrz", "mag": 2.5, "time": 1505220235620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5432, 46.8852, 12.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16821169", "mag": 1.1, "time": 1505219786301, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9544, 67.3188, 9.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16821166", "mag": 1.0, "time": 1505219272070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.0159, 59.8987, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891076", "mag": 1.16, "time": 1505219059140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820667, 37.602667, 4.12 ] } }, - { "type": "Feature", "properties": { "id": "ci37761079", "mag": 1.06, "time": 1505218941580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.819667, 33.71, 15.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16850742", "mag": 2.4, "time": 1505218654701, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4252, 51.6857, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16821165", "mag": 1.0, "time": 1505218329490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4876, 60.0043, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821163", "mag": 1.3, "time": 1505217760897, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4102, 62.0418, 78.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72891061", "mag": 0.96, "time": 1505217348960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.826333, 37.602833, 3.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16821126", "mag": 1.3, "time": 1505216937519, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1452, 62.8895, 56.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821125", "mag": 1.1, "time": 1505216743699, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.6326, 60.2201, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821120", "mag": 1.7, "time": 1505216018269, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0049, 60.6518, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16821119", "mag": 1.5, "time": 1505215652902, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.8093, 53.7706, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000akpn", "mag": 4.7, "time": 1505215606400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 101.7514, 27.9618, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16850734", "mag": 1.1, "time": 1505215354092, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0512, 61.2674, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000akpc", "mag": 4.2, "time": 1505214378050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8032, 16.1985, 37.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60244277", "mag": 1.7, "time": 1505214238510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.430167, 38.334333, 2.58 ] } }, - { "type": "Feature", "properties": { "id": "ak16821114", "mag": 1.9, "time": 1505213809149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8883, 61.2794, 95.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891031", "mag": 1.31, "time": 1505213535320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.861167, 37.426667, 3.97 ] } }, - { "type": "Feature", "properties": { "id": "uu60244252", "mag": 1.02, "time": 1505213356870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.007333, 44.7855, 7.95 ] } }, - { "type": "Feature", "properties": { "id": "ak16821079", "mag": 1.4, "time": 1505212565937, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7135, 59.8217, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72891026", "mag": 1.86, "time": 1505212446760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.801833, 35.832333, 9.72 ] } }, - { "type": "Feature", "properties": { "id": "uw61306757", "mag": 1.64, "time": 1505211458410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.728833, 46.841667, -2.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16821074", "mag": 1.9, "time": 1505210888686, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7981, 61.0848, 49.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37761007", "mag": 0.97, "time": 1505210308130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.34, 33.3915, 3.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16821073", "mag": 1.0, "time": 1505210226661, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8733, 61.5592, 31.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aknn", "mag": 4.7, "time": 1505209925680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.31, -20.0675, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16850728", "mag": 1.6, "time": 1505209600286, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4588, 61.074, 107.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60244207", "mag": 2.1, "time": 1505209143550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.465333, 42.608333, 2.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16850727", "mag": 1.6, "time": 1505208401509, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2489, 60.3172, 132.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16821071", "mag": 1.7, "time": 1505208310612, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6819, 58.4203, 78.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aknb", "mag": 4.4, "time": 1505208006490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7329, 15.7927, 47.14 ] } }, - { "type": "Feature", "properties": { "id": "ak16821038", "mag": 1.4, "time": 1505207062279, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7269, 62.2754, 47.5 ] } }, - { "type": "Feature", "properties": { "id": "pr2017255004", "mag": 3.01, "time": 1505207032870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.6503, 18.1753, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821031", "mag": 2.4, "time": 1505206694908, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4161, 60.188, 103.5 ] } }, - { "type": "Feature", "properties": { "id": "hv61905311", "mag": 2.02, "time": 1505206056030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.975333, 19.557, 44.801 ] } }, - { "type": "Feature", "properties": { "id": "ak16821027", "mag": 2.1, "time": 1505205093842, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.4164, 57.0134, 65.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq5l", "mag": 3.0, "time": 1505204765080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.2778, 52.1101, 228.97 ] } }, - { "type": "Feature", "properties": { "id": "nm60179282", "mag": 1.12, "time": 1505204172200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -89.554167, 36.472, 8.99 ] } }, - { "type": "Feature", "properties": { "id": "us2000asam", "mag": 4.1, "time": 1505203793240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 147.4651, -4.9334, 167.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16821023", "mag": 1.4, "time": 1505203680731, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.1732, 61.3766, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq5k", "mag": 2.8, "time": 1505203540370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.5128, 54.8119, 22.77 ] } }, - { "type": "Feature", "properties": { "id": "ci37760911", "mag": 1.29, "time": 1505202683830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.019667, 34.347833, 1.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16821022", "mag": 1.1, "time": 1505201992117, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4302, 65.4772, 14.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000aq5j", "mag": 3.4, "time": 1505201513110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.335, 52.1151, 36.52 ] } }, - { "type": "Feature", "properties": { "id": "nn00604832", "mag": 1.5, "time": 1505201175706, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.919, 38.3871, 7.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16821017", "mag": 1.4, "time": 1505201121331, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.8746, 64.7668, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000akm6", "mag": 4.0, "time": 1505200774070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6261, 15.7276, 39.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16821016", "mag": 1.1, "time": 1505200723657, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6326, 59.9341, 17.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72890911", "mag": 1.14, "time": 1505200493800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.835833, 37.502, -0.69 ] } }, - { "type": "Feature", "properties": { "id": "pr2017255005", "mag": 3.62, "time": 1505200390090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.7348, 17.4213, 58.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000asal", "mag": 4.5, "time": 1505200235050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 175.9237, -40.6778, 35.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16821015", "mag": 1.0, "time": 1505200050481, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0733, 62.8571, 78.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72890906", "mag": 1.85, "time": 1505199341840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.959667, 36.079833, 11.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16820976", "mag": 4.5, "time": 1505198623340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.0626, 55.2018, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16820951", "mag": 1.3, "time": 1505198176732, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6431, 63.3655, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00604828", "mag": 1.4, "time": 1505197517767, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.0826, 39.1124, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00604827", "mag": 2.8, "time": 1505197059215, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.294, 37.806, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000akla", "mag": 4.9, "time": 1505196044760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 70.8701, -26.0946, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37760839", "mag": 1.35, "time": 1505195823730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.070833, 34.124, 7.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16850710", "mag": 1.4, "time": 1505195695881, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9514, 59.3304, 53.9 ] } }, - { "type": "Feature", "properties": { "id": "uu60244052", "mag": 1.22, "time": 1505195536580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.435667, 42.555167, 6.85 ] } }, - { "type": "Feature", "properties": { "id": "us2000akkz", "mag": 4.4, "time": 1505195184110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3657, 15.4552, 61.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16820948", "mag": 1.9, "time": 1505194916797, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7632, 53.2354, 44.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16850708", "mag": 1.2, "time": 1505194707074, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5938, 63.2379, 122.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80254859", "mag": 1.15, "time": 1505194171440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527333, 46.863, 11.45 ] } }, - { "type": "Feature", "properties": { "id": "nc72890836", "mag": 1.09, "time": 1505193911680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.735833, 38.760833, 1.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000akkp", "mag": 4.6, "time": 1505193612080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8716, 15.0886, 57.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16820908", "mag": 2.5, "time": 1505193453186, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.7231, 53.1426, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000akkk", "mag": 5.3, "time": 1505192927120, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.832, 15.182, 60.95 ] } }, - { "type": "Feature", "properties": { "id": "mb80254849", "mag": 1.28, "time": 1505192738900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5175, 46.899833, 10.92 ] } }, - { "type": "Feature", "properties": { "id": "mb80254844", "mag": 1.54, "time": 1505192475320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.973833, 43.2425, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16820905", "mag": 1.1, "time": 1505191714754, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.4231, 60.1297, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72890796", "mag": 1.14, "time": 1505190808830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.835, 37.502667, -0.15 ] } }, - { "type": "Feature", "properties": { "id": "nc72890791", "mag": 1.45, "time": 1505190617760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.788, 37.455, 7.56 ] } }, - { "type": "Feature", "properties": { "id": "pr2017255003", "mag": 1.94, "time": 1505190564980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.3923, 18.5168, 23.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16850705", "mag": 1.4, "time": 1505190149086, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3144, 60.1274, 78.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16850704", "mag": 1.8, "time": 1505189303211, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.0362, 56.0678, 8.4 ] } }, - { "type": "Feature", "properties": { "id": "uu60243967", "mag": 1.29, "time": 1505189093580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.059333, 40.568667, 7.12 ] } }, - { "type": "Feature", "properties": { "id": "hv61905031", "mag": 2.8, "time": 1505189080390, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.320667, 21.633833, 8.469 ] } }, - { "type": "Feature", "properties": { "id": "pr2017255001", "mag": 2.63, "time": 1505188852110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.3921, 18.5325, 19.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80254839", "mag": 2.17, "time": 1505188197080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.530167, 46.8705, 12.49 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70235033", "mag": 2.06, "time": 1505188185670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.492167, 37.299667, 4.92 ] } }, - { "type": "Feature", "properties": { "id": "nc72890766", "mag": 2.21, "time": 1505187928020, "felt": 6, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.319833, 40.4865, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37760735", "mag": 1.81, "time": 1505187547790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.287333, 34.079667, 14.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16850702", "mag": 1.3, "time": 1505187086661, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8075, 61.2964, 89.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16850701", "mag": 1.4, "time": 1505186992230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.2832, 60.1725, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80254834", "mag": 1.19, "time": 1505186273780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.528833, 46.863667, 13.34 ] } }, - { "type": "Feature", "properties": { "id": "ci37760703", "mag": 1.89, "time": 1505185679940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.797333, 33.494667, 4.01 ] } }, - { "type": "Feature", "properties": { "id": "pr2017255002", "mag": 2.13, "time": 1505185260690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.0131, 19.0945, 24.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72890706", "mag": 2.85, "time": 1505184989380, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821333, 37.6055, 4.17 ] } }, - { "type": "Feature", "properties": { "id": "nc72890701", "mag": 1.11, "time": 1505184817490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.821333, 37.468667, -0.39 ] } }, - { "type": "Feature", "properties": { "id": "nc72890691", "mag": 2.54, "time": 1505184593110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -124.502, 40.2965, 19.04 ] } }, - { "type": "Feature", "properties": { "id": "ci37760663", "mag": 0.96, "time": 1505184048300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1715, 34.0385, 5.42 ] } }, - { "type": "Feature", "properties": { "id": "nc72890681", "mag": 1.03, "time": 1505183875680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820667, 37.4715, -1.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16820879", "mag": 1.6, "time": 1505183679937, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3232, 62.0502, 60.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16850697", "mag": 1.5, "time": 1505183127519, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0397, 60.1249, 106.2 ] } }, - { "type": "Feature", "properties": { "id": "pr2017255000", "mag": 3.99, "time": 1505182040830, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.7961, 18.688, 102.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000akii", "mag": 2.5, "time": 1505181688510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.445, 42.5935, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16850696", "mag": 1.4, "time": 1505181679899, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6734, 59.8319, 93.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16820869", "mag": 1.9, "time": 1505181012974, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.001, 59.4008, 36.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16820867", "mag": 1.9, "time": 1505180308488, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5196, 59.9375, 123.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16820865", "mag": 1.6, "time": 1505179834308, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8744, 63.0936, 89.7 ] } }, - { "type": "Feature", "properties": { "id": "uu60243827", "mag": 1.28, "time": 1505179319200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.414167, 42.53, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72890631", "mag": 0.96, "time": 1505179150280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.816, 37.475, 1.48 ] } }, - { "type": "Feature", "properties": { "id": "ci37760623", "mag": 1.18, "time": 1505178887000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.025, 36.311333, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72890616", "mag": 1.11, "time": 1505178809900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.820167, 37.474167, -0.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000akhk", "mag": 5.1, "time": 1505178756750, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.097, 15.4421, 48.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16820847", "mag": 1.9, "time": 1505178590464, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8044, 60.0035, 75.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72890606", "mag": 2.1, "time": 1505178296120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.819667, 37.471, -0.04 ] } }, - { "type": "Feature", "properties": { "id": "us2000akhe", "mag": 4.8, "time": 1505178017830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2744, 15.0853, 44.38 ] } }, - { "type": "Feature", "properties": { "id": "us2000akhb", "mag": 2.4, "time": 1505177859710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4236, 42.5422, 5.98 ] } }, - { "type": "Feature", "properties": { "id": "ci37760607", "mag": 1.78, "time": 1505177706210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.796167, 33.491167, 3.15 ] } }, - { "type": "Feature", "properties": { "id": "us2000akh7", "mag": 2.8, "time": 1505177557480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4213, 42.5825, 7.47 ] } }, - { "type": "Feature", "properties": { "id": "nc72890576", "mag": 2.34, "time": 1505177324250, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.82, 37.473, 0.51 ] } }, - { "type": "Feature", "properties": { "id": "hv61904866", "mag": 1.99, "time": 1505176986190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.857, 19.358667, 41.774 ] } }, - { "type": "Feature", "properties": { "id": "ak16820845", "mag": 1.3, "time": 1505176784517, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3458, 60.155, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72890561", "mag": 1.42, "time": 1505176270180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8195, 37.4765, -0.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16820836", "mag": 2.9, "time": 1505175684396, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1737, 62.7988, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60243772", "mag": 1.28, "time": 1505175463030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.450167, 42.593667, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000akgt", "mag": 2.7, "time": 1505175275390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.45, 42.6006, 6.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000akgp", "mag": 3.1, "time": 1505174426060, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4619, 42.5922, 9.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000amy6", "mag": 3.4, "time": 1505174223950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.0579, 52.772, 207.41 ] } }, - { "type": "Feature", "properties": { "id": "us2000amy5", "mag": 3.3, "time": 1505173482210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.0407, 51.8595, 146.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16820045", "mag": 1.1, "time": 1505171834061, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9121, 61.9185, 44.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000akg3", "mag": 4.4, "time": 1505171543900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3251, 15.4699, 53.34 ] } }, - { "type": "Feature", "properties": { "id": "nc72890511", "mag": 1.3, "time": 1505171391890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.012, 37.426833, 3.03 ] } }, - { "type": "Feature", "properties": { "id": "us2000akfs", "mag": 4.2, "time": 1505169617100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6345, 15.6178, 38.83 ] } }, - { "type": "Feature", "properties": { "id": "us2000akfr", "mag": 2.8, "time": 1505169599030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4698, 42.6061, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827363", "mag": 2.0, "time": 1505169544066, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4581, 51.6497, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16819990", "mag": 1.0, "time": 1505169272029, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.1659, 59.9838, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16827361", "mag": 1.5, "time": 1505168696545, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2029, 59.1798, 77.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37760423", "mag": 1.26, "time": 1505168688630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3355, 32.933, 10.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000akf8", "mag": 5.0, "time": 1505168453040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9567, 15.7603, 48.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16819215", "mag": 1.5, "time": 1505167702707, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4466, 62.4273, 81.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar1k", "mag": 4.4, "time": 1505167046570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 152.2966, -4.9444, 49.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72890491", "mag": 1.11, "time": 1505166863970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.544833, 37.529, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000akeb", "mag": 5.1, "time": 1505166728910, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ -178.3593, 51.5235, 54.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16819167", "mag": 1.4, "time": 1505166664445, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3213, 60.2363, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000akdz", "mag": 4.3, "time": 1505166482960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.1669, 15.1965, 62.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000akdq", "mag": 2.6, "time": 1505166481930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4105, 42.5306, 6.58 ] } }, - { "type": "Feature", "properties": { "id": "ak16827357", "mag": 2.3, "time": 1505165942611, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.8283, 55.1229, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61306477", "mag": 1.21, "time": 1505165549480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.1755, 46.198833, 3.06 ] } }, - { "type": "Feature", "properties": { "id": "nc72890461", "mag": 2.23, "time": 1505164836450, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.939, 35.641167, 4.35 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayll", "mag": 4.1, "time": 1505164739710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6724, 15.4385, 31.22 ] } }, - { "type": "Feature", "properties": { "id": "ci37760359", "mag": 2.29, "time": 1505164180230, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.940167, 35.427833, 21.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000akcq", "mag": 5.5, "time": 1505164150350, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0139, 14.9074, 27.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000akch", "mag": 2.4, "time": 1505164053450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4202, 42.5566, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827356", "mag": 1.9, "time": 1505163754769, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.4142, 51.8321, 32.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37760351", "mag": 1.47, "time": 1505163661880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.9785, 32.6095, -0.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16827355", "mag": 1.0, "time": 1505163537708, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.7591, 65.4356, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00604742", "mag": 1.3, "time": 1505163193915, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9149, 38.3846, 5.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000akbz", "mag": 4.1, "time": 1505162450200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.477, 52.2896, 65.69 ] } }, - { "type": "Feature", "properties": { "id": "mb80254709", "mag": 1.54, "time": 1505162126870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.327667, 46.1355, 6.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16818311", "mag": 2.4, "time": 1505162030333, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.0, 53.2916, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16818304", "mag": 2.2, "time": 1505161796041, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.8204, 65.319, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16818297", "mag": 2.0, "time": 1505161193751, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8659, 62.8899, 99.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16818278", "mag": 3.2, "time": 1505160763887, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.115, 63.145, 108.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80254694", "mag": 1.38, "time": 1505160716790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.540833, 46.904833, 11.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000akaa", "mag": 2.5, "time": 1505159932140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4306, 42.5727, 7.14 ] } }, - { "type": "Feature", "properties": { "id": "mb80254684", "mag": 1.16, "time": 1505159186030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.524833, 46.8675, 11.01 ] } }, - { "type": "Feature", "properties": { "id": "ak16827348", "mag": 1.2, "time": 1505158596706, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2022, 60.4231, 48.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16817479", "mag": 2.9, "time": 1505158124591, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5505, 65.8017, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16817476", "mag": 3.0, "time": 1505158119494, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2439, 66.0161, 16.1 ] } }, - { "type": "Feature", "properties": { "id": "nn00604719", "mag": 1.3, "time": 1505157785095, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8838, 38.8119, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72890441", "mag": 1.74, "time": 1505157705880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.778, 38.7915, 3.48 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak9n", "mag": 3.0, "time": 1505157604550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.471, 42.609, 7.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16817472", "mag": 1.1, "time": 1505156621773, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3067, 62.9071, 5.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16827345", "mag": 1.6, "time": 1505156304521, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3368, 59.849, 84.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16816710", "mag": 1.0, "time": 1505155839711, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7252, 63.4914, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16827343", "mag": 1.6, "time": 1505155190108, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9414, 58.9343, 71.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60243377", "mag": 2.04, "time": 1505154917000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.423167, 42.524333, 7.67 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak8v", "mag": 4.8, "time": 1505154337990, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 125.9192, 10.9561, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827342", "mag": 1.4, "time": 1505154205074, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0563, 59.7893, 104.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000akih", "mag": 3.5, "time": 1505153371450, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -8.5745, 37.1247, 19.99 ] } }, - { "type": "Feature", "properties": { "id": "ak16816675", "mag": 2.0, "time": 1505153241938, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1793, 60.2771, 148.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00604702", "mag": 1.1, "time": 1505152546779, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8175, 38.8318, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72890416", "mag": 1.57, "time": 1505151412520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8205, 37.474, -0.34 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak7u", "mag": 5.7, "time": 1505151309620, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.3373, 23.9529, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak7m", "mag": 2.5, "time": 1505151089130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4259, 42.5401, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80254649", "mag": 1.0, "time": 1505150945110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.515833, 46.859, 13.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16815885", "mag": 1.4, "time": 1505150387657, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8119, 60.5833, 13.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37760231", "mag": 1.15, "time": 1505150078250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.339833, 33.717167, -0.52 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar17", "mag": 4.5, "time": 1505148873550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -27.1014, -58.1449, 29.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar14", "mag": 4.7, "time": 1505148316830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.7999, 10.8571, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak6r", "mag": 4.4, "time": 1505148294180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 93.763, 11.1912, 135.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar16", "mag": 4.3, "time": 1505147708500, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 105.5216, 28.9426, 37.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak65", "mag": 5.0, "time": 1505146815920, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 21.5733, 39.2104, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60012999", "mag": 2.37, "time": 1505146629690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.425833, 42.545833, 6.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak62", "mag": 3.2, "time": 1505146591940, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4221, 42.5774, 8.61 ] } }, - { "type": "Feature", "properties": { "id": "ci37760191", "mag": 1.27, "time": 1505146302070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.870333, 36.5125, 7.71 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar11", "mag": 4.2, "time": 1505146234900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 169.8301, -18.5966, 222.96 ] } }, - { "type": "Feature", "properties": { "id": "ci37760183", "mag": 1.04, "time": 1505146087980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.721333, 33.538833, 2.61 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak5l", "mag": 4.4, "time": 1505145120270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9232, 15.0128, 54.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16827338", "mag": 1.8, "time": 1505144756285, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.3358, 57.9354, 144.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak5f", "mag": 4.3, "time": 1505144492050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0414, 15.1729, 45.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16815056", "mag": 1.9, "time": 1505144205558, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6743, 59.7685, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak58", "mag": 3.1, "time": 1505144033150, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4647, 42.6086, 4.31 ] } }, - { "type": "Feature", "properties": { "id": "uu60243162", "mag": 1.47, "time": 1505143989150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.462833, 42.578167, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16815038", "mag": 1.9, "time": 1505143851904, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7738, 62.154, 53.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16815036", "mag": 1.9, "time": 1505143815664, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0859, 60.2049, 139.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak57", "mag": 4.8, "time": 1505143793430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 169.1802, 54.2242, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak55", "mag": 4.3, "time": 1505143224640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 146.6506, -2.821, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak4j", "mag": 3.0, "time": 1505142692750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4148, 42.5413, 9.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak4f", "mag": 4.4, "time": 1505142409640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0513, 14.8747, 44.09 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak40", "mag": 5.0, "time": 1505141758490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3653, 15.3524, 32.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar1h", "mag": 4.9, "time": 1505141691760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.0928, -23.8876, 37.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak3s", "mag": 4.2, "time": 1505141169530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7122, 15.3112, 28.67 ] } }, - { "type": "Feature", "properties": { "id": "mb80254604", "mag": 1.16, "time": 1505141014400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.532333, 46.8915, 13.58 ] } }, - { "type": "Feature", "properties": { "id": "nc72890356", "mag": 0.96, "time": 1505141002070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.819168, 38.845001, -0.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16814255", "mag": 2.0, "time": 1505140885717, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.2937, 51.4307, 40.1 ] } }, - { "type": "Feature", "properties": { "id": "uw61306377", "mag": 1.82, "time": 1505140831500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.526167, 45.054, 14.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak3q", "mag": 4.2, "time": 1505140745590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4233, 15.4024, 50.36 ] } }, - { "type": "Feature", "properties": { "id": "ci37760143", "mag": 1.15, "time": 1505140731290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.260667, 32.865667, 12.62 ] } }, - { "type": "Feature", "properties": { "id": "nc72890351", "mag": 1.47, "time": 1505140721900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.98, 37.905667, 7.94 ] } }, - { "type": "Feature", "properties": { "id": "pr2017254001", "mag": 1.99, "time": 1505140527660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.1661, 18.2745, 22.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak3b", "mag": 2.7, "time": 1505140375620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4329, 42.6048, 10.74 ] } }, - { "type": "Feature", "properties": { "id": "uu60243057", "mag": 2.26, "time": 1505140157270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.440667, 42.570833, 6.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak35", "mag": 2.8, "time": 1505139740960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4268, 42.5293, 6.86 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar1f", "mag": 4.4, "time": 1505139719640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -33.2097, 57.3966, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak30", "mag": 2.8, "time": 1505139413770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4261, 42.5344, 6.18 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak2x", "mag": 2.8, "time": 1505139156090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4192, 42.5317, 7.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72890336", "mag": 1.18, "time": 1505138783780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.788833, 37.4565, 7.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak5e", "mag": 3.4, "time": 1505138730330, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4143, 42.5438, 7.19 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak2i", "mag": 2.7, "time": 1505138706230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4164, 42.5288, 7.13 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak2w", "mag": 4.2, "time": 1505138643370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 147.2941, 49.241, 567.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16813499", "mag": 2.0, "time": 1505138537316, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.7415, 61.4216, 18.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak25", "mag": 2.7, "time": 1505138348200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4259, 42.5325, 7.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0y", "mag": 4.6, "time": 1505138171510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 95.9326, 17.4028, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16813481", "mag": 1.9, "time": 1505137989499, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3857, 59.1724, 56.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak1y", "mag": 2.6, "time": 1505137521110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4339, 42.5419, 8.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak1r", "mag": 2.9, "time": 1505137114700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4362, 42.5456, 6.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak1m", "mag": 3.0, "time": 1505136985250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4366, 42.5476, 10.03 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0x", "mag": 4.6, "time": 1505136879610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 94.6908, 22.421, 111.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16813475", "mag": 2.1, "time": 1505136538402, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.5913, 51.4481, 48.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak17", "mag": 4.7, "time": 1505136395640, "felt": 63, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4397, 42.547, 8.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar13", "mag": 4.3, "time": 1505136238290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.0316, -19.7635, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37760103", "mag": 1.09, "time": 1505136097380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.293, 35.087333, 5.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16812727", "mag": 2.6, "time": 1505135732771, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9083, 64.6086, 14.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16812725", "mag": 1.1, "time": 1505135440719, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.9809, 60.2846, 15.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16812722", "mag": 1.3, "time": 1505135255673, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2227, 61.5128, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00604646", "mag": 1.4, "time": 1505134420760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0108, 37.3174, 5.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72890261", "mag": 1.53, "time": 1505134375000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.944, 37.596667, 2.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16812712", "mag": 1.2, "time": 1505134108855, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0572, 63.3368, 5.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72890256", "mag": 2.28, "time": 1505133958310, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.804, 37.487667, 2.35 ] } }, - { "type": "Feature", "properties": { "id": "ak16827325", "mag": 1.0, "time": 1505133922020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6291, 68.5279, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16827324", "mag": 2.0, "time": 1505133892582, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.5495, 51.3476, 48.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak0e", "mag": 2.5, "time": 1505133857280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4384, 42.5522, 4.67 ] } }, - { "type": "Feature", "properties": { "id": "uu60242837", "mag": 1.53, "time": 1505133790240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.424667, 42.5545, 3.92 ] } }, - { "type": "Feature", "properties": { "id": "hv61904231", "mag": 1.21, "time": 1505133342610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.6145, 19.417333, 2.362 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak05", "mag": 4.1, "time": 1505133270220, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4421, 42.5481, 9.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak03", "mag": 2.7, "time": 1505133174850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4364, 42.5648, 8.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16812710", "mag": 1.0, "time": 1505133166684, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8559, 62.6857, 65.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0u", "mag": 4.2, "time": 1505133047670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -179.1594, -25.8043, 396.76 ] } }, - { "type": "Feature", "properties": { "id": "nn00604676", "mag": 1.2, "time": 1505132161656, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9061, 38.3603, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16811973", "mag": 1.1, "time": 1505132086727, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8547, 61.7247, 43.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16811972", "mag": 1.5, "time": 1505132009437, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3277, 62.9497, 102.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajzy", "mag": 2.5, "time": 1505131814160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4451, 42.6131, 6.65 ] } }, - { "type": "Feature", "properties": { "id": "mb80254459", "mag": 2.11, "time": 1505131462070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.591167, 48.595333, 11.25 ] } }, - { "type": "Feature", "properties": { "id": "ak16811969", "mag": 1.3, "time": 1505131136327, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.0317, 60.2939, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37760055", "mag": 1.58, "time": 1505130502980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.1345, 33.263, 3.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajzq", "mag": 3.0, "time": 1505130391090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4364, 42.5733, 9.58 ] } }, - { "type": "Feature", "properties": { "id": "ak16811954", "mag": 3.1, "time": 1505130323357, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.1197, 60.1444, 17.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0t", "mag": 4.0, "time": 1505129120720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.0508, -16.1442, 368.85 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajzk", "mag": 4.5, "time": 1505129105150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -74.1346, -37.5234, 25.58 ] } }, - { "type": "Feature", "properties": { "id": "nc72890236", "mag": 2.17, "time": 1505128675290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.822, 37.459167, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16827315", "mag": 2.3, "time": 1505128561623, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.8371, 52.7853, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16811944", "mag": 1.3, "time": 1505128093436, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.0565, 64.7051, 17.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16811204", "mag": 1.3, "time": 1505127768013, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.9834, 54.7566, 4.6 ] } }, - { "type": "Feature", "properties": { "id": "hv61904116", "mag": 2.16, "time": 1505127753700, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.28183, 19.407, 0.02 ] } }, - { "type": "Feature", "properties": { "id": "ci37760031", "mag": 2.03, "time": 1505127492210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.712, 33.879333, 13.03 ] } }, - { "type": "Feature", "properties": { "id": "ak16827311", "mag": 1.5, "time": 1505127421795, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.853, 59.6229, 96.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16811203", "mag": 1.3, "time": 1505127015264, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6217, 68.5348, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16811201", "mag": 1.5, "time": 1505126914844, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1251, 64.9961, 18.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16811199", "mag": 1.6, "time": 1505125956806, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.5218, 65.7316, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16811198", "mag": 1.6, "time": 1505125657616, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.3884, 53.8156, 54.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72890226", "mag": 1.01, "time": 1505125359080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.753998, 38.790165, 3.35 ] } }, - { "type": "Feature", "properties": { "id": "ci37760023", "mag": 1.32, "time": 1505125346420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.25, 34.0295, 14.73 ] } }, - { "type": "Feature", "properties": { "id": "ci37760015", "mag": 1.79, "time": 1505125221750, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.210667, 33.964, 14.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16811192", "mag": 1.6, "time": 1505124596279, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.4191, 53.5639, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajy4", "mag": 3.0, "time": 1505124017240, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4438, 42.5496, 7.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16811190", "mag": 1.5, "time": 1505123878146, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2865, 60.4132, 89.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16811188", "mag": 1.0, "time": 1505123692728, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3358, 61.5763, 29.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72890206", "mag": 0.98, "time": 1505123643110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.747167, 37.409167, 5.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16811186", "mag": 1.6, "time": 1505123476693, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.8224, 59.7877, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajxv", "mag": 2.9, "time": 1505123164250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4237, 42.5673, 7.37 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajxj", "mag": 4.3, "time": 1505122591560, "felt": 25, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4287, 42.5544, 2.24 ] } }, - { "type": "Feature", "properties": { "id": "uu60242567", "mag": 2.2, "time": 1505122522080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4315, 42.546167, 6.37 ] } }, - { "type": "Feature", "properties": { "id": "ci37759983", "mag": 1.63, "time": 1505121892310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.268167, 34.059667, 16.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16810446", "mag": 2.6, "time": 1505121756650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4598, 60.9205, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16810443", "mag": 1.2, "time": 1505121065274, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.565, 68.8276, 0.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37759967", "mag": 1.22, "time": 1505119075410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.577833, 33.463, 8.81 ] } }, - { "type": "Feature", "properties": { "id": "uw61306317", "mag": 1.48, "time": 1505118779800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.494333, 48.421333, 23.39 ] } }, - { "type": "Feature", "properties": { "id": "uu60242517", "mag": 2.59, "time": 1505118734680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -109.851333, 41.686167, 9.37 ] } }, - { "type": "Feature", "properties": { "id": "pr2017254000", "mag": 3.41, "time": 1505118382390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.9758, 19.4726, 83.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16809713", "mag": 1.0, "time": 1505117722024, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.6659, 62.2481, 21.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16809711", "mag": 3.4, "time": 1505116920134, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.5449, 52.5632, 40.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajwn", "mag": 4.4, "time": 1505116663270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9806, 15.3004, 56.84 ] } }, - { "type": "Feature", "properties": { "id": "ci37759959", "mag": 1.14, "time": 1505116447350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2325, 33.327833, 10.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajwc", "mag": 2.7, "time": 1505116217360, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4585, 42.6238, 8.02 ] } }, - { "type": "Feature", "properties": { "id": "uu60242452", "mag": 1.42, "time": 1505115184130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4215, 42.555167, 8.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajw6", "mag": 4.3, "time": 1505114696270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.1399, -24.246, 215.32 ] } }, - { "type": "Feature", "properties": { "id": "ak16809708", "mag": 1.5, "time": 1505114006947, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8258, 60.1009, 45.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16827294", "mag": 1.9, "time": 1505113098912, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.8676, 59.0889, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "mb80254374", "mag": 1.5, "time": 1505112921190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.529333, 46.8645, 12.3 ] } }, - { "type": "Feature", "properties": { "id": "ci37759927", "mag": 2.02, "time": 1505112772010, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.403, 34.906, 11.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16809693", "mag": 2.3, "time": 1505111147899, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.1691, 60.3968, 3.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72890121", "mag": 1.12, "time": 1505109941490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.819168, 38.807335, 2.77 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajvf", "mag": 2.9, "time": 1505109741010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4688, 42.5774, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajva", "mag": 4.3, "time": 1505109063560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9711, 15.3853, 85.78 ] } }, - { "type": "Feature", "properties": { "id": "nc72890106", "mag": 1.68, "time": 1505108835910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.298667, 36.839667, 6.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16809690", "mag": 2.3, "time": 1505108549578, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.9816, 56.0816, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajv3", "mag": 2.5, "time": 1505108046520, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4343, 42.6729, 8.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajuy", "mag": 4.3, "time": 1505107771280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.0235, 15.4152, 96.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16827288", "mag": 1.8, "time": 1505107165861, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.0716, 53.7182, 69.4 ] } }, - { "type": "Feature", "properties": { "id": "uw61306307", "mag": 1.9, "time": 1505107163540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.039333, 46.874833, 6.58 ] } }, - { "type": "Feature", "properties": { "id": "nc72890096", "mag": 1.14, "time": 1505106775000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.0835, 41.351667, 6.69 ] } }, - { "type": "Feature", "properties": { "id": "ak16809640", "mag": 2.4, "time": 1505106550298, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8937, 61.0452, 165.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16808961", "mag": 1.6, "time": 1505105485577, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1953, 59.1308, 77.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajuh", "mag": 4.0, "time": 1505105288350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1177, 14.9912, 39.36 ] } }, - { "type": "Feature", "properties": { "id": "uu60242387", "mag": 2.04, "time": 1505105195110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4145, 42.553333, 8.78 ] } }, - { "type": "Feature", "properties": { "id": "ci37759879", "mag": 1.88, "time": 1505105166860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.690333, 36.111167, 2.14 ] } }, - { "type": "Feature", "properties": { "id": "uu60242382", "mag": 1.62, "time": 1505105133670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.917167, 39.7665, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajua", "mag": 4.2, "time": 1505104652010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.1678, 15.2785, 67.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000aju8", "mag": 4.3, "time": 1505104387690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 134.2896, -4.2452, 11.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000aju4", "mag": 4.2, "time": 1505104376590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8401, 15.5681, 47.06 ] } }, - { "type": "Feature", "properties": { "id": "ak16808959", "mag": 1.5, "time": 1505103598244, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.9778, 58.2872, 74.3 ] } }, - { "type": "Feature", "properties": { "id": "uw61306297", "mag": 2.04, "time": 1505103582560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.041833, 46.873833, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "uw61306292", "mag": 2.25, "time": 1505103114370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.041333, 46.872667, 6.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16827283", "mag": 1.6, "time": 1505102962401, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.439, 59.7864, 127.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16827279", "mag": 1.3, "time": 1505101851739, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7785, 59.9173, 97.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0i", "mag": 4.1, "time": 1505101626150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 152.4651, -10.314, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759855", "mag": 1.09, "time": 1505101001790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.693833, 36.111833, 2.19 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajtf", "mag": 3.6, "time": 1505100425300, "felt": 34, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.7392, 35.5637, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0g", "mag": 4.3, "time": 1505099718750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -33.3922, 57.1877, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16808239", "mag": 1.2, "time": 1505099609741, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.1984, 60.4559, 13.3 ] } }, - { "type": "Feature", "properties": { "id": "mb80254349", "mag": 1.33, "time": 1505099352010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.536833, 46.868167, 13.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16808202", "mag": 1.5, "time": 1505098597935, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.3852, 59.9636, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16808197", "mag": 1.0, "time": 1505098478421, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2252, 63.2571, 2.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16808189", "mag": 2.2, "time": 1505098007693, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -137.7551, 60.3801, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajt6", "mag": 3.1, "time": 1505097902820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -137.7475, 60.3735, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajt7", "mag": 5.1, "time": 1505097732030, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 134.3851, -4.1892, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16808181", "mag": 1.1, "time": 1505097584665, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6756, 61.6922, 62.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajt5", "mag": 3.0, "time": 1505097294300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4685, 42.672, 9.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajt2", "mag": 2.8, "time": 1505097280810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4535, 42.6306, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0e", "mag": 4.3, "time": 1505096741600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 122.0697, 24.7471, 68.23 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajsz", "mag": 4.7, "time": 1505096631090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9001, 15.6517, 51.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16807505", "mag": 1.3, "time": 1505096509471, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.9046, 61.531, 28.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16807502", "mag": 1.6, "time": 1505096282982, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.2586, 62.549, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72890026", "mag": 1.21, "time": 1505096190960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.009667, 37.590833, -0.07 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajsw", "mag": 4.2, "time": 1505095770400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.418, 15.8113, 56.97 ] } }, - { "type": "Feature", "properties": { "id": "ak16807468", "mag": 1.2, "time": 1505095529647, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0357, 62.0888, 52.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37759783", "mag": 2.05, "time": 1505095452510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.502333, 35.679, 6.19 ] } }, - { "type": "Feature", "properties": { "id": "nc72890021", "mag": 1.71, "time": 1505095034230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.535667, 37.632333, 19.33 ] } }, - { "type": "Feature", "properties": { "id": "ci37759775", "mag": 1.34, "time": 1505095022580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.507333, 34.488, 1.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajsk", "mag": 4.6, "time": 1505093529680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 143.5451, 12.9836, 114.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16827267", "mag": 1.3, "time": 1505093440775, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1537, 59.7401, 106.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37759759", "mag": 1.69, "time": 1505093145730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.798167, 33.493667, 3.61 ] } }, - { "type": "Feature", "properties": { "id": "nn00604614", "mag": 1.5, "time": 1505092989312, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.6589, 37.3487, 6.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar1r", "mag": 3.5, "time": 1505092806050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 170.8111, 53.8607, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ar0b", "mag": 4.2, "time": 1505092783010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 95.953, 17.3198, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61903861", "mag": 1.26, "time": 1505092321650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.490333, 19.339667, 9.09 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajsh", "mag": 4.1, "time": 1505092219210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 129.972, -6.9548, 134.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16806794", "mag": 1.3, "time": 1505092129494, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3457, 60.4497, 89.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16827265", "mag": 1.1, "time": 1505091880397, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6719, 63.2902, 124.6 ] } }, - { "type": "Feature", "properties": { "id": "uu60242262", "mag": 2.47, "time": 1505091634360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.440667, 42.578333, 7.23 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajsf", "mag": 2.3, "time": 1505091431720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.443, 42.5904, 7.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16827264", "mag": 1.3, "time": 1505091007359, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.0095, 58.5704, 86.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72890011", "mag": 1.58, "time": 1505090685010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.832333, 37.542333, 4.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37759743", "mag": 1.01, "time": 1505090624240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.589167, 36.0335, 2.63 ] } }, - { "type": "Feature", "properties": { "id": "us2000amxb", "mag": 3.0, "time": 1505090296990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.554, 51.5916, 17.56 ] } }, - { "type": "Feature", "properties": { "id": "nc72890001", "mag": 0.97, "time": 1505089976320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.831, 37.541833, 4.79 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajsa", "mag": 4.9, "time": 1505089942200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9938, 15.3932, 58.95 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajs1", "mag": 3.2, "time": 1505088752720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4151, 42.563, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajrw", "mag": 4.4, "time": 1505087147130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.4901, 14.0924, 54.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16806048", "mag": 1.2, "time": 1505085946916, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.3481, 62.1328, 10.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37759727", "mag": 1.54, "time": 1505085941950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.663167, 35.044, -0.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajrn", "mag": 2.4, "time": 1505085758040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4372, 42.584, 3.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16827727", "mag": 1.2, "time": 1505085448361, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0012, 60.1398, 104.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajrh", "mag": 2.4, "time": 1505084625610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4614, 42.6018, 5.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajre", "mag": 3.0, "time": 1505084186000, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4583, 42.5935, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16805384", "mag": 1.3, "time": 1505084019928, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9225, 60.1912, 51.8 ] } }, - { "type": "Feature", "properties": { "id": "pr2017253006", "mag": 3.55, "time": 1505083663180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.7241, 19.5025, 24.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759703", "mag": 1.47, "time": 1505083414820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.164, 34.038833, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759695", "mag": 2.37, "time": 1505083359860, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.166167, 34.037667, 6.01 ] } }, - { "type": "Feature", "properties": { "id": "ci37759687", "mag": 1.26, "time": 1505083316070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.166667, 34.039167, 6.08 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70234968", "mag": 1.57, "time": 1505083207900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.877167, 37.229167, 3.02 ] } }, - { "type": "Feature", "properties": { "id": "ci37759679", "mag": 1.03, "time": 1505082787240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.290167, 35.090833, 2.62 ] } }, - { "type": "Feature", "properties": { "id": "uu60242127", "mag": 1.52, "time": 1505082515530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.439, 42.5855, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16805375", "mag": 2.0, "time": 1505082468672, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2261, 62.1899, 53.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16805361", "mag": 2.4, "time": 1505082389962, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8636, 68.2355, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajq9", "mag": 3.3, "time": 1505081821360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4511, 42.5959, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889956", "mag": 1.01, "time": 1505081275110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.790333, 37.452833, 8.21 ] } }, - { "type": "Feature", "properties": { "id": "ak16805341", "mag": 2.5, "time": 1505081090999, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.9101, 57.044, 46.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajpe", "mag": 5.9, "time": 1505079621210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -33.6765, 57.1272, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889936", "mag": 1.22, "time": 1505079295950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.937667, 37.601667, 1.02 ] } }, - { "type": "Feature", "properties": { "id": "nc72889931", "mag": 1.1, "time": 1505078962470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.806, 37.5175, -2.34 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajp8", "mag": 2.8, "time": 1505078892060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4509, 42.5792, 6.22 ] } }, - { "type": "Feature", "properties": { "id": "uw61306227", "mag": 1.13, "time": 1505078465000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.011167, 46.792, 5.12 ] } }, - { "type": "Feature", "properties": { "id": "uu60241997", "mag": 1.44, "time": 1505078100230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.422167, 42.554167, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827720", "mag": 1.0, "time": 1505077902054, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.0938, 58.0932, 50.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72889921", "mag": 1.74, "time": 1505077579730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.941333, 37.642833, 0.01 ] } }, - { "type": "Feature", "properties": { "id": "nc72889926", "mag": 1.62, "time": 1505077560070, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.946167, 37.638667, -0.65 ] } }, - { "type": "Feature", "properties": { "id": "nc72889911", "mag": 0.99, "time": 1505077390170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.394833, 36.9325, 8.56 ] } }, - { "type": "Feature", "properties": { "id": "pr2017253005", "mag": 2.52, "time": 1505077373570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.714, 18.0166, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889916", "mag": 0.95, "time": 1505077317230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.881833, 37.512333, -0.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16804640", "mag": 1.6, "time": 1505077302019, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.5368, 58.8361, 122.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajnd", "mag": 4.5, "time": 1505076424950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2595, 15.0768, 55.96 ] } }, - { "type": "Feature", "properties": { "id": "nn00604604", "mag": 1.4, "time": 1505076297106, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.9555, 40.8314, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16803984", "mag": 1.3, "time": 1505076289998, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1907, 63.4845, 0.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajms", "mag": 3.3, "time": 1505075535460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4239, 42.5436, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00604570", "mag": 1.1, "time": 1505075507371, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.8807, 36.8036, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16827715", "mag": 1.2, "time": 1505074869438, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7422, 60.0074, 102.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16803877", "mag": 1.0, "time": 1505074842648, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.4194, 63.2783, 7.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajm5", "mag": 2.5, "time": 1505074494700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4599, 42.5711, 10.61 ] } }, - { "type": "Feature", "properties": { "id": "hv61903706", "mag": 1.86, "time": 1505074128010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.273331, 19.413166, 0.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajlx", "mag": 3.2, "time": 1505074034020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.42, 42.5453, 7.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16803869", "mag": 1.2, "time": 1505073920064, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7217, 63.3651, 4.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajls", "mag": 4.3, "time": 1505073807210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -69.114, -23.6018, 85.28 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajlp", "mag": 4.6, "time": 1505073492510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 13.2839, 42.1689, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759623", "mag": 1.13, "time": 1505073299090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.162, 34.035333, 6.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajlc", "mag": 2.7, "time": 1505072667200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.6178, 36.1361, 5.301 ] } }, - { "type": "Feature", "properties": { "id": "mb80254244", "mag": 1.15, "time": 1505072506030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527667, 46.862667, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000akfw", "mag": 3.1, "time": 1505072325000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4094, 42.5488, 7.85 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajl5", "mag": 2.7, "time": 1505072221960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4249, 42.5451, 9.42 ] } }, - { "type": "Feature", "properties": { "id": "nc72889901", "mag": 1.7, "time": 1505072189820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.784833, 38.824667, 1.65 ] } }, - { "type": "Feature", "properties": { "id": "nc72889906", "mag": 1.54, "time": 1505072140190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.153, 37.129167, 12.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72889891", "mag": 1.28, "time": 1505070945740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.891, 37.544167, 1.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16803197", "mag": 2.5, "time": 1505070454371, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.4505, 54.6854, 60.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajkd", "mag": 4.1, "time": 1505070312980, "felt": 41, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4177, 42.5563, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889881", "mag": 1.58, "time": 1505069810220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.149, 37.1305, 12.32 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajkz", "mag": 2.4, "time": 1505069780800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4181, 42.5449, 7.46 ] } }, - { "type": "Feature", "properties": { "id": "pr2017253004", "mag": 3.24, "time": 1505069521610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -65.0411, 19.2021, 48.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61903656", "mag": 1.57, "time": 1505069138690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.104167, 19.329333, 5.178 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajjx", "mag": 2.9, "time": 1505068769580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4153, 42.5555, 7.28 ] } }, - { "type": "Feature", "properties": { "id": "ak16802543", "mag": 1.6, "time": 1505068750842, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6404, 58.5519, 66.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajju", "mag": 2.5, "time": 1505068746720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -104.9924, 37.0464, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72889876", "mag": 1.12, "time": 1505068188960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.315667, 36.955833, 7.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajjp", "mag": 2.3, "time": 1505068125580, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.1711, 35.6565, 7.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajjl", "mag": 2.4, "time": 1505067921890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4388, 42.6003, 7.21 ] } }, - { "type": "Feature", "properties": { "id": "ci37759607", "mag": 1.53, "time": 1505067791950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.169667, 34.037167, 4.29 ] } }, - { "type": "Feature", "properties": { "id": "ci37759599", "mag": 0.99, "time": 1505067584720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.163333, 34.028, 2.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajn9", "mag": 2.7, "time": 1505067322220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.5732, 52.3355, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827705", "mag": 1.3, "time": 1505067315004, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7536, 59.2097, 68.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889866", "mag": 1.0, "time": 1505067136160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.764168, 38.833, 0.66 ] } }, - { "type": "Feature", "properties": { "id": "nc72889861", "mag": 1.06, "time": 1505067131030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.759667, 38.833667, 1.17 ] } }, - { "type": "Feature", "properties": { "id": "ak16802540", "mag": 1.3, "time": 1505066586033, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.3745, 62.1772, 42.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37759591", "mag": 1.48, "time": 1505066404370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.166333, 34.044667, 5.25 ] } }, - { "type": "Feature", "properties": { "id": "ci37759583", "mag": 1.53, "time": 1505066395290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.163333, 34.041167, 5.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16827703", "mag": 1.0, "time": 1505066200905, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.7529, 58.6862, 17.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759567", "mag": 1.34, "time": 1505066082610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.163833, 34.040667, 6.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16802539", "mag": 1.1, "time": 1505065957419, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0268, 60.5262, 19.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajjb", "mag": 2.5, "time": 1505065916650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4209, 42.5639, 8.61 ] } }, - { "type": "Feature", "properties": { "id": "ci37759559", "mag": 1.32, "time": 1505065772840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2325, 34.474333, 11.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16802537", "mag": 1.3, "time": 1505065364910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.2942, 63.1472, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759551", "mag": 1.1, "time": 1505065150010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.172667, 34.034333, 5.23 ] } }, - { "type": "Feature", "properties": { "id": "ci37759543", "mag": 1.69, "time": 1505064387890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.295, 35.088667, 4.44 ] } }, - { "type": "Feature", "properties": { "id": "ak16802513", "mag": 1.5, "time": 1505064158942, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -145.1889, 65.0868, 19.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajj3", "mag": 4.4, "time": 1505063935670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 82.4969, 41.9157, 28.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajiy", "mag": 2.7, "time": 1505063902750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4577, 42.6058, 5.68 ] } }, - { "type": "Feature", "properties": { "id": "uu60241602", "mag": 1.36, "time": 1505063711640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.415333, 42.567, 9.66 ] } }, - { "type": "Feature", "properties": { "id": "ci37759535", "mag": 1.1, "time": 1505063618920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.165167, 34.041667, 6.46 ] } }, - { "type": "Feature", "properties": { "id": "nc72889821", "mag": 1.62, "time": 1505063575750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.157167, 37.135667, 10.29 ] } }, - { "type": "Feature", "properties": { "id": "nc72889816", "mag": 1.01, "time": 1505063492860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.774667, 35.547833, 5.09 ] } }, - { "type": "Feature", "properties": { "id": "ci37759527", "mag": 2.15, "time": 1505063398380, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.238167, 34.467833, 11.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajih", "mag": 2.5, "time": 1505062945810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4296, 42.5627, 11.62 ] } }, - { "type": "Feature", "properties": { "id": "nc72889806", "mag": 2.49, "time": 1505062781340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.801833, 38.789333, 3.19 ] } }, - { "type": "Feature", "properties": { "id": "uu60013054", "mag": 1.65, "time": 1505062641290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.444, 42.594667, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "uu60241572", "mag": 2.02, "time": 1505062621720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.432167, 42.5965, 4.48 ] } }, - { "type": "Feature", "properties": { "id": "ci37759519", "mag": 1.59, "time": 1505062248460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.167, 34.038667, 4.49 ] } }, - { "type": "Feature", "properties": { "id": "ci37759511", "mag": 1.92, "time": 1505062179580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.165, 34.039333, 4.98 ] } }, - { "type": "Feature", "properties": { "id": "ci37759503", "mag": 1.57, "time": 1505062145210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.164167, 34.037667, 5.25 ] } }, - { "type": "Feature", "properties": { "id": "ci37759495", "mag": 1.42, "time": 1505061900480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.165667, 34.038667, 5.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16801882", "mag": 1.1, "time": 1505061849133, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.1509, 60.3803, 7.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759487", "mag": 1.49, "time": 1505061523920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.893, 35.343333, 5.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16801880", "mag": 1.5, "time": 1505061368254, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.731, 60.0161, 6.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37759471", "mag": 1.2, "time": 1505061266330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.167333, 34.040167, 4.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajn8", "mag": 3.4, "time": 1505060976520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.3264, 52.5377, 96.17 ] } }, - { "type": "Feature", "properties": { "id": "ci37759455", "mag": 1.41, "time": 1505060968220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.8935, 35.3405, 5.83 ] } }, - { "type": "Feature", "properties": { "id": "ak16801858", "mag": 1.5, "time": 1505060123211, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4433, 51.6859, 21.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16801272", "mag": 1.1, "time": 1505059792074, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.1384, 63.4871, 1.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16827692", "mag": 2.2, "time": 1505059542515, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.3922, 52.3983, 21.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72889781", "mag": 1.29, "time": 1505059412980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.943667, 37.596167, 2.31 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajqf", "mag": 4.6, "time": 1505058668170, "felt": 49, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 139.1945, 35.7377, 54.25 ] } }, - { "type": "Feature", "properties": { "id": "nc72889766", "mag": 1.32, "time": 1505058489100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.046333, 38.9295, 0.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajhi", "mag": 2.5, "time": 1505058212500, "felt": 9, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.7958, 35.9926, 4.398 ] } }, - { "type": "Feature", "properties": { "id": "ak16801236", "mag": 1.4, "time": 1505058208151, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.9025, 57.4691, 48.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37759407", "mag": 1.83, "time": 1505057535880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.3395, 34.014333, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000artt", "mag": 4.2, "time": 1505057483820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.9272, 37.8866, 41.94 ] } }, - { "type": "Feature", "properties": { "id": "ak16827688", "mag": 1.7, "time": 1505057440690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7035, 58.208, 3.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajh6", "mag": 4.6, "time": 1505057331420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4383, 15.2976, 42.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajh4", "mag": 2.6, "time": 1505057207380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4289, 42.5593, 7.96 ] } }, - { "type": "Feature", "properties": { "id": "ak16827687", "mag": 1.5, "time": 1505057001386, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4181, 51.7014, 6.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajh2", "mag": 4.2, "time": 1505056916120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2576, 14.9344, 12.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajgy", "mag": 2.5, "time": 1505056755330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.7823, 37.3283, 5.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16827686", "mag": 1.1, "time": 1505056731493, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.8679, 57.3821, 46.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajgx", "mag": 2.8, "time": 1505056639060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4498, 42.5804, 5.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16827685", "mag": 1.2, "time": 1505056471867, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.1402, 60.9584, 19.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajgu", "mag": 2.5, "time": 1505056401260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4462, 42.5738, 5.62 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajgm", "mag": 4.9, "time": 1505055545760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 146.6784, 14.1109, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759383", "mag": 1.0, "time": 1505055131400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.169167, 34.0425, 5.43 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajge", "mag": 3.4, "time": 1505054862840, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4185, 42.5625, 9.41 ] } }, - { "type": "Feature", "properties": { "id": "ak16800620", "mag": 1.1, "time": 1505054600546, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7386, 61.4915, 80.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajgc", "mag": 3.1, "time": 1505054298370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4151, 42.55, 7.52 ] } }, - { "type": "Feature", "properties": { "id": "ak16800576", "mag": 2.5, "time": 1505054208776, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9361, 60.2731, 64.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72889746", "mag": 1.38, "time": 1505053809310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.442, 37.695667, 4.15 ] } }, - { "type": "Feature", "properties": { "id": "pr2017253003", "mag": 2.17, "time": 1505052857240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.2868, 18.1121, 18.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajg9", "mag": 2.9, "time": 1505052838460, "felt": 11, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5162, 46.8743, 14.72 ] } }, - { "type": "Feature", "properties": { "id": "nc72889741", "mag": 1.38, "time": 1505052751930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.824333, 38.060667, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16799977", "mag": 1.0, "time": 1505052033903, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.8767, 61.5617, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "mb80254079", "mag": 1.59, "time": 1505051737640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.410667, 44.4485, 6.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16799971", "mag": 1.7, "time": 1505051381698, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.7235, 59.8179, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajfa", "mag": 4.3, "time": 1505051330480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -90.3498, 13.069, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajf7", "mag": 4.0, "time": 1505050961060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.3526, 52.4771, 237.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16799942", "mag": 1.7, "time": 1505050892677, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6731, 59.5546, 120.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajf3", "mag": 4.6, "time": 1505050808670, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.529, 15.6631, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajf0", "mag": 4.5, "time": 1505050687090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4173, 15.2922, 52.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000artu", "mag": 4.1, "time": 1505050610220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 128.1836, -7.5542, 159.39 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajex", "mag": 4.3, "time": 1505049954620, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.6306, 15.7653, 20.71 ] } }, - { "type": "Feature", "properties": { "id": "ci37759303", "mag": 1.26, "time": 1505049848270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7985, 33.504667, 4.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajeq", "mag": 2.8, "time": 1505049297970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4232, 42.5578, 7.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16799353", "mag": 1.3, "time": 1505049096103, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6348, 59.8194, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajen", "mag": 3.0, "time": 1505048991180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4182, 42.5509, 7.02 ] } }, - { "type": "Feature", "properties": { "id": "ak16827673", "mag": 1.6, "time": 1505048796797, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -167.3116, 53.3278, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajej", "mag": 2.6, "time": 1505048615320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4688, 42.6115, 6.14 ] } }, - { "type": "Feature", "properties": { "id": "mb80254034", "mag": 1.41, "time": 1505048540860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.521667, 46.8615, 12.53 ] } }, - { "type": "Feature", "properties": { "id": "mb80254029", "mag": 1.23, "time": 1505048399750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.521167, 46.853, 11.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16799346", "mag": 2.0, "time": 1505048306207, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2292, 62.187, 56.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000aje5", "mag": 4.4, "time": 1505047810980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -87.8604, 12.4905, 60.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000aje3", "mag": 3.6, "time": 1505047519260, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4283, 42.5536, 6.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000aje1", "mag": 2.8, "time": 1505047427230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4487, 42.6011, 5.82 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajdz", "mag": 2.5, "time": 1505047141140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4433, 42.6033, 3.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajm3", "mag": 3.4, "time": 1505046945740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.4897, 52.4554, 37.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajdq", "mag": 3.1, "time": 1505046464560, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4503, 42.6011, 4.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16827668", "mag": 1.6, "time": 1505046395510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3819, 59.8907, 133.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajdf", "mag": 3.9, "time": 1505045951750, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4091, 42.5736, 10.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajdd", "mag": 3.1, "time": 1505045857190, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4617, 42.6284, 4.97 ] } }, - { "type": "Feature", "properties": { "id": "uu60241107", "mag": 2.14, "time": 1505045641970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.427, 42.59, 6.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16798742", "mag": 1.3, "time": 1505045327481, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3496, 69.231, 1.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajd9", "mag": 4.3, "time": 1505045213250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.1554, 14.0483, 13.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajd2", "mag": 4.5, "time": 1505044829750, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.4915, 15.8549, 21.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16798732", "mag": 2.6, "time": 1505044761546, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.966, 59.8093, 102.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajcy", "mag": 2.6, "time": 1505044665510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.5652, 42.6019, 9.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000artq", "mag": 4.4, "time": 1505044070510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 120.6016, 12.9144, 38.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16827665", "mag": 1.6, "time": 1505043947734, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3635, 51.6272, 0.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajci", "mag": 2.9, "time": 1505043647160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4487, 42.6201, 8.65 ] } }, - { "type": "Feature", "properties": { "id": "ak16827663", "mag": 2.1, "time": 1505043481292, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.5488, 52.6471, 37.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajch", "mag": 2.9, "time": 1505043441680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4464, 42.565, 8.31 ] } }, - { "type": "Feature", "properties": { "id": "nn00604506", "mag": 1.1, "time": 1505043238904, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.2044, 38.3052, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajce", "mag": 2.6, "time": 1505042826200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4252, 42.5577, 5.15 ] } }, - { "type": "Feature", "properties": { "id": "ak16798700", "mag": 1.7, "time": 1505042612937, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.2918, 69.235, 1.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajc9", "mag": 3.1, "time": 1505042537350, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4318, 42.5604, 7.18 ] } }, - { "type": "Feature", "properties": { "id": "hv61903466", "mag": 2.42, "time": 1505042508060, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.211833, 19.916833, 13.349 ] } }, - { "type": "Feature", "properties": { "id": "ak16798696", "mag": 1.3, "time": 1505042293807, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.3271, 69.2374, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajbt", "mag": 4.7, "time": 1505041959050, "felt": 41, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4701, 42.6074, 4.56 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajbp", "mag": 2.6, "time": 1505041798510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4553, 42.6057, 2.2 ] } }, - { "type": "Feature", "properties": { "id": "nn00604588", "mag": 1.0, "time": 1505041736983, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8863, 39.0228, 11.8 ] } }, - { "type": "Feature", "properties": { "id": "pr2017253002", "mag": 2.88, "time": 1505041375350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.305, 18.603, 82.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajbk", "mag": 3.1, "time": 1505040789630, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4404, 42.601, 4.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajbj", "mag": 2.6, "time": 1505040635620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4423, 42.5705, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37759247", "mag": 1.02, "time": 1505040606370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.192167, 33.778, 3.52 ] } }, - { "type": "Feature", "properties": { "id": "uw61306142", "mag": 2.37, "time": 1505040308500, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.040167, 46.875333, 6.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16827659", "mag": 2.3, "time": 1505040202211, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.8004, 51.946, 193.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajba", "mag": 2.5, "time": 1505040116970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4234, 42.6126, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70234948", "mag": 1.52, "time": 1505039824000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.878333, 37.226333, 2.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajay", "mag": 2.5, "time": 1505039717650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4475, 42.5965, 6.66 ] } }, - { "type": "Feature", "properties": { "id": "ci37759239", "mag": 1.83, "time": 1505039190870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.297667, 34.7275, 4.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37759231", "mag": 1.46, "time": 1505038960010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.206167, 33.030167, 5.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajah", "mag": 4.9, "time": 1505038459290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5926, 15.8657, 62.07 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajad", "mag": 2.8, "time": 1505038317850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4649, 42.5713, 2.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ajac", "mag": 2.8, "time": 1505038143220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.3389, 42.5698, 5.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000aja1", "mag": 2.5, "time": 1505037892850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4134, 42.5966, 2.41 ] } }, - { "type": "Feature", "properties": { "id": "nc72889666", "mag": 2.44, "time": 1505037177900, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.680333, 36.934833, 10.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000ak98", "mag": 2.7, "time": 1505037007800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.9657, 36.5378, 5.921 ] } }, - { "type": "Feature", "properties": { "id": "us2000akbp", "mag": 3.5, "time": 1505036907810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4216, 42.6147, 2.61 ] } }, - { "type": "Feature", "properties": { "id": "hv61903376", "mag": 2.02, "time": 1505036885770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.244, 19.404333, 38.634 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj9i", "mag": 5.0, "time": 1505036830570, "felt": 222, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4155, 42.5629, 9.83 ] } }, - { "type": "Feature", "properties": { "id": "nn00604494", "mag": 1.3, "time": 1505036614546, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9198, 38.3864, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16797541", "mag": 2.3, "time": 1505036483755, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -176.8674, 50.427, 38.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889656", "mag": 1.55, "time": 1505036419440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9445, 37.642333, -0.52 ] } }, - { "type": "Feature", "properties": { "id": "us2000artp", "mag": 4.7, "time": 1505036336060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 147.742, 44.4006, 89.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj9e", "mag": 4.1, "time": 1505036045120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8669, 15.7031, 37.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16797519", "mag": 3.3, "time": 1505035967489, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.9107, 62.993, 122.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16797515", "mag": 2.4, "time": 1505035289100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.6897, 53.169, 25.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16827654", "mag": 1.4, "time": 1505034233691, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9911, 60.3931, 86.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16796945", "mag": 2.3, "time": 1505033682313, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.0313, 60.3066, 10.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72889646", "mag": 1.08, "time": 1505033636850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.818001, 38.801998, 2.52 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj8v", "mag": 2.4, "time": 1505033298010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.484, 42.6096, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000amz2", "mag": 2.8, "time": 1505033251180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.0563, 54.0093, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37759175", "mag": 1.28, "time": 1505033174200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.362167, 33.154333, 11.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16796924", "mag": 1.8, "time": 1505033149645, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.7762, 53.453, 28.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj8s", "mag": 5.5, "time": 1505033064540, "felt": 15, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 142.8932, 41.7813, 45.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj8i", "mag": 5.2, "time": 1505032778170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5035, 15.7644, 57.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000amz1", "mag": 2.8, "time": 1505032715690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -162.8991, 53.5788, 15.9 ] } }, - { "type": "Feature", "properties": { "id": "mb80253749", "mag": 1.76, "time": 1505032545100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.524667, 46.889167, 14.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj87", "mag": 3.8, "time": 1505032481960, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -104.9548, 37.0369, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000artm", "mag": 4.4, "time": 1505032427640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.852, -18.159, 601.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj86", "mag": 4.2, "time": 1505032314990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 22.3039, 38.0722, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759159", "mag": 0.97, "time": 1505031839650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1615, 34.0365, 4.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000artk", "mag": 3.8, "time": 1505031830730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 170.788, 53.8251, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000amyz", "mag": 2.6, "time": 1505031468470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4988, 51.6871, 9.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000arti", "mag": 4.5, "time": 1505031463320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.9123, -25.0133, 508.03 ] } }, - { "type": "Feature", "properties": { "id": "hv61903321", "mag": 1.9, "time": 1505031307020, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.376, 19.109, 42.633 ] } }, - { "type": "Feature", "properties": { "id": "ci37759151", "mag": 2.32, "time": 1505031276490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.528667, 33.143833, 8.22 ] } }, - { "type": "Feature", "properties": { "id": "nc72889631", "mag": 1.68, "time": 1505031062020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.1025, 35.652333, 4.49 ] } }, - { "type": "Feature", "properties": { "id": "ci37759127", "mag": 0.99, "time": 1505030565890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.4795, 34.347667, 6.85 ] } }, - { "type": "Feature", "properties": { "id": "ak16796357", "mag": 1.6, "time": 1505029768799, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6864, 61.2792, 33.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16796347", "mag": 2.8, "time": 1505029738842, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8811, 62.6834, 89.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16796345", "mag": 1.1, "time": 1505029334941, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9656, 62.9587, 88.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16796343", "mag": 1.4, "time": 1505028430485, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.3315, 60.2265, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759079", "mag": 1.03, "time": 1505028192380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.793833, 33.508, 4.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16827644", "mag": 2.2, "time": 1505028185237, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.9799, 52.0013, 156.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000artg", "mag": 4.2, "time": 1505027908500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.9129, -24.5931, 503.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj7r", "mag": 4.5, "time": 1505027720310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5866, 15.1076, 24.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj7m", "mag": 3.3, "time": 1505027636400, "felt": 12, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.804, 35.9918, 5.961 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj7l", "mag": 3.0, "time": 1505027344470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4316, 42.5611, 7.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16796341", "mag": 1.6, "time": 1505026917606, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.9481, 51.2072, 22.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16796340", "mag": 1.2, "time": 1505026743356, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0079, 59.5892, 41.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16796338", "mag": 1.3, "time": 1505026513369, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0949, 62.0857, 37.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37759055", "mag": 1.58, "time": 1505026335940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.798333, 33.501167, 3.42 ] } }, - { "type": "Feature", "properties": { "id": "mb80253734", "mag": 1.14, "time": 1505025721140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -113.170167, 47.328333, 19.23 ] } }, - { "type": "Feature", "properties": { "id": "ak16796336", "mag": 1.0, "time": 1505025668896, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2865, 62.4037, 46.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16796333", "mag": 1.6, "time": 1505025496149, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.8107, 60.5943, 2.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72889606", "mag": 1.8, "time": 1505025336300, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.260333, 36.150833, 8.23 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj7g", "mag": 4.3, "time": 1505024815920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5354, 15.0816, 39.42 ] } }, - { "type": "Feature", "properties": { "id": "ak16827636", "mag": 1.3, "time": 1505024434533, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4031, 51.77, 19.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16795777", "mag": 1.4, "time": 1505024355978, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.0051, 60.2926, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759039", "mag": 1.89, "time": 1505024281500, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.871, 36.511333, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00604470", "mag": 1.2, "time": 1505024158420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1219, 37.3848, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72889576", "mag": 0.98, "time": 1505022995190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.766333, 37.576333, 4.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj75", "mag": 4.0, "time": 1505022687700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2661, 15.0962, 47.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16827633", "mag": 1.4, "time": 1505022608119, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9863, 59.5419, 87.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16795771", "mag": 1.7, "time": 1505022431855, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7645, 61.916, 63.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16795770", "mag": 1.2, "time": 1505022130505, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6083, 61.2662, 54.7 ] } }, - { "type": "Feature", "properties": { "id": "nn00604466", "mag": 1.4, "time": 1505021979344, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1529, 37.0254, 0.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16795766", "mag": 1.7, "time": 1505021975648, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.1305, 61.3941, 3.7 ] } }, - { "type": "Feature", "properties": { "id": "pr2017253001", "mag": 2.14, "time": 1505021553530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.0151, 18.2211, 26.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37759015", "mag": 1.41, "time": 1505021428240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.1665, 34.037667, 5.07 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj6q", "mag": 2.8, "time": 1505020972500, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.6874, 36.6964, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37758999", "mag": 1.58, "time": 1505020355730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.168833, 34.037667, 4.71 ] } }, - { "type": "Feature", "properties": { "id": "nc72889556", "mag": 1.12, "time": 1505019834580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.712167, 38.750333, 2.07 ] } }, - { "type": "Feature", "properties": { "id": "uw61306032", "mag": 2.05, "time": 1505019796720, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.038167, 46.874333, 6.38 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj6e", "mag": 4.1, "time": 1505019258690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.3705, 67.5564, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj6c", "mag": 4.1, "time": 1505019032690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0925, 15.7467, 34.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayew", "mag": 4.2, "time": 1505018634430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9037, 15.4311, 74.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37758959", "mag": 1.24, "time": 1505018324480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.169833, 34.0395, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16795206", "mag": 2.1, "time": 1505018157144, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.4944, 60.3044, 178.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayer", "mag": 4.0, "time": 1505017700720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8225, 15.3927, 47.72 ] } }, - { "type": "Feature", "properties": { "id": "ci37758935", "mag": 1.14, "time": 1505017497720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.169, 34.039333, 6.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16795202", "mag": 1.4, "time": 1505017366860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3287, 63.2644, 12.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37758927", "mag": 0.97, "time": 1505017113210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.034167, 34.268333, -0.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16827627", "mag": 1.4, "time": 1505017084382, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.915, 59.1941, 109.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37758911", "mag": 1.67, "time": 1505016996470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.167, 34.037833, 5.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16795198", "mag": 1.2, "time": 1505016773648, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4096, 62.1404, 0.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16795193", "mag": 2.2, "time": 1505016672191, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3522, 59.8641, 133.9 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70234903", "mag": 1.63, "time": 1505016085390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.572167, 37.347167, 4.85 ] } }, - { "type": "Feature", "properties": { "id": "ak16795191", "mag": 1.2, "time": 1505016021415, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.4153, 61.11, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj5p", "mag": 4.3, "time": 1505015407020, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 141.7252, 38.0198, 68.12 ] } }, - { "type": "Feature", "properties": { "id": "ak16795189", "mag": 1.3, "time": 1505014815822, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7877, 59.5199, 52.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72889511", "mag": 1.11, "time": 1505014765900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.711998, 38.755501, 2.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj5f", "mag": 4.1, "time": 1505014246310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7509, 15.2659, 43.51 ] } }, - { "type": "Feature", "properties": { "id": "ak16795181", "mag": 2.2, "time": 1505014149113, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.8561, 61.3045, 25.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16795185", "mag": 1.8, "time": 1505014144643, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.2491, 60.9757, 43.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj59", "mag": 4.1, "time": 1505013882540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.2187, 67.6427, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61306007", "mag": 1.81, "time": 1505013085820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.600667, 43.836167, 3.82 ] } }, - { "type": "Feature", "properties": { "id": "mb80253724", "mag": 1.18, "time": 1505012880400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.520333, 46.896167, 10.28 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj51", "mag": 5.8, "time": 1505012842340, "felt": 8, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5278, 15.3896, 29.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16794614", "mag": 1.5, "time": 1505011941254, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.0253, 66.769, 24.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16794611", "mag": 1.9, "time": 1505011477433, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.452, 60.9238, 15.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16794610", "mag": 2.3, "time": 1505010496180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.5196, 51.817, 106.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000arv6", "mag": 4.0, "time": 1505010360400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9747, 15.1883, 59.97 ] } }, - { "type": "Feature", "properties": { "id": "pr2017253000", "mag": 2.65, "time": 1505009947880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.1073, 18.2203, 79.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj4r", "mag": 4.3, "time": 1505009855470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.3515, 14.9239, 35.26 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj4q", "mag": 2.4, "time": 1505009730390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.403, 42.6058, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16794604", "mag": 1.5, "time": 1505009566066, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5055, 61.4008, 14.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj4m", "mag": 3.2, "time": 1505008832850, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4779, 42.6737, 2.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000aye7", "mag": 3.9, "time": 1505008653110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.442, 15.7739, 41.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj4i", "mag": 4.2, "time": 1505008285900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3811, 14.9456, 27.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16827395", "mag": 1.0, "time": 1505008083507, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7452, 63.1544, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16794056", "mag": 1.8, "time": 1505007980655, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -137.9725, 59.1241, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "nn00604443", "mag": 1.1, "time": 1505007942083, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9112, 38.3937, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37758839", "mag": 1.22, "time": 1505007033130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.383167, 33.193, 7.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16827393", "mag": 1.2, "time": 1505006807930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6807, 59.9356, 95.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj47", "mag": 4.1, "time": 1505005871300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.689, 16.7045, 39.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj44", "mag": 4.3, "time": 1505005501920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7157, 15.408, 32.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj41", "mag": 4.3, "time": 1505005103690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5751, 15.5308, 63.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj3z", "mag": 4.4, "time": 1505004749280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4987, 15.3526, 47.21 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj3t", "mag": 3.3, "time": 1505004389150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -129.358, 44.2464, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16793513", "mag": 2.3, "time": 1505004296412, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -143.3005, 58.2485, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16793511", "mag": 2.0, "time": 1505004250005, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3901, 51.6935, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj3m", "mag": 3.3, "time": 1505004159420, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -129.0417, 44.4745, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16827390", "mag": 1.5, "time": 1505004153873, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.9635, 59.4036, 98.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16827388", "mag": 1.4, "time": 1505003603974, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4592, 51.7361, 18.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16793506", "mag": 1.5, "time": 1505003554878, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5578, 62.0025, 41.6 ] } }, - { "type": "Feature", "properties": { "id": "mb80253689", "mag": 0.96, "time": 1505003169140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.508667, 46.879833, 9.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj3k", "mag": 4.7, "time": 1505002421890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -172.5775, -16.7183, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16793503", "mag": 1.2, "time": 1505001653442, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.0694, 51.6811, 2.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj3c", "mag": 2.3, "time": 1505001525800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.427, 42.5803, 7.86 ] } }, - { "type": "Feature", "properties": { "id": "hv61903041", "mag": 1.97, "time": 1505000788390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.501, 19.948333, 38.213 ] } }, - { "type": "Feature", "properties": { "id": "ak16793502", "mag": 2.1, "time": 1505000595653, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.5442, 56.1065, 5.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj36", "mag": 3.3, "time": 1505000090270, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -129.0754, 44.3952, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889416", "mag": 1.43, "time": 1505000045060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.709167, 38.768333, 1.44 ] } }, - { "type": "Feature", "properties": { "id": "nc72889411", "mag": 1.18, "time": 1504999845050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.424167, 38.768, 7.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16793501", "mag": 1.0, "time": 1504999793486, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0175, 59.5958, 36.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16793499", "mag": 1.5, "time": 1504999218478, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.9885, 60.7112, 87.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16823567", "mag": 1.5, "time": 1504999019129, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.3619, 57.7499, 9.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61903026", "mag": 1.83, "time": 1504999009760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.28717, 19.4025, 1.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16793495", "mag": 1.5, "time": 1504998539010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.1873, 63.1024, 94.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16793492", "mag": 1.9, "time": 1504998198191, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.4513, 66.9866, 0.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16793490", "mag": 1.1, "time": 1504998084010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3555, 64.9906, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000am0g", "mag": 2.9, "time": 1504997864050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -161.5776, 54.9813, 70.97 ] } }, - { "type": "Feature", "properties": { "id": "us2000am0f", "mag": 3.0, "time": 1504997382330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.4861, 55.435, 25.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj2w", "mag": 2.6, "time": 1504996101810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4595, 42.6646, 8.07 ] } }, - { "type": "Feature", "properties": { "id": "ak16823560", "mag": 1.1, "time": 1504995586471, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.5516, 60.1674, 10.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj2g", "mag": 2.6, "time": 1504995580700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -99.3253, 36.95, 2.161 ] } }, - { "type": "Feature", "properties": { "id": "nc72889401", "mag": 1.53, "time": 1504995533070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.883167, 39.862333, 5.12 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj2p", "mag": 4.3, "time": 1504995471290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -73.6167, -36.1497, 25.35 ] } }, - { "type": "Feature", "properties": { "id": "ci37758743", "mag": 0.97, "time": 1504995032090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.927167, 35.897667, 6.49 ] } }, - { "type": "Feature", "properties": { "id": "ak16792945", "mag": 1.9, "time": 1504994934423, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.6439, 60.0021, 159.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72889396", "mag": 1.01, "time": 1504994309360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.744499, 38.774666, 1.39 ] } }, - { "type": "Feature", "properties": { "id": "mb80253659", "mag": 1.35, "time": 1504994237270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.767667, 45.618, 0.67 ] } }, - { "type": "Feature", "properties": { "id": "nc72889391", "mag": 1.15, "time": 1504994059680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.4355, 39.501833, 12.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayd8", "mag": 4.0, "time": 1504993547880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0655, 15.7772, 34.99 ] } }, - { "type": "Feature", "properties": { "id": "uu60240502", "mag": 1.28, "time": 1504993388650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.014167, 44.781833, 8.11 ] } }, - { "type": "Feature", "properties": { "id": "nc72889381", "mag": 1.37, "time": 1504992621690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.732833, 38.768167, 0.83 ] } }, - { "type": "Feature", "properties": { "id": "nc72889376", "mag": 1.64, "time": 1504992347010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.879, 39.861333, 5.75 ] } }, - { "type": "Feature", "properties": { "id": "nc72889366", "mag": 0.99, "time": 1504990736460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.712667, 38.913333, 2.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj18", "mag": 4.9, "time": 1504990247280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.6127, -27.7277, 147.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000aksk", "mag": 2.8, "time": 1504990158400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.8073, 35.9883, 6.228 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj13", "mag": 3.1, "time": 1504990070700, "felt": 18, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -96.8015, 35.9914, 5.85 ] } }, - { "type": "Feature", "properties": { "id": "us2000arta", "mag": 4.2, "time": 1504989955640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0828, 15.537, 19.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16792284", "mag": 1.6, "time": 1504989907169, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0546, 60.3983, 79.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72889356", "mag": 0.96, "time": 1504989514010, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.201333, 37.802667, 8.55 ] } }, - { "type": "Feature", "properties": { "id": "ak16823554", "mag": 1.4, "time": 1504989475242, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.8158, 59.9912, 96.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj0w", "mag": 2.8, "time": 1504989429400, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5041, 36.2908, 8.103 ] } }, - { "type": "Feature", "properties": { "id": "hv61902851", "mag": 1.98, "time": 1504989368750, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.279159, 19.391001, 0.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000art9", "mag": 4.4, "time": 1504989282650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5518, 15.0779, 35.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj0x", "mag": 4.2, "time": 1504989178220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8925, 15.5513, 33.85 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj1p", "mag": 2.3, "time": 1504988963860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.4077, 55.6085, 30.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16823552", "mag": 1.2, "time": 1504988912939, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7854, 60.1774, 76.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj0r", "mag": 4.8, "time": 1504988774940, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8055, 15.4862, 41.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16823551", "mag": 1.5, "time": 1504988703567, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6984, 60.153, 94.6 ] } }, - { "type": "Feature", "properties": { "id": "hv61902831", "mag": 2.68, "time": 1504988541740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.446, 20.027167, 8.137 ] } }, - { "type": "Feature", "properties": { "id": "uu60240472", "mag": 1.31, "time": 1504988346800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.206, 39.282333, -3.32 ] } }, - { "type": "Feature", "properties": { "id": "hv61902821", "mag": 2.08, "time": 1504988052380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.281998, 19.411833, 2.05 ] } }, - { "type": "Feature", "properties": { "id": "ak16791747", "mag": 1.2, "time": 1504986900345, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4114, 60.0877, 56.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889346", "mag": 1.15, "time": 1504985576640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.723667, 38.753833, 1.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000aizy", "mag": 4.4, "time": 1504984967070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.1285, 55.2452, 28.63 ] } }, - { "type": "Feature", "properties": { "id": "ak16823547", "mag": 2.3, "time": 1504984573262, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.2291, 50.8322, 17.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aizr", "mag": 2.3, "time": 1504983888120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4504, 42.6494, 10.91 ] } }, - { "type": "Feature", "properties": { "id": "nn00604425", "mag": 1.1, "time": 1504983732096, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8284, 38.06, 3.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16791198", "mag": 1.7, "time": 1504983607869, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.5288, 51.7278, 12.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72889341", "mag": 1.77, "time": 1504983196540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.881, 38.833667, 2.0 ] } }, - { "type": "Feature", "properties": { "id": "uu60240427", "mag": 2.17, "time": 1504983086160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.417167, 42.555833, 8.52 ] } }, - { "type": "Feature", "properties": { "id": "us2000aizg", "mag": 4.4, "time": 1504983043410, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4218, 15.787, 57.77 ] } }, - { "type": "Feature", "properties": { "id": "hv61902716", "mag": 1.45, "time": 1504983007260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.274333, 18.915833, 7.212 ] } }, - { "type": "Feature", "properties": { "id": "ak16823545", "mag": 1.7, "time": 1504982688397, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -166.1975, 53.2518, 21.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00604404", "mag": 2.1, "time": 1504981848383, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9058, 38.3558, 8.8 ] } }, - { "type": "Feature", "properties": { "id": "nc72889331", "mag": 1.22, "time": 1504981774440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.480833, 38.843833, 10.34 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiz4", "mag": 4.4, "time": 1504981610170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 155.7383, 49.4785, 59.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16791190", "mag": 2.4, "time": 1504980782997, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.857, 67.7643, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16823543", "mag": 1.8, "time": 1504980266831, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4071, 51.6082, 9.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37758695", "mag": 1.06, "time": 1504980028730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.307667, 34.0925, 16.16 ] } }, - { "type": "Feature", "properties": { "id": "ak16791189", "mag": 1.3, "time": 1504980002277, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.043, 60.3576, 52.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiyg", "mag": 4.4, "time": 1504979697800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.459, 15.3004, 36.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16823541", "mag": 1.5, "time": 1504978178608, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.8616, 58.3062, 104.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aycf", "mag": 4.2, "time": 1504977766490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1719, 15.1363, 19.92 ] } }, - { "type": "Feature", "properties": { "id": "nc72889311", "mag": 1.86, "time": 1504977631430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.621667, 39.523333, 4.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000am0a", "mag": 2.9, "time": 1504977007380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3606, 51.5729, 20.05 ] } }, - { "type": "Feature", "properties": { "id": "uw61305857", "mag": 1.96, "time": 1504976913320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.5835, 49.325, -0.06 ] } }, - { "type": "Feature", "properties": { "id": "nn00604394", "mag": 1.0, "time": 1504976713972, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.9184, 39.4189, 9.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00604419", "mag": 1.0, "time": 1504976501919, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9128, 38.3555, 7.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16823539", "mag": 1.7, "time": 1504975843554, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3563, 51.6531, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "uu60240367", "mag": 1.09, "time": 1504975707090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.071, 44.717, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16790653", "mag": 3.1, "time": 1504974617088, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3417, 51.6239, 10.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16790654", "mag": 1.9, "time": 1504974537489, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -175.3148, 51.695, 47.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000aix7", "mag": 4.4, "time": 1504974070040, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1553, 15.4199, 68.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000aix4", "mag": 2.7, "time": 1504973305730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4403, 42.5514, 9.99 ] } }, - { "type": "Feature", "properties": { "id": "ci37758639", "mag": 1.49, "time": 1504972882060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.274333, 33.977333, 4.89 ] } }, - { "type": "Feature", "properties": { "id": "ak16823535", "mag": 1.4, "time": 1504972779074, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6619, 59.5746, 73.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16790651", "mag": 1.4, "time": 1504972583759, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.0742, 62.1419, 37.4 ] } }, - { "type": "Feature", "properties": { "id": "hv61902621", "mag": 1.3, "time": 1504971779440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.013167, 19.393333, 2.338 ] } }, - { "type": "Feature", "properties": { "id": "ci37758631", "mag": 1.6, "time": 1504971677250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.497167, 32.741, 8.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16790130", "mag": 2.4, "time": 1504971409637, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4283, 51.6859, 9.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiwm", "mag": 5.3, "time": 1504971008260, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8484, 15.8296, 39.05 ] } }, - { "type": "Feature", "properties": { "id": "nc72889281", "mag": 1.07, "time": 1504970982380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.944833, 37.598167, 1.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiwh", "mag": 4.8, "time": 1504970946650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5822, 15.0866, 46.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiwe", "mag": 4.6, "time": 1504970869530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9636, 15.3251, 65.27 ] } }, - { "type": "Feature", "properties": { "id": "nc72889276", "mag": 1.09, "time": 1504970812160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.855667, 37.658833, 2.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16790123", "mag": 2.1, "time": 1504970292620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.13, 51.4897, 41.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16790120", "mag": 1.2, "time": 1504968778296, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.3618, 61.0444, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiw3", "mag": 4.1, "time": 1504968358930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.193, 15.2562, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16789598", "mag": 2.5, "time": 1504968226307, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7868, 63.1355, 123.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16789594", "mag": 1.9, "time": 1504968045372, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.7112, 60.6453, 16.4 ] } }, - { "type": "Feature", "properties": { "id": "ci37758615", "mag": 1.41, "time": 1504967951280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.275, 33.978333, 4.74 ] } }, - { "type": "Feature", "properties": { "id": "ak16823526", "mag": 1.9, "time": 1504967456812, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.4388, 54.8237, 32.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aivy", "mag": 4.2, "time": 1504967440700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1556, 16.3217, 115.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16823525", "mag": 1.4, "time": 1504967368293, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.6252, 59.9753, 101.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16823524", "mag": 1.7, "time": 1504966965980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.7649, 56.8018, 3.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16823523", "mag": 1.6, "time": 1504966219015, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.4826, 51.2597, 23.7 ] } }, - { "type": "Feature", "properties": { "id": "nc72889256", "mag": 1.03, "time": 1504966067680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.012333, 37.593667, 0.37 ] } }, - { "type": "Feature", "properties": { "id": "nn00604381", "mag": 2.3, "time": 1504966020076, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.3553, 40.6574, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37758607", "mag": 1.15, "time": 1504965758050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.386667, 33.320333, 5.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000aivs", "mag": 2.6, "time": 1504965349760, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.431, 42.5704, 9.32 ] } }, - { "type": "Feature", "properties": { "id": "mb80253559", "mag": 1.01, "time": 1504964725150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.785167, 43.612, -3.47 ] } }, - { "type": "Feature", "properties": { "id": "ak16823520", "mag": 2.0, "time": 1504964361277, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.4265, 54.015, 30.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16823518", "mag": 1.4, "time": 1504963874108, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0471, 60.762, 82.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16789076", "mag": 1.7, "time": 1504963420635, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7554, 59.5701, 80.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aivg", "mag": 4.8, "time": 1504963319300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.118, 15.2555, 36.22 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiva", "mag": 4.7, "time": 1504963129400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9764, 15.3921, 63.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16823516", "mag": 1.1, "time": 1504962479847, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.8765, 58.9325, 12.9 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70234863", "mag": 1.66, "time": 1504961953310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.8555, 37.210833, 3.69 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiuu", "mag": 4.3, "time": 1504961286800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1507, 15.2159, 54.84 ] } }, - { "type": "Feature", "properties": { "id": "nc72889151", "mag": 1.59, "time": 1504961182210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.2615, 36.143, 9.79 ] } }, - { "type": "Feature", "properties": { "id": "ak16823515", "mag": 1.3, "time": 1504960711273, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.5542, 59.755, 14.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiud", "mag": 4.5, "time": 1504959908650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2891, 15.5969, 67.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16823514", "mag": 2.3, "time": 1504959541727, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -158.2315, 55.4677, 18.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiu3", "mag": 3.5, "time": 1504959495530, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.3875, 42.5392, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiu8", "mag": 4.9, "time": 1504959466540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4075, 16.1573, 92.03 ] } }, - { "type": "Feature", "properties": { "id": "ak16788555", "mag": 1.8, "time": 1504958775607, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.5009, 59.7863, 1.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16823512", "mag": 1.2, "time": 1504958710011, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.6279, 61.013, 77.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aitr", "mag": 5.2, "time": 1504958620590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -66.1721, -22.4546, 222.22 ] } }, - { "type": "Feature", "properties": { "id": "ci37758559", "mag": 2.17, "time": 1504958517340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.871333, 36.511, 7.46 ] } }, - { "type": "Feature", "properties": { "id": "nc72889136", "mag": 1.89, "time": 1504958245210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.943333, 37.597, 2.4 ] } }, - { "type": "Feature", "properties": { "id": "ak16788550", "mag": 1.2, "time": 1504957995087, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7877, 61.7723, 59.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aita", "mag": 3.9, "time": 1504957968370, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4749, 42.5793, 8.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aitc", "mag": 4.9, "time": 1504957853960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4489, 15.7338, 63.09 ] } }, - { "type": "Feature", "properties": { "id": "nc72889131", "mag": 1.42, "time": 1504957844330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.822667, 37.604833, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ait9", "mag": 3.1, "time": 1504957715430, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4515, 42.5732, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ait3", "mag": 3.0, "time": 1504956895100, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.7026, 36.641, 8.008 ] } }, - { "type": "Feature", "properties": { "id": "us2000am03", "mag": 2.5, "time": 1504956200380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.0448, 53.9738, 19.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ait2", "mag": 4.0, "time": 1504956162220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.601, 15.854, 69.04 ] } }, - { "type": "Feature", "properties": { "id": "us2000aisv", "mag": 2.4, "time": 1504955702120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4242, 42.579, 6.95 ] } }, - { "type": "Feature", "properties": { "id": "us2000aisz", "mag": 4.5, "time": 1504955498600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 126.8292, 3.6504, 59.54 ] } }, - { "type": "Feature", "properties": { "id": "nc72889126", "mag": 1.04, "time": 1504955440550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.832333, 37.5415, 4.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16788046", "mag": 2.3, "time": 1504954557233, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.3602, 51.5792, 17.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aisn", "mag": 4.2, "time": 1504953867200, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -70.2262, -15.3425, 224.81 ] } }, - { "type": "Feature", "properties": { "id": "uu60240042", "mag": 1.27, "time": 1504953324130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.006167, 44.792, 10.46 ] } }, - { "type": "Feature", "properties": { "id": "pr2017252001", "mag": 2.09, "time": 1504953205290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.2761, 18.0591, 19.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37758511", "mag": 1.45, "time": 1504952800930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.930333, 35.903, 6.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayba", "mag": 4.1, "time": 1504952366970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5053, 15.7495, 68.22 ] } }, - { "type": "Feature", "properties": { "id": "mb80253459", "mag": 1.52, "time": 1504952233330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.447, 46.021167, 0.93 ] } }, - { "type": "Feature", "properties": { "id": "nc72889121", "mag": 1.03, "time": 1504952209100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.871, 37.554833, 4.73 ] } }, - { "type": "Feature", "properties": { "id": "ci37758487", "mag": 1.12, "time": 1504952052150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.988, 36.408833, 5.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000ais8", "mag": 4.3, "time": 1504951965100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.9766, 44.5128, 265.04 ] } }, - { "type": "Feature", "properties": { "id": "nn00604410", "mag": 1.1, "time": 1504951735991, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.3876, 37.2486, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37758471", "mag": 1.08, "time": 1504951652550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.931667, 34.0345, 15.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16787530", "mag": 1.1, "time": 1504951610158, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7897, 67.3419, 11.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ais3", "mag": 5.4, "time": 1504951518370, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 133.9356, -4.9459, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000airu", "mag": 4.6, "time": 1504951047220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.0237, -24.161, 169.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16787527", "mag": 1.5, "time": 1504950964134, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1724, 62.5675, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16787525", "mag": 1.4, "time": 1504950309819, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.6065, 60.0265, 7.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000am01", "mag": 3.8, "time": 1504950233710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.0371, 53.9395, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72889106", "mag": 1.8, "time": 1504950063660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.642667, 38.4305, 9.02 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayb4", "mag": 3.9, "time": 1504949950000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.1532, 14.9116, 21.58 ] } }, - { "type": "Feature", "properties": { "id": "nc72889101", "mag": 1.84, "time": 1504949895770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.008833, 39.729667, 5.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16823500", "mag": 1.6, "time": 1504949837453, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.187, 59.0211, 72.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16823499", "mag": 1.5, "time": 1504949724642, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.0279, 61.4535, 96.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000arsy", "mag": 4.1, "time": 1504949643990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 169.3876, -19.5742, 213.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16787519", "mag": 1.4, "time": 1504949316312, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.0341, 61.6767, 50.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16823497", "mag": 2.2, "time": 1504949226805, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.3563, 55.6967, 21.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000airg", "mag": 2.3, "time": 1504948998980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4451, 42.6157, 5.99 ] } }, - { "type": "Feature", "properties": { "id": "nc72889066", "mag": 0.98, "time": 1504947621670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.982833, 37.917667, 10.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16823496", "mag": 2.0, "time": 1504947486008, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.2987, 51.7726, 13.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16787403", "mag": 2.6, "time": 1504947413205, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5944, 59.4202, 75.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiqx", "mag": 4.1, "time": 1504946674160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5388, 15.3559, 54.35 ] } }, - { "type": "Feature", "properties": { "id": "ci37758415", "mag": 1.03, "time": 1504946346090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.892667, 32.718333, 8.72 ] } }, - { "type": "Feature", "properties": { "id": "us2000avsk", "mag": 2.8, "time": 1504946098400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4224, 42.5665, 6.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiqt", "mag": 2.6, "time": 1504946086710, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4255, 42.5806, 6.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000avsj", "mag": 2.7, "time": 1504945947000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4298, 42.5744, 7.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000ampk", "mag": 3.3, "time": 1504945822720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4585, 42.6108, 6.88 ] } }, - { "type": "Feature", "properties": { "id": "us2000al9w", "mag": 3.6, "time": 1504945687860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4277, 42.5592, 9.39 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiur", "mag": 4.0, "time": 1504945641000, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4155, 42.5631, 8.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16823493", "mag": 1.8, "time": 1504945521703, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.5064, 51.8445, 13.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37758407", "mag": 1.19, "time": 1504945503520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.470167, 34.3615, 1.96 ] } }, - { "type": "Feature", "properties": { "id": "us2000akd5", "mag": 3.3, "time": 1504945430400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4221, 42.5799, 5.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000art2", "mag": 4.5, "time": 1504945418710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 145.5761, 18.7533, 262.64 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiq7", "mag": 4.1, "time": 1504945384770, "felt": 32, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4167, 42.5619, 7.19 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiql", "mag": 4.5, "time": 1504945169540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 130.0828, -6.9776, 133.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiq2", "mag": 3.3, "time": 1504944298530, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.427, 42.5842, 7.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000aipz", "mag": 4.8, "time": 1504944096330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0129, 15.2713, 53.97 ] } }, - { "type": "Feature", "properties": { "id": "us2000arsw", "mag": 4.7, "time": 1504943699570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -25.2724, -59.2757, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "hv61902241", "mag": 1.62, "time": 1504943455500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.2485, 19.386833, 31.012 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj4h", "mag": 2.6, "time": 1504943362330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4304, 42.5789, 7.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aipn", "mag": 4.2, "time": 1504943316560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 74.9524, 38.8091, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aipm", "mag": 2.3, "time": 1504943304230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4353, 42.5792, 9.03 ] } }, - { "type": "Feature", "properties": { "id": "us2000aipl", "mag": 2.8, "time": 1504942989430, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4364, 42.5726, 8.45 ] } }, - { "type": "Feature", "properties": { "id": "us2000art3", "mag": 4.7, "time": 1504942625890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 146.7566, 13.8193, 16.98 ] } }, - { "type": "Feature", "properties": { "id": "ak16823489", "mag": 2.2, "time": 1504941981540, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6119, 68.4897, 9.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16786898", "mag": 2.3, "time": 1504941973751, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6435, 68.4109, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aipa", "mag": 4.1, "time": 1504940445840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7031, 15.6436, 38.39 ] } }, - { "type": "Feature", "properties": { "id": "ak16786512", "mag": 1.4, "time": 1504940146158, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6116, 61.8175, 55.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37758383", "mag": 1.42, "time": 1504940130810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.027333, 34.440333, 12.46 ] } }, - { "type": "Feature", "properties": { "id": "uw61305607", "mag": 1.15, "time": 1504939688980, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.4665, 48.458667, 29.09 ] } }, - { "type": "Feature", "properties": { "id": "nn00604353", "mag": 1.1, "time": 1504939522222, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.9216, 38.3812, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayad", "mag": 4.2, "time": 1504939027620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4368, 15.1947, 59.18 ] } }, - { "type": "Feature", "properties": { "id": "ak16823487", "mag": 1.3, "time": 1504938992964, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2717, 59.963, 19.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16786506", "mag": 2.6, "time": 1504938975370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.5829, 68.5268, 13.9 ] } }, - { "type": "Feature", "properties": { "id": "ci37758359", "mag": 1.28, "time": 1504938780620, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.4375, 32.7105, 7.58 ] } }, - { "type": "Feature", "properties": { "id": "us2000ayac", "mag": 4.2, "time": 1504938734260, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6092, 15.0415, 60.74 ] } }, - { "type": "Feature", "properties": { "id": "us2000aip9", "mag": 4.8, "time": 1504938495700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9169, 15.1747, 62.25 ] } }, - { "type": "Feature", "properties": { "id": "us2000aing", "mag": 5.0, "time": 1504938263510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7579, 15.8771, 50.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72889046", "mag": 1.74, "time": 1504938239010, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.951833, 36.388167, 3.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37758351", "mag": 1.69, "time": 1504938189230, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.433333, 32.708, 11.7 ] } }, - { "type": "Feature", "properties": { "id": "ci37758343", "mag": 2.17, "time": 1504938036110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.650333, 32.557, 11.77 ] } }, - { "type": "Feature", "properties": { "id": "us2000arsu", "mag": 4.2, "time": 1504937955720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.536, 15.7206, 33.37 ] } }, - { "type": "Feature", "properties": { "id": "us2000aya9", "mag": 4.1, "time": 1504937750680, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4987, 15.6186, 49.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000ain2", "mag": 4.5, "time": 1504937531380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2803, 15.4532, 53.46 ] } }, - { "type": "Feature", "properties": { "id": "mb80253349", "mag": 1.16, "time": 1504937527100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5255, 46.891167, 14.63 ] } }, - { "type": "Feature", "properties": { "id": "us2000aimz", "mag": 4.9, "time": 1504936574470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -25.7043, -59.8211, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aya4", "mag": 4.1, "time": 1504936122970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4429, 15.8428, 39.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16823484", "mag": 1.2, "time": 1504936114606, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7939, 63.1602, 125.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16786077", "mag": 1.2, "time": 1504935774238, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.9696, 65.5175, 9.8 ] } }, - { "type": "Feature", "properties": { "id": "nn00604400", "mag": 1.2, "time": 1504935386919, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.5673, 40.9452, 13.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000alzw", "mag": 3.4, "time": 1504935359040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -170.4837, 52.2353, 39.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16786013", "mag": 1.4, "time": 1504934755508, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2112, 59.8068, 77.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aimb", "mag": 4.7, "time": 1504934538770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7033, 15.6728, 51.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000arum", "mag": 4.3, "time": 1504934315700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6748, 15.2159, 35.55 ] } }, - { "type": "Feature", "properties": { "id": "us2000aim7", "mag": 4.0, "time": 1504934242180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.7794, 15.3776, 67.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000aim0", "mag": 4.3, "time": 1504933783810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0338, 15.1325, 37.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9t", "mag": 4.3, "time": 1504933351910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8516, 15.6769, 64.29 ] } }, - { "type": "Feature", "properties": { "id": "ak16785716", "mag": 1.3, "time": 1504933227428, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6303, 68.5196, 9.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16823479", "mag": 1.4, "time": 1504933167331, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3862, 58.1118, 65.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16823478", "mag": 1.9, "time": 1504932908497, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.2638, 51.342, 32.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ailq", "mag": 5.5, "time": 1504932892100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0613, 15.0808, 29.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ailp", "mag": 4.5, "time": 1504932819610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 119.1423, -8.6068, 144.45 ] } }, - { "type": "Feature", "properties": { "id": "ak16785656", "mag": 1.7, "time": 1504932712383, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.238, 65.7544, 14.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72889011", "mag": 1.03, "time": 1504932679700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.051167, 36.471667, 6.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000ailm", "mag": 2.9, "time": 1504932636140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.9441, 58.6028, 4.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9s", "mag": 4.1, "time": 1504932576140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6151, 15.175, 41.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000ailg", "mag": 2.7, "time": 1504932451000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5107, 36.2919, 8.117 ] } }, - { "type": "Feature", "properties": { "id": "mb80253329", "mag": 1.19, "time": 1504932343290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.527833, 46.862667, 11.76 ] } }, - { "type": "Feature", "properties": { "id": "ci37758279", "mag": 1.67, "time": 1504932048030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.507167, 33.653, 1.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16823475", "mag": 1.1, "time": 1504931942522, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2765, 60.0722, 83.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000aila", "mag": 4.2, "time": 1504931645090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4593, 15.3365, 41.87 ] } }, - { "type": "Feature", "properties": { "id": "ci37758271", "mag": 1.52, "time": 1504931420370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.8695, 34.238, 8.73 ] } }, - { "type": "Feature", "properties": { "id": "ak16785521", "mag": 1.4, "time": 1504931241910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.646, 68.5258, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16785582", "mag": 1.0, "time": 1504931175076, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1393, 61.7136, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ail5", "mag": 4.7, "time": 1504930943390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4341, 15.1257, 27.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16785423", "mag": 1.8, "time": 1504930589594, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6499, 68.5284, 16.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16785419", "mag": 2.0, "time": 1504930533977, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1907, 61.6985, 2.3 ] } }, - { "type": "Feature", "properties": { "id": "nm60179177", "mag": 3.06, "time": 1504930529110, "felt": 135, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -87.913, 38.425, 11.76 ] } }, - { "type": "Feature", "properties": { "id": "mb80253319", "mag": 1.63, "time": 1504930497770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.491667, 46.891833, 11.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9p", "mag": 4.1, "time": 1504930486630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9352, 15.3169, 41.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9n", "mag": 3.7, "time": 1504930165360, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5559, 15.8989, 56.13 ] } }, - { "type": "Feature", "properties": { "id": "ak16785231", "mag": 2.5, "time": 1504929910494, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6125, 68.5273, 8.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16785228", "mag": 2.4, "time": 1504929817958, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6164, 68.5069, 15.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ail9", "mag": 4.2, "time": 1504929739110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2125, 15.079, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000alzs", "mag": 2.7, "time": 1504929498060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.2368, 51.9836, 19.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16823467", "mag": 1.5, "time": 1504929296944, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.2744, 61.3017, 122.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9h", "mag": 3.8, "time": 1504928398040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0181, 16.0961, 38.88 ] } }, - { "type": "Feature", "properties": { "id": "pr2017252000", "mag": 3.08, "time": 1504928197450, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.4461, 18.7428, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9g", "mag": 4.1, "time": 1504927088180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4711, 15.1531, 65.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16784944", "mag": 1.8, "time": 1504927005991, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3303, 60.1916, 78.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16784941", "mag": 2.3, "time": 1504926969938, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6189, 68.5221, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16784938", "mag": 2.1, "time": 1504926585070, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6431, 68.5555, 3.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000aijy", "mag": 4.9, "time": 1504926495850, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3472, 15.9092, 62.55 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9f", "mag": 4.0, "time": 1504926311940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.338, 15.4947, 53.82 ] } }, - { "type": "Feature", "properties": { "id": "ak16784757", "mag": 1.4, "time": 1504926151958, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.5619, 63.1355, 67.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9d", "mag": 4.0, "time": 1504926060810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.644, 15.4622, 58.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay9b", "mag": 4.0, "time": 1504925827780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0747, 15.195, 43.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000aj03", "mag": 2.7, "time": 1504925336910, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.2524, 54.0919, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000aijm", "mag": 4.5, "time": 1504925090110, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -67.2748, -24.2322, 205.92 ] } }, - { "type": "Feature", "properties": { "id": "us2000aijl", "mag": 5.1, "time": 1504925024150, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7923, 15.6429, 57.68 ] } }, - { "type": "Feature", "properties": { "id": "ak16784618", "mag": 2.6, "time": 1504924922956, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6215, 68.5087, 13.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aij6", "mag": 4.9, "time": 1504924325880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2803, 15.0759, 19.62 ] } }, - { "type": "Feature", "properties": { "id": "ak16823460", "mag": 1.6, "time": 1504924009517, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.6908, 68.536, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16823459", "mag": 1.6, "time": 1504923856019, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.1588, 59.9206, 119.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37758231", "mag": 1.09, "time": 1504923480190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.197667, 33.036667, 6.54 ] } }, - { "type": "Feature", "properties": { "id": "ak16823458", "mag": 1.2, "time": 1504923376066, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8869, 60.0725, 77.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16784466", "mag": 1.3, "time": 1504922976851, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.9394, 63.4575, 10.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37758223", "mag": 1.64, "time": 1504922815610, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.095167, 35.773167, 10.47 ] } }, - { "type": "Feature", "properties": { "id": "uw61305517", "mag": 1.22, "time": 1504922472730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.234, 46.341167, 11.49 ] } }, - { "type": "Feature", "properties": { "id": "ci37758207", "mag": 0.96, "time": 1504922375210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.930333, 35.896833, 5.72 ] } }, - { "type": "Feature", "properties": { "id": "ak16823455", "mag": 1.1, "time": 1504921668573, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5605, 58.7828, 14.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16784171", "mag": 1.5, "time": 1504921324109, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.7065, 68.5298, 8.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay97", "mag": 4.2, "time": 1504921245860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8933, 15.7086, 79.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay95", "mag": 4.0, "time": 1504920659630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5492, 15.7942, 35.56 ] } }, - { "type": "Feature", "properties": { "id": "ak16784114", "mag": 1.2, "time": 1504920524598, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.8278, 67.3421, 14.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16823452", "mag": 1.3, "time": 1504919998366, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.593, 58.7481, 11.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000arv3", "mag": 4.3, "time": 1504919742200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -82.4369, 7.7941, 13.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiic", "mag": 4.1, "time": 1504919644420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.098, 15.37, 28.41 ] } }, - { "type": "Feature", "properties": { "id": "nc72888926", "mag": 1.51, "time": 1504919499600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.797167, 38.8195, 2.74 ] } }, - { "type": "Feature", "properties": { "id": "hv61901901", "mag": 2.49, "time": 1504919482270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.300507, 19.404333, 13.76 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay91", "mag": 4.1, "time": 1504919175710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.5371, 15.6773, 67.69 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay90", "mag": 3.9, "time": 1504918842770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4561, 15.2969, 47.01 ] } }, - { "type": "Feature", "properties": { "id": "nc72888921", "mag": 1.43, "time": 1504918334270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.63, 40.262167, 3.32 ] } }, - { "type": "Feature", "properties": { "id": "us2000aiht", "mag": 4.4, "time": 1504918076900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5874, 15.6439, 12.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16783729", "mag": 1.5, "time": 1504917773363, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7901, 64.8033, 13.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16823450", "mag": 1.8, "time": 1504917198075, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.1288, 53.4202, 28.2 ] } }, - { "type": "Feature", "properties": { "id": "uu60239577", "mag": 1.64, "time": 1504917186550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.438333, 42.574167, 3.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16823449", "mag": 1.6, "time": 1504917085381, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.671, 59.1673, 61.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000aihy", "mag": 4.1, "time": 1504916600330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3911, 16.0661, 39.18 ] } }, - { "type": "Feature", "properties": { "id": "us2000aih9", "mag": 2.8, "time": 1504916318430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4281, 42.5718, 5.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000aih8", "mag": 2.5, "time": 1504916278870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4338, 42.5822, 5.38 ] } }, - { "type": "Feature", "properties": { "id": "ak16783588", "mag": 1.6, "time": 1504916071368, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.3277, 59.285, 86.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16783586", "mag": 1.1, "time": 1504915994737, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.056, 67.2634, 8.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16823446", "mag": 2.1, "time": 1504915956900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.713, 53.9765, 25.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37758159", "mag": 1.56, "time": 1504915633570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2745, 33.978, 4.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000arsl", "mag": 4.3, "time": 1504915283460, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6805, 16.8287, 106.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16823445", "mag": 1.2, "time": 1504915279966, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -136.6323, 59.8055, 11.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16783409", "mag": 1.6, "time": 1504915272065, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.43, 61.3236, 75.8 ] } }, - { "type": "Feature", "properties": { "id": "ci37164028", "mag": 1.71, "time": 1504915194240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.598333, 33.300667, 5.25 ] } }, - { "type": "Feature", "properties": { "id": "ci37758151", "mag": 2.09, "time": 1504915192060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.24, 32.322667, 6.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16783408", "mag": 1.6, "time": 1504915154515, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3632, 60.1661, 90.3 ] } }, - { "type": "Feature", "properties": { "id": "hv61901846", "mag": 1.94, "time": 1504914308880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.314, 18.895833, 12.72 ] } }, - { "type": "Feature", "properties": { "id": "nc72888886", "mag": 1.0, "time": 1504914139040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.003833, 37.588667, 1.64 ] } }, - { "type": "Feature", "properties": { "id": "ak16783243", "mag": 1.1, "time": 1504913564223, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.2504, 62.3109, 15.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16821920", "mag": 1.3, "time": 1504913498285, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.1821, 58.2348, 101.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821919", "mag": 1.4, "time": 1504913414028, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.1655, 60.5722, 86.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16821918", "mag": 1.1, "time": 1504913077516, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.597, 58.7696, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000aigc", "mag": 4.1, "time": 1504912952040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1585, 15.0785, 47.75 ] } }, - { "type": "Feature", "properties": { "id": "uu60239522", "mag": 1.86, "time": 1504912091450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.417833, 42.557333, 7.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000aifs", "mag": 4.4, "time": 1504911443790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 82.6815, 44.316, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16782938", "mag": 1.1, "time": 1504911183072, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3769, 64.9856, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16782937", "mag": 1.1, "time": 1504910876129, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -146.7587, 61.2722, 29.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16782871", "mag": 1.5, "time": 1504910569120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -139.4893, 60.1552, 7.8 ] } }, - { "type": "Feature", "properties": { "id": "ak16782868", "mag": 1.4, "time": 1504910467245, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.7194, 62.6908, 57.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16821913", "mag": 1.7, "time": 1504910258777, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.0231, 58.2214, 149.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72888801", "mag": 1.9, "time": 1504909953040, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.8175, 37.486333, -0.46 ] } }, - { "type": "Feature", "properties": { "id": "us2000aif7", "mag": 2.5, "time": 1504909902600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5076, 36.2848, 8.171 ] } }, - { "type": "Feature", "properties": { "id": "us2000aif4", "mag": 4.8, "time": 1504909723200, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8865, 15.3302, 30.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16821912", "mag": 1.1, "time": 1504909705310, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3127, 62.4824, 115.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000aif0", "mag": 3.0, "time": 1504909701800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.5069, 36.2872, 6.887 ] } }, - { "type": "Feature", "properties": { "id": "mb80253249", "mag": 1.02, "time": 1504909626120, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.500333, 46.870333, 14.95 ] } }, - { "type": "Feature", "properties": { "id": "nc72888791", "mag": 1.37, "time": 1504909453970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.04, 37.6285, -2.07 ] } }, - { "type": "Feature", "properties": { "id": "us2000aier", "mag": 4.4, "time": 1504908895340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0113, 15.4861, 55.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16821911", "mag": 1.3, "time": 1504908516343, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.8637, 60.6448, 52.5 ] } }, - { "type": "Feature", "properties": { "id": "ci37758063", "mag": 1.18, "time": 1504908189370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.201167, 33.035167, 5.64 ] } }, - { "type": "Feature", "properties": { "id": "nc72888781", "mag": 1.42, "time": 1504907868300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.038667, 37.624833, -2.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000aie8", "mag": 4.7, "time": 1504907825570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5854, 15.5735, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72888776", "mag": 1.8, "time": 1504907588830, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.040167, 37.63, -1.66 ] } }, - { "type": "Feature", "properties": { "id": "us2000aie6", "mag": 4.6, "time": 1504907582410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4976, 15.7473, 55.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000aidm", "mag": 4.5, "time": 1504906777370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0707, 15.2209, 55.42 ] } }, - { "type": "Feature", "properties": { "id": "us2000aid9", "mag": 4.8, "time": 1504906287810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3905, 15.4318, 56.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72888771", "mag": 1.19, "time": 1504906092960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.451, 37.990333, 1.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000aicx", "mag": 4.3, "time": 1504906074440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2669, 15.5886, 57.93 ] } }, - { "type": "Feature", "properties": { "id": "ak16782412", "mag": 1.0, "time": 1504906074363, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.3787, 62.4883, 7.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16782375", "mag": 2.3, "time": 1504905457780, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.4787, 52.748, 40.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72888756", "mag": 1.38, "time": 1504905314090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.756167, 39.273333, 4.85 ] } }, - { "type": "Feature", "properties": { "id": "ak16782374", "mag": 1.2, "time": 1504905292993, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.8681, 59.9024, 67.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000aicp", "mag": 4.2, "time": 1504905187950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4812, 15.6987, 35.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16782334", "mag": 1.1, "time": 1504904835105, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -144.7621, 65.5089, 13.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16782328", "mag": 2.5, "time": 1504904826453, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.811, 61.2391, 56.6 ] } }, - { "type": "Feature", "properties": { "id": "uw61305342", "mag": 1.93, "time": 1504904598280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.065167, 44.442833, -1.58 ] } }, - { "type": "Feature", "properties": { "id": "nc72888751", "mag": 1.54, "time": 1504903192860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7535, 39.279333, 8.66 ] } }, - { "type": "Feature", "properties": { "id": "ak16781999", "mag": 3.0, "time": 1504902403320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2239, 60.1717, 139.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16781990", "mag": 2.9, "time": 1504902403227, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2392, 60.1979, 145.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay7u", "mag": 4.1, "time": 1504902279690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7805, 15.528, 44.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16821902", "mag": 2.3, "time": 1504902127057, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.6706, 53.1595, 47.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80253224", "mag": 1.28, "time": 1504901825890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.961667, 44.423667, 7.65 ] } }, - { "type": "Feature", "properties": { "id": "ci37758023", "mag": 1.23, "time": 1504901676790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.243333, 34.049667, 14.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000arsf", "mag": 4.8, "time": 1504901654190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 169.1397, -18.9749, 151.93 ] } }, - { "type": "Feature", "properties": { "id": "us2000aib4", "mag": 4.7, "time": 1504901358420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4084, 14.947, 20.03 ] } }, - { "type": "Feature", "properties": { "id": "mb80254729", "mag": 1.15, "time": 1504901142840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5325, 46.863333, 12.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000arse", "mag": 4.2, "time": 1504900520170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 122.6478, 18.4195, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16781710", "mag": 1.5, "time": 1504900346639, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.5122, 61.5519, 57.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16781709", "mag": 1.3, "time": 1504900242686, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.7722, 60.316, 70.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000aibq", "mag": 2.5, "time": 1504899687060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4383, 42.5694, 8.27 ] } }, - { "type": "Feature", "properties": { "id": "nc72888741", "mag": 1.05, "time": 1504899640660, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.013, 37.593167, 0.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000aib3", "mag": 2.8, "time": 1504899556990, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4363, 42.571, 9.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000aia5", "mag": 2.6, "time": 1504899482480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4289, 42.5733, 13.75 ] } }, - { "type": "Feature", "properties": { "id": "ak16781595", "mag": 1.7, "time": 1504899244914, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -141.1502, 60.3533, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16781585", "mag": 3.9, "time": 1504899189169, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.5601, 59.2544, 64.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37758007", "mag": 2.02, "time": 1504898829300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.561833, 31.0585, 5.61 ] } }, - { "type": "Feature", "properties": { "id": "ak16781550", "mag": 1.4, "time": 1504898282611, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6296, 61.6699, 64.1 ] } }, - { "type": "Feature", "properties": { "id": "ci37757991", "mag": 1.52, "time": 1504897913130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.184167, 34.008167, 14.79 ] } }, - { "type": "Feature", "properties": { "id": "ci37757975", "mag": 1.23, "time": 1504897847890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.191833, 34.995167, -0.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai96", "mag": 4.7, "time": 1504897612480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1128, 15.0427, 38.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay7g", "mag": 4.5, "time": 1504897486190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6162, 15.5292, 52.13 ] } }, - { "type": "Feature", "properties": { "id": "us2000aku3", "mag": 2.7, "time": 1504897427450, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4362, 42.5723, 6.2 ] } }, - { "type": "Feature", "properties": { "id": "us2000aruj", "mag": 4.0, "time": 1504897268300, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 151.0589, 51.6006, 526.16 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai8x", "mag": 5.3, "time": 1504897044080, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9814, 16.231, 63.24 ] } }, - { "type": "Feature", "properties": { "id": "us2000ars7", "mag": 4.4, "time": 1504896441090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 166.9803, -12.2109, 239.13 ] } }, - { "type": "Feature", "properties": { "id": "us2000ars8", "mag": 4.2, "time": 1504895755810, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4237, 15.0921, 33.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16781202", "mag": 1.1, "time": 1504895394318, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.517, 62.887, 92.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai8l", "mag": 5.0, "time": 1504895053450, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0247, 15.6158, 25.92 ] } }, - { "type": "Feature", "properties": { "id": "nc72888711", "mag": 1.13, "time": 1504894886190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.369, 37.616167, 3.76 ] } }, - { "type": "Feature", "properties": { "id": "ci37757951", "mag": 1.29, "time": 1504894538140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.34, 35.0645, -0.97 ] } }, - { "type": "Feature", "properties": { "id": "nn00604251", "mag": 1.1, "time": 1504893693579, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.5283, 37.177, 14.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72888696", "mag": 1.24, "time": 1504893681000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.9525, 37.9215, -0.25 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai89", "mag": 4.9, "time": 1504893629390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.339, 15.3801, 37.31 ] } }, - { "type": "Feature", "properties": { "id": "ak16780971", "mag": 2.0, "time": 1504893338524, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.7656, 56.9755, 12.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai7x", "mag": 4.4, "time": 1504893167240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8739, 15.6809, 69.44 ] } }, - { "type": "Feature", "properties": { "id": "ci37757919", "mag": 1.09, "time": 1504892320190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.792333, 33.504167, 6.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16780872", "mag": 2.7, "time": 1504892251611, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.2184, 60.0235, 132.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai7w", "mag": 5.1, "time": 1504892136330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 54.7094, 14.7125, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16780870", "mag": 1.9, "time": 1504892114398, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.5364, 59.0829, 80.6 ] } }, - { "type": "Feature", "properties": { "id": "nn00604241", "mag": 1.7, "time": 1504892108096, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.8858, 39.5547, 16.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37757903", "mag": 1.06, "time": 1504892000240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.084, 33.233167, 9.85 ] } }, - { "type": "Feature", "properties": { "id": "mb80253164", "mag": 0.95, "time": 1504891992150, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.5415, 46.8995, 11.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai7p", "mag": 4.3, "time": 1504891955840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.495, 15.1404, 36.22 ] } }, - { "type": "Feature", "properties": { "id": "ak16780841", "mag": 1.4, "time": 1504891846856, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.3249, 60.9139, 26.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000arsh", "mag": 4.5, "time": 1504891333730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 133.2388, -6.8416, 19.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay6x", "mag": 4.1, "time": 1504891315080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7297, 15.3343, 19.17 ] } }, - { "type": "Feature", "properties": { "id": "us2000ars4", "mag": 4.4, "time": 1504891219920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 54.7693, 14.6837, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16780813", "mag": 1.5, "time": 1504891126668, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.153, 61.7092, 3.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72888686", "mag": 1.23, "time": 1504891114230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.1045, 37.325167, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "ci37757879", "mag": 2.31, "time": 1504890797650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.463833, 34.355833, 3.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai73", "mag": 4.9, "time": 1504890172380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6852, 15.6184, 20.97 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai6w", "mag": 4.8, "time": 1504890101520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3813, 15.1628, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai6n", "mag": 4.6, "time": 1504889103890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 130.804, -6.0426, 126.88 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai6c", "mag": 4.7, "time": 1504888948510, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8822, 15.7603, 70.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai66", "mag": 3.1, "time": 1504888942660, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4688, 42.6127, 7.46 ] } }, - { "type": "Feature", "properties": { "id": "ci37757839", "mag": 1.07, "time": 1504888838380, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.931, 35.8975, 5.55 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai5r", "mag": 5.0, "time": 1504887559080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1176, 15.3478, 50.28 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai7e", "mag": 2.6, "time": 1504887451250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.8013, 51.3347, 33.06 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai5q", "mag": 4.8, "time": 1504887267930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.834, 15.2659, 31.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000ars1", "mag": 4.4, "time": 1504887163560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 121.5842, 0.5634, 87.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai5f", "mag": 4.9, "time": 1504887145160, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4164, 15.3325, 55.79 ] } }, - { "type": "Feature", "properties": { "id": "us2000aixn", "mag": 4.1, "time": 1504887139190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.237, 15.3669, 61.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16821886", "mag": 1.0, "time": 1504887040916, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.7913, 61.8643, 40.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai53", "mag": 4.6, "time": 1504886882420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4908, 15.0663, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16780437", "mag": 1.7, "time": 1504886789015, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.1717, 61.2338, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arsa", "mag": 4.8, "time": 1504886367500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -45.1832, 25.2517, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arrz", "mag": 4.3, "time": 1504885790410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 121.1544, 13.7011, 115.66 ] } }, - { "type": "Feature", "properties": { "id": "ci37757791", "mag": 2.49, "time": 1504885701960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.863167, 36.514, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72888591", "mag": 1.18, "time": 1504885591170, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.029167, 37.64, 1.33 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay69", "mag": 4.3, "time": 1504884967040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8299, 15.2537, 51.49 ] } }, - { "type": "Feature", "properties": { "id": "nc72888561", "mag": 2.76, "time": 1504884687580, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -126.4015, 40.656167, 4.61 ] } }, - { "type": "Feature", "properties": { "id": "nc72888556", "mag": 1.22, "time": 1504884477720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.594833, 36.036167, 3.51 ] } }, - { "type": "Feature", "properties": { "id": "nc72888551", "mag": 1.29, "time": 1504884449700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.600833, 36.033, 2.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai45", "mag": 4.4, "time": 1504884249230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 51.6373, 29.0196, 32.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai4f", "mag": 5.0, "time": 1504884005650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -172.4529, -15.2805, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ci37757767", "mag": 1.56, "time": 1504883892090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.447333, 34.149, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72888536", "mag": 1.66, "time": 1504883570470, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.168167, 39.1465, -0.58 ] } }, - { "type": "Feature", "properties": { "id": "us2000arrw", "mag": 4.2, "time": 1504882974870, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7985, 15.5213, 35.36 ] } }, - { "type": "Feature", "properties": { "id": "ak16779960", "mag": 1.8, "time": 1504882678981, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0626, 62.8988, 105.6 ] } }, - { "type": "Feature", "properties": { "id": "ci37757743", "mag": 0.97, "time": 1504882082250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.499333, 33.723667, 12.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai3n", "mag": 5.3, "time": 1504881901650, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3384, 15.544, 53.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai3i", "mag": 5.0, "time": 1504881612700, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4062, 15.406, 49.05 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai3c", "mag": 5.1, "time": 1504880703430, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1626, 15.9178, 78.53 ] } }, - { "type": "Feature", "properties": { "id": "ak16821881", "mag": 1.9, "time": 1504880601665, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.7019, 53.1531, 4.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai3a", "mag": 4.6, "time": 1504880185590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9379, 15.4789, 51.37 ] } }, - { "type": "Feature", "properties": { "id": "nc72888511", "mag": 1.64, "time": 1504879933970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.805, 37.519, 0.63 ] } }, - { "type": "Feature", "properties": { "id": "us2000arrt", "mag": 4.3, "time": 1504879797140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -92.5495, 15.2436, 49.04 ] } }, - { "type": "Feature", "properties": { "id": "nc72888506", "mag": 1.11, "time": 1504879682840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.807167, 37.5155, -1.34 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai2x", "mag": 4.4, "time": 1504878550770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3291, 15.5119, 43.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai2u", "mag": 4.5, "time": 1504878237250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3775, 15.3318, 55.57 ] } }, - { "type": "Feature", "properties": { "id": "ak16779589", "mag": 2.1, "time": 1504878197682, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.7176, 61.7913, 43.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72888501", "mag": 1.4, "time": 1504877974600, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.826833, 38.884833, 0.43 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai2s", "mag": 4.5, "time": 1504877794630, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2597, 15.3155, 57.11 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai2p", "mag": 4.3, "time": 1504877637550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3617, 15.3594, 72.43 ] } }, - { "type": "Feature", "properties": { "id": "ak16821879", "mag": 1.1, "time": 1504877280981, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.4859, 62.9279, 91.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai2h", "mag": 4.3, "time": 1504877227420, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2794, 15.5765, 57.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai2d", "mag": 4.9, "time": 1504877000620, "felt": 5, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 140.4519, 39.5355, 14.54 ] } }, - { "type": "Feature", "properties": { "id": "nc72888491", "mag": 1.84, "time": 1504876384490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.493333, 38.505333, 9.95 ] } }, - { "type": "Feature", "properties": { "id": "ak16821878", "mag": 1.4, "time": 1504875984627, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.1326, 61.9648, 66.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821876", "mag": 2.2, "time": 1504875655387, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -168.9923, 52.3567, 17.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72888486", "mag": 2.07, "time": 1504875297970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.476833, 38.505667, 10.55 ] } }, - { "type": "Feature", "properties": { "id": "nc72888481", "mag": 2.29, "time": 1504875261290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.487833, 38.504167, 11.24 ] } }, - { "type": "Feature", "properties": { "id": "ak16779354", "mag": 1.2, "time": 1504874899621, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.8024, 62.2347, 27.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai1z", "mag": 4.7, "time": 1504874764610, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9526, 15.348, 66.08 ] } }, - { "type": "Feature", "properties": { "id": "nn00604198", "mag": 1.6, "time": 1504874486416, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.1528, 36.3422, 12.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16779312", "mag": 1.1, "time": 1504874405501, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.2249, 66.2606, 1.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16821873", "mag": 1.7, "time": 1504874360732, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -177.5174, 51.2619, 22.7 ] } }, - { "type": "Feature", "properties": { "id": "nn00604197", "mag": 1.1, "time": 1504874200883, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.2814, 37.8092, 5.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72888476", "mag": 1.21, "time": 1504873957930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.509333, 40.482667, 4.94 ] } }, - { "type": "Feature", "properties": { "id": "ci37757703", "mag": 1.39, "time": 1504873858920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.717833, 33.649333, 15.22 ] } }, - { "type": "Feature", "properties": { "id": "ci37757695", "mag": 1.17, "time": 1504872471560, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.568167, 33.822667, 8.77 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai1k", "mag": 5.2, "time": 1504872379780, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4203, 15.4936, 64.61 ] } }, - { "type": "Feature", "properties": { "id": "nn00604195", "mag": 1.1, "time": 1504872342696, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.0794, 39.7864, 6.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai1f", "mag": 4.5, "time": 1504872210290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.752, 15.6687, 34.52 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai17", "mag": 4.7, "time": 1504871509040, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.251, 15.2604, 43.78 ] } }, - { "type": "Feature", "properties": { "id": "ci37757687", "mag": 1.13, "time": 1504871201290, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.5185, 33.500333, 13.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai11", "mag": 4.8, "time": 1504870992430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5788, 16.0581, 67.6 ] } }, - { "type": "Feature", "properties": { "id": "nc72888461", "mag": 1.42, "time": 1504869975320, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.437833, 39.504833, 12.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai0u", "mag": 5.0, "time": 1504869955970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7875, 15.7988, 32.83 ] } }, - { "type": "Feature", "properties": { "id": "nc72888456", "mag": 1.91, "time": 1504869902080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.485667, 38.504833, 10.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai0r", "mag": 3.1, "time": 1504869744270, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4645, 42.6225, 8.36 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai0n", "mag": 4.5, "time": 1504869089530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4825, 15.1089, 36.59 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai0k", "mag": 4.3, "time": 1504868775480, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.798, 15.8932, 52.08 ] } }, - { "type": "Feature", "properties": { "id": "ak16778868", "mag": 2.4, "time": 1504868579816, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.6965, 62.1823, 44.5 ] } }, - { "type": "Feature", "properties": { "id": "nc72888446", "mag": 1.29, "time": 1504868153570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.486333, 38.5055, 8.02 ] } }, - { "type": "Feature", "properties": { "id": "nc72888436", "mag": 1.9, "time": 1504867751580, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.482833, 38.504333, 10.56 ] } }, - { "type": "Feature", "properties": { "id": "nc72888431", "mag": 1.71, "time": 1504867332410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.491833, 38.504667, 9.32 ] } }, - { "type": "Feature", "properties": { "id": "nc72888421", "mag": 1.08, "time": 1504867024130, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.489, 38.504333, 8.33 ] } }, - { "type": "Feature", "properties": { "id": "ak16821868", "mag": 2.1, "time": 1504866678618, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -160.4655, 55.6664, 99.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16821867", "mag": 1.4, "time": 1504866626331, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -147.0732, 60.0832, 7.7 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai08", "mag": 4.7, "time": 1504866065090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 125.9223, 5.4358, 106.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16778797", "mag": 1.0, "time": 1504865774499, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.3276, 61.5525, 10.3 ] } }, - { "type": "Feature", "properties": { "id": "nn00604189", "mag": 1.2, "time": 1504865677094, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -120.0784, 39.7853, 6.9 ] } }, - { "type": "Feature", "properties": { "id": "nc72888411", "mag": 1.53, "time": 1504865468770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.476167, 38.507167, 9.38 ] } }, - { "type": "Feature", "properties": { "id": "hv61901161", "mag": 1.74, "time": 1504864814220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.466833, 19.2065, 36.007 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70234788", "mag": 2.39, "time": 1504864780960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.7805, 37.3255, 5.78 ] } }, - { "type": "Feature", "properties": { "id": "ak16780611", "mag": 2.4, "time": 1504864612255, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.1592, 61.3969, 4.3 ] } }, - { "type": "Feature", "properties": { "id": "ak16778631", "mag": 2.2, "time": 1504864578261, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -140.1624, 61.4081, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "uw61305087", "mag": 2.01, "time": 1504864189490, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.050833, 48.9275, 23.48 ] } }, - { "type": "Feature", "properties": { "id": "ak16821863", "mag": 1.7, "time": 1504863670078, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -178.4879, 51.7374, 21.1 ] } }, - { "type": "Feature", "properties": { "id": "ak16821862", "mag": 1.8, "time": 1504862106783, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.9215, 58.7206, 119.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahzn", "mag": 4.6, "time": 1504861954060, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4387, 15.3946, 52.08 ] } }, - { "type": "Feature", "properties": { "id": "nc72888396", "mag": 1.27, "time": 1504861876770, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8075, 37.512833, 1.14 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahzl", "mag": 4.5, "time": 1504861821720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4897, 15.3898, 66.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahzj", "mag": 4.5, "time": 1504861699670, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5329, 15.609, 39.64 ] } }, - { "type": "Feature", "properties": { "id": "ci37757655", "mag": 1.16, "time": 1504861667220, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.622833, 33.107167, 12.71 ] } }, - { "type": "Feature", "properties": { "id": "ak16778553", "mag": 1.9, "time": 1504861559880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.5627, 66.997, 11.1 ] } }, - { "type": "Feature", "properties": { "id": "nc72888391", "mag": 2.09, "time": 1504860900670, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -123.456, 39.646667, 9.55 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay4f", "mag": 4.1, "time": 1504860843930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7484, 15.3716, 56.33 ] } }, - { "type": "Feature", "properties": { "id": "nc72888386", "mag": 2.1, "time": 1504860440750, "felt": 7, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.938, 37.831333, 7.32 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay4d", "mag": 4.4, "time": 1504860354710, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.834, 15.3232, 49.34 ] } }, - { "type": "Feature", "properties": { "id": "us2000arrb", "mag": 4.6, "time": 1504860180930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0811, 15.785, 52.87 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahzq", "mag": 4.5, "time": 1504860168930, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9132, 15.2837, 68.08 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahz5", "mag": 5.3, "time": 1504859674330, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1725, 15.2148, 50.77 ] } }, - { "type": "Feature", "properties": { "id": "ak16821859", "mag": 2.1, "time": 1504859557955, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -159.0839, 54.9712, 35.5 ] } }, - { "type": "Feature", "properties": { "id": "nn00604302", "mag": 1.1, "time": 1504859552745, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.4838, 37.3947, 8.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16778352", "mag": 1.2, "time": 1504859550711, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.4759, 63.0882, 87.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahz3", "mag": 4.3, "time": 1504859478950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3904, 15.121, 30.23 ] } }, - { "type": "Feature", "properties": { "id": "nn00604182", "mag": 1.0, "time": 1504858881802, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0405, 37.2978, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahz1", "mag": 4.3, "time": 1504858630350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6852, 15.833, 76.27 ] } }, - { "type": "Feature", "properties": { "id": "uu60239147", "mag": 2.45, "time": 1504858591000, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.444167, 42.664333, 8.83 ] } }, - { "type": "Feature", "properties": { "id": "us2000al72", "mag": 2.9, "time": 1504858190760, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.2139, 52.5352, 91.97 ] } }, - { "type": "Feature", "properties": { "id": "uu60239137", "mag": 1.54, "time": 1504858110210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -110.647, 44.396167, 2.58 ] } }, - { "type": "Feature", "properties": { "id": "us2000arui", "mag": 4.2, "time": 1504858026090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4738, 14.8297, 45.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahyr", "mag": 4.3, "time": 1504857969210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.0003, 15.7457, 35.1 ] } }, - { "type": "Feature", "properties": { "id": "us2000arul", "mag": 4.3, "time": 1504857669250, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.801, 14.8524, 28.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahyk", "mag": 4.5, "time": 1504857596840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7758, 15.5339, 42.45 ] } }, - { "type": "Feature", "properties": { "id": "nn00604180", "mag": 1.2, "time": 1504857534482, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.0136, 37.3074, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16821856", "mag": 1.2, "time": 1504857418267, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -157.4697, 58.6313, 13.4 ] } }, - { "type": "Feature", "properties": { "id": "nn00604280", "mag": 1.0, "time": 1504857267736, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -119.7805, 38.6696, 7.4 ] } }, - { "type": "Feature", "properties": { "id": "us2000aruq", "mag": 4.3, "time": 1504857079940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6759, 15.5537, 36.84 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahyf", "mag": 3.2, "time": 1504857069370, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4101, 42.5653, 6.35 ] } }, - { "type": "Feature", "properties": { "id": "ci37757631", "mag": 1.01, "time": 1504856868740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -117.778, 36.031333, 2.15 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay0x", "mag": 4.1, "time": 1504856777400, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7738, 15.4661, 38.21 ] } }, - { "type": "Feature", "properties": { "id": "ak16821855", "mag": 1.3, "time": 1504856435979, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.538, 63.3273, 125.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahy9", "mag": 4.4, "time": 1504856316640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6365, 15.5777, 47.53 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahy5", "mag": 3.2, "time": 1504855878650, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.446, 42.6598, 6.58 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahy6", "mag": 4.4, "time": 1504855839640, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7956, 15.6082, 34.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000arrn", "mag": 4.1, "time": 1504855556590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2068, 15.1108, 51.65 ] } }, - { "type": "Feature", "properties": { "id": "us2000al71", "mag": 3.0, "time": 1504855456090, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -164.0677, 53.8832, 50.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16778144", "mag": 3.2, "time": 1504855447301, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -135.611, 66.2631, 33.8 ] } }, - { "type": "Feature", "properties": { "id": "us2000arri", "mag": 4.2, "time": 1504855233030, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9743, 15.126, 35.68 ] } }, - { "type": "Feature", "properties": { "id": "nc72888356", "mag": 1.89, "time": 1504854775740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -121.3305, 41.068, 11.84 ] } }, - { "type": "Feature", "properties": { "id": "mb80253029", "mag": 1.45, "time": 1504854704970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.500667, 45.881, 8.81 ] } }, - { "type": "Feature", "properties": { "id": "ak16778123", "mag": 2.3, "time": 1504854630925, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -142.7701, 57.7458, 12.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72888351", "mag": 1.26, "time": 1504854591960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.882167, 37.522833, -2.2 ] } }, - { "type": "Feature", "properties": { "id": "hv61901091", "mag": 1.09, "time": 1504854245900, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.447167, 19.4775, 2.47 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay45", "mag": 4.2, "time": 1504854208800, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7971, 14.6019, 44.25 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahxm", "mag": 4.2, "time": 1504854069790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8774, 14.8705, 34.98 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay43", "mag": 4.1, "time": 1504853757100, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8976, 15.4459, 61.28 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahxh", "mag": 3.6, "time": 1504853614760, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -104.9507, 36.9956, 6.27 ] } }, - { "type": "Feature", "properties": { "id": "ak16821851", "mag": 1.1, "time": 1504853435000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.2544, 63.717, 83.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72888336", "mag": 0.98, "time": 1504853065280, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.982833, 37.5425, 1.67 ] } }, - { "type": "Feature", "properties": { "id": "ak16777966", "mag": 1.3, "time": 1504853023023, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -148.715, 63.9895, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arut", "mag": 4.2, "time": 1504852684440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2381, 15.5108, 43.98 ] } }, - { "type": "Feature", "properties": { "id": "ci37757623", "mag": 0.96, "time": 1504852586240, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.789, 33.501333, 5.44 ] } }, - { "type": "Feature", "properties": { "id": "us2000arr6", "mag": 4.2, "time": 1504852477520, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.3508, 15.2654, 45.29 ] } }, - { "type": "Feature", "properties": { "id": "nc72888331", "mag": 1.19, "time": 1504852408190, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.736, 38.759167, 1.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000arr7", "mag": 4.0, "time": 1504852398530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.7954, 14.8479, 70.92 ] } }, - { "type": "Feature", "properties": { "id": "nn00604169", "mag": 1.2, "time": 1504852379590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.2104, 36.4921, 0.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahxc", "mag": 4.7, "time": 1504852332790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 3.8455, 72.6309, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72888321", "mag": 1.8, "time": 1504852052730, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8065, 38.792167, 2.94 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahx3", "mag": 4.3, "time": 1504851979140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.627, 15.4476, 46.76 ] } }, - { "type": "Feature", "properties": { "id": "ak16777937", "mag": 2.1, "time": 1504851258875, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.4392, 60.165, 78.3 ] } }, - { "type": "Feature", "properties": { "id": "us2000arr1", "mag": 4.3, "time": 1504851196580, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9103, 15.3461, 69.88 ] } }, - { "type": "Feature", "properties": { "id": "ak16821848", "mag": 1.5, "time": 1504851158790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -152.7947, 60.1163, 106.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahwt", "mag": 4.6, "time": 1504850928420, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5535, 15.437, 48.5 ] } }, - { "type": "Feature", "properties": { "id": "us2000arr4", "mag": 4.3, "time": 1504850711370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.9041, 15.1749, 40.34 ] } }, - { "type": "Feature", "properties": { "id": "ak16777931", "mag": 1.3, "time": 1504850655355, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -156.0257, 67.0569, 3.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000arr2", "mag": 4.2, "time": 1504850627530, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -95.1989, 15.0884, 40.99 ] } }, - { "type": "Feature", "properties": { "id": "us2000arrk", "mag": 4.2, "time": 1504850557880, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7531, 15.4362, 36.4 ] } }, - { "type": "Feature", "properties": { "id": "nc72888301", "mag": 1.87, "time": 1504850251760, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.802333, 38.820667, 3.26 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahwk", "mag": 4.6, "time": 1504850223990, "felt": 0, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.1219, 15.2941, 54.75 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahx1", "mag": 4.3, "time": 1504850059440, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9647, 15.304, 72.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay3u", "mag": 4.2, "time": 1504849825570, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.712, 15.4284, 47.14 ] } }, - { "type": "Feature", "properties": { "id": "nc72888296", "mag": 1.15, "time": 1504849761840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.800667, 38.847667, 0.54 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay3t", "mag": 4.4, "time": 1504849737970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8795, 15.668, 47.2 ] } }, - { "type": "Feature", "properties": { "id": "nc72888271", "mag": 1.56, "time": 1504849628820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.8005, 38.846333, 0.64 ] } }, - { "type": "Feature", "properties": { "id": "nc72888266", "mag": 1.02, "time": 1504849513230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.801666, 38.847332, 0.61 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahw5", "mag": 5.0, "time": 1504849467850, "felt": 1, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.7228, 15.5333, 34.69 ] } }, - { "type": "Feature", "properties": { "id": "us2000arr3", "mag": 4.3, "time": 1504849426720, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0216, 15.4454, 53.87 ] } }, - { "type": "Feature", "properties": { "id": "nc72888261", "mag": 0.99, "time": 1504849348500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.761002, 38.832501, 0.49 ] } }, - { "type": "Feature", "properties": { "id": "nn00604165", "mag": 2.1, "time": 1504849234193, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -114.9828, 37.2854, 2.6 ] } }, - { "type": "Feature", "properties": { "id": "us2000arr0", "mag": 4.9, "time": 1504849156050, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9438, 15.1471, 68.27 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay3s", "mag": 4.7, "time": 1504849019590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.8391, 15.6629, 60.73 ] } }, - { "type": "Feature", "properties": { "id": "us2000arux", "mag": 5.1, "time": 1504848867960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.0987, 14.9089, 42.35 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai3y", "mag": 2.5, "time": 1504848837100, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -98.4714, 36.5024, 6.91 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahvy", "mag": 5.2, "time": 1504848817820, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.4082, 15.2843, 45.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000arqy", "mag": 4.6, "time": 1504848547140, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.9331, 15.1504, 39.51 ] } }, - { "type": "Feature", "properties": { "id": "nc72888241", "mag": 1.03, "time": 1504848340890, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.800835, 38.847832, 0.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahvs", "mag": 5.2, "time": 1504848276840, "felt": 3, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5946, 15.2029, 49.18 ] } }, - { "type": "Feature", "properties": { "id": "nc72888226", "mag": 1.48, "time": 1504848105550, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.802, 38.848167, 0.48 ] } }, - { "type": "Feature", "properties": { "id": "nn00604164", "mag": 1.9, "time": 1504848096515, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -115.8669, 37.2911, 8.9 ] } }, - { "type": "Feature", "properties": { "id": "us2000ay3q", "mag": 4.8, "time": 1504848059390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.6096, 15.9617, 41.51 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahvc", "mag": 5.3, "time": 1504847863090, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.5672, 15.5726, 51.13 ] } }, - { "type": "Feature", "properties": { "id": "nc71107624", "mag": 2.16, "time": 1504847827370, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.752167, 39.287167, 10.78 ] } }, - { "type": "Feature", "properties": { "id": "nc72888211", "mag": 1.01, "time": 1504847761210, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.765663, 38.848667, 6.01 ] } }, - { "type": "Feature", "properties": { "id": "nc72888201", "mag": 1.17, "time": 1504847709790, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.80883, 38.829666, 0.99 ] } }, - { "type": "Feature", "properties": { "id": "pr2017251000", "mag": 3.73, "time": 1504847643290, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -68.2905, 19.3283, 52.0 ] } }, - { "type": "Feature", "properties": { "id": "us2000arqw", "mag": 4.8, "time": 1504847625230, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -93.8789, 15.4565, 61.03 ] } }, - { "type": "Feature", "properties": { "id": "us2000arqv", "mag": 5.0, "time": 1504847479550, "felt": null, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ 128.5159, 2.4289, 235.24 ] } }, - { "type": "Feature", "properties": { "id": "nc71107629", "mag": 1.35, "time": 1504847454920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.805833, 38.815333, 2.23 ] } }, - { "type": "Feature", "properties": { "id": "nc72888186", "mag": 1.45, "time": 1504847378350, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.766, 38.8255, 0.39 ] } }, - { "type": "Feature", "properties": { "id": "nc72888181", "mag": 2.28, "time": 1504847361610, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7555, 38.775667, 0.02 ] } }, - { "type": "Feature", "properties": { "id": "nc72888171", "mag": 1.83, "time": 1504847323920, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.7715, 38.817333, -0.11 ] } }, - { "type": "Feature", "properties": { "id": "nc71107399", "mag": 1.12, "time": 1504847319000, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.771167, 38.819333, -0.31 ] } }, - { "type": "Feature", "properties": { "id": "nc72888156", "mag": 1.24, "time": 1504847297950, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.556, 38.807, 15.91 ] } }, - { "type": "Feature", "properties": { "id": "nc72888151", "mag": 1.36, "time": 1504847289840, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.806, 38.822, 1.41 ] } }, - { "type": "Feature", "properties": { "id": "nc72888176", "mag": 1.79, "time": 1504847279970, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.739667, 38.774, -0.49 ] } }, - { "type": "Feature", "properties": { "id": "nc72888146", "mag": 2.3, "time": 1504847258860, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.817833, 38.815167, 0.34 ] } }, - { "type": "Feature", "properties": { "id": "nc72888141", "mag": 2.42, "time": 1504847223340, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.800667, 38.83, 1.81 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahv7", "mag": 5.7, "time": 1504846893100, "felt": 26, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -94.2707, 15.1746, 35.87 ] } }, - { "type": "Feature", "properties": { "id": "ak16777708", "mag": 1.1, "time": 1504846594461, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -151.0631, 61.4229, 6.8 ] } }, - { "type": "Feature", "properties": { "id": "mb80252994", "mag": 1.72, "time": 1504846249390, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -112.541833, 46.857167, 12.55 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahv0", "mag": 8.1, "time": 1504846160000, "felt": 2494, "tsunami": 1 }, "geometry": { "type": "Point", "coordinates": [ -93.9067, 15.0356, 56.67 ] } }, - { "type": "Feature", "properties": { "id": "us2000ai6a", "mag": 2.5, "time": 1504846040410, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.4753, 53.7845, 22.98 ] } }, - { "type": "Feature", "properties": { "id": "nc72888131", "mag": 1.2, "time": 1504845594500, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.8105, 37.463833, -1.37 ] } }, - { "type": "Feature", "properties": { "id": "ak16821844", "mag": 2.0, "time": 1504845256450, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 178.621, 51.2706, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37757591", "mag": 1.24, "time": 1504844674340, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.899167, 34.321833, 9.91 ] } }, - { "type": "Feature", "properties": { "id": "ak16821842", "mag": 2.0, "time": 1504843966513, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ 179.0405, 51.3724, 44.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821841", "mag": 2.4, "time": 1504843627204, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -165.0538, 52.2197, 10.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16821840", "mag": 1.4, "time": 1504843458180, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7807, 61.7731, 61.9 ] } }, - { "type": "Feature", "properties": { "id": "ak16821839", "mag": 1.1, "time": 1504843388032, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -149.5616, 61.4081, 45.5 ] } }, - { "type": "Feature", "properties": { "id": "ak16777570", "mag": 1.9, "time": 1504843130740, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -173.812, 51.8664, 11.6 ] } }, - { "type": "Feature", "properties": { "id": "ak16821837", "mag": 1.7, "time": 1504843122073, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.717, 58.7435, 117.7 ] } }, - { "type": "Feature", "properties": { "id": "ak16821836", "mag": 1.3, "time": 1504842507708, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.7323, 60.5323, 52.2 ] } }, - { "type": "Feature", "properties": { "id": "ci37757551", "mag": 1.47, "time": 1504841647940, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -116.7945, 33.496333, 3.33 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahus", "mag": 4.7, "time": 1504841042960, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.0592, 52.1619, 10.0 ] } }, - { "type": "Feature", "properties": { "id": "ak16777419", "mag": 1.0, "time": 1504839731548, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -153.81, 64.7157, 15.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16777418", "mag": 2.4, "time": 1504839437977, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -174.7414, 52.1837, 13.2 ] } }, - { "type": "Feature", "properties": { "id": "ak16821832", "mag": 2.4, "time": 1504839217735, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -169.2407, 52.3318, 38.5 ] } }, - { "type": "Feature", "properties": { "id": "hv61900746", "mag": 2.1, "time": 1504839173590, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -154.978833, 19.772, 43.163 ] } }, - { "type": "Feature", "properties": { "id": "ismpkansas70234763", "mag": 1.85, "time": 1504838718270, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.887167, 37.203, 6.15 ] } }, - { "type": "Feature", "properties": { "id": "ci37757519", "mag": 1.49, "time": 1504838267430, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -118.945167, 34.213667, 19.49 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahub", "mag": 4.3, "time": 1504837583700, "felt": 823, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -97.683, 36.6996, 6.073 ] } }, - { "type": "Feature", "properties": { "id": "ak16777416", "mag": 1.3, "time": 1504836895690, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -150.6982, 63.5777, 11.7 ] } }, - { "type": "Feature", "properties": { "id": "uw61304877", "mag": 1.15, "time": 1504836765080, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.568333, 48.699167, 3.29 ] } }, - { "type": "Feature", "properties": { "id": "us2000ahu8", "mag": 3.7, "time": 1504836433340, "felt": 2, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -111.4569, 42.6238, 5.0 ] } }, - { "type": "Feature", "properties": { "id": "nc72888096", "mag": 2.03, "time": 1504835142230, "felt": 4, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -122.053667, 37.835167, 7.59 ] } }, - { "type": "Feature", "properties": { "id": "ak16821829", "mag": 1.5, "time": 1504834613166, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -163.7652, 67.5597, 6.1 ] } }, - { "type": "Feature", "properties": { "id": "hv61900626", "mag": 2.91, "time": 1504833891990, "felt": null, "tsunami": 0 }, "geometry": { "type": "Point", "coordinates": [ -155.011833, 19.399333, 2.609 ] } } - ] - } \ No newline at end of file diff --git a/stories/MapAdaptor/components/images/layers.svg b/stories/MapAdaptor/components/images/layers.svg deleted file mode 100644 index 615f4172d7..0000000000 --- a/stories/MapAdaptor/components/images/layers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/stories/MapAdaptor/components/pointImage.tsx b/stories/MapAdaptor/components/pointImage.tsx deleted file mode 100644 index a9d4cdd306..0000000000 --- a/stories/MapAdaptor/components/pointImage.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import '!style-loader!css-loader!./css/l7.css'; -import { Marker, Popup, Scale, Zoom } from '@l7/component'; -import { Point } from '@l7/layers'; -import { Scene } from '@l7/scene'; -import * as React from 'react'; -import data from './data.json'; -export default class PointImage extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public componentDidMount() { - const scene = new Scene({ - center: [120.19382669582967, 30.258134], - id: 'map', - pitch: 0, - type: 'mapbox', - style: 'mapbox://styles/mapbox/dark-v10', - zoom: 1, - }); - scene.addImage( - '00', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*kzTMQqS2QdUAAAAAAAAAAABkARQnAQ', - ); - const pointLayer = new Point({}); - - // console.log(zoomControl); - // - pointLayer - .source(data) - // .color('blue') - .shape('00') - .size(40); - scene.addLayer(pointLayer); - scene.render(); - scene.on('loaded', () => { - const zoomControl = new Zoom({ - position: 'bottomright', - }); - const scaleControl = new Scale(); - const popup = new Popup({ - offsets: [0, 20], - }) - .setLnglat({ - lng: 120.19382669582967, - lat: 30.258134, - }) - .setText('hello') - .addTo(scene); - - const maker = new Marker(); - maker - .setLnglat({ - lng: 120.19382669582967, - lat: 30.258134, - }) - .addTo(scene); - scene.addControl(zoomControl); - scene.addControl(scaleControl); - }); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MultiPassRenderer/MultiPassRenderer.stories.tsx b/stories/MultiPassRenderer/MultiPassRenderer.stories.tsx deleted file mode 100644 index f29a258afc..0000000000 --- a/stories/MultiPassRenderer/MultiPassRenderer.stories.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { storiesOf } from '@storybook/react'; -import * as React from 'react'; -import Blur from './components/Blur'; -import ColorHalftone from './components/ColorHalftone'; -import HexagonalPixelate from './components/HexagonalPixelate'; -import Ink from './components/Ink'; -import Noise from './components/Noise'; -import Sepia from './components/Sepia'; -import TAA from './components/TAA'; -// @ts-ignore -storiesOf('MultiPassRenderer', module) - .add('ColorHalftone', () => ) - .add('HexagonalPixelate', () => ) - .add('Ink', () => ) - .add('Blur', () => ) - .add('Noise', () => ) - .add('Sepia', () => ) - .add('TAA(Temporal Anti-Aliasing)', () => ); diff --git a/stories/MultiPassRenderer/components/Blur.tsx b/stories/MultiPassRenderer/components/Blur.tsx deleted file mode 100644 index 47bbeaebba..0000000000 --- a/stories/MultiPassRenderer/components/Blur.tsx +++ /dev/null @@ -1,131 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class Mapbox extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - passes: [ - [ - 'blurH', - { - blurRadius: 8, - }, - ], - [ - 'blurV', - { - blurRadius: 8, - }, - ], - ], - }); - - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - blurVRadius: 8, - blurHRadius: 8, - }; - const pointFolder = gui.addFolder('Blur 配置'); - pointFolder - .add(styleOptions, 'blurVRadius', 0, 100) - .onChange((blurRadius: number) => { - layer.style({ - passes: [ - [ - 'blurV', - { - blurRadius, - }, - ], - ], - }); - scene.render(); - }); - pointFolder - .add(styleOptions, 'blurHRadius', 0, 100) - .onChange((blurRadius: number) => { - layer.style({ - passes: [ - [ - 'blurH', - { - blurRadius, - }, - ], - ], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MultiPassRenderer/components/ColorHalftone.tsx b/stories/MultiPassRenderer/components/ColorHalftone.tsx deleted file mode 100644 index 7cf2f6c101..0000000000 --- a/stories/MultiPassRenderer/components/ColorHalftone.tsx +++ /dev/null @@ -1,153 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class ColorHalftone extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - passes: [ - [ - 'colorHalftone', - { - size: 8, - }, - ], - ], - }); - - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - angle: 0, - size: 8, - centerX: 0.5, - centerY: 0.5, - }; - const pointFolder = gui.addFolder('ColorHalftone 配置'); - pointFolder - .add(styleOptions, 'centerX', 0, 1) - .onChange((centerX: number) => { - layer.style({ - passes: [ - [ - 'colorHalftone', - { - center: [centerX, styleOptions.centerY], - }, - ], - ], - }); - scene.render(); - }); - pointFolder - .add(styleOptions, 'centerY', 0, 1) - .onChange((centerY: number) => { - layer.style({ - passes: [ - [ - 'colorHalftone', - { - center: [styleOptions.centerX, centerY], - }, - ], - ], - }); - scene.render(); - }); - pointFolder.add(styleOptions, 'angle', 0, 10).onChange((angle: number) => { - layer.style({ - passes: [ - [ - 'colorHalftone', - { - angle, - }, - ], - ], - }); - scene.render(); - }); - pointFolder.add(styleOptions, 'size', 0, 20).onChange((size: number) => { - layer.style({ - passes: [ - [ - 'colorHalftone', - { - size, - }, - ], - ], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MultiPassRenderer/components/HexagonalPixelate.tsx b/stories/MultiPassRenderer/components/HexagonalPixelate.tsx deleted file mode 100644 index 8303d798b3..0000000000 --- a/stories/MultiPassRenderer/components/HexagonalPixelate.tsx +++ /dev/null @@ -1,139 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class HexagonalPixelate extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - passes: [ - [ - 'hexagonalPixelate', - { - scale: 10, - }, - ], - ], - }); - - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - scale: 10, - centerX: 0.5, - centerY: 0.5, - }; - const pointFolder = gui.addFolder('HexagonalPixelate 配置'); - pointFolder - .add(styleOptions, 'centerX', 0, 1) - .onChange((centerX: number) => { - layer.style({ - passes: [ - [ - 'hexagonalPixelate', - { - center: [centerX, styleOptions.centerY], - }, - ], - ], - }); - scene.render(); - }); - pointFolder - .add(styleOptions, 'centerY', 0, 1) - .onChange((centerY: number) => { - layer.style({ - passes: [ - [ - 'hexagonalPixelate', - { - center: [styleOptions.centerX, centerY], - }, - ], - ], - }); - scene.render(); - }); - pointFolder.add(styleOptions, 'scale', 0, 50).onChange((scale: number) => { - layer.style({ - passes: [ - [ - 'hexagonalPixelate', - { - scale, - }, - ], - ], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MultiPassRenderer/components/Ink.tsx b/stories/MultiPassRenderer/components/Ink.tsx deleted file mode 100644 index 29723c9412..0000000000 --- a/stories/MultiPassRenderer/components/Ink.tsx +++ /dev/null @@ -1,109 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class Ink extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - passes: [ - [ - 'ink', - { - strength: 0.6, - }, - ], - ], - }); - - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - strength: 0.6, - }; - const pointFolder = gui.addFolder('Ink 配置'); - pointFolder - .add(styleOptions, 'strength', 0, 1) - .onChange((strength: number) => { - layer.style({ - passes: [ - [ - 'ink', - { - strength, - }, - ], - ], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MultiPassRenderer/components/Noise.tsx b/stories/MultiPassRenderer/components/Noise.tsx deleted file mode 100644 index 7bb0df1d59..0000000000 --- a/stories/MultiPassRenderer/components/Noise.tsx +++ /dev/null @@ -1,100 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class Noise extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - passes: ['noise'], - }); - - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - amount: 1, - }; - const pointFolder = gui.addFolder('Noise 配置'); - pointFolder.add(styleOptions, 'amount', 0, 1).onChange((amount: number) => { - layer.style({ - passes: [ - [ - 'noise', - { - amount, - }, - ], - ], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MultiPassRenderer/components/Sepia.tsx b/stories/MultiPassRenderer/components/Sepia.tsx deleted file mode 100644 index fe859f8a42..0000000000 --- a/stories/MultiPassRenderer/components/Sepia.tsx +++ /dev/null @@ -1,100 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class Sepia extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - passes: ['sepia'], - }); - - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - amount: 0.5, - }; - const pointFolder = gui.addFolder('Sepia 配置'); - pointFolder.add(styleOptions, 'amount', 0, 1).onChange((amount: number) => { - layer.style({ - passes: [ - [ - 'sepia', - { - amount, - }, - ], - ], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/MultiPassRenderer/components/TAA.tsx b/stories/MultiPassRenderer/components/TAA.tsx deleted file mode 100644 index 5c9ed0677b..0000000000 --- a/stories/MultiPassRenderer/components/TAA.tsx +++ /dev/null @@ -1,105 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class TAA extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const data = await response.json(); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - enableTAA: true, - jitterScale: 1, - // passes: [ - // 'blurH', - // [ - // 'blurV', - // { - // blurRadius: 8, - // }, - // ], - // ], - }); - - layer - .source(data) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - jitterScale: 1, - }; - const pointFolder = gui.addFolder('TAA 配置'); - pointFolder - .add(styleOptions, 'jitterScale', 0, 100) - .onChange((jitterScale: number) => { - layer.style({ - jitterScale, - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Picking/Picking.stories.tsx b/stories/Picking/Picking.stories.tsx deleted file mode 100644 index fca22b2492..0000000000 --- a/stories/Picking/Picking.stories.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { storiesOf } from '@storybook/react'; -import * as React from 'react'; -import AdvancedAPI from './components/AdvancedAPI'; -import Highlight from './components/Highlight'; -import Tooltip from './components/Tooltip'; -// @ts-ignore -storiesOf('交互', module) - .add('拾取 & 高亮', () => ) - .add('拾取 & Tooltip', () => ) - .add('高级拾取 API', () => ); diff --git a/stories/Picking/components/AdvancedAPI.tsx b/stories/Picking/components/AdvancedAPI.tsx deleted file mode 100644 index 1a99de0db4..0000000000 --- a/stories/Picking/components/AdvancedAPI.tsx +++ /dev/null @@ -1,120 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class AdvancedAPI extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - highlightColor: [0, 0, 1, 1], - onHover: (pickedFeature) => { - // tslint:disable-next-line:no-console - console.log(pickedFeature); - }, - }); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - enablePicking: true, - enableHighlight: true, - highlightColor: [0, 0, 255], - pickingX: window.innerWidth / 2, - pickingY: window.innerHeight / 2, - }; - const pointFolder = gui.addFolder('非鼠标 hover 交互'); - pointFolder - .add(styleOptions, 'enableHighlight') - .onChange((enableHighlight: boolean) => { - layer.style({ - enableHighlight, - }); - scene.render(); - }); - pointFolder - .add(styleOptions, 'pickingX', 0, window.innerWidth) - .onChange((pickingX: number) => { - layer.pick({ x: pickingX, y: styleOptions.pickingY }); - }); - pointFolder - .add(styleOptions, 'pickingY', 0, window.innerHeight) - .onChange((pickingY: number) => { - layer.pick({ x: styleOptions.pickingX, y: pickingY }); - }); - pointFolder - .addColor(styleOptions, 'highlightColor') - .onChange((highlightColor: number[]) => { - const [r, g, b] = highlightColor.map((c) => c / 255); - layer.style({ - highlightColor: [r, g, b, 1], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Picking/components/Highlight.tsx b/stories/Picking/components/Highlight.tsx deleted file mode 100644 index 6c004bd8cb..0000000000 --- a/stories/Picking/components/Highlight.tsx +++ /dev/null @@ -1,117 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class Highlight extends React.Component { - private gui: dat.GUI; - private $stats: Node; - private scene: Scene; - - public componentWillUnmount() { - if (this.gui) { - this.gui.destroy(); - } - if (this.$stats) { - document.body.removeChild(this.$stats); - } - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: true, - highlightColor: [0, 0, 1, 1], - onHover: (pickedFeature) => { - // tslint:disable-next-line:no-console - // console.log(pickedFeature); - }, - }); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 1.0, - }); - scene.addLayer(layer); - scene.render(); - console.log(layer); - this.scene = scene; - - /*** 运行时修改样式属性 ***/ - const gui = new dat.GUI(); - this.gui = gui; - const styleOptions = { - enablePicking: true, - enableHighlight: true, - highlightColor: [0, 0, 255], - }; - const pointFolder = gui.addFolder('拾取 & 高亮'); - // pointFolder - // .add(styleOptions, 'enablePicking') - // .onChange((enablePicking: boolean) => { - // // FIXME: 该配置项会影响到初始化阶段 PixelPickingPass 的添加,暂不支持在运行时更改 - // layer.style({ - // enablePicking, - // }); - // scene.render(); - // }); - pointFolder - .add(styleOptions, 'enableHighlight') - .onChange((enableHighlight: boolean) => { - layer.style({ - enableHighlight, - }); - scene.render(); - }); - pointFolder - .addColor(styleOptions, 'highlightColor') - .onChange((highlightColor: number[]) => { - const [r, g, b] = highlightColor.map((c) => c / 255); - layer.style({ - highlightColor: [r, g, b, 1], - }); - scene.render(); - }); - pointFolder.open(); - } - - public render() { - return ( -
- ); - } -} diff --git a/stories/Picking/components/Tooltip.tsx b/stories/Picking/components/Tooltip.tsx deleted file mode 100644 index d833036b65..0000000000 --- a/stories/Picking/components/Tooltip.tsx +++ /dev/null @@ -1,71 +0,0 @@ -// @ts-ignore -import { PolygonLayer } from '@l7/layers'; -// @ts-ignore -import { Scene } from '@l7/scene'; -import * as dat from 'dat.gui'; -import * as React from 'react'; - -export default class Mapbox extends React.Component { - private scene: Scene; - - public componentWillUnmount() { - this.scene.destroy(); - } - - public async componentDidMount() { - const response = await fetch( - 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', - ); - const scene = new Scene({ - id: 'map', - type: 'mapbox', - style: 'mapbox://styles/mapbox/streets-v9', - center: [110.19382669582967, 50.258134], - pitch: 0, - zoom: 3, - }); - const layer = new PolygonLayer({ - enablePicking: true, - enableHighlight: false, - onHover: (pickedFeature) => { - // tslint:disable-next-line:no-console - // console.log(pickedFeature); - }, - }); - - layer - .source(await response.json()) - .size('name', [0, 10000, 50000, 30000, 100000]) - .color('name', [ - '#2E8AE6', - '#69D1AB', - '#DAF291', - '#FFD591', - '#FF7A45', - '#CF1D49', - ]) - .shape('fill') - .style({ - opacity: 0.8, - }); - scene.addLayer(layer); - scene.render(); - - this.scene = scene; - } - - public render() { - return ( -
- ); - } -} diff --git a/tsconfig.build.json b/tsconfig.build.json deleted file mode 100644 index 6936cb3f22..0000000000 --- a/tsconfig.build.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "noEmit": false, - "emitDeclarationOnly": true, - "declaration": true, - "rootDir": "./", - "baseUrl": "./", - "paths": { - "@l7/*": ["packages/*/src"], - "*": ["node_modules", "packages"] - } - }, - "exclude": ["**/*.story.*", "**/*.spec.*", "dist"], - "include": [] -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 3347c231f5..0000000000 --- a/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "compilerOptions": { - "noEmit": true, - "strict": true, - "strictPropertyInitialization": false, - "downlevelIteration": true, - "jsx": "react", - "target": "es5", - "lib": ["es6", "dom"], - "types": ["reflect-metadata", "jest"], - "module": "esnext", - "moduleResolution": "node", - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "resolveJsonModule": true, - "rootDir": "./", - "baseUrl": "./", - "paths": { - "@l7/*": ["packages/*/src"], - "*": ["node_modules", "packages"] - } - }, - "awesomeTypescriptLoaderOptions": { - "useBabel": true, - "babelCore": "@babel/core", - "useCache": false - }, - "include": ["packages"], - "exclude": ["node_modules", "packages/**/dist"], -} \ No newline at end of file diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 25de824011..0000000000 --- a/tslint.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "extends": [ - "tslint:latest", - "tslint-react", - "tslint-plugin-prettier", - "tslint-config-prettier" - ], - "rules": { - "prettier": true, - "quotemark": [ - true, - "single", - "avoid-escape", - "avoid-template", - "jsx-double" - ], - "no-bitwise": false, - "object-literal-sort-keys": false, - "no-implicit-dependencies": false - }, - "globals": { - "AMap": true - } -} diff --git a/tslint.prod.json b/tslint.prod.json deleted file mode 100644 index 24d12a308b..0000000000 --- a/tslint.prod.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["./tslint.json"], - "rules": { - "no-implicit-dependencies": true - }, - "linterOptions": { - "exclude": ["**/*.d.ts", "**/*.{test,story}.ts{,x}"] - } -} diff --git a/tslint.test.json b/tslint.test.json deleted file mode 100644 index f07a4a2a3c..0000000000 --- a/tslint.test.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["./tslint.json"], - "rules": { - "no-implicit-dependencies": [false, "dev"] - }, - "linterOptions": { - "exclude": ["**/*.d.ts"] - } -} \ No newline at end of file