Search in sources :

Example 1 with Map

use of uk.me.parabola.imgfmt.app.map.Map in project mkgmap by openstreetmap.

the class AbstractTestMap method makeMap.

protected void makeMap(String[] args) {
    // Default to nowhere in particular.
    double lat = 51.724;
    double lng = 0.2487;
    // Arguments allow you to place the map where ever you wish.
    if (args.length > 1) {
        lat = Double.valueOf(args[0]);
        lng = Double.valueOf(args[1]);
    }
    log.debug("this is a test make map program. Start", lat, '/', lng);
    FileSystemParam params = new FileSystemParam();
    params.setBlockSize(512);
    params.setMapDescription("OSM street map");
    Map map;
    try {
        map = Map.createMap("32860003", ".", params, "32860003", SrtTextReader.sortForCodepage(1252));
    } catch (FileExistsException e) {
        throw new ExitException("File exists already", e);
    } catch (FileNotWritableException e) {
        throw new ExitException("Could not create or write file", e);
    }
    map.addInfo("Program released under the GPL");
    map.addInfo("This map data is made available under the Open Database License:");
    // There has to be (at least) two copyright messages or else the map
    // does not show up.  The second one will be displayed at startup,
    // although the conditions where that happens are not known.
    map.addCopyright("program licenced under GPL v2");
    // This one gets shown when you switch on, so put the actual
    // map copyright here.  This is made up data, so no copyright applies.
    map.addCopyright("No copyright");
    Area area = new Area(lat, lng, lat + 1, lng + 1);
    map.setBounds(area);
    // There must always be an empty zoom level at the least detailed level.
    log.info("area " + area);
    log.info(" or " + lat + '/' + lng);
    Zoom z1 = map.createZoom(1, 24);
    Subdivision topdiv = map.topLevelSubdivision(area, z1);
    // Create a most detailed view
    Zoom z = map.createZoom(0, 24);
    Subdivision div = map.createSubdivision(topdiv, area, z);
    div.startDivision();
    drawTestMap(map, div, lat, lng);
    map.close();
}
Also used : Area(uk.me.parabola.imgfmt.app.Area) FileSystemParam(uk.me.parabola.imgfmt.FileSystemParam) FileNotWritableException(uk.me.parabola.imgfmt.FileNotWritableException) Zoom(uk.me.parabola.imgfmt.app.trergn.Zoom) Subdivision(uk.me.parabola.imgfmt.app.trergn.Subdivision) Map(uk.me.parabola.imgfmt.app.map.Map) ExitException(uk.me.parabola.imgfmt.ExitException) FileExistsException(uk.me.parabola.imgfmt.FileExistsException)

Example 2 with Map

use of uk.me.parabola.imgfmt.app.map.Map in project mkgmap by openstreetmap.

the class MapBuilder method getMapInfo.

/**
 * Set all the information that appears in the header.
 */
private void getMapInfo() {
    if (licenseFileName != null) {
        List<String> licenseArray = new ArrayList<>();
        try {
            File file = new File(licenseFileName);
            licenseArray = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);
        } catch (Exception e) {
            throw new ExitException("Error reading license file " + licenseFileName, e);
        }
        if ((licenseArray.size() > 0) && licenseArray.get(0).startsWith("\ufeff"))
            licenseArray.set(0, licenseArray.get(0).substring(1));
        UnaryOperator<String> replaceVariables = s -> s.replace("$MKGMAP_VERSION$", Version.VERSION).replace("$JAVA_VERSION$", System.getProperty("java.version")).replace("$YEAR$", Integer.toString(now.getYear())).replace("$LONGDATE$", now.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG))).replace("$SHORTDATE$", now.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT))).replace("$TIME$", now.toLocalTime().toString().substring(0, 5));
        licenseArray.replaceAll(replaceVariables);
        mapInfo.addAll(licenseArray);
    } else {
        mapInfo.add("Map data (c) OpenStreetMap and its contributors");
        mapInfo.add("http://www.openstreetmap.org/copyright");
        mapInfo.add("");
        mapInfo.add("This map data is made available under the Open Database License:");
        mapInfo.add("http://opendatacommons.org/licenses/odbl/1.0/");
        mapInfo.add("Any rights in individual contents of the database are licensed under the");
        mapInfo.add("Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/");
        mapInfo.add("");
        // Pad the version number with spaces so that version
        // strings that are different lengths do not change the size and
        // offsets of the following sections.
        mapInfo.add("Map created with mkgmap-r" + String.format("%-10s", Version.VERSION));
        mapInfo.add("Program released under the GPL");
    }
}
Also used : Arrays(java.util.Arrays) Polygon(uk.me.parabola.imgfmt.app.trergn.Polygon) OverviewMapDataSource(uk.me.parabola.mkgmap.reader.overview.OverviewMapDataSource) Overview(uk.me.parabola.imgfmt.app.trergn.Overview) Subdivision(uk.me.parabola.imgfmt.app.trergn.Subdivision) Rectangle2D(java.awt.geom.Rectangle2D) Highway(uk.me.parabola.imgfmt.app.lbl.Highway) UnaryOperator(java.util.function.UnaryOperator) MapFilter(uk.me.parabola.mkgmap.filters.MapFilter) HGTReader(uk.me.parabola.mkgmap.reader.hgt.HGTReader) DEMFile(uk.me.parabola.imgfmt.app.dem.DEMFile) RoundCoordsFilter(uk.me.parabola.mkgmap.filters.RoundCoordsFilter) Long2ObjectOpenHashMap(it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap) Logger(uk.me.parabola.log.Logger) POIRecord(uk.me.parabola.imgfmt.app.lbl.POIRecord) RGNHeader(uk.me.parabola.imgfmt.app.trergn.RGNHeader) NETFile(uk.me.parabola.imgfmt.app.net.NETFile) Zip(uk.me.parabola.imgfmt.app.lbl.Zip) MapPoint(uk.me.parabola.mkgmap.general.MapPoint) OverviewBuilder(uk.me.parabola.mkgmap.combiners.OverviewBuilder) MapExitPoint(uk.me.parabola.mkgmap.general.MapExitPoint) IdentityHashMap(java.util.IdentityHashMap) Java2DConverter(uk.me.parabola.util.Java2DConverter) SizeFilter(uk.me.parabola.mkgmap.filters.SizeFilter) City(uk.me.parabola.imgfmt.app.lbl.City) Set(java.util.Set) TREFile(uk.me.parabola.imgfmt.app.trergn.TREFile) TREHeader(uk.me.parabola.imgfmt.app.trergn.TREHeader) CityInfo(uk.me.parabola.mkgmap.general.CityInfo) InterpolationMethod(uk.me.parabola.mkgmap.reader.hgt.HGTConverter.InterpolationMethod) PolygonOverview(uk.me.parabola.imgfmt.app.trergn.PolygonOverview) LevelInfo(uk.me.parabola.mkgmap.general.LevelInfo) Zoom(uk.me.parabola.imgfmt.app.trergn.Zoom) RGNFile(uk.me.parabola.imgfmt.app.trergn.RGNFile) StandardCharsets(java.nio.charset.StandardCharsets) HGTConverter(uk.me.parabola.mkgmap.reader.hgt.HGTConverter) List(java.util.List) Configurable(uk.me.parabola.util.Configurable) DouglasPeuckerFilter(uk.me.parabola.mkgmap.filters.DouglasPeuckerFilter) MapLine(uk.me.parabola.mkgmap.general.MapLine) RoadDef(uk.me.parabola.imgfmt.app.net.RoadDef) PolygonSplitterFilter(uk.me.parabola.mkgmap.filters.PolygonSplitterFilter) ShapeMergeFilter(uk.me.parabola.mkgmap.filters.ShapeMergeFilter) ZipCodeInfo(uk.me.parabola.mkgmap.general.ZipCodeInfo) MapperBasedMapDataSource(uk.me.parabola.mkgmap.reader.MapperBasedMapDataSource) RouteCenter(uk.me.parabola.imgfmt.app.net.RouteCenter) FormatStyle(java.time.format.FormatStyle) PolylineOverview(uk.me.parabola.imgfmt.app.trergn.PolylineOverview) LocalDateTime(java.time.LocalDateTime) MapDataSource(uk.me.parabola.mkgmap.general.MapDataSource) HashMap(java.util.HashMap) Point(uk.me.parabola.imgfmt.app.trergn.Point) ExitException(uk.me.parabola.imgfmt.ExitException) LBLFile(uk.me.parabola.imgfmt.app.lbl.LBLFile) PointOverview(uk.me.parabola.imgfmt.app.trergn.PointOverview) ExitFacility(uk.me.parabola.imgfmt.app.lbl.ExitFacility) ArrayList(java.util.ArrayList) Exit(uk.me.parabola.imgfmt.app.Exit) Label(uk.me.parabola.imgfmt.app.Label) Region(uk.me.parabola.imgfmt.app.lbl.Region) EnhancedProperties(uk.me.parabola.util.EnhancedProperties) MapShape(uk.me.parabola.mkgmap.general.MapShape) LineSplitterFilter(uk.me.parabola.mkgmap.filters.LineSplitterFilter) Utils(uk.me.parabola.imgfmt.Utils) Coord(uk.me.parabola.imgfmt.app.Coord) Map(uk.me.parabola.imgfmt.app.map.Map) Numbers(uk.me.parabola.imgfmt.app.net.Numbers) Version(uk.me.parabola.mkgmap.Version) MapRoad(uk.me.parabola.mkgmap.general.MapRoad) Files(java.nio.file.Files) NODFile(uk.me.parabola.imgfmt.app.net.NODFile) MapElement(uk.me.parabola.mkgmap.general.MapElement) MapFailedException(uk.me.parabola.imgfmt.MapFailedException) RemoveEmpty(uk.me.parabola.mkgmap.filters.RemoveEmpty) MapFilterChain(uk.me.parabola.mkgmap.filters.MapFilterChain) RemoveObsoletePointsFilter(uk.me.parabola.mkgmap.filters.RemoveObsoletePointsFilter) File(java.io.File) Polyline(uk.me.parabola.imgfmt.app.trergn.Polyline) Path2D(java.awt.geom.Path2D) ExtTypeAttributes(uk.me.parabola.imgfmt.app.trergn.ExtTypeAttributes) FilterConfig(uk.me.parabola.mkgmap.filters.FilterConfig) LinePreparerFilter(uk.me.parabola.mkgmap.filters.LinePreparerFilter) LoadableMapDataSource(uk.me.parabola.mkgmap.general.LoadableMapDataSource) RoadNetwork(uk.me.parabola.imgfmt.app.net.RoadNetwork) DateTimeFormatter(java.time.format.DateTimeFormatter) LineMergeFilter(uk.me.parabola.mkgmap.filters.LineMergeFilter) Country(uk.me.parabola.imgfmt.app.lbl.Country) BaseFilter(uk.me.parabola.mkgmap.filters.BaseFilter) Comparator(java.util.Comparator) Collections(java.util.Collections) Area(uk.me.parabola.imgfmt.app.Area) ArrayList(java.util.ArrayList) DEMFile(uk.me.parabola.imgfmt.app.dem.DEMFile) NETFile(uk.me.parabola.imgfmt.app.net.NETFile) TREFile(uk.me.parabola.imgfmt.app.trergn.TREFile) RGNFile(uk.me.parabola.imgfmt.app.trergn.RGNFile) LBLFile(uk.me.parabola.imgfmt.app.lbl.LBLFile) NODFile(uk.me.parabola.imgfmt.app.net.NODFile) File(java.io.File) ExitException(uk.me.parabola.imgfmt.ExitException) ExitException(uk.me.parabola.imgfmt.ExitException) MapFailedException(uk.me.parabola.imgfmt.MapFailedException)

Example 3 with Map

use of uk.me.parabola.imgfmt.app.map.Map in project mkgmap by openstreetmap.

the class OverviewBuilder method writeOverviewMap.

/**
 * Write out the overview map.
 */
private void writeOverviewMap() {
    if (overviewSource.mapLevels() == null)
        return;
    MapBuilder mb = new MapBuilder();
    mb.setEnableLineCleanFilters(false);
    FileSystemParam params = new FileSystemParam();
    params.setMapDescription(areaName);
    mb.setCopyrights(creMsgList(copyrightMsgs));
    mb.setMapInfo(creMsgList(licenseInfos));
    try {
        if (codepage == null) {
            // should not happen
            codepage = 0;
        }
        Sort sort = SrtTextReader.sortForCodepage(codepage);
        Map map = Map.createMap(overviewMapname, outputDir, params, overviewMapnumber, sort);
        if (!demProps.isEmpty()) {
            map.config(demProps);
            mb.config(demProps);
        }
        if (encodingType != null) {
            map.getLblFile().setEncoder(encodingType, codepage);
        }
        mb.makeMap(map, overviewSource);
        map.close();
    } catch (FileExistsException e) {
        throw new ExitException("Could not create overview map", e);
    } catch (FileNotWritableException e) {
        throw new ExitException("Could not write to overview map", e);
    }
}
Also used : FileSystemParam(uk.me.parabola.imgfmt.FileSystemParam) FileNotWritableException(uk.me.parabola.imgfmt.FileNotWritableException) Sort(uk.me.parabola.imgfmt.app.srt.Sort) MapBuilder(uk.me.parabola.mkgmap.build.MapBuilder) Map(uk.me.parabola.imgfmt.app.map.Map) ExitException(uk.me.parabola.imgfmt.ExitException) FileExistsException(uk.me.parabola.imgfmt.FileExistsException)

Example 4 with Map

use of uk.me.parabola.imgfmt.app.map.Map in project mkgmap by openstreetmap.

the class MapMaker method makeMap.

/**
 * Make a map from the given map data source.
 *
 * @param args User supplied arguments.
 * @param src The data source to load.
 * @param mapNameExt
 * @return The output filename for the map.
 */
private String makeMap(CommandArgs args, LoadableMapDataSource src, String mapNamePrefix) {
    if (src.getBounds().isEmpty())
        return null;
    FileSystemParam params = new FileSystemParam();
    params.setBlockSize(args.getBlockSize());
    params.setMapDescription(args.getDescription());
    log.info("Started making", args.getMapname(), "(" + args.getDescription() + ")");
    try {
        Map map = Map.createMap(mapNamePrefix + args.getMapname(), args.getOutputDir(), params, args.getMapname(), sort);
        setOptions(map, args);
        MapBuilder builder = new MapBuilder();
        builder.config(args.getProperties());
        if (!OverviewBuilder.OVERVIEW_PREFIX.equals(mapNamePrefix)) {
            if (args.getProperties().containsKey("route") || args.getProperties().containsKey("net"))
                builder.setDoRoads(true);
        }
        builder.makeMap(map, src);
        // Collect information on map complete.
        String outName = map.getFilename();
        log.info("finished making map", outName, "closing");
        map.close();
        return outName;
    } catch (FileExistsException e) {
        throw new MapFailedException("File exists already", e);
    } catch (FileNotWritableException e) {
        throw new MapFailedException("Could not create or write to file", e);
    }
}
Also used : FileSystemParam(uk.me.parabola.imgfmt.FileSystemParam) MapFailedException(uk.me.parabola.imgfmt.MapFailedException) FileNotWritableException(uk.me.parabola.imgfmt.FileNotWritableException) MapBuilder(uk.me.parabola.mkgmap.build.MapBuilder) Map(uk.me.parabola.imgfmt.app.map.Map) FileExistsException(uk.me.parabola.imgfmt.FileExistsException)

Aggregations

Map (uk.me.parabola.imgfmt.app.map.Map)4 ExitException (uk.me.parabola.imgfmt.ExitException)3 FileExistsException (uk.me.parabola.imgfmt.FileExistsException)3 FileNotWritableException (uk.me.parabola.imgfmt.FileNotWritableException)3 FileSystemParam (uk.me.parabola.imgfmt.FileSystemParam)3 MapFailedException (uk.me.parabola.imgfmt.MapFailedException)2 Area (uk.me.parabola.imgfmt.app.Area)2 Subdivision (uk.me.parabola.imgfmt.app.trergn.Subdivision)2 Zoom (uk.me.parabola.imgfmt.app.trergn.Zoom)2 Long2ObjectOpenHashMap (it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap)1 Path2D (java.awt.geom.Path2D)1 Rectangle2D (java.awt.geom.Rectangle2D)1 File (java.io.File)1 StandardCharsets (java.nio.charset.StandardCharsets)1 Files (java.nio.file.Files)1 LocalDateTime (java.time.LocalDateTime)1 DateTimeFormatter (java.time.format.DateTimeFormatter)1 FormatStyle (java.time.format.FormatStyle)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1