XWWitPark/witpark_jzzs/xw_jzzs_web/public/lib/kml/tokml.js

2 lines
6.1 KiB
JavaScript
Raw Permalink Normal View History

2024-09-12 00:10:00 +00:00
/* 2020-9-22 15:23:27 | 版权所有 军懋国兴 */
function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).tokml=e()}(function(){return function i(u,a,c){function l(r,e){if(!a[r]){if(!u[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(s)return s(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var o=a[r]={exports:{}};u[r][0].call(o.exports,function(e){var t=u[r][1][e];return l(t||e)},o,o.exports,i,u,a,c)}return a[r].exports}for(var s="function"==typeof require&&require,e=0;e<c.length;e++)l(c[e]);return l}({1:[function(e,t,r){var n=e("strxml"),k=n.tag,v=n.encode;function o(d,g){return function(e){if(!e.properties||!h.valid(e.geometry))return"";var t=h.any(e.geometry);if(!t)return"";var r,n,o,i,u,a,c,l,s,p,f,m="",y="";return!d.simplestyle||(r=function(e){var t="";e["marker-symbol"]&&(t=t+"ms"+e["marker-symbol"]);e["marker-color"]&&(t=t+"mc"+e["marker-color"].replace("#",""));e["marker-size"]&&(t=t+"ms"+e["marker-size"]);e.stroke&&(t=t+"s"+e.stroke.replace("#",""));e["stroke-width"]&&(t=t+"sw"+e["stroke-width"].toString().replace(".",""));e["stroke-opacity"]&&(t=t+"mo"+e["stroke-opacity"].toString().replace(".",""));e.fill&&(t=t+"f"+e.fill.replace("#",""));e["fill-opacity"]&&(t=t+"fo"+e["fill-opacity"].toString().replace(".",""));return t}(e.properties))&&(h.isPoint(e.geometry)&&!!((i=e.properties)["marker-size"]||i["marker-symbol"]||i["marker-color"])?(-1===g.indexOf(r)&&(n=e.properties,o=r,m=k("Style",k("IconStyle",k("Icon",k("href",function(e){var t=e["marker-size"]||"medium",r=e["marker-symbol"]?"-"+e["marker-symbol"]:"",n=(e["marker-color"]||"7e7e7e").replace("#","");return"https://api.tiles.mapbox.com/v3/marker/pin-"+t.charAt(0)+r+"+"+n+".png"}(n))))+k("hotSpot","",[["xunits","fraction"],["yunits","fraction"],["x",.5],["y",.5]]),[["id",o]]),g.push(r)),y=k("styleUrl","#"+r)):(h.isPolygon(e.geometry)||h.isLine(e.geometry))&&function(e){for(var t in e)if({stroke:!0,"stroke-opacity":!0,"stroke-width":!0,fill:!0,"fill-opacity":!0}[t])return!0}(e.properties)&&(-1===g.indexOf(r)&&(m=function(e,t){var r=k("LineStyle",[k("color",S(e.stroke,e["stroke-opacity"])||"ff555555")+k("width",void 0===e["stroke-width"]?2:e["stroke-width"])]),n="";(e.fill||e["fill-opacity"])&&(n=k("PolyStyle",[k("color",S(e.fill,e["fill-opacity"])||"88555555")]));return k("Style",r+n,[["id",t]])}(e.properties,r),g.push(r)),y=k("styleUrl","#"+r))),m+k("Placemark",((p=e.properties)[(f=d).name]?k("name",v(p[f.name])):"")+((l=e.properties)[(s=d).description]?k("description",v(l[s.description])):"")+(c=e.properties,k("ExtendedData",function(e){var t,r=[];for(t in e)r.push([t,e[t]]);return r}(c).map(x).join("")))+((u=e.properties)[(a=d).timestamp]?k("TimeStamp",k("when",v(u[a.timestamp]))):"")+t+y)}}t.exports=function(e,t){return'<?xml version="1.0" encoding="UTF-8"?>'+k("kml",k("Document",(void 0!==(n=t=t||{documentName:void 0,documentDescription:void 0,name:"name",description:"description",simplestyle:!1,timestamp:"timestamp"}).documentName?k("name",n.documentName):"")+(void 0!==(r=t).documentDescription?k("description",r.documentDescription):"")+function(e,t){if(!e.type)return"";var r=[];switch(e.type){case"FeatureCollection":return e.features?e.features.map(o(t,r)).join(""):"";case"Feature":return o(t,r)(e);default:return o(t,r)({type:"Feature",geometry:e,properties:{}})}}(e,t)),[["xmlns","http://www.opengis.net/kml/2.2"]]);var r,n};var h={Point:function(e){return k("Point",k("coordinates",e.coordinates.join(",")))},LineString:function(e){return k("LineString",k("coordinates",i(e.coordinates)))},Polygon:function(e){if(!e.coordinates.length)return"";var t=e.coordinates[0],r=e.coordina