diff --git a/package-lock.json b/package-lock.json
index 5302b2d..750ec43 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1015,6 +1015,22 @@
"regenerator-runtime": "^0.12.0"
}
},
+ "@babel/runtime-corejs2": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.5.4.tgz",
+ "integrity": "sha512-sHv74OzyZ18d6tjHU0HmlVES3+l+lydkOMTiKsJSTGWcTBpIMfXLEgduahlJrQjknW9RCQAqLIEdLOHjBmq/hg==",
+ "requires": {
+ "core-js": "^2.6.5",
+ "regenerator-runtime": "^0.13.2"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
+ }
+ }
+ },
"@babel/template": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
@@ -1126,6 +1142,103 @@
"physical-cpu-count": "^2.0.0"
}
},
+ "@turf/bbox": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-5.1.5.tgz",
+ "integrity": "sha1-MFHfUUrUxQ9KT5uKLRX9i2hA7aM=",
+ "requires": {
+ "@turf/helpers": "^5.1.5",
+ "@turf/meta": "^5.1.5"
+ }
+ },
+ "@turf/boolean-point-in-polygon": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz",
+ "integrity": "sha1-8BzBlNHgMKVIv9qYHLpDz9YpQbc=",
+ "requires": {
+ "@turf/helpers": "^5.1.5",
+ "@turf/invariant": "^5.1.5"
+ }
+ },
+ "@turf/center": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/center/-/center-5.1.5.tgz",
+ "integrity": "sha1-RKss2VT2PA03dX9xWKmcPvURS4A=",
+ "requires": {
+ "@turf/bbox": "^5.1.5",
+ "@turf/helpers": "^5.1.5"
+ }
+ },
+ "@turf/clone": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz",
+ "integrity": "sha1-JT6NNUdxgZduM636tQoPAqfw42c=",
+ "requires": {
+ "@turf/helpers": "^5.1.5"
+ }
+ },
+ "@turf/distance": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-5.1.5.tgz",
+ "integrity": "sha1-Oc8YIEu/h1h9cH5gmmARiQkVZAk=",
+ "requires": {
+ "@turf/helpers": "^5.1.5",
+ "@turf/invariant": "^5.1.5"
+ }
+ },
+ "@turf/explode": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-5.1.5.tgz",
+ "integrity": "sha1-sSsvd0AEobSPYrqVsgocZVo94Rg=",
+ "requires": {
+ "@turf/helpers": "^5.1.5",
+ "@turf/meta": "^5.1.5"
+ }
+ },
+ "@turf/helpers": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz",
+ "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8="
+ },
+ "@turf/invariant": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz",
+ "integrity": "sha1-8BUP9ykLOFd7c9CIt5MsHuCqkKc=",
+ "requires": {
+ "@turf/helpers": "^5.1.5"
+ }
+ },
+ "@turf/meta": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.2.0.tgz",
+ "integrity": "sha1-OxrUhe4MOwsXdRMqMsOE1T5LpT0=",
+ "requires": {
+ "@turf/helpers": "^5.1.5"
+ }
+ },
+ "@turf/nearest-point": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-5.1.5.tgz",
+ "integrity": "sha1-EgUN5Bw5hEMiTHl43g9iE5ANNPs=",
+ "requires": {
+ "@turf/clone": "^5.1.5",
+ "@turf/distance": "^5.1.5",
+ "@turf/helpers": "^5.1.5",
+ "@turf/meta": "^5.1.5"
+ }
+ },
+ "@turf/point-on-feature": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-5.1.5.tgz",
+ "integrity": "sha1-MMfwMkMCd8ZBjZbSieRba/shP+c=",
+ "requires": {
+ "@turf/boolean-point-in-polygon": "^5.1.5",
+ "@turf/center": "^5.1.5",
+ "@turf/explode": "^5.1.5",
+ "@turf/helpers": "^5.1.5",
+ "@turf/nearest-point": "^5.1.5"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -1929,6 +2042,11 @@
"upath": "^1.1.1"
}
},
+ "chroma-js": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-1.4.1.tgz",
+ "integrity": "sha512-jTwQiT859RTFN/vIf7s+Vl/Z2LcMrvMv3WUFmd/4u76AdlFC0NTNgqEEFPcRiHmAswPsMiQEDZLM8vX8qXpZNQ=="
+ },
"cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
@@ -2142,8 +2260,7 @@
"core-js": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
- "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
- "dev": true
+ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
},
"core-util-is": {
"version": "1.0.2",
@@ -2623,6 +2740,11 @@
"node-addon-api": "^1.6.0"
}
},
+ "debounce-promise": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz",
+ "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg=="
+ },
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -2750,6 +2872,15 @@
"randombytes": "^2.0.0"
}
},
+ "distinct-colors": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/distinct-colors/-/distinct-colors-1.0.4.tgz",
+ "integrity": "sha1-Z9/KV5S8qVDAHSUaUqozWG5a97Q=",
+ "requires": {
+ "chroma-js": "^1.1.1",
+ "mout": "^0.11.0"
+ }
+ },
"dom-serializer": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
@@ -4740,6 +4871,11 @@
"integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==",
"dev": true
},
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
"merge-source-map": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz",
@@ -4886,6 +5022,11 @@
}
}
},
+ "mout": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz",
+ "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k="
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -5144,6 +5285,11 @@
"rbush": "2.0.2"
}
},
+ "ol-tilecache": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/ol-tilecache/-/ol-tilecache-3.0.2.tgz",
+ "integrity": "sha512-oA+UM8juw775gVm0ZgH5WIV9DnDhfLYWnY7zxkpIR8FDZaoFiPa0idG+GFRdRokeCqMoeoNMSD8aRguFbDE9XA=="
+ },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -5321,6 +5467,21 @@
"safe-buffer": "^5.1.1"
}
},
+ "parse-color": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
+ "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=",
+ "requires": {
+ "color-convert": "~0.5.0"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
+ "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0="
+ }
+ }
+ },
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -6329,6 +6490,14 @@
"inherits": "^2.0.1"
}
},
+ "rxjs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
+ "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -7028,6 +7197,11 @@
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
+ "tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
+ },
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
@@ -7294,8 +7468,7 @@
"uuid": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
- "dev": true
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
},
"v8-compile-cache": {
"version": "2.0.3",
@@ -7358,6 +7531,23 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true
},
+ "vuelayers": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/vuelayers/-/vuelayers-0.11.4.tgz",
+ "integrity": "sha512-6asCq2vDCPM4mS60NGeEBGKiVVJZ/GACYtu7UUVPkhtdmvI7bSzKjKuv0cTQkwcgh6YRtqzAIzML0l9fwb4AQw==",
+ "requires": {
+ "@babel/runtime-corejs2": "^7.1.2",
+ "@turf/point-on-feature": "^5.1.5",
+ "debounce-promise": "^3.1.0",
+ "merge-descriptors": "^1.0.1",
+ "ol": "^5.3.1",
+ "ol-tilecache": "^3.0.1",
+ "parse-color": "^1.0.0",
+ "rxjs": "^6.3.3",
+ "uuid": "^3.3.2",
+ "whatwg-fetch": "^3.0.0"
+ }
+ },
"w3c-hr-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
@@ -7391,6 +7581,11 @@
"iconv-lite": "0.4.24"
}
},
+ "whatwg-fetch": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
+ "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
+ },
"whatwg-mimetype": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
diff --git a/package.json b/package.json
index 37246b8..016f0b7 100644
--- a/package.json
+++ b/package.json
@@ -5,9 +5,11 @@
"private": true,
"dependencies": {
"aprs-parser": "^1.0.4",
+ "distinct-colors": "^1.0.4",
"ol": "^5.3.3",
"vue": "^2.6.10",
"vue-hot-reload-api": "^2.3.3",
+ "vuelayers": "^0.11.4",
"ws": "^5.2.2"
},
"devDependencies": {
diff --git a/src/Map.vue b/src/Map.vue
new file mode 100644
index 0000000..3d5eb62
--- /dev/null
+++ b/src/Map.vue
@@ -0,0 +1,203 @@
+
+