All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.osmtools.api.GeoJsonExport Maven / Gradle / Ivy

package org.osmtools.api;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;

import org.springframework.stereotype.Service;

@Service
public class GeoJsonExport {

	public void export(Iterable
container, OutputStream os) { StringBuilder json = new StringBuilder(); json.append("{\"type\":\"FeatureCollection\",\"features\":["); for (Iterator
it = container.iterator(); it.hasNext();) { Section dataContainer = it.next(); json.append("{\"type\":\"Feature\",\"geometry\":\n"); json.append("{\"type\":\"LineString\","); json.append("\"properties\":{\"name\":\"").append(dataContainer.getName()).append("\"},\n"); json.append("\"coordinates\":["); for (Iterator> itC = dataContainer.getCoordinateLists().iterator(); itC .hasNext();) { Iterable coordinates = itC.next(); addTrackpoints(json, coordinates); if (itC.hasNext()) json.append(","); } json.append("]}}"); if (it.hasNext()) json.append(",\n"); } json.append("]}"); try { os.write(json.toString().getBytes()); } catch (IOException e) { throw new RuntimeException(e); } } private void addTrackpoints(StringBuilder sb, Iterable coordinates) { for (Iterator it = coordinates.iterator(); it.hasNext();) { LonLat point = it.next(); sb.append("[").append(point.getLon()).append(",").append(point.getLat()).append("]"); if (it.hasNext()) sb.append(","); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy