code: func (p *Point) GeoDistanceFrom(point *Point, haversine ...bool) float64 {
  	dLat := deg2rad(point.Lat() - p.Lat())
  	dLng := math.Abs(deg2rad(point.Lng() - p.Lng()))
  
  	if yesHaversine(haversine) {
  		// yes trig functions
  		dLat2Sin := math.Sin(dLat / 2)
  		dLng2Sin := math.Sin(dLng / 2)
  		a := dLat2Sin*dLat2Sin + math.Cos(deg2rad(p.Lat()))*math.Cos(deg2rad(point.Lat()))*dLng2Sin*dLng2Sin
  
  		return 2.0 * EarthRadius * math.Atan2(math.Sqrt(a), math.Sqrt(1-a))
  	}
  
  	if dLng > math.Pi {
  		dLng = 2*math.Pi - dLng
  	}
  
  	// fast way using pythagorean theorem on an equirectangular projection
  	x := dLng * math.Cos(deg2rad((p.Lat()+point.Lat())/2.0))
  	return math.Sqrt(dLat*dLat+x*x) * EarthRadius
  }
docs: // GeoDistanceFrom returns the geodesic distance in meters.