| @@ -91,6 +91,8 @@ | |||
| <a href='https://ko-fi.com/P5P5ACDA' target='_blank'><img style='border:0px;height:36px;transform: translateZ(0);' src='https://cdn.ko-fi.com/cdn/kofi5.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a> | |||
| <a target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSdCiZ2_GVVdXV0bqty4rymbCCwaFq-PLdwmK1vUIakPjv7f2g/viewform" | |||
| class="options-banner-button">Character Submissions</a> | |||
| <a target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLScQxwfKGoedYIT8VLYvJIrFrEEXqcxe7RiMJIwhU6PfVRFXSg/viewform" | |||
| class="options-banner-button">Feedback</a> | |||
| </div> | |||
| <h3 class="options-header">World Info</h3> | |||
| <div id="options-world"> | |||
| @@ -0,0 +1,79 @@ | |||
| { | |||
| "name": "Islands", | |||
| "directory": "/media/naturals/islands/", | |||
| "shapefile": "D:/GSHHS_shp/h/GSHHS_h_L1.shp", | |||
| "mode": "bounding-boxes", | |||
| "layer": "GSHHS_h_L1", | |||
| "items": [ | |||
| { | |||
| "name": "Long Island", | |||
| "corner0": [-74.255,41.358], | |||
| "corner1": [-71.347,40.307] | |||
| }, | |||
| { | |||
| "name": "Bermuda", | |||
| "corner0": [-64.9198,32.4254], | |||
| "corner1": [-64.6175,32.2227] | |||
| }, | |||
| { | |||
| "name": "Sicily", | |||
| "corner0": [12.222,38.306], | |||
| "corner1": [15.607,36.527] | |||
| }, | |||
| { | |||
| "name": "Tasmania", | |||
| "corner0": [143.519,-39.435], | |||
| "corner1": [148.903,-44.009] | |||
| }, | |||
| { | |||
| "name": "Elba", | |||
| "corner0": [10.0588,42.9178], | |||
| "corner1": [10.4917,42.6677] | |||
| }, | |||
| { | |||
| "name": "Saint Helena", | |||
| "corner0": [-5.8390,-15.8896], | |||
| "corner1": [-5.5959,-16.0670] | |||
| }, | |||
| { | |||
| "name": "Galveston", | |||
| "corner0": [-95.1322,29.3641], | |||
| "corner1": [-94.6995,29.0599] | |||
| }, | |||
| { | |||
| "name": "Falkland Islands", | |||
| "corner0": [-61.648,-50.847], | |||
| "corner1": [-57.521,-52.676] | |||
| }, | |||
| { | |||
| "name": "Corsica", | |||
| "corner0": [8.384,43.115], | |||
| "corner1": [9.5991,41.3197] | |||
| }, | |||
| { | |||
| "name": "Sardinia", | |||
| "corner0": [8.0122,41.3190], | |||
| "corner1": [9.936,38.723] | |||
| }, | |||
| { | |||
| "name": "Vancouver Island", | |||
| "corner0": [-129.269,51.141], | |||
| "corner1": [-121.930,47.770] | |||
| }, | |||
| { | |||
| "name": "Sakhalin", | |||
| "corner0": [141.580,54.634], | |||
| "corner1": [145.121,45.600] | |||
| }, | |||
| { | |||
| "name": "Hainan Island", | |||
| "corner0": [108.346,20.183], | |||
| "corner1": [111.342,17.866] | |||
| }, | |||
| { | |||
| "name": "Sokotra", | |||
| "corner0": [53.267,12.821], | |||
| "corner1": [54.655,12.225] | |||
| } | |||
| ] | |||
| } | |||
| @@ -8,10 +8,10 @@ if config["mode"] == "bounding-boxes": | |||
| results = [] | |||
| for item in config["items"]: | |||
| lon0 = item["lon0"] | |||
| lat0 = item["lat0"] | |||
| lon1 = item["lon1"] | |||
| lat1 = item["lat1"] | |||
| lon0 = item["corner0"][0] | |||
| lat0 = item["corner0"][1] | |||
| lon1 = item["corner1"][0] | |||
| lat1 = item["corner1"][1] | |||
| center_lat = (lat0 + lat1) / 2 | |||
| center_lon = (lon0 + lon1) / 2 | |||
| @@ -22,8 +22,8 @@ if config["mode"] == "bounding-boxes": | |||
| mapshaper -i {7} \ | |||
| -rectangle bbox={0},{1},{2},{3} name=rect \ | |||
| -clip rect target={8} \ | |||
| -proj crs="+proj=nsper +h=10000000 +lon_0={4} +lat_0={5}" target={8},rect \ | |||
| -each 'console.log(this.bounds.concat([this.area]))' target=rect \ | |||
| -proj crs="+proj=ortho +lon_0={4} +lat_0={5}" target={8},rect \ | |||
| -info target={8} \ | |||
| -o "{6}" target={8} | |||
| """ | |||
| @@ -31,16 +31,19 @@ if config["mode"] == "bounding-boxes": | |||
| prepared = CMD.format(lon0, lat0, lon1, lat1, center_lon, center_lat, path, config["shapefile"], config["layer"]) | |||
| result = subprocess.check_output( | |||
| prepared, | |||
| shell=True | |||
| shell=True, | |||
| stderr=subprocess.STDOUT | |||
| ) | |||
| data = json.loads(result.decode("utf-8")) | |||
| for line in result.decode("utf-8").split("\n"): | |||
| if "Bounds:" in line: | |||
| data = [float(x) for x in line[8:].strip().split(",")] | |||
| height = data[3] - data[1] | |||
| area = data[4] | |||
| results.append([item["name"], area, height]) | |||
| except: | |||
| results.append([item["name"], height]) | |||
| except Exception as e: | |||
| print(e) | |||
| print(result.decode("utf-8")) | |||
| print(json.dumps(results)) | |||