add examples

This commit is contained in:
Hannes Janetzek
2014-01-21 18:21:15 +01:00
parent 9109da9784
commit 3fd92982c4
18 changed files with 956 additions and 520 deletions

View File

@@ -13,16 +13,15 @@ import org.jeo.map.CartoCSS;
import org.jeo.map.RGB;
import org.jeo.map.Rule;
import org.jeo.map.RuleList;
import org.jeo.map.Selector;
import org.jeo.map.Style;
import org.oscim.core.GeometryBuffer.GeometryType;
import org.oscim.core.MapElement;
import org.oscim.core.Tag;
import org.oscim.core.TagSet;
import org.oscim.theme.IRenderTheme;
import org.oscim.theme.renderinstruction.Area;
import org.oscim.theme.renderinstruction.Line;
import org.oscim.theme.renderinstruction.RenderInstruction;
import org.oscim.theme.styles.Area;
import org.oscim.theme.styles.Line;
import org.oscim.theme.styles.RenderStyle;
public class RenderTheme implements IRenderTheme {
@@ -117,7 +116,7 @@ public class RenderTheme implements IRenderTheme {
class StyleSet {
int level;
RenderInstruction[] ri = new RenderInstruction[2];
RenderStyle[] ri = new RenderStyle[2];
}
Map<Rule, StyleSet> mStyleSets = new HashMap<Rule, StyleSet>();
@@ -132,11 +131,6 @@ public class RenderTheme implements IRenderTheme {
sb.append(pad);
for (Selector s : r.getSelectors()) {
sb.append(RuleDebug.formatSelector(s));
sb.append(",");
}
if (sb.length() > 0)
sb.setLength(sb.length() - 1);
@@ -183,7 +177,7 @@ public class RenderTheme implements IRenderTheme {
}
@Override
public synchronized RenderInstruction[] matchElement(GeometryType type, TagSet tags,
public synchronized RenderStyle[] matchElement(GeometryType type, TagSet tags,
int zoomLevel) {
MatcherFeature f = mMatchFeature;
@@ -203,7 +197,7 @@ public class RenderTheme implements IRenderTheme {
if (type == GeometryType.POLY) {
RGB c = r.color(f, CartoCSS.POLYGON_FILL, RGB.black);
out.println(z + " " + c);
return new RenderInstruction[] {
return new RenderStyle[] {
new Area(z, color(c))
};
@@ -212,7 +206,7 @@ public class RenderTheme implements IRenderTheme {
float width = r.number(f, CartoCSS.LINE_WIDTH, 2f);
//out.println(z + " " + c);
return new RenderInstruction[] {
return new RenderStyle[] {
new Line(100 + z, color(c), width)
};
@@ -263,4 +257,10 @@ public class RenderTheme implements IRenderTheme {
t.matchElement(GeometryType.POLY, e.tags, 15);
}
@Override
public void updateInstructions() {
// TODO Auto-generated method stub
}
}

View File

@@ -1,74 +0,0 @@
package org.oscim.theme.carto;
import static java.lang.System.out;
import java.util.Map;
import org.jeo.filter.Filter;
import org.jeo.map.Rule;
import org.jeo.map.Selector;
public class RuleDebug {
static void printRule(Rule r, int level) {
out.println("> " + level + " >");
out.println(formatRule(r, level));
}
public static String formatRule(Rule r, int indent) {
StringBuilder sb = new StringBuilder();
String pad = "";
for (int i = 0; i < indent; i++) {
pad += " ";
};
sb.append(pad);
for (Selector s : r.getSelectors()) {
sb.append(formatSelector(s));
sb.append(",");
}
if (sb.length() > 0) {
sb.setLength(sb.length() - 1);
}
sb.append(pad).append(" {").append("\n");
for (Map.Entry<String, Object> e : r.properties().entrySet()) {
sb.append(pad).append(" ").append(e.getKey()).append(": ").append(e.getValue())
.append(";\n");
}
for (Rule nested : r.nested()) {
sb.append(nested.toString(indent + 2)).append("\n");
}
sb.append(pad).append("}");
return sb.toString();
}
public static String formatSelector(Selector s) {
StringBuffer sb = new StringBuffer();
if (s.getName() != null) {
sb.append(s.getName());
}
if (s.getId() != null) {
sb.append("#").append(s.getId());
}
for (String c : s.getClasses()) {
sb.append(".").append(c);
}
if (s.getFilter() != null && s.getFilter() != Filter.TRUE) {
sb.append("[").append(s.getFilter()).append("]");
}
if (s.getAttachment() != null) {
sb.append("::").append(s.getAttachment());
}
if (s.isWildcard()) {
sb.append("*");
}
return sb.toString();
}
}