Skip to content

Commit

Permalink
fixed #7, not working in Safari
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielJDufour committed Sep 1, 2021
1 parent fc403c4 commit f5c2124
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 11 deletions.
16 changes: 8 additions & 8 deletions BUILDS.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Builds
| name | file size |
| ---- | --------- |
| get-epsg-code-all.node.min.js | 64K |
| get-epsg-code-all.web.min.js | 64K |
| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.node.min.js | 40K |
| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.web.min.js | 40K |
| get-epsg-code-excluding-mapfile-mapnik-proj4.node.min.js | 40K |
| get-epsg-code-excluding-mapfile-mapnik-proj4.web.min.js | 40K |
| get-epsg-code-excluding-mapfile.node.min.js | 52K |
| get-epsg-code-excluding-mapfile.web.min.js | 52K |
| get-epsg-code-all.node.min.js | 61K |
| get-epsg-code-all.web.min.js | 63K |
| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.node.min.js | 37K |
| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.web.min.js | 39K |
| get-epsg-code-excluding-mapfile-mapnik-proj4.node.min.js | 37K |
| get-epsg-code-excluding-mapfile-mapnik-proj4.web.min.js | 39K |
| get-epsg-code-excluding-mapfile.node.min.js | 49K |
| get-epsg-code-excluding-mapfile.web.min.js | 51K |
2 changes: 1 addition & 1 deletion create-build-list.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ echo '| name | file size |' >> BUILDS.md

echo '| ---- | --------- |' >> BUILDS.md

ls -alsh dist | grep 'get-epsg-code' | awk 'BEGIN { OFS = " | " }{ print "| "$10,$1" |" }' | grep '.js ' >> BUILDS.md
ls -alsh dist | grep 'get-epsg-code' | awk 'BEGIN { OFS = " | " }{ print "| "$10,$6" |" }' | grep '.js ' >> BUILDS.md
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"build": "npm run build:node && npm run build:web",
"build:demo": "npm run build:web && cp dist/get-epsg-code-all.web.min.js demo/.",
"build:web": "webpack --mode production --target web",
"build:web:dev": "webpack --mode development --target web",
"build:node": "webpack --mode production --target node",
"build:everything": "if [ -d dist ]; then rm -Rf dist; fi && HASHED_FIELDS='' EXCLUDED_FORMATS='' npm run build && HASHED_FIELDS='esriwkt' EXCLUDED_FORMATS='' npm run build && HASHED_FIELDS='esriwkt,proj4' EXCLUDED_FORMATS='' npm run build && EXCLUDED_FORMATS='gml,xml' HASHED_FIELDS='esriwkt' npm run build && npm run create-build-list",
"build:everything:node": "if [ -d dist ]; then rm -Rf dist; fi && HASHED_FIELDS='' EXCLUDED_FORMATS='' npm run build:node && HASHED_FIELDS='' EXCLUDED_FORMATS='' npm run build:node && HASHED_FIELDS='esriwkt' EXCLUDED_FORMATS='' npm run build:node && HASHED_FIELDS='esriwkt,proj4' EXCLUDED_FORMATS='' npm run build:node && EXCLUDED_FORMATS='gml,xml' HASHED_FIELDS='esriwkt' npm run build:node",
Expand All @@ -24,6 +25,7 @@
"download-csv": "wget https://s3.amazonaws.com/crs.csv/crs.csv.zip && unzip crs.csv.zip",
"setup": "cd test/data && bash setup.sh",
"test": "npm run build:node && TEST_BUNDLE='get-epsg-code-all.node.min.js' node ./test/test.js",
"test:html": "npm run build:web:dev && http-server",
"test:quick": "TEST_BUNDLE=$TEST_BUNDLE node ./test/test.js",
"test:everything:node": "set -e; npm run build:everything:node && TEST_BUNDLES=\"$(ls ./dist | grep node.min.js$)\"; for TEST_BUNDLE in $TEST_BUNDLES; do echo \"TEST_BUNDLE: $TEST_BUNDLE\" && TEST_BUNDLE=$TEST_BUNDLE npm run test:quick; done",
"update-docs": "npm run test && npm run build:everything && npm run create-build-list"
Expand Down
4 changes: 2 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,9 @@ function getEPSGCode(input, options) {
return Number(input.match(/^\d{1,6}/)[0]);
} else if (dataType === MAPFILE) {
if (input.includes('init=epsg:')) {
return Number.parseInt(/(?<="init\=epsg:)(\d{1,10})(?=")/.exec(input)[0]);
return Number.parseInt(/("init\=epsg:)(\d{1,10})(")/.exec(input)[2]);
} else if (input.includes('"proj=utm"')) {
const zone = /(?<="zone\=)(\d{1,2})(?=")/.exec(input)[0];
const zone = /("zone\=)(\d{1,2})(")/.exec(input)[2];
const hemisphere = input.includes('"south"') ? '7' : '6';
return Number.parseInt('32' + hemisphere + zone);
} else {
Expand Down
26 changes: 26 additions & 0 deletions test/test.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/flug"></script>
<script src="/dist/get-epsg-code-all.web.js"></script>
<script>
test("Web Mercator", ({ eq }) => {
const text = "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs";
const epsgCode = getEPSGCode(text, { debug: true });
eq(epsgCode, 3857);
});

test("UTM", ({ eq }) => {
const text = `PROJECTION "proj=utm" "zone=17" "datum=WGS84" "units=m" "no_defs" END`;
const epsgCode = getEPSGCode(text, { debug: true });
eq(epsgCode, 32617);
});

test("init:epsg", ({ eq }) => {
const text = `PROJECTION\n "init=epsg:26915"\nEND`;
const epsgCode = getEPSGCode(text, { debug: true });
eq(epsgCode, 26915);
});
</script>
</head>
</html>

0 comments on commit f5c2124

Please sign in to comment.