cover_geojson_wkt wellknown插件
cover_geojson_wkt
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>cover_wkt</title> <script type="text/javascript" src="https://www.xiaoguan.net/leaflet/static/lib/wellknown.min.js"></script> </head> <body> <script> //点转wkt function convertToGeoJSONPoint(marker) { let data = { type: "Point", coordinates: [ Number(marker.lng), // 经度保留3位小数 Number(marker.lat) // 纬度保留3位小数 ] }; return wellknown.stringify(data); } let marker_latlng = {lat: 39.909719775296075,lng: 116.37246608734132}; let geojson_point = convertToGeoJSONPoint(marker_latlng); console.log('geojson_point',geojson_point); //线转wkt function convertToGeoJSONLine(lineCoords) { // 将每个坐标点转换为 [lng, lat] 格式并保留3位小数 const formattedCoords = lineCoords.map(point => [ Number(point.lng), Number(point.lat) ]); let data = { type: "MultiLineString", coordinates: [formattedCoords] // 注意:MultiLineString 需要三维数组 }; return wellknown.stringify(data); } // 使用示例 const line_latlngs = [ {lat: 39.91075258501424, lng: 116.37313663959505}, {lat: 39.91059210962567, lng: 116.37345850467683}, {lat: 39.91033699413146, lng: 116.37308299541475}, {lat: 39.910468666763244, lng: 116.37269139289857}, {lat: 39.910843109426565, lng: 116.37290060520174}, {lat: 39.911020043159766, lng: 116.3731473684311} ]; const geojson_line = convertToGeoJSONLine(line_latlngs); console.log('geojson_line',geojson_line); //面转wkt function convertToPolygon(polygon) { // 1. 转换坐标顺序 [lng, lat] 并闭合多边形 const ring = polygon.map(point => [point.lng, point.lat]); ring.push(ring[0]); // 闭合多边形(添加第一个点到最后) // 2. 构建嵌套结构:MultiPolygon → 多边形组 → 环 → 点 const coordinates = [[ring]]; let data = { type: "MultiPolygon", coordinates: coordinates }; return wellknown.stringify(data); } // 使用示例 const polygon_latlngs = [ {lat: 39.909127239981956, lng: 116.3733994960785}, {lat: 39.90907786180775, lng: 116.37389838695528}, {lat: 39.90870340949504, lng: 116.37330293655397}, {lat: 39.90872809872154, lng: 116.37293815612794}, {lat: 39.90907374695829, lng: 116.37293279170991} ]; const geojson_polygon = convertToPolygon(polygon_latlngs); console.log('geojson_polygon',geojson_polygon); </script> </body> </html>