return convertGeoJson(value); value = convertCollection((Collection<Object>) value); throw new IllegalArgumentException("Could not parse coordinates from string: " + value, e); return convert(coords); } else return null;
private Geoshape convertGeoJson(Object value) { //Note that geoJson is long,lat try { Map<String, Object> map = (Map) value; String type = (String) map.get("type"); if("Point".equals(type) || "Circle".equals(type) || "Polygon".equals(type)) { return convertGeometry(map); } else if("Feature".equals(type)) { Map<String, Object> geometry = (Map) map.get("geometry"); return convertGeometry(geometry); } throw new IllegalArgumentException("Only Point, Circle, Polygon or feature types are supported"); } catch (ClassCastException e) { throw new IllegalArgumentException("GeoJSON was unparsable"); } }
double[] parsedCoordinates = convertCollection(coordinates); return point(parsedCoordinates[1], parsedCoordinates[0]); } else if ("Circle".equals(type)) { throw new IllegalArgumentException("GeoJSON circles require a radius"); double[] parsedCoordinates = convertCollection(coordinates); return circle(parsedCoordinates[1], parsedCoordinates[0], radius.doubleValue()); } else if ("Polygon".equals(type)) { throw new IllegalArgumentException("GeoJSON polygons are only supported if they form a box"); List<double[]> polygon = (List<double[]>) coordinates.stream().map(o -> convertCollection((Collection) o)).collect(Collectors.toList()); return box(min(p0[1], p1[1], p2[1], p3[1]), min(p0[0], p1[0], p2[0], p3[0]), max(p0[1], p1[1], p2[1], p3[1]), max(p0[0], p1[0], p2[0], p3[0]));
registerClassInternal(16,Date.class, new DateSerializer()); registerClassInternal(17,Geoshape.class, new Geoshape.GeoshapeSerializer()); registerClassInternal(18,String.class, new StringSerializer()); //supports null serialization registerClassInternal(19,Float.class, new FloatSerializer());
return convertGeoJson(value); value = convertCollection((Collection<Object>) value); throw new IllegalArgumentException("Could not parse coordinates from string: " + value, e); return convert(coords); } else return null;
public StandardAttributeHandling() { handlers = new HashMap<Class, AttributeHandler>(60); defaultRegistrations = Lists.newArrayList(DEFAULT_REGISTRATIONS); //Sort key data types registerClass(Byte.class, new ByteSerializer()); registerClass(Short.class, new ShortSerializer()); registerClass(Integer.class, new IntegerSerializer()); registerClass(Long.class, new LongSerializer()); registerClass(Decimal.class, new Decimal.DecimalSerializer()); registerClass(Precision.class, new Precision.PrecisionSerializer()); registerClass(Character.class, new CharacterSerializer()); registerClass(Boolean.class, new BooleanSerializer()); registerClass(Date.class, new DateSerializer()); registerClass(Geoshape.class, new Geoshape.GeoshapeSerializer()); registerClass(String.class, new StringSerializer()); //supports null serialization registerClass(Float.class, new FloatSerializer()); registerClass(Double.class, new DoubleSerializer()); //Arrays (support null serialization) registerClass(byte[].class, new ByteArraySerializer()); registerClass(short[].class, new ShortArraySerializer()); registerClass(int[].class, new IntArraySerializer()); registerClass(long[].class, new LongArraySerializer()); registerClass(float[].class, new FloatArraySerializer()); registerClass(double[].class, new DoubleArraySerializer()); registerClass(char[].class, new CharArraySerializer()); registerClass(boolean[].class, new BooleanArraySerializer()); registerClass(String[].class, new StringArraySerializer()); initialized = true; }
double[] parsedCoordinates = convertCollection(coordinates); return point(parsedCoordinates[1], parsedCoordinates[0]); } else if ("Circle".equals(type)) { throw new IllegalArgumentException("GeoJSON circles require a radius"); double[] parsedCoordinates = convertCollection(coordinates); return circle(parsedCoordinates[1], parsedCoordinates[0], radius.doubleValue()); } else if ("Polygon".equals(type)) { throw new IllegalArgumentException("GeoJSON polygons are only supported if they form a box"); List<double[]> polygon = (List<double[]>) coordinates.stream().map(o -> convertCollection((Collection) o)).collect(Collectors.toList()); return box(min(p0[1], p1[1], p2[1], p3[1]), min(p0[0], p1[0], p2[0], p3[0]), max(p0[1], p1[1], p2[1], p3[1]), max(p0[0], p1[0], p2[0], p3[0]));
throw new IllegalArgumentException("Could not parse coordinates from string: " + value, e); return convert(coords); } else return null;
private Geoshape convertGeoJson(Object value) { //Note that geoJson is long,lat try { Map<String, Object> map = (Map) value; String type = (String) map.get("type"); if("Point".equals(type) || "Circle".equals(type) || "Polygon".equals(type)) { return convertGeometry(map); } else if("Feature".equals(type)) { Map<String, Object> geometry = (Map) map.get("geometry"); return convertGeometry(geometry); } throw new IllegalArgumentException("Only Point, Circle, Polygon or feature types are supported"); } catch (ClassCastException e) { throw new IllegalArgumentException("GeoJSON was unparsable"); } }
registerClassInternal(16,Date.class, new DateSerializer()); registerClassInternal(17,Geoshape.class, new Geoshape.GeoshapeSerializer()); registerClassInternal(18,String.class, new StringSerializer()); //supports null serialization registerClassInternal(19,Float.class, new FloatSerializer());