func Proj4(lat, lng float64) (string, error) {
	var zs string

	p := Point{Lat: lat, Lng: lng}

	if !p.Valid() {
		return "", &invalidPointError{p: p, msg: "invalid point"}
	}

	z, err := Zone(lat, lng)

	if err != nil {
		return "", err
	}

	// if souther hemisphere add an S to zone number
	// else leave blank zone number defaulting to north
	if p.Lat < 0 {
		zs = fmt.Sprintf("%vS", z)
	} else {
		zs = fmt.Sprint(z)
	}

	return fmt.Sprintf("+proj=utm +zone=%v +datum=WGS84 +units=m +no_def +ellps=WGS84 +towgs84=0,0,0", zs), nil
}
// Proj4 to get proj4 format from point
Proj4 to get proj4 format from point
// Proj4 to get proj4 format from point
func Proj4(lat, lng float64) (string, error) {
	var zs string
	p := Point{Lat: lat, Lng: lng}
	if !p.Valid() {
		return "", &invalidPointError{p: p, msg: "invalid point"}
	}
	z, err := Zone(lat, lng)
	if err != nil {
		return "", err
	}
	if p.Lat < 0 {
		zs = fmt.Sprintf("%vS", z)
	} else {
		zs = fmt.Sprint(z)
	}
	return fmt.Sprintf("+proj=utm +zone=%v +datum=WGS84 +units=m +no_def +ellps=WGS84 +towgs84=0,0,0", zs), nil
}
func Proj4 ( lat , lng float64 ) ( string , error ) { var zs string p := Point { Lat : lat , Lng : lng } if ! p . Valid ( ) { return " " , & invalidPointError { p : p , msg : " " } } z , err := Zone ( lat , lng ) if err != nil { return " " , err } if p . Lat < 0 { zs = fmt . Sprintf ( " " , z ) } else { zs = fmt . Sprint ( z ) } return fmt . Sprintf ( " " , zs ) , nil }
Proj4 to get proj4 format from point
Proj4 to get proj4 format from point
// if souther hemisphere add an S to zone number // else leave blank zone number defaulting to north