#geo #turfjs #wkt
#geo #turfjs #wkt
Вопрос:
Я использую Turf.js для создания геометрии окружности из точки и радиуса, используя функции окружности. Пример:
c = turf.circle([0.0, 0.0], 100, {steps:1000, units:'kilometers'})
Возвращаемый результат — это Feature
объект, и единственный способ, которым мне удалось представить геометрию, — это применить, c.geometry.coordinates
который возвращает массив.
Однако моя цель — сгенерировать WKT или, по крайней мере, GeoJSON, но я не нашел способа сделать это. Кто-нибудь знает, как это сделать с turf.js или, в качестве альтернативы, знаете способ получить представление WKT круга с центром и радиусом в качестве входных данных?
Ответ №1:
Чтобы получить GeoJSON
текст объекта, вы можете сделать это
var gjs = JSON.stringify(polygon_object);
(Обратная проверка) Чтобы проанализировать строку gjs
и снова преобразовать ее обратно в object (GeoJSON)
var ojn = JSON.parse(gjs);
Живой код:-
const pgon = turf.polygon(
[
[
[50.848677, 4.338074],
[50.833264, 4.344961],
[50.840809, 4.366227],
[50.852455, 4.367945],
[50.858306, 4.346693],
[50.848677, 4.338074]
]
],
{ name: "pgon1" }
);
const coords0 = pgon.geometry.coordinates[0];
// Create WKT of the polygon
var phead = `POLYGON((`;
var ptail = `))`;
var pbody = "";
var cur_xy = "";
coords0.forEach( function(item, index){
//console.log(item, index);
//lonlat.push([...item]); //OK
cur_xy = item[0].toFixed(4) " " item[1].toFixed(4);
pbody = cur_xy ",";
}, pbody);
console.log("*WKT*", phead pbody cur_xy ptail);
// Create geojson of the polygon
console.log("*GeoJSON*" JSON.stringify(pgon));
<script src="https://cdnjs.cloudflare.com/ajax/libs/Turf.js/5.1.5/turf.min.js"></script>
<p>TurfJS uses GeoJSON to represent geometric features. Here a polygon feature is created and its geometry / properties are manipulated.<br/><br/>The result is printed on the console.</p>