import java.io.Serializable; 

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class JI9052470 {
	public static void main(String[] args) {
		Subject loc = new Subject("name", "-1.0,2.5"); 
		assert(new Double(-1.0).equals(loc.lat)); 
	}	

} 

class Subject implements Cloneable, Serializable{ 
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public Double lat; 

	public Double lng; 
	public final String place; 
	public final String name; 
	public Double heading; 
	public Integer edgeId; 

	private static final String _doublePattern = "-{0,1}\\d+(\\.\\d+){0,1}"; 
	private static final Pattern _latLonPattern = Pattern.compile("[^[\\d&&[-|+|.]]]*(" + _doublePattern 
			+ ")(\\s*,\\s*|\\s+)(" + _doublePattern + ")\\D*"); 
	private static final Pattern _headingPattern = Pattern.compile("\\D*heading=(" 
			+ _doublePattern + ")\\D*"); 

	private static final Pattern _edgeIdPattern = Pattern.compile("\\D*edgeId=(\\d+)\\D*"); 

	public Subject(String name, String place) { 
		this.name = name; 
		this.place = place; 

		if (place == null) { 
			return; 
		} 

		Matcher matcher = _latLonPattern.matcher(place); 
		if (matcher.find()) { 
			this.lat = Double.parseDouble(matcher.group(1)); 
			this.lng = Double.parseDouble(matcher.group(4)); 
		} 

		matcher = _headingPattern.matcher(place); 
		if (matcher.find()) { 
			this.heading = Double.parseDouble(matcher.group(1)); 
		} 

		matcher = _edgeIdPattern.matcher(place); 
		if (matcher.find()) { 
			this.edgeId = Integer.parseInt(matcher.group(1)); 
		} 

	} 
}
